From 9213cec526ed25f147ae6379e3df724114dc8fd6 Mon Sep 17 00:00:00 2001 From: Zachary Huff Date: Tue, 28 Feb 2023 01:24:44 -0500 Subject: [PATCH] Update dist --- www/dist-dev/static/app.js | 2 +- www/dist/index.html | 2 +- www/dist/static/app.6ecce8.js.map | 1 - www/dist/static/{app.6ecce8.js => app.750268.js} | 2 +- www/dist/static/app.750268.js.map | 1 + www/dist/uindex.html | 2 +- 6 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 www/dist/static/app.6ecce8.js.map rename www/dist/static/{app.6ecce8.js => app.750268.js} (74%) create mode 100644 www/dist/static/app.750268.js.map diff --git a/www/dist-dev/static/app.js b/www/dist-dev/static/app.js index e7795492..aa804219 100644 --- a/www/dist-dev/static/app.js +++ b/www/dist-dev/static/app.js @@ -1347,7 +1347,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PageNumInput)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _blueprintjs_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @blueprintjs/core */ \"./node_modules/@blueprintjs/core/lib/esm/components/index.js\");\n/* harmony import */ var _Help__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Help */ \"./app/components/Help.js\");\n\n\n\nconst css = {\n label: {\n display: 'inline-block',\n },\n};\nclass PageNumInput extends react__WEBPACK_IMPORTED_MODULE_0__.Component {\n render() {\n return react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", { hidden: this.props.hidden },\n react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"label\", { className: \"bp3-label\", style: css.label },\n this.props.label,\n react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Help__WEBPACK_IMPORTED_MODULE_1__[\"default\"], { title: this.props.label, content: this.props.help }),\n react__WEBPACK_IMPORTED_MODULE_0__.createElement(_blueprintjs_core__WEBPACK_IMPORTED_MODULE_2__.NumericInput, { allowNumericCharactersOnly: true, min: this.props.min, minorStepSize: this.props.minorStepSize, stepSize: this.props.stepSize, majorStepSize: this.props.majorStepSize, disabled: this.props.disabled, selectAllOnFocus: this.props.selectAllOnFocus, onValueChange: this.props.onChange, value: this.props.value })));\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvY29tcG9uZW50cy9QYWdlTnVtSW5wdXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUMrQjtBQUNnQjtBQUNyQjtBQWlCMUIsTUFBTSxHQUFHLEdBQUc7SUFDWCxLQUFLLEVBQUU7UUFDTixPQUFPLEVBQUUsY0FBYztLQUNBO0NBQ3hCLENBQUM7QUFFYSxNQUFNLFlBQWEsU0FBUSw0Q0FBMEI7SUFDbkUsTUFBTTtRQUNMLE9BQU8sMERBQUssTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUNwQyw0REFBTyxTQUFTLEVBQUMsV0FBVyxFQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztnQkFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO2dCQUNqQixpREFBQyw2Q0FBSSxJQUNKLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUN2QjtnQkFDRixpREFBQywyREFBc0IsSUFDdEIsMEJBQTBCLEVBQUUsSUFBSSxFQUNoQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQ25CLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFDdkMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUM3QixhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQ3ZDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFDN0IsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFDN0MsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUNsQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQ3RCLENBQ0ssQ0FDSCxDQUFDO0lBQ1IsQ0FBQztDQUNEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcHJpdHVubC1jbG91ZC8uL2FwcC9jb21wb25lbnRzL1BhZ2VOdW1JbnB1dC50c3g/ZjI4YyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vUmVmZXJlbmNlcy5kLnRzXCIvPlxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgQmx1ZXByaW50IGZyb20gJ0BibHVlcHJpbnRqcy9jb3JlJztcbmltcG9ydCBIZWxwIGZyb20gJy4vSGVscCc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG5cdGhpZGRlbj86IGJvb2xlYW47XG5cdGRpc2FibGVkPzogYm9vbGVhbjtcblx0bWluPzogbnVtYmVyO1xuXHRtYXg/OiBudW1iZXI7XG5cdG1pbm9yU3RlcFNpemU/OiBudW1iZXI7XG5cdHN0ZXBTaXplPzogbnVtYmVyO1xuXHRtYWpvclN0ZXBTaXplPzogbnVtYmVyO1xuXHRzZWxlY3RBbGxPbkZvY3VzPzogdHJ1ZTtcblx0bGFiZWw6IHN0cmluZztcblx0aGVscDogc3RyaW5nO1xuXHR2YWx1ZTogbnVtYmVyO1xuXHRvbkNoYW5nZTogKHZhbDogbnVtYmVyKSA9PiB2b2lkO1xufVxuXG5jb25zdCBjc3MgPSB7XG5cdGxhYmVsOiB7XG5cdFx0ZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG5cdH0gYXMgUmVhY3QuQ1NTUHJvcGVydGllcyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhZ2VOdW1JbnB1dCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxQcm9wcywge30+IHtcblx0cmVuZGVyKCk6IEpTWC5FbGVtZW50IHtcblx0XHRyZXR1cm4gPGRpdiBoaWRkZW49e3RoaXMucHJvcHMuaGlkZGVufT5cblx0XHRcdDxsYWJlbCBjbGFzc05hbWU9XCJicDMtbGFiZWxcIiBzdHlsZT17Y3NzLmxhYmVsfT5cblx0XHRcdFx0e3RoaXMucHJvcHMubGFiZWx9XG5cdFx0XHRcdDxIZWxwXG5cdFx0XHRcdFx0dGl0bGU9e3RoaXMucHJvcHMubGFiZWx9XG5cdFx0XHRcdFx0Y29udGVudD17dGhpcy5wcm9wcy5oZWxwfVxuXHRcdFx0XHQvPlxuXHRcdFx0XHQ8Qmx1ZXByaW50Lk51bWVyaWNJbnB1dFxuXHRcdFx0XHRcdGFsbG93TnVtZXJpY0NoYXJhY3RlcnNPbmx5PXt0cnVlfVxuXHRcdFx0XHRcdG1pbj17dGhpcy5wcm9wcy5taW59XG5cdFx0XHRcdFx0bWlub3JTdGVwU2l6ZT17dGhpcy5wcm9wcy5taW5vclN0ZXBTaXplfVxuXHRcdFx0XHRcdHN0ZXBTaXplPXt0aGlzLnByb3BzLnN0ZXBTaXplfVxuXHRcdFx0XHRcdG1ham9yU3RlcFNpemU9e3RoaXMucHJvcHMubWFqb3JTdGVwU2l6ZX1cblx0XHRcdFx0XHRkaXNhYmxlZD17dGhpcy5wcm9wcy5kaXNhYmxlZH1cblx0XHRcdFx0XHRzZWxlY3RBbGxPbkZvY3VzPXt0aGlzLnByb3BzLnNlbGVjdEFsbE9uRm9jdXN9XG5cdFx0XHRcdFx0b25WYWx1ZUNoYW5nZT17dGhpcy5wcm9wcy5vbkNoYW5nZX1cblx0XHRcdFx0XHR2YWx1ZT17dGhpcy5wcm9wcy52YWx1ZX1cblx0XHRcdFx0Lz5cblx0XHRcdDwvbGFiZWw+XG5cdFx0PC9kaXY+O1xuXHR9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./app/components/PageNumInput.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PageNumInput)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var _blueprintjs_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @blueprintjs/core */ \"./node_modules/@blueprintjs/core/lib/esm/components/index.js\");\n/* harmony import */ var _Help__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Help */ \"./app/components/Help.js\");\n\n\n\nconst css = {\n label: {\n display: 'inline-block',\n },\n};\nclass PageNumInput extends react__WEBPACK_IMPORTED_MODULE_0__.Component {\n render() {\n return react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", { hidden: this.props.hidden },\n react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"label\", { className: \"bp3-label\", style: css.label },\n this.props.label,\n react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Help__WEBPACK_IMPORTED_MODULE_1__[\"default\"], { title: this.props.label, content: this.props.help }),\n react__WEBPACK_IMPORTED_MODULE_0__.createElement(_blueprintjs_core__WEBPACK_IMPORTED_MODULE_2__.NumericInput, { allowNumericCharactersOnly: true, min: this.props.min, minorStepSize: this.props.minorStepSize, max: this.props.max, stepSize: this.props.stepSize, majorStepSize: this.props.majorStepSize, disabled: this.props.disabled, selectAllOnFocus: this.props.selectAllOnFocus, onValueChange: (val) => {\n if (this.props.max && val > this.props.max) {\n val = this.props.max;\n }\n this.props.onChange(val);\n }, value: this.props.value })));\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9hcHAvY29tcG9uZW50cy9QYWdlTnVtSW5wdXQuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUMrQjtBQUNnQjtBQUNyQjtBQWlCMUIsTUFBTSxHQUFHLEdBQUc7SUFDWCxLQUFLLEVBQUU7UUFDTixPQUFPLEVBQUUsY0FBYztLQUNBO0NBQ3hCLENBQUM7QUFFYSxNQUFNLFlBQWEsU0FBUSw0Q0FBMEI7SUFDbkUsTUFBTTtRQUNMLE9BQU8sMERBQUssTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUNwQyw0REFBTyxTQUFTLEVBQUMsV0FBVyxFQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztnQkFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO2dCQUNqQixpREFBQyw2Q0FBSSxJQUNKLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUN2QjtnQkFDRixpREFBQywyREFBc0IsSUFDdEIsMEJBQTBCLEVBQUUsSUFBSSxFQUNoQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQ25CLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFDdkMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQzdCLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFDdkMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUM3QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUM3QyxhQUFhLEVBQUUsQ0FBQyxHQUFXLEVBQVEsRUFBRTt3QkFDcEMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7NEJBQzNDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQzt5QkFDckI7d0JBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzFCLENBQUMsRUFDRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQ3RCLENBQ0ssQ0FDSCxDQUFDO0lBQ1IsQ0FBQztDQUNEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vcHJpdHVubC1jbG91ZC8uL2FwcC9jb21wb25lbnRzL1BhZ2VOdW1JbnB1dC50c3g/ZjI4YyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vUmVmZXJlbmNlcy5kLnRzXCIvPlxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgQmx1ZXByaW50IGZyb20gJ0BibHVlcHJpbnRqcy9jb3JlJztcbmltcG9ydCBIZWxwIGZyb20gJy4vSGVscCc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG5cdGhpZGRlbj86IGJvb2xlYW47XG5cdGRpc2FibGVkPzogYm9vbGVhbjtcblx0bWluPzogbnVtYmVyO1xuXHRtYXg/OiBudW1iZXI7XG5cdG1pbm9yU3RlcFNpemU/OiBudW1iZXI7XG5cdHN0ZXBTaXplPzogbnVtYmVyO1xuXHRtYWpvclN0ZXBTaXplPzogbnVtYmVyO1xuXHRzZWxlY3RBbGxPbkZvY3VzPzogdHJ1ZTtcblx0bGFiZWw6IHN0cmluZztcblx0aGVscDogc3RyaW5nO1xuXHR2YWx1ZTogbnVtYmVyO1xuXHRvbkNoYW5nZTogKHZhbDogbnVtYmVyKSA9PiB2b2lkO1xufVxuXG5jb25zdCBjc3MgPSB7XG5cdGxhYmVsOiB7XG5cdFx0ZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG5cdH0gYXMgUmVhY3QuQ1NTUHJvcGVydGllcyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhZ2VOdW1JbnB1dCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxQcm9wcywge30+IHtcblx0cmVuZGVyKCk6IEpTWC5FbGVtZW50IHtcblx0XHRyZXR1cm4gPGRpdiBoaWRkZW49e3RoaXMucHJvcHMuaGlkZGVufT5cblx0XHRcdDxsYWJlbCBjbGFzc05hbWU9XCJicDMtbGFiZWxcIiBzdHlsZT17Y3NzLmxhYmVsfT5cblx0XHRcdFx0e3RoaXMucHJvcHMubGFiZWx9XG5cdFx0XHRcdDxIZWxwXG5cdFx0XHRcdFx0dGl0bGU9e3RoaXMucHJvcHMubGFiZWx9XG5cdFx0XHRcdFx0Y29udGVudD17dGhpcy5wcm9wcy5oZWxwfVxuXHRcdFx0XHQvPlxuXHRcdFx0XHQ8Qmx1ZXByaW50Lk51bWVyaWNJbnB1dFxuXHRcdFx0XHRcdGFsbG93TnVtZXJpY0NoYXJhY3RlcnNPbmx5PXt0cnVlfVxuXHRcdFx0XHRcdG1pbj17dGhpcy5wcm9wcy5taW59XG5cdFx0XHRcdFx0bWlub3JTdGVwU2l6ZT17dGhpcy5wcm9wcy5taW5vclN0ZXBTaXplfVxuXHRcdFx0XHRcdG1heD17dGhpcy5wcm9wcy5tYXh9XG5cdFx0XHRcdFx0c3RlcFNpemU9e3RoaXMucHJvcHMuc3RlcFNpemV9XG5cdFx0XHRcdFx0bWFqb3JTdGVwU2l6ZT17dGhpcy5wcm9wcy5tYWpvclN0ZXBTaXplfVxuXHRcdFx0XHRcdGRpc2FibGVkPXt0aGlzLnByb3BzLmRpc2FibGVkfVxuXHRcdFx0XHRcdHNlbGVjdEFsbE9uRm9jdXM9e3RoaXMucHJvcHMuc2VsZWN0QWxsT25Gb2N1c31cblx0XHRcdFx0XHRvblZhbHVlQ2hhbmdlPXsodmFsOiBudW1iZXIpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdGlmICh0aGlzLnByb3BzLm1heCAmJiB2YWwgPiB0aGlzLnByb3BzLm1heCkge1xuXHRcdFx0XHRcdFx0XHR2YWwgPSB0aGlzLnByb3BzLm1heDtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHRoaXMucHJvcHMub25DaGFuZ2UodmFsKTtcblx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdHZhbHVlPXt0aGlzLnByb3BzLnZhbHVlfVxuXHRcdFx0XHQvPlxuXHRcdFx0PC9sYWJlbD5cblx0XHQ8L2Rpdj47XG5cdH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./app/components/PageNumInput.js\n"); /***/ }), diff --git a/www/dist/index.html b/www/dist/index.html index 44e64379..35066744 100644 --- a/www/dist/index.html +++ b/www/dist/index.html @@ -20,6 +20,6 @@
- + diff --git a/www/dist/static/app.6ecce8.js.map b/www/dist/static/app.6ecce8.js.map deleted file mode 100644 index 48ae79bf..00000000 --- a/www/dist/static/app.6ecce8.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"app.js","mappings":"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,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,IAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,SAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,IAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,SAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,MAGNr9C,EAAW,C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","sources":["webpack://pritunl-cloud/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/configureDom4.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/node_modules/react-transition-group/CSSTransition.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/node_modules/react-transition-group/ReplaceTransition.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/node_modules/react-transition-group/Transition.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/node_modules/react-transition-group/TransitionGroup.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/node_modules/react-transition-group/index.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/node_modules/react-transition-group/utils/ChildMapping.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/node_modules/react-transition-group/utils/PropTypes.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Caption.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/DateUtils.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Day.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/DayPicker.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Helpers.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/LocaleUtils.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/ModifiersUtils.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Month.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Navbar.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Weekday.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Weekdays.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/classNames.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/index.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/keys.js","webpack://pritunl-cloud/./node_modules/@hypnosphi/create-react-context/lib/implementation.js","webpack://pritunl-cloud/./node_modules/@hypnosphi/create-react-context/lib/index.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/base64.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/decoders/copyrect.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/decoders/hextile.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/decoders/raw.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/decoders/rre.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/decoders/tight.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/decoders/tightpng.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/deflator.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/des.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/display.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/encodings.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/inflator.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/domkeytable.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/fixedkeys.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/gesturehandler.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/keyboard.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/keysym.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/keysymdef.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/util.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/vkeys.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/xtscancodes.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/rfb.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/browser.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/cursor.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/element.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/events.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/eventtarget.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/int.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/logging.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/strings.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/utils/common.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/adler32.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/crc32.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/deflate.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/inffast.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/inflate.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/inftrees.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/messages.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/trees.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/zstream.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/websock.js","webpack://pritunl-cloud/./node_modules/call-bind/callBound.js","webpack://pritunl-cloud/./node_modules/call-bind/index.js","webpack://pritunl-cloud/./node_modules/classnames/index.js","webpack://pritunl-cloud/./node_modules/component-emitter/index.js","webpack://pritunl-cloud/./node_modules/deep-equal/index.js","webpack://pritunl-cloud/./node_modules/define-properties/index.js","webpack://pritunl-cloud/./node_modules/dom-helpers/class/addClass.js","webpack://pritunl-cloud/./node_modules/dom-helpers/class/hasClass.js","webpack://pritunl-cloud/./node_modules/dom-helpers/class/removeClass.js","webpack://pritunl-cloud/./node_modules/dom4/build/dom4.max.js","webpack://pritunl-cloud/./node_modules/events/events.js","webpack://pritunl-cloud/./node_modules/fast-safe-stringify/index.js","webpack://pritunl-cloud/./node_modules/fbjs/lib/invariant.js","webpack://pritunl-cloud/./node_modules/flux/index.js","webpack://pritunl-cloud/./node_modules/flux/lib/Dispatcher.js","webpack://pritunl-cloud/./node_modules/function-bind/implementation.js","webpack://pritunl-cloud/./node_modules/function-bind/index.js","webpack://pritunl-cloud/./node_modules/get-intrinsic/index.js","webpack://pritunl-cloud/./node_modules/gud/index.js","webpack://pritunl-cloud/./node_modules/has-symbols/index.js","webpack://pritunl-cloud/./node_modules/has-symbols/shams.js","webpack://pritunl-cloud/./node_modules/has-tostringtag/shams.js","webpack://pritunl-cloud/./node_modules/has/src/index.js","webpack://pritunl-cloud/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://pritunl-cloud/./node_modules/is-arguments/index.js","webpack://pritunl-cloud/./node_modules/is-date-object/index.js","webpack://pritunl-cloud/./node_modules/is-regex/index.js","webpack://pritunl-cloud/./node_modules/isarray/index.js","webpack://pritunl-cloud/./node_modules/mobile-detect/mobile-detect.js","webpack://pritunl-cloud/./node_modules/object-assign/index.js","webpack://pritunl-cloud/./node_modules/object-inspect/index.js","webpack://pritunl-cloud/./node_modules/object-is/implementation.js","webpack://pritunl-cloud/./node_modules/object-is/index.js","webpack://pritunl-cloud/./node_modules/object-is/polyfill.js","webpack://pritunl-cloud/./node_modules/object-is/shim.js","webpack://pritunl-cloud/./node_modules/object-keys/implementation.js","webpack://pritunl-cloud/./node_modules/object-keys/index.js","webpack://pritunl-cloud/./node_modules/object-keys/isArguments.js","webpack://pritunl-cloud/./node_modules/path-to-regexp/index.js","webpack://pritunl-cloud/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://pritunl-cloud/./node_modules/prop-types/index.js","webpack://pritunl-cloud/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://pritunl-cloud/./node_modules/qs/lib/formats.js","webpack://pritunl-cloud/./node_modules/qs/lib/index.js","webpack://pritunl-cloud/./node_modules/qs/lib/parse.js","webpack://pritunl-cloud/./node_modules/qs/lib/stringify.js","webpack://pritunl-cloud/./node_modules/qs/lib/utils.js","webpack://pritunl-cloud/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://pritunl-cloud/./node_modules/react-dom/index.js","webpack://pritunl-cloud/./node_modules/react-is/cjs/react-is.production.min.js","webpack://pritunl-cloud/./node_modules/react-is/index.js","webpack://pritunl-cloud/./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://pritunl-cloud/./node_modules/react-stripe-checkout/dist/main.js","webpack://pritunl-cloud/./node_modules/react/cjs/react.production.min.js","webpack://pritunl-cloud/./node_modules/react/index.js","webpack://pritunl-cloud/./node_modules/regexp.prototype.flags/implementation.js","webpack://pritunl-cloud/./node_modules/regexp.prototype.flags/index.js","webpack://pritunl-cloud/./node_modules/regexp.prototype.flags/polyfill.js","webpack://pritunl-cloud/./node_modules/regexp.prototype.flags/shim.js","webpack://pritunl-cloud/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://pritunl-cloud/./node_modules/scheduler/index.js","webpack://pritunl-cloud/./node_modules/side-channel/index.js","webpack://pritunl-cloud/./node_modules/superagent/src/agent-base.js","webpack://pritunl-cloud/./node_modules/superagent/src/client.js","webpack://pritunl-cloud/./node_modules/superagent/src/is-object.js","webpack://pritunl-cloud/./node_modules/superagent/src/request-base.js","webpack://pritunl-cloud/./node_modules/superagent/src/response-base.js","webpack://pritunl-cloud/./node_modules/superagent/src/utils.js","webpack://pritunl-cloud/./node_modules/warning/warning.js","webpack://pritunl-cloud/webpack/bootstrap","webpack://pritunl-cloud/webpack/runtime/amd define","webpack://pritunl-cloud/webpack/runtime/compat get default export","webpack://pritunl-cloud/webpack/runtime/define property getters","webpack://pritunl-cloud/webpack/runtime/global","webpack://pritunl-cloud/webpack/runtime/hasOwnProperty shorthand","webpack://pritunl-cloud/webpack/runtime/make namespace object","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/alignment.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/elevation.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/intent.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/position.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/classes.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/interactionMode.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/accessibility/focusStyleManager.ts","webpack://pritunl-cloud/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://pritunl-cloud/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://pritunl-cloud/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://pritunl-cloud/./node_modules/resolve-pathname/esm/resolve-pathname.js","webpack://pritunl-cloud/./node_modules/value-equal/esm/value-equal.js","webpack://pritunl-cloud/./node_modules/tiny-invariant/dist/tiny-invariant.esm.js","webpack://pritunl-cloud/./node_modules/history/esm/history.js","webpack://pritunl-cloud/./node_modules/mini-create-react-context/dist/esm/index.js","webpack://pritunl-cloud/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://pritunl-cloud/./node_modules/react-router/modules/createNameContext.js","webpack://pritunl-cloud/./node_modules/react-router/modules/HistoryContext.js","webpack://pritunl-cloud/./node_modules/react-router/modules/RouterContext.js","webpack://pritunl-cloud/./node_modules/react-router/modules/Router.js","webpack://pritunl-cloud/./node_modules/react-router/modules/MemoryRouter.js","webpack://pritunl-cloud/./node_modules/react-router/modules/Lifecycle.js","webpack://pritunl-cloud/./node_modules/react-router/modules/generatePath.js","webpack://pritunl-cloud/./node_modules/react-router/modules/Redirect.js","webpack://pritunl-cloud/./node_modules/react-router/modules/matchPath.js","webpack://pritunl-cloud/./node_modules/react-router/modules/Route.js","webpack://pritunl-cloud/./node_modules/react-router/modules/StaticRouter.js","webpack://pritunl-cloud/./node_modules/react-router/modules/Switch.js","webpack://pritunl-cloud/./node_modules/react-router/modules/hooks.js","webpack://pritunl-cloud/./node_modules/react-router-dom/modules/BrowserRouter.js","webpack://pritunl-cloud/./node_modules/react-router-dom/modules/HashRouter.js","webpack://pritunl-cloud/./node_modules/react-router-dom/modules/utils/locationUtils.js","webpack://pritunl-cloud/./node_modules/react-router-dom/modules/Link.js","webpack://pritunl-cloud/./node_modules/react-router-dom/modules/NavLink.js","webpack://pritunl-cloud/./node_modules/tslib/tslib.es6.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/props.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/refs.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/keys.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/utils/jsUtils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/errors.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/abstractPureComponent2.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/utils/reactUtils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/icons/src/generated/iconSvgPaths.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/icon/icon.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/spinner/spinner.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/button/abstractButton.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/button/buttons.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/html/html.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/utils/functionUtils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/portal/portal.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/overlay/overlay.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/forms/numericInput.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/dialog/dialog.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/divider/divider.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/button/buttonGroup.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/forms/controlGroup.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/forms/asyncControllableInput.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/forms/inputGroup.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/forms/numericInputUtils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/html-select/htmlSelect.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/menu/menuDivider.tsx","webpack://pritunl-cloud/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://pritunl-cloud/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://pritunl-cloud/./node_modules/react-popper/lib/esm/Manager.js","webpack://pritunl-cloud/./node_modules/react-popper/lib/esm/utils.js","webpack://pritunl-cloud/./node_modules/react-popper/lib/esm/Reference.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isBrowser.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/debounce.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isFunction.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getStyleComputedProperty.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getParentNode.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getScrollParent.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getReferenceNode.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isIE.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getOffsetParent.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getRoot.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/findCommonOffsetParent.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isOffsetContainer.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getScroll.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/includeScroll.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getBordersSize.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getWindowSizes.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getClientRect.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getBoundingClientRect.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getOffsetRectRelativeToArbitraryNode.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isFixed.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getFixedPositionOffsetParent.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getBoundaries.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/computeAutoPlacement.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getReferenceOffsets.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getOuterSizes.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getOppositePlacement.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getPopperOffsets.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/find.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/runModifiers.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/findIndex.js","webpack://pritunl-cloud/./node_modules/popper.js/src/methods/update.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isModifierEnabled.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getSupportedPropertyName.js","webpack://pritunl-cloud/./node_modules/popper.js/src/methods/destroy.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getWindow.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/setupEventListeners.js","webpack://pritunl-cloud/./node_modules/popper.js/src/methods/enableEventListeners.js","webpack://pritunl-cloud/./node_modules/popper.js/src/methods/disableEventListeners.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/removeEventListeners.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isNumeric.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/setStyles.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/computeStyle.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isModifierRequired.js","webpack://pritunl-cloud/./node_modules/popper.js/src/methods/placements.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/clockwise.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/flip.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/offset.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/index.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/shift.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/preventOverflow.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/keepTogether.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/arrow.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getOppositeVariation.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/inner.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/hide.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getRoundedOffsets.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/applyStyle.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/setAttributes.js","webpack://pritunl-cloud/./node_modules/popper.js/src/methods/defaults.js","webpack://pritunl-cloud/./node_modules/popper.js/src/index.js","webpack://pritunl-cloud/./node_modules/react-popper/lib/esm/Popper.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/utils/domUtils.ts","webpack://pritunl-cloud/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/resize-sensor/resizeSensor.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/tooltip/tooltip.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/popover/popperUtils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/popover/popoverArrow.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/popover/popoverMigrationUtils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/popover/popover.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/text/text.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/menu/menuItem.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/menu/menu.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/toast/toast.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/toast/toaster.tsx","webpack://pritunl-cloud/./app/Alert.ts","webpack://pritunl-cloud/./app/License.ts","webpack://pritunl-cloud/./app/Csrf.ts","webpack://pritunl-cloud/./app/Theme.ts","webpack://pritunl-cloud/./app/Constants.ts","webpack://pritunl-cloud/./app/dispatcher/Dispatcher.ts","webpack://pritunl-cloud/./app/EventEmitter.ts","webpack://pritunl-cloud/./app/types/SubscriptionTypes.ts","webpack://pritunl-cloud/./app/types/GlobalTypes.ts","webpack://pritunl-cloud/./app/stores/SubscriptionStore.ts","webpack://pritunl-cloud/./app/types/OrganizationTypes.ts","webpack://pritunl-cloud/./app/stores/OrganizationsStore.ts","webpack://pritunl-cloud/./app/types/LoadingTypes.ts","webpack://pritunl-cloud/./app/stores/LoadingStore.ts","webpack://pritunl-cloud/./app/components/LoadingBar.tsx","webpack://pritunl-cloud/./app/dispatcher/EventDispatcher.ts","webpack://pritunl-cloud/./app/utils/MiscUtils.ts","webpack://pritunl-cloud/./app/Loader.ts","webpack://pritunl-cloud/./app/actions/SubscriptionActions.ts","webpack://pritunl-cloud/./app/components/ConfirmButton.tsx","webpack://pritunl-cloud/./app/components/Subscription.tsx","webpack://pritunl-cloud/./app/types/UserTypes.ts","webpack://pritunl-cloud/./app/stores/UsersStore.ts","webpack://pritunl-cloud/./app/stores/UserStore.ts","webpack://pritunl-cloud/./app/actions/UserActions.ts","webpack://pritunl-cloud/./app/types/AuditTypes.ts","webpack://pritunl-cloud/./app/stores/AuditsStore.ts","webpack://pritunl-cloud/./app/actions/AuditActions.ts","webpack://pritunl-cloud/./app/components/User.tsx","webpack://pritunl-cloud/./app/components/SearchInput.tsx","webpack://pritunl-cloud/./app/components/SwitchNull.tsx","webpack://pritunl-cloud/./app/components/UsersFilter.tsx","webpack://pritunl-cloud/./app/components/Page.tsx","webpack://pritunl-cloud/./app/components/PageHeader.tsx","webpack://pritunl-cloud/./app/components/UsersPage.tsx","webpack://pritunl-cloud/./app/components/Users.tsx","webpack://pritunl-cloud/./app/types/SessionTypes.ts","webpack://pritunl-cloud/./app/stores/SessionsStore.ts","webpack://pritunl-cloud/./app/actions/SessionActions.ts","webpack://pritunl-cloud/./app/components/NonState.tsx","webpack://pritunl-cloud/./app/utils/AgentUtils.ts","webpack://pritunl-cloud/./app/components/CopyButton.tsx","webpack://pritunl-cloud/./app/components/PageInfo.tsx","webpack://pritunl-cloud/./app/components/Session.tsx","webpack://pritunl-cloud/./app/components/Sessions.tsx","webpack://pritunl-cloud/./node_modules/@github/webauthn-json/src/webauthn-json/base64url.ts","webpack://pritunl-cloud/./node_modules/@github/webauthn-json/src/webauthn-json/convert.ts","webpack://pritunl-cloud/./node_modules/@github/webauthn-json/src/webauthn-json/basic/schema.ts","webpack://pritunl-cloud/./node_modules/@github/webauthn-json/src/webauthn-json/basic/api.ts","webpack://pritunl-cloud/./app/types/DeviceTypes.ts","webpack://pritunl-cloud/./app/stores/DevicesStore.ts","webpack://pritunl-cloud/./app/actions/DeviceActions.ts","webpack://pritunl-cloud/./app/components/Help.tsx","webpack://pritunl-cloud/./app/components/PageSwitch.tsx","webpack://pritunl-cloud/./app/components/PageSave.tsx","webpack://pritunl-cloud/./app/components/PageInput.tsx","webpack://pritunl-cloud/./app/components/Device.tsx","webpack://pritunl-cloud/./app/components/Devices.tsx","webpack://pritunl-cloud/./app/components/Audit.tsx","webpack://pritunl-cloud/./app/components/AuditsPage.tsx","webpack://pritunl-cloud/./app/components/Audits.tsx","webpack://pritunl-cloud/./app/components/PagePanel.tsx","webpack://pritunl-cloud/./app/components/PageSplit.tsx","webpack://pritunl-cloud/./app/components/PageInputButton.tsx","webpack://pritunl-cloud/./app/components/PageSelect.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/common/classes.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/common/dateUtils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/common/errors.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/common/utils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/datePickerCaption.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/common/months.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/datePickerCore.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/datePickerNavbar.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/common/timeUnit.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/shortcuts.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/timePicker.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/datePicker.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/dateTimePicker.tsx","webpack://pritunl-cloud/./app/components/PageDateTime.tsx","webpack://pritunl-cloud/./app/components/PageNew.tsx","webpack://pritunl-cloud/./app/components/PageTextArea.tsx","webpack://pritunl-cloud/./app/components/UserDetailed.tsx","webpack://pritunl-cloud/./app/types/NodeTypes.ts","webpack://pritunl-cloud/./app/stores/NodesStore.ts","webpack://pritunl-cloud/./app/types/CertificateTypes.ts","webpack://pritunl-cloud/./app/stores/CertificatesStore.ts","webpack://pritunl-cloud/./app/types/DatacenterTypes.ts","webpack://pritunl-cloud/./app/stores/DatacentersStore.ts","webpack://pritunl-cloud/./app/types/ZoneTypes.ts","webpack://pritunl-cloud/./app/stores/ZonesStore.ts","webpack://pritunl-cloud/./app/types/BlockTypes.ts","webpack://pritunl-cloud/./app/stores/BlocksStore.ts","webpack://pritunl-cloud/./app/actions/NodeActions.ts","webpack://pritunl-cloud/./app/actions/CertificateActions.ts","webpack://pritunl-cloud/./app/actions/DatacenterActions.ts","webpack://pritunl-cloud/./app/actions/ZoneActions.ts","webpack://pritunl-cloud/./app/actions/BlockActions.ts","webpack://pritunl-cloud/./app/components/NodeDeploy.tsx","webpack://pritunl-cloud/./app/components/PageInputSwitch.tsx","webpack://pritunl-cloud/./app/components/PageSelectButton.tsx","webpack://pritunl-cloud/./app/components/PageNumInput.tsx","webpack://pritunl-cloud/./app/components/NodeBlock.tsx","webpack://pritunl-cloud/./app/components/NodeDetailed.tsx","webpack://pritunl-cloud/./app/components/Node.tsx","webpack://pritunl-cloud/./app/components/NodesFilter.tsx","webpack://pritunl-cloud/./app/components/NodesPage.tsx","webpack://pritunl-cloud/./app/components/Nodes.tsx","webpack://pritunl-cloud/./app/types/PolicyTypes.ts","webpack://pritunl-cloud/./app/stores/PoliciesStore.ts","webpack://pritunl-cloud/./app/types/SettingsTypes.ts","webpack://pritunl-cloud/./app/stores/SettingsStore.ts","webpack://pritunl-cloud/./app/actions/PolicyActions.ts","webpack://pritunl-cloud/./app/actions/SettingsActions.ts","webpack://pritunl-cloud/./app/components/PolicyRule.tsx","webpack://pritunl-cloud/./app/components/Policy.tsx","webpack://pritunl-cloud/./app/components/Policies.tsx","webpack://pritunl-cloud/./app/actions/OrganizationActions.ts","webpack://pritunl-cloud/./app/components/CertificateDomain.tsx","webpack://pritunl-cloud/./app/components/Certificate.tsx","webpack://pritunl-cloud/./app/components/Certificates.tsx","webpack://pritunl-cloud/./app/components/Organization.tsx","webpack://pritunl-cloud/./app/components/Organizations.tsx","webpack://pritunl-cloud/./app/types/StorageTypes.ts","webpack://pritunl-cloud/./app/stores/StoragesStore.ts","webpack://pritunl-cloud/./app/actions/StorageActions.ts","webpack://pritunl-cloud/./app/components/Datacenter.tsx","webpack://pritunl-cloud/./app/components/Datacenters.tsx","webpack://pritunl-cloud/./app/types/AlertTypes.ts","webpack://pritunl-cloud/./app/stores/AlertsStore.ts","webpack://pritunl-cloud/./app/types/AuthorityTypes.ts","webpack://pritunl-cloud/./app/stores/AuthoritiesStore.ts","webpack://pritunl-cloud/./app/actions/AlertActions.ts","webpack://pritunl-cloud/./app/actions/AuthorityActions.ts","webpack://pritunl-cloud/./app/components/AlertDetailed.tsx","webpack://pritunl-cloud/./app/components/Alert.tsx","webpack://pritunl-cloud/./app/components/AlertsFilter.tsx","webpack://pritunl-cloud/./app/components/AlertsPage.tsx","webpack://pritunl-cloud/./app/components/Alerts.tsx","webpack://pritunl-cloud/./app/components/Zone.tsx","webpack://pritunl-cloud/./app/components/Zones.tsx","webpack://pritunl-cloud/./app/components/Block.tsx","webpack://pritunl-cloud/./app/components/Blocks.tsx","webpack://pritunl-cloud/./app/types/VpcTypes.ts","webpack://pritunl-cloud/./app/stores/VpcsStore.ts","webpack://pritunl-cloud/./app/actions/VpcActions.ts","webpack://pritunl-cloud/./app/components/VpcRoute.tsx","webpack://pritunl-cloud/./app/components/VpcSubnet.tsx","webpack://pritunl-cloud/./app/components/VpcDetailed.tsx","webpack://pritunl-cloud/./app/components/Vpc.tsx","webpack://pritunl-cloud/./app/components/VpcsFilter.tsx","webpack://pritunl-cloud/./app/components/VpcsPage.tsx","webpack://pritunl-cloud/./app/components/Vpcs.tsx","webpack://pritunl-cloud/./app/types/DomainTypes.ts","webpack://pritunl-cloud/./app/stores/DomainsStore.ts","webpack://pritunl-cloud/./app/actions/DomainActions.ts","webpack://pritunl-cloud/./app/components/DomainDetailed.tsx","webpack://pritunl-cloud/./app/components/Domain.tsx","webpack://pritunl-cloud/./app/components/DomainsFilter.tsx","webpack://pritunl-cloud/./app/components/DomainsPage.tsx","webpack://pritunl-cloud/./app/components/Domains.tsx","webpack://pritunl-cloud/./app/types/BalancerTypes.ts","webpack://pritunl-cloud/./app/stores/BalancersStore.ts","webpack://pritunl-cloud/./app/actions/BalancerActions.ts","webpack://pritunl-cloud/./app/components/BalancerDomain.tsx","webpack://pritunl-cloud/./app/components/BalancerBackend.tsx","webpack://pritunl-cloud/./app/components/BalancerDetailed.tsx","webpack://pritunl-cloud/./app/components/Balancer.tsx","webpack://pritunl-cloud/./app/components/BalancersPage.tsx","webpack://pritunl-cloud/./app/components/BalancersFilter.tsx","webpack://pritunl-cloud/./app/components/Balancers.tsx","webpack://pritunl-cloud/./app/components/Storage.tsx","webpack://pritunl-cloud/./app/components/Storages.tsx","webpack://pritunl-cloud/./app/types/ImageTypes.ts","webpack://pritunl-cloud/./app/stores/ImagesStore.ts","webpack://pritunl-cloud/./app/actions/ImageActions.ts","webpack://pritunl-cloud/./app/components/ImageDetailed.tsx","webpack://pritunl-cloud/./app/components/Image.tsx","webpack://pritunl-cloud/./app/components/ImagesFilter.tsx","webpack://pritunl-cloud/./app/components/ImagesPage.tsx","webpack://pritunl-cloud/./app/components/Images.tsx","webpack://pritunl-cloud/./app/types/DiskTypes.ts","webpack://pritunl-cloud/./app/stores/DisksStore.ts","webpack://pritunl-cloud/./app/actions/DiskActions.ts","webpack://pritunl-cloud/./app/components/PageSelectButtonConfirm.tsx","webpack://pritunl-cloud/./app/types/InstanceTypes.ts","webpack://pritunl-cloud/./app/stores/InstancesStore.ts","webpack://pritunl-cloud/./app/actions/InstanceActions.ts","webpack://pritunl-cloud/./app/stores/InstancesNodeStore.ts","webpack://pritunl-cloud/./app/components/DiskDetailed.tsx","webpack://pritunl-cloud/./app/components/Disk.tsx","webpack://pritunl-cloud/./app/components/DisksFilter.tsx","webpack://pritunl-cloud/./app/components/DisksPage.tsx","webpack://pritunl-cloud/./app/stores/ImagesDatacenterStore.ts","webpack://pritunl-cloud/./app/stores/NodesZoneStore.ts","webpack://pritunl-cloud/./app/components/PageCreate.tsx","webpack://pritunl-cloud/./app/components/DiskNew.tsx","webpack://pritunl-cloud/./app/components/Disks.tsx","webpack://pritunl-cloud/./app/stores/DomainsNameStore.ts","webpack://pritunl-cloud/./app/stores/VpcsNameStore.ts","webpack://pritunl-cloud/./app/components/InstanceIscsiDevice.tsx","webpack://pritunl-cloud/./app/components/InstanceDetailed.tsx","webpack://pritunl-cloud/./app/components/Instance.tsx","webpack://pritunl-cloud/./app/components/InstanceLicense.tsx","webpack://pritunl-cloud/./app/components/InstanceNew.tsx","webpack://pritunl-cloud/./app/components/InstancesFilter.tsx","webpack://pritunl-cloud/./app/components/InstancesPage.tsx","webpack://pritunl-cloud/./app/components/Instances.tsx","webpack://pritunl-cloud/./app/types/FirewallTypes.ts","webpack://pritunl-cloud/./app/stores/FirewallsStore.ts","webpack://pritunl-cloud/./app/actions/FirewallActions.ts","webpack://pritunl-cloud/./app/components/FirewallRule.tsx","webpack://pritunl-cloud/./app/components/FirewallDetailed.tsx","webpack://pritunl-cloud/./app/components/Firewall.tsx","webpack://pritunl-cloud/./app/components/FirewallsFilter.tsx","webpack://pritunl-cloud/./app/components/FirewallsPage.tsx","webpack://pritunl-cloud/./app/components/Firewalls.tsx","webpack://pritunl-cloud/./app/components/AuthorityDetailed.tsx","webpack://pritunl-cloud/./app/components/Authority.tsx","webpack://pritunl-cloud/./app/components/AuthoritiesFilter.tsx","webpack://pritunl-cloud/./app/components/AuthoritiesPage.tsx","webpack://pritunl-cloud/./app/components/Authorities.tsx","webpack://pritunl-cloud/./app/types/LogTypes.ts","webpack://pritunl-cloud/./app/stores/LogsStore.ts","webpack://pritunl-cloud/./app/actions/LogActions.ts","webpack://pritunl-cloud/./app/components/Log.tsx","webpack://pritunl-cloud/./app/components/LogsFilter.tsx","webpack://pritunl-cloud/./app/components/LogsPage.tsx","webpack://pritunl-cloud/./app/components/Logs.tsx","webpack://pritunl-cloud/./app/components/SettingsProvider.tsx","webpack://pritunl-cloud/./app/components/SettingsSecondaryProvider.tsx","webpack://pritunl-cloud/./app/components/Settings.tsx","webpack://pritunl-cloud/./app/components/OrganizationSelect.tsx","webpack://pritunl-cloud/./app/components/Main.tsx","webpack://pritunl-cloud/./app/Event.ts","webpack://pritunl-cloud/./app/App.tsx"],"sourcesContent":["function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*\n * Copyright 2019 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nif (typeof require !== \"undefined\" && typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n // we're in browser\n require(\"dom4\"); // only import actual dom4 if we're in the browser (not server-compatible)\n // we'll still need dom4 types for the TypeScript to compile, these are included in package.json\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\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\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\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\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport LocaleUtils from './LocaleUtils';\n\nimport { ENTER } from './keys';\n\nexport default class Caption extends Component {\n static propTypes = {\n date: PropTypes.instanceOf(Date),\n months: PropTypes.arrayOf(PropTypes.string),\n locale: PropTypes.string,\n localeUtils: PropTypes.object,\n onClick: PropTypes.func,\n classNames: PropTypes.shape({\n caption: PropTypes.string.isRequired,\n }).isRequired,\n };\n\n static defaultProps = {\n localeUtils: LocaleUtils,\n };\n\n constructor(props) {\n super(props);\n this.handleKeyUp = this.handleKeyUp.bind(this);\n }\n\n shouldComponentUpdate(nextProps) {\n return (\n nextProps.locale !== this.props.locale ||\n nextProps.classNames !== this.props.classNames ||\n nextProps.date.getMonth() !== this.props.date.getMonth() ||\n nextProps.date.getFullYear() !== this.props.date.getFullYear()\n );\n }\n\n handleKeyUp(e) {\n if (e.keyCode === ENTER) {\n this.props.onClick(e);\n }\n }\n\n render() {\n const {\n classNames,\n date,\n months,\n locale,\n localeUtils,\n onClick,\n } = this.props;\n return (\n
\n
\n {months\n ? `${months[date.getMonth()]} ${date.getFullYear()}`\n : localeUtils.formatMonthTitle(date, locale)}\n
\n
\n );\n }\n}\n","/**\n * Clone a date object.\n *\n * @export\n * @param {Date} d The date to clone\n * @return {Date} The cloned date\n */\nexport function clone(d) {\n return new Date(d.getTime());\n}\n\n/**\n * Return `true` if the passed value is a valid JavaScript Date object.\n *\n * @export\n * @param {any} value\n * @returns {Boolean}\n */\nexport function isDate(value) {\n return value instanceof Date && !isNaN(value.valueOf());\n}\n\n/**\n * Return `d` as a new date with `n` months added.\n *\n * @export\n * @param {Date} d\n * @param {number} n\n */\nexport function addMonths(d, n) {\n const newDate = clone(d);\n newDate.setMonth(d.getMonth() + n);\n return newDate;\n}\n\n/**\n * Return `true` if two dates are the same day, ignoring the time.\n *\n * @export\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isSameDay(d1, d2) {\n if (!d1 || !d2) {\n return false;\n }\n return (\n d1.getDate() === d2.getDate() &&\n d1.getMonth() === d2.getMonth() &&\n d1.getFullYear() === d2.getFullYear()\n );\n}\n\n/**\n * Return `true` if two dates fall in the same month.\n *\n * @export\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isSameMonth(d1, d2) {\n if (!d1 || !d2) {\n return false;\n }\n return (\n d1.getMonth() === d2.getMonth() && d1.getFullYear() === d2.getFullYear()\n );\n}\n\n/**\n * Returns `true` if the first day is before the second day.\n *\n * @export\n * @param {Date} d1\n * @param {Date} d2\n * @returns {Boolean}\n */\nexport function isDayBefore(d1, d2) {\n const day1 = clone(d1).setHours(0, 0, 0, 0);\n const day2 = clone(d2).setHours(0, 0, 0, 0);\n return day1 < day2;\n}\n\n/**\n * Returns `true` if the first day is after the second day.\n *\n * @export\n * @param {Date} d1\n * @param {Date} d2\n * @returns {Boolean}\n */\nexport function isDayAfter(d1, d2) {\n const day1 = clone(d1).setHours(0, 0, 0, 0);\n const day2 = clone(d2).setHours(0, 0, 0, 0);\n return day1 > day2;\n}\n\n/**\n * Return `true` if a day is in the past, e.g. yesterday or any day\n * before yesterday.\n *\n * @export\n * @param {Date} d\n * @return {Boolean}\n */\nexport function isPastDay(d) {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return isDayBefore(d, today);\n}\n\n/**\n * Return `true` if a day is in the future, e.g. tomorrow or any day\n * after tomorrow.\n *\n * @export\n * @param {Date} d\n * @return {Boolean}\n */\nexport function isFutureDay(d) {\n const tomorrow = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);\n tomorrow.setHours(0, 0, 0, 0);\n return d >= tomorrow;\n}\n\n/**\n * Return `true` if day `d` is between days `d1` and `d2`,\n * without including them.\n *\n * @export\n * @param {Date} d\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isDayBetween(d, d1, d2) {\n const date = clone(d);\n date.setHours(0, 0, 0, 0);\n return (\n (isDayAfter(date, d1) && isDayBefore(date, d2)) ||\n (isDayAfter(date, d2) && isDayBefore(date, d1))\n );\n}\n\n/**\n * Add a day to a range and return a new range. A range is an object with\n * `from` and `to` days.\n *\n * @export\n * @param {Date} day\n * @param {Object} range\n * @return {Object} Returns a new range object\n */\nexport function addDayToRange(day, range = { from: null, to: null }) {\n let { from, to } = range;\n if (!from) {\n from = day;\n } else if (from && to && isSameDay(from, to) && isSameDay(day, from)) {\n from = null;\n to = null;\n } else if (to && isDayBefore(day, from)) {\n from = day;\n } else if (to && isSameDay(day, to)) {\n from = day;\n to = day;\n } else {\n to = day;\n if (isDayBefore(to, from)) {\n to = from;\n from = day;\n }\n }\n\n return { from, to };\n}\n\n/**\n * Return `true` if a day is included in a range of days.\n *\n * @export\n * @param {Date} day\n * @param {Object} range\n * @return {Boolean}\n */\nexport function isDayInRange(day, range) {\n const { from, to } = range;\n return (\n (from && isSameDay(day, from)) ||\n (to && isSameDay(day, to)) ||\n (from && to && isDayBetween(day, from, to))\n );\n}\n\n/**\n * Return the year's week number (as per ISO, i.e. with the week starting from monday)\n * for the given day.\n *\n * @export\n * @param {Date} day\n * @returns {Number}\n */\nexport function getWeekNumber(day) {\n const date = clone(day);\n date.setHours(0, 0, 0);\n date.setDate(date.getDate() + 4 - (date.getDay() || 7));\n return Math.ceil(\n ((date - new Date(date.getFullYear(), 0, 1)) / 8.64e7 + 1) / 7\n );\n}\n\nexport default {\n addDayToRange,\n addMonths,\n clone,\n getWeekNumber,\n isDate,\n isDayAfter,\n isDayBefore,\n isDayBetween,\n isDayInRange,\n isFutureDay,\n isPastDay,\n isSameDay,\n isSameMonth,\n};\n","/* eslint-disable jsx-a11y/no-static-element-interactions, react/forbid-prop-types */\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { isSameDay } from './DateUtils';\nimport { hasOwnProp } from './Helpers';\n\nimport defaultClassNames from './classNames';\n\nfunction handleEvent(handler, day, modifiers) {\n if (!handler) {\n return undefined;\n }\n return e => {\n e.persist();\n handler(day, modifiers, e);\n };\n}\n\nexport default class Day extends Component {\n static propTypes = {\n classNames: PropTypes.shape({\n day: PropTypes.string.isRequired,\n }).isRequired,\n\n day: PropTypes.instanceOf(Date).isRequired,\n children: PropTypes.node.isRequired,\n\n ariaDisabled: PropTypes.bool,\n ariaLabel: PropTypes.string,\n ariaSelected: PropTypes.bool,\n empty: PropTypes.bool,\n modifiers: PropTypes.object,\n modifiersStyles: PropTypes.object,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchStart: PropTypes.func,\n onFocus: PropTypes.func,\n tabIndex: PropTypes.number,\n };\n\n static defaultProps = {\n tabIndex: -1,\n };\n\n static defaultProps = {\n modifiers: {},\n modifiersStyles: {},\n empty: false,\n };\n\n shouldComponentUpdate(nextProps) {\n const propNames = Object.keys(this.props);\n const nextPropNames = Object.keys(nextProps);\n if (propNames.length !== nextPropNames.length) {\n return true;\n }\n return propNames.some(name => {\n if (\n name === 'modifiers' ||\n name === 'modifiersStyles' ||\n name === 'classNames'\n ) {\n const prop = this.props[name];\n const nextProp = nextProps[name];\n const modifiers = Object.keys(prop);\n const nextModifiers = Object.keys(nextProp);\n if (modifiers.length !== nextModifiers.length) {\n return true;\n }\n return modifiers.some(\n mod => !hasOwnProp(nextProp, mod) || prop[mod] !== nextProp[mod]\n );\n }\n if (name === 'day') {\n return !isSameDay(this.props[name], nextProps[name]);\n }\n return (\n !hasOwnProp(nextProps, name) || this.props[name] !== nextProps[name]\n );\n });\n }\n\n render() {\n const {\n classNames,\n modifiersStyles,\n day,\n tabIndex,\n empty,\n modifiers,\n onMouseEnter,\n onMouseLeave,\n onMouseUp,\n onMouseDown,\n onClick,\n onKeyDown,\n onTouchStart,\n onTouchEnd,\n onFocus,\n ariaLabel,\n ariaDisabled,\n ariaSelected,\n children,\n } = this.props;\n\n let className = classNames.day;\n if (classNames !== defaultClassNames) {\n // When using CSS modules prefix the modifier as required by the BEM syntax\n className += ` ${Object.keys(modifiers).join(' ')}`;\n } else {\n className += Object.keys(modifiers)\n .map(modifier => ` ${className}--${modifier}`)\n .join('');\n }\n\n let style;\n if (modifiersStyles) {\n Object.keys(modifiers)\n .filter(modifier => !!modifiersStyles[modifier])\n .forEach(modifier => {\n style = { ...style, ...modifiersStyles[modifier] };\n });\n }\n\n if (empty) {\n return
;\n }\n return (\n \n {children}\n
\n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Caption from './Caption';\nimport Navbar from './Navbar';\nimport Month from './Month';\nimport Weekday from './Weekday';\n\nimport * as Helpers from './Helpers';\nimport * as DateUtils from './DateUtils';\nimport * as LocaleUtils from './LocaleUtils';\nimport * as ModifiersUtils from './ModifiersUtils';\nimport classNames from './classNames';\n\nimport { ENTER, SPACE, LEFT, UP, DOWN, RIGHT } from './keys';\n\nexport class DayPicker extends Component {\n dayPicker = null;\n\n static propTypes = {\n // Rendering months\n initialMonth: PropTypes.instanceOf(Date),\n month: PropTypes.instanceOf(Date),\n numberOfMonths: PropTypes.number,\n fromMonth: PropTypes.instanceOf(Date),\n toMonth: PropTypes.instanceOf(Date),\n canChangeMonth: PropTypes.bool,\n reverseMonths: PropTypes.bool,\n pagedNavigation: PropTypes.bool,\n todayButton: PropTypes.string,\n showWeekNumbers: PropTypes.bool,\n showWeekDays: PropTypes.bool,\n\n // Modifiers\n selectedDays: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.array,\n ]),\n disabledDays: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.array,\n ]),\n\n modifiers: PropTypes.object,\n modifiersStyles: PropTypes.object,\n\n // Localization\n dir: PropTypes.string,\n firstDayOfWeek: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6]),\n labels: PropTypes.shape({\n nextMonth: PropTypes.string.isRequired,\n previousMonth: PropTypes.string.isRequired,\n }),\n locale: PropTypes.string,\n localeUtils: PropTypes.shape({\n formatMonthTitle: PropTypes.func,\n formatWeekdayShort: PropTypes.func,\n formatWeekdayLong: PropTypes.func,\n getFirstDayOfWeek: PropTypes.func,\n }),\n months: PropTypes.arrayOf(PropTypes.string),\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n\n // Customization\n showOutsideDays: PropTypes.bool,\n enableOutsideDaysClick: PropTypes.bool,\n fixedWeeks: PropTypes.bool,\n\n // CSS and HTML\n classNames: PropTypes.shape({\n body: PropTypes.string,\n container: PropTypes.string,\n day: PropTypes.string.isRequired,\n disabled: PropTypes.string.isRequired,\n footer: PropTypes.string,\n interactionDisabled: PropTypes.string,\n months: PropTypes.string,\n month: PropTypes.string,\n navBar: PropTypes.string,\n outside: PropTypes.string.isRequired,\n selected: PropTypes.string.isRequired,\n today: PropTypes.string.isRequired,\n todayButton: PropTypes.string,\n week: PropTypes.string,\n wrapper: PropTypes.string,\n }),\n className: PropTypes.string,\n containerProps: PropTypes.object,\n tabIndex: PropTypes.number,\n\n // Custom elements\n renderDay: PropTypes.func,\n renderWeek: PropTypes.func,\n weekdayElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n navbarElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n captionElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n\n // Events\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onKeyDown: PropTypes.func,\n onDayClick: PropTypes.func,\n onDayKeyDown: PropTypes.func,\n onDayMouseEnter: PropTypes.func,\n onDayMouseLeave: PropTypes.func,\n onDayMouseDown: PropTypes.func,\n onDayMouseUp: PropTypes.func,\n onDayTouchStart: PropTypes.func,\n onDayTouchEnd: PropTypes.func,\n onDayFocus: PropTypes.func,\n onMonthChange: PropTypes.func,\n onCaptionClick: PropTypes.func,\n onWeekClick: PropTypes.func,\n onTodayButtonClick: PropTypes.func,\n };\n\n static defaultProps = {\n classNames,\n tabIndex: 0,\n numberOfMonths: 1,\n labels: {\n previousMonth: 'Previous Month',\n nextMonth: 'Next Month',\n },\n locale: 'en',\n localeUtils: LocaleUtils,\n showOutsideDays: false,\n enableOutsideDaysClick: true,\n fixedWeeks: false,\n canChangeMonth: true,\n reverseMonths: false,\n pagedNavigation: false,\n showWeekNumbers: false,\n showWeekDays: true,\n renderDay: day => day.getDate(),\n renderWeek: weekNumber => weekNumber,\n weekdayElement: ,\n navbarElement: ,\n captionElement: ,\n };\n\n constructor(props) {\n super(props);\n\n const currentMonth = this.getCurrentMonthFromProps(props);\n this.state = { currentMonth };\n }\n\n componentDidUpdate(prevProps) {\n // Changing the `month` props means changing the current displayed month\n if (\n prevProps.month !== this.props.month &&\n !DateUtils.isSameMonth(prevProps.month, this.props.month)\n ) {\n const currentMonth = this.getCurrentMonthFromProps(this.props);\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ currentMonth });\n }\n }\n\n static VERSION = '7.4.8';\n\n /**\n * Return the month to be shown in the calendar based on the component props.\n *\n * @param {Object} props\n * @returns Date\n * @memberof DayPicker\n * @private\n */\n getCurrentMonthFromProps(props) {\n const initialMonth = Helpers.startOfMonth(\n props.month || props.initialMonth || new Date()\n );\n let currentMonth = initialMonth;\n\n if (props.pagedNavigation && props.numberOfMonths > 1 && props.fromMonth) {\n const fromMonth = Helpers.startOfMonth(props.fromMonth);\n const diffInMonths = Helpers.getMonthsDiff(fromMonth, currentMonth);\n currentMonth = DateUtils.addMonths(\n fromMonth,\n Math.floor(diffInMonths / props.numberOfMonths) * props.numberOfMonths\n );\n } else if (\n props.toMonth &&\n props.numberOfMonths > 1 &&\n Helpers.getMonthsDiff(currentMonth, props.toMonth) <= 0\n ) {\n currentMonth = DateUtils.addMonths(\n Helpers.startOfMonth(props.toMonth),\n 1 - this.props.numberOfMonths\n );\n }\n return currentMonth;\n }\n\n getNextNavigableMonth() {\n return DateUtils.addMonths(\n this.state.currentMonth,\n this.props.numberOfMonths\n );\n }\n\n getPreviousNavigableMonth() {\n return DateUtils.addMonths(this.state.currentMonth, -1);\n }\n\n allowPreviousMonth() {\n const previousMonth = DateUtils.addMonths(this.state.currentMonth, -1);\n return this.allowMonth(previousMonth);\n }\n\n allowNextMonth() {\n const nextMonth = DateUtils.addMonths(\n this.state.currentMonth,\n this.props.numberOfMonths\n );\n return this.allowMonth(nextMonth);\n }\n\n allowMonth(d) {\n const { fromMonth, toMonth, canChangeMonth } = this.props;\n if (\n !canChangeMonth ||\n (fromMonth && Helpers.getMonthsDiff(fromMonth, d) < 0) ||\n (toMonth && Helpers.getMonthsDiff(toMonth, d) > 0)\n ) {\n return false;\n }\n return true;\n }\n\n allowYearChange() {\n return this.props.canChangeMonth;\n }\n\n showMonth(d, callback) {\n if (!this.allowMonth(d)) {\n return;\n }\n this.setState({ currentMonth: Helpers.startOfMonth(d) }, () => {\n if (callback) {\n callback();\n }\n if (this.props.onMonthChange) {\n this.props.onMonthChange(this.state.currentMonth);\n }\n });\n }\n\n showNextMonth = callback => {\n if (!this.allowNextMonth()) {\n return;\n }\n const deltaMonths = this.props.pagedNavigation\n ? this.props.numberOfMonths\n : 1;\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, deltaMonths);\n this.showMonth(nextMonth, callback);\n };\n\n showPreviousMonth = callback => {\n if (!this.allowPreviousMonth()) {\n return;\n }\n const deltaMonths = this.props.pagedNavigation\n ? this.props.numberOfMonths\n : 1;\n const previousMonth = DateUtils.addMonths(\n this.state.currentMonth,\n -deltaMonths\n );\n this.showMonth(previousMonth, callback);\n };\n\n showNextYear() {\n if (!this.allowYearChange()) {\n return;\n }\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, 12);\n this.showMonth(nextMonth);\n }\n\n showPreviousYear() {\n if (!this.allowYearChange()) {\n return;\n }\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, -12);\n this.showMonth(nextMonth);\n }\n\n focus() {\n this.wrapper.focus();\n }\n\n focusFirstDayOfMonth() {\n Helpers.getDayNodes(this.dayPicker, this.props.classNames)[0].focus();\n }\n\n focusLastDayOfMonth() {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n dayNodes[dayNodes.length - 1].focus();\n }\n\n focusPreviousDay(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n if (dayNodeIndex === -1) return;\n if (dayNodeIndex === 0) {\n this.showPreviousMonth(() => this.focusLastDayOfMonth());\n } else {\n dayNodes[dayNodeIndex - 1].focus();\n }\n }\n\n focusNextDay(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n if (dayNodeIndex === -1) return;\n if (dayNodeIndex === dayNodes.length - 1) {\n this.showNextMonth(() => this.focusFirstDayOfMonth());\n } else {\n dayNodes[dayNodeIndex + 1].focus();\n }\n }\n\n focusNextWeek(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n const isInLastWeekOfMonth = dayNodeIndex > dayNodes.length - 8;\n\n if (isInLastWeekOfMonth) {\n this.showNextMonth(() => {\n const daysAfterIndex = dayNodes.length - dayNodeIndex;\n const nextMonthDayNodeIndex = 7 - daysAfterIndex;\n Helpers.getDayNodes(this.dayPicker, this.props.classNames)[\n nextMonthDayNodeIndex\n ].focus();\n });\n } else {\n dayNodes[dayNodeIndex + 7].focus();\n }\n }\n\n focusPreviousWeek(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n const isInFirstWeekOfMonth = dayNodeIndex <= 6;\n\n if (isInFirstWeekOfMonth) {\n this.showPreviousMonth(() => {\n const previousMonthDayNodes = Helpers.getDayNodes(\n this.dayPicker,\n this.props.classNames\n );\n const startOfLastWeekOfMonth = previousMonthDayNodes.length - 7;\n const previousMonthDayNodeIndex = startOfLastWeekOfMonth + dayNodeIndex;\n previousMonthDayNodes[previousMonthDayNodeIndex].focus();\n });\n } else {\n dayNodes[dayNodeIndex - 7].focus();\n }\n }\n\n // Event handlers\n\n handleKeyDown = e => {\n e.persist();\n\n switch (e.keyCode) {\n case LEFT:\n if (this.props.dir === 'rtl') {\n this.showNextMonth();\n } else {\n this.showPreviousMonth();\n }\n Helpers.cancelEvent(e);\n break;\n case RIGHT:\n if (this.props.dir === 'rtl') {\n this.showPreviousMonth();\n } else {\n this.showNextMonth();\n }\n Helpers.cancelEvent(e);\n break;\n case UP:\n this.showPreviousYear();\n Helpers.cancelEvent(e);\n break;\n case DOWN:\n this.showNextYear();\n Helpers.cancelEvent(e);\n break;\n default:\n break;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n handleDayKeyDown = (day, modifiers, e) => {\n e.persist();\n\n switch (e.keyCode) {\n case LEFT:\n Helpers.cancelEvent(e);\n if (this.props.dir === 'rtl') {\n this.focusNextDay(e.target);\n } else {\n this.focusPreviousDay(e.target);\n }\n break;\n case RIGHT:\n Helpers.cancelEvent(e);\n if (this.props.dir === 'rtl') {\n this.focusPreviousDay(e.target);\n } else {\n this.focusNextDay(e.target);\n }\n break;\n case UP:\n Helpers.cancelEvent(e);\n this.focusPreviousWeek(e.target);\n break;\n case DOWN:\n Helpers.cancelEvent(e);\n this.focusNextWeek(e.target);\n break;\n case ENTER:\n case SPACE:\n Helpers.cancelEvent(e);\n if (this.props.onDayClick) {\n this.handleDayClick(day, modifiers, e);\n }\n break;\n default:\n break;\n }\n if (this.props.onDayKeyDown) {\n this.props.onDayKeyDown(day, modifiers, e);\n }\n };\n\n handleDayClick = (day, modifiers, e) => {\n e.persist();\n\n if (\n modifiers[this.props.classNames.outside] &&\n this.props.enableOutsideDaysClick\n ) {\n this.handleOutsideDayClick(day);\n }\n if (this.props.onDayClick) {\n this.props.onDayClick(day, modifiers, e);\n }\n };\n\n handleOutsideDayClick(day) {\n const { currentMonth } = this.state;\n const { numberOfMonths } = this.props;\n const diffInMonths = Helpers.getMonthsDiff(currentMonth, day);\n if (diffInMonths > 0 && diffInMonths >= numberOfMonths) {\n this.showNextMonth();\n } else if (diffInMonths < 0) {\n this.showPreviousMonth();\n }\n }\n\n handleTodayButtonClick = e => {\n const today = new Date();\n const month = new Date(today.getFullYear(), today.getMonth());\n this.showMonth(month);\n e.target.blur();\n if (this.props.onTodayButtonClick) {\n e.persist();\n this.props.onTodayButtonClick(\n new Date(today.getFullYear(), today.getMonth(), today.getDate()),\n ModifiersUtils.getModifiersForDay(today, this.props.modifiers),\n e\n );\n }\n };\n\n renderNavbar() {\n const {\n labels,\n locale,\n localeUtils,\n canChangeMonth,\n navbarElement,\n ...attributes\n } = this.props;\n\n if (!canChangeMonth) return null;\n\n const props = {\n month: this.state.currentMonth,\n classNames: this.props.classNames,\n className: this.props.classNames.navBar,\n nextMonth: this.getNextNavigableMonth(),\n previousMonth: this.getPreviousNavigableMonth(),\n showPreviousButton: this.allowPreviousMonth(),\n showNextButton: this.allowNextMonth(),\n onNextClick: this.showNextMonth,\n onPreviousClick: this.showPreviousMonth,\n dir: attributes.dir,\n labels,\n locale,\n localeUtils,\n };\n return React.isValidElement(navbarElement)\n ? React.cloneElement(navbarElement, props)\n : React.createElement(navbarElement, props);\n }\n\n renderMonths() {\n const months = [];\n const firstDayOfWeek = Helpers.getFirstDayOfWeekFromProps(this.props);\n for (let i = 0; i < this.props.numberOfMonths; i += 1) {\n const month = DateUtils.addMonths(this.state.currentMonth, i);\n months.push(\n \n );\n }\n\n if (this.props.reverseMonths) {\n months.reverse();\n }\n return months;\n }\n\n renderFooter() {\n if (this.props.todayButton) {\n return (\n
\n {this.renderTodayButton()}\n
\n );\n }\n return null;\n }\n\n renderTodayButton() {\n return (\n \n {this.props.todayButton}\n \n );\n }\n\n render() {\n let className = this.props.classNames.container;\n\n if (!this.props.onDayClick) {\n className = `${className} ${this.props.classNames.interactionDisabled}`;\n }\n if (this.props.className) {\n className = `${className} ${this.props.className}`;\n }\n return (\n (this.dayPicker = el)}\n lang={this.props.locale}\n >\n (this.wrapper = el)}\n tabIndex={\n this.props.canChangeMonth &&\n typeof this.props.tabIndex !== 'undefined'\n ? this.props.tabIndex\n : -1\n }\n onKeyDown={this.handleKeyDown}\n onFocus={this.props.onFocus}\n onBlur={this.props.onBlur}\n >\n {this.renderNavbar()}\n
\n {this.renderMonths()}\n
\n {this.renderFooter()}\n
\n
\n );\n }\n}\n\nDayPicker.DateUtils = DateUtils;\nDayPicker.LocaleUtils = LocaleUtils;\nDayPicker.ModifiersUtils = ModifiersUtils;\n\nexport { DateUtils, LocaleUtils, ModifiersUtils };\n\nexport default DayPicker;\n","import { clone } from './DateUtils';\nimport { getFirstDayOfWeek } from './LocaleUtils';\nimport defaultClassNames from './classNames';\n\nexport function cancelEvent(e) {\n e.preventDefault();\n e.stopPropagation();\n}\n\nexport function getFirstDayOfMonth(d) {\n return new Date(d.getFullYear(), d.getMonth(), 1, 12);\n}\n\nexport function getDaysInMonth(d) {\n const resultDate = getFirstDayOfMonth(d);\n\n resultDate.setMonth(resultDate.getMonth() + 1);\n resultDate.setDate(resultDate.getDate() - 1);\n\n return resultDate.getDate();\n}\n\nexport function getModifiersFromProps(props) {\n const modifiers = { ...props.modifiers };\n if (props.selectedDays) {\n modifiers[props.classNames.selected] = props.selectedDays;\n }\n if (props.disabledDays) {\n modifiers[props.classNames.disabled] = props.disabledDays;\n }\n return modifiers;\n}\n\nexport function getFirstDayOfWeekFromProps(props) {\n const { firstDayOfWeek, locale = 'en', localeUtils = {} } = props;\n if (!isNaN(firstDayOfWeek)) {\n return firstDayOfWeek;\n }\n if (localeUtils.getFirstDayOfWeek) {\n return localeUtils.getFirstDayOfWeek(locale);\n }\n return 0;\n}\n\nexport function isRangeOfDates(value) {\n return !!(value && value.from && value.to);\n}\n\nexport function getMonthsDiff(d1, d2) {\n return (\n d2.getMonth() - d1.getMonth() + 12 * (d2.getFullYear() - d1.getFullYear())\n );\n}\n\nexport function getWeekArray(\n d,\n firstDayOfWeek = getFirstDayOfWeek(),\n fixedWeeks\n) {\n const daysInMonth = getDaysInMonth(d);\n const dayArray = [];\n\n let week = [];\n const weekArray = [];\n\n for (let i = 1; i <= daysInMonth; i += 1) {\n dayArray.push(new Date(d.getFullYear(), d.getMonth(), i, 12));\n }\n\n dayArray.forEach(day => {\n if (week.length > 0 && day.getDay() === firstDayOfWeek) {\n weekArray.push(week);\n week = [];\n }\n week.push(day);\n if (dayArray.indexOf(day) === dayArray.length - 1) {\n weekArray.push(week);\n }\n });\n\n // unshift days to start the first week\n const firstWeek = weekArray[0];\n for (let i = 7 - firstWeek.length; i > 0; i -= 1) {\n const outsideDate = clone(firstWeek[0]);\n outsideDate.setDate(firstWeek[0].getDate() - 1);\n firstWeek.unshift(outsideDate);\n }\n\n // push days until the end of the last week\n const lastWeek = weekArray[weekArray.length - 1];\n for (let i = lastWeek.length; i < 7; i += 1) {\n const outsideDate = clone(lastWeek[lastWeek.length - 1]);\n outsideDate.setDate(lastWeek[lastWeek.length - 1].getDate() + 1);\n lastWeek.push(outsideDate);\n }\n\n // add extra weeks to reach 6 weeks\n if (fixedWeeks && weekArray.length < 6) {\n let lastExtraWeek;\n\n for (let i = weekArray.length; i < 6; i += 1) {\n lastExtraWeek = weekArray[weekArray.length - 1];\n const lastDay = lastExtraWeek[lastExtraWeek.length - 1];\n const extraWeek = [];\n\n for (let j = 0; j < 7; j += 1) {\n const outsideDate = clone(lastDay);\n outsideDate.setDate(lastDay.getDate() + j + 1);\n extraWeek.push(outsideDate);\n }\n\n weekArray.push(extraWeek);\n }\n }\n\n return weekArray;\n}\n\nexport function startOfMonth(d) {\n const newDate = clone(d);\n newDate.setDate(1);\n newDate.setHours(12, 0, 0, 0); // always set noon to avoid time zone issues\n return newDate;\n}\n\nexport function getDayNodes(node, classNames) {\n let outsideClassName;\n if (classNames === defaultClassNames) {\n // When using CSS modules prefix the modifier as required by the BEM syntax\n outsideClassName = `${classNames.day}--${classNames.outside}`;\n } else {\n outsideClassName = `${classNames.outside}`;\n }\n const dayQuery = classNames.day.replace(/ /g, '.');\n const outsideDayQuery = outsideClassName.replace(/ /g, '.');\n const selector = `.${dayQuery}:not(.${outsideDayQuery})`;\n return node.querySelectorAll(selector);\n}\n\nexport function nodeListToArray(nodeList) {\n return Array.prototype.slice.call(nodeList, 0);\n}\n\nexport function hasOwnProp(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n","const WEEKDAYS_LONG = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n];\n\nconst WEEKDAYS_SHORT = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nexport function formatDay(day) {\n return day.toDateString();\n}\n\nexport function formatMonthTitle(d) {\n return `${MONTHS[d.getMonth()]} ${d.getFullYear()}`;\n}\n\nexport function formatWeekdayShort(i) {\n return WEEKDAYS_SHORT[i];\n}\n\nexport function formatWeekdayLong(i) {\n return WEEKDAYS_LONG[i];\n}\n\nexport function getFirstDayOfWeek() {\n return 0;\n}\n\nexport function getMonths() {\n return MONTHS;\n}\n\nexport default {\n formatDay,\n formatMonthTitle,\n formatWeekdayShort,\n formatWeekdayLong,\n getFirstDayOfWeek,\n getMonths,\n};\n","import { isDayAfter, isDayBefore, isDayInRange, isSameDay } from './DateUtils';\nimport { isRangeOfDates } from './Helpers';\n\n/**\n * Return `true` if a date matches the specified modifier.\n *\n * @export\n * @param {Date} day\n * @param {Any} modifier\n * @return {Boolean}\n */\nexport function dayMatchesModifier(day, modifier) {\n if (!modifier) {\n return false;\n }\n const arr = Array.isArray(modifier) ? modifier : [modifier];\n return arr.some(mod => {\n if (!mod) {\n return false;\n }\n if (mod instanceof Date) {\n return isSameDay(day, mod);\n }\n if (isRangeOfDates(mod)) {\n return isDayInRange(day, mod);\n }\n if (mod.after && mod.before && isDayAfter(mod.before, mod.after)) {\n return isDayAfter(day, mod.after) && isDayBefore(day, mod.before);\n }\n if (\n mod.after &&\n mod.before &&\n (isDayAfter(mod.after, mod.before) || isSameDay(mod.after, mod.before))\n ) {\n return isDayAfter(day, mod.after) || isDayBefore(day, mod.before);\n }\n if (mod.after) {\n return isDayAfter(day, mod.after);\n }\n if (mod.before) {\n return isDayBefore(day, mod.before);\n }\n if (mod.daysOfWeek) {\n return mod.daysOfWeek.some(dayOfWeek => day.getDay() === dayOfWeek);\n }\n if (typeof mod === 'function') {\n return mod(day);\n }\n return false;\n });\n}\n\n/**\n * Return the modifiers matching the given day for the given\n * object of modifiers.\n *\n * @export\n * @param {Date} day\n * @param {Object} [modifiersObj={}]\n * @return {Array}\n */\nexport function getModifiersForDay(day, modifiersObj = {}) {\n return Object.keys(modifiersObj).reduce((modifiers, modifierName) => {\n const value = modifiersObj[modifierName];\n if (dayMatchesModifier(day, value)) {\n modifiers.push(modifierName);\n }\n return modifiers;\n }, []);\n}\n\nexport default { dayMatchesModifier, getModifiersForDay };\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Weekdays from './Weekdays';\nimport Day from './Day';\nimport { ENTER } from './keys';\n\nimport * as ModifiersUtils from './ModifiersUtils';\nimport * as Helpers from './Helpers';\nimport * as DateUtils from './DateUtils';\n\nexport default class Month extends Component {\n static propTypes = {\n classNames: PropTypes.shape({\n body: PropTypes.string.isRequired,\n month: PropTypes.string.isRequired,\n outside: PropTypes.string.isRequired,\n today: PropTypes.string.isRequired,\n week: PropTypes.string.isRequired,\n weekNumber: PropTypes.string.isRequired,\n disabled: PropTypes.string.isRequired,\n selected: PropTypes.string.isRequired,\n }).isRequired,\n tabIndex: PropTypes.number,\n\n month: PropTypes.instanceOf(Date).isRequired,\n months: PropTypes.arrayOf(PropTypes.string),\n\n modifiersStyles: PropTypes.object,\n\n showWeekDays: PropTypes.bool,\n showOutsideDays: PropTypes.bool,\n\n renderDay: PropTypes.func.isRequired,\n renderWeek: PropTypes.func.isRequired,\n\n captionElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(React.Component),\n ]).isRequired,\n weekdayElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(React.Component),\n ]),\n\n fixedWeeks: PropTypes.bool,\n showWeekNumbers: PropTypes.bool,\n\n locale: PropTypes.string.isRequired,\n localeUtils: PropTypes.object.isRequired,\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n firstDayOfWeek: PropTypes.number.isRequired,\n\n onCaptionClick: PropTypes.func,\n onDayClick: PropTypes.func,\n onDayFocus: PropTypes.func,\n onDayKeyDown: PropTypes.func,\n onDayMouseEnter: PropTypes.func,\n onDayMouseLeave: PropTypes.func,\n onDayMouseDown: PropTypes.func,\n onDayMouseUp: PropTypes.func,\n onDayTouchEnd: PropTypes.func,\n onDayTouchStart: PropTypes.func,\n onWeekClick: PropTypes.func,\n };\n\n renderDay = day => {\n const monthNumber = this.props.month.getMonth();\n const propModifiers = Helpers.getModifiersFromProps(this.props);\n const dayModifiers = ModifiersUtils.getModifiersForDay(day, propModifiers);\n if (\n DateUtils.isSameDay(day, new Date()) &&\n !Object.prototype.hasOwnProperty.call(\n propModifiers,\n this.props.classNames.today\n )\n ) {\n dayModifiers.push(this.props.classNames.today);\n }\n if (day.getMonth() !== monthNumber) {\n dayModifiers.push(this.props.classNames.outside);\n }\n\n const isOutside = day.getMonth() !== monthNumber;\n let tabIndex = -1;\n // Focus on the first day of the month\n if (this.props.onDayClick && !isOutside && day.getDate() === 1) {\n tabIndex = this.props.tabIndex; // eslint-disable-line prefer-destructuring\n }\n const key = `${day.getFullYear()}${day.getMonth()}${day.getDate()}`;\n const modifiers = {};\n dayModifiers.forEach(modifier => {\n modifiers[modifier] = true;\n });\n\n return (\n -1\n }\n ariaSelected={dayModifiers.indexOf(this.props.classNames.selected) > -1}\n onClick={this.props.onDayClick}\n onFocus={this.props.onDayFocus}\n onKeyDown={this.props.onDayKeyDown}\n onMouseEnter={this.props.onDayMouseEnter}\n onMouseLeave={this.props.onDayMouseLeave}\n onMouseDown={this.props.onDayMouseDown}\n onMouseUp={this.props.onDayMouseUp}\n onTouchEnd={this.props.onDayTouchEnd}\n onTouchStart={this.props.onDayTouchStart}\n >\n {this.props.renderDay(day, modifiers)}\n \n );\n };\n\n render() {\n const {\n classNames,\n\n month,\n months,\n\n fixedWeeks,\n captionElement,\n weekdayElement,\n\n locale,\n localeUtils,\n weekdaysLong,\n weekdaysShort,\n firstDayOfWeek,\n\n onCaptionClick,\n\n showWeekNumbers,\n showWeekDays,\n onWeekClick,\n } = this.props;\n\n const captionProps = {\n date: month,\n classNames,\n months,\n localeUtils,\n locale,\n onClick: onCaptionClick ? e => onCaptionClick(month, e) : undefined,\n };\n const caption = React.isValidElement(captionElement)\n ? React.cloneElement(captionElement, captionProps)\n : React.createElement(captionElement, captionProps);\n\n const weeks = Helpers.getWeekArray(month, firstDayOfWeek, fixedWeeks);\n return (\n
\n {caption}\n {showWeekDays && (\n \n )}\n
\n {weeks.map(week => {\n let weekNumber;\n if (showWeekNumbers) {\n weekNumber = DateUtils.getWeekNumber(week[6]);\n }\n return (\n \n {showWeekNumbers && (\n onWeekClick(weekNumber, week, e)\n : undefined\n }\n onKeyUp={\n onWeekClick\n ? e =>\n e.keyCode === ENTER &&\n onWeekClick(weekNumber, week, e)\n : undefined\n }\n >\n {this.props.renderWeek(weekNumber, week, month)}\n
\n )}\n {week.map(this.renderDay)}\n
\n );\n })}\n \n \n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport defaultClassNames from './classNames';\nimport { SPACE, ENTER } from './keys';\n\nexport default class Navbar extends Component {\n static propTypes = {\n classNames: PropTypes.shape({\n navBar: PropTypes.string.isRequired,\n navButtonPrev: PropTypes.string.isRequired,\n navButtonNext: PropTypes.string.isRequired,\n navButtonInteractionDisabled: PropTypes.string.isRequired,\n }),\n className: PropTypes.string,\n showPreviousButton: PropTypes.bool,\n showNextButton: PropTypes.bool,\n onPreviousClick: PropTypes.func,\n onNextClick: PropTypes.func,\n dir: PropTypes.string,\n labels: PropTypes.shape({\n previousMonth: PropTypes.string.isRequired,\n nextMonth: PropTypes.string.isRequired,\n }),\n };\n\n static defaultProps = {\n classNames: defaultClassNames,\n dir: 'ltr',\n labels: {\n previousMonth: 'Previous Month',\n nextMonth: 'Next Month',\n },\n showPreviousButton: true,\n showNextButton: true,\n };\n\n shouldComponentUpdate(nextProps) {\n return (\n nextProps.labels !== this.props.labels ||\n nextProps.dir !== this.props.dir ||\n this.props.showPreviousButton !== nextProps.showPreviousButton ||\n this.props.showNextButton !== nextProps.showNextButton\n );\n }\n\n handleNextClick = () => {\n if (this.props.onNextClick) {\n this.props.onNextClick();\n }\n };\n\n handlePreviousClick = () => {\n if (this.props.onPreviousClick) {\n this.props.onPreviousClick();\n }\n };\n\n handleNextKeyDown = e => {\n if (e.keyCode !== ENTER && e.keyCode !== SPACE) {\n return;\n }\n e.preventDefault();\n this.handleNextClick();\n };\n\n handlePreviousKeyDown = e => {\n if (e.keyCode !== ENTER && e.keyCode !== SPACE) {\n return;\n }\n e.preventDefault();\n this.handlePreviousClick();\n };\n\n render() {\n const {\n classNames,\n className,\n showPreviousButton,\n showNextButton,\n labels,\n dir,\n } = this.props;\n\n let previousClickHandler;\n let nextClickHandler;\n let previousKeyDownHandler;\n let nextKeyDownHandler;\n let shouldShowPrevious;\n let shouldShowNext;\n\n if (dir === 'rtl') {\n previousClickHandler = this.handleNextClick;\n nextClickHandler = this.handlePreviousClick;\n previousKeyDownHandler = this.handleNextKeyDown;\n nextKeyDownHandler = this.handlePreviousKeyDown;\n shouldShowNext = showPreviousButton;\n shouldShowPrevious = showNextButton;\n } else {\n previousClickHandler = this.handlePreviousClick;\n nextClickHandler = this.handleNextClick;\n previousKeyDownHandler = this.handlePreviousKeyDown;\n nextKeyDownHandler = this.handleNextKeyDown;\n shouldShowNext = showNextButton;\n shouldShowPrevious = showPreviousButton;\n }\n\n const previousClassName = shouldShowPrevious\n ? classNames.navButtonPrev\n : `${classNames.navButtonPrev} ${classNames.navButtonInteractionDisabled}`;\n\n const nextClassName = shouldShowNext\n ? classNames.navButtonNext\n : `${classNames.navButtonNext} ${classNames.navButtonInteractionDisabled}`;\n\n const previousButton = (\n \n );\n\n const nextButton = (\n \n );\n\n return (\n
\n {dir === 'rtl'\n ? [nextButton, previousButton]\n : [previousButton, nextButton]}\n
\n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class Weekday extends Component {\n static propTypes = {\n weekday: PropTypes.number,\n className: PropTypes.string,\n locale: PropTypes.string,\n localeUtils: PropTypes.object,\n\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n };\n\n shouldComponentUpdate(nextProps) {\n return this.props !== nextProps;\n }\n\n render() {\n const {\n weekday,\n className,\n weekdaysLong,\n weekdaysShort,\n localeUtils,\n locale,\n } = this.props;\n let title;\n if (weekdaysLong) {\n title = weekdaysLong[weekday];\n } else {\n title = localeUtils.formatWeekdayLong(weekday, locale);\n }\n let content;\n if (weekdaysShort) {\n content = weekdaysShort[weekday];\n } else {\n content = localeUtils.formatWeekdayShort(weekday, locale);\n }\n\n return (\n
\n {content}\n
\n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class Weekdays extends Component {\n static propTypes = {\n classNames: PropTypes.shape({\n weekday: PropTypes.string.isRequired,\n weekdays: PropTypes.string.isRequired,\n weekdaysRow: PropTypes.string.isRequired,\n }).isRequired,\n\n firstDayOfWeek: PropTypes.number.isRequired,\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n showWeekNumbers: PropTypes.bool,\n locale: PropTypes.string.isRequired,\n localeUtils: PropTypes.object.isRequired,\n weekdayElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(React.Component),\n ]),\n };\n\n shouldComponentUpdate(nextProps) {\n return this.props !== nextProps;\n }\n\n render() {\n const {\n classNames,\n firstDayOfWeek,\n showWeekNumbers,\n weekdaysLong,\n weekdaysShort,\n locale,\n localeUtils,\n weekdayElement,\n } = this.props;\n const days = [];\n for (let i = 0; i < 7; i += 1) {\n const weekday = (i + firstDayOfWeek) % 7;\n const elementProps = {\n key: i,\n className: classNames.weekday,\n weekday,\n weekdaysLong,\n weekdaysShort,\n localeUtils,\n locale,\n };\n const element = React.isValidElement(weekdayElement)\n ? React.cloneElement(weekdayElement, elementProps)\n : React.createElement(weekdayElement, elementProps);\n days.push(element);\n }\n\n return (\n
\n
\n {showWeekNumbers &&
}\n {days}\n
\n
\n );\n }\n}\n","// Proxy object to map classnames when css modules are not used\n\nexport default {\n container: 'DayPicker',\n wrapper: 'DayPicker-wrapper',\n interactionDisabled: 'DayPicker--interactionDisabled',\n months: 'DayPicker-Months',\n month: 'DayPicker-Month',\n\n navBar: 'DayPicker-NavBar',\n navButtonPrev: 'DayPicker-NavButton DayPicker-NavButton--prev',\n navButtonNext: 'DayPicker-NavButton DayPicker-NavButton--next',\n navButtonInteractionDisabled: 'DayPicker-NavButton--interactionDisabled',\n\n caption: 'DayPicker-Caption',\n weekdays: 'DayPicker-Weekdays',\n weekdaysRow: 'DayPicker-WeekdaysRow',\n weekday: 'DayPicker-Weekday',\n body: 'DayPicker-Body',\n week: 'DayPicker-Week',\n weekNumber: 'DayPicker-WeekNumber',\n day: 'DayPicker-Day',\n footer: 'DayPicker-Footer',\n todayButton: 'DayPicker-TodayButton',\n\n // default modifiers\n today: 'today',\n selected: 'selected',\n disabled: 'disabled',\n outside: 'outside',\n};\n","export { default } from './DayPicker';\nexport { default as DateUtils } from './DateUtils';\nexport { default as LocaleUtils } from './LocaleUtils';\nexport { default as ModifiersUtils } from './ModifiersUtils';\n","export const LEFT = 37;\nexport const UP = 38;\nexport const RIGHT = 39;\nexport const DOWN = 40;\nexport const ENTER = 13;\nexport const SPACE = 32;\nexport const ESC = 27;\nexport const TAB = 9;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({ value: _this2.getValue() });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n var observedBits = this.props.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n\n\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar Log = _interopRequireWildcard(require(\"./util/logging.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n// From: http://hg.mozilla.org/mozilla-central/raw-file/ec10630b1a54/js/src/devtools/jint/sunspider/string-base64.js\nvar _default = {\n /* Convert data (an array of integers) to a Base64 string. */\n toBase64Table: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='.split(''),\n base64Pad: '=',\n encode: function encode(data) {\n \"use strict\";\n\n var result = '';\n var length = data.length;\n var lengthpad = length % 3; // Convert every three bytes to 4 ascii characters.\n\n for (var i = 0; i < length - 2; i += 3) {\n result += this.toBase64Table[data[i] >> 2];\n result += this.toBase64Table[((data[i] & 0x03) << 4) + (data[i + 1] >> 4)];\n result += this.toBase64Table[((data[i + 1] & 0x0f) << 2) + (data[i + 2] >> 6)];\n result += this.toBase64Table[data[i + 2] & 0x3f];\n } // Convert the remaining 1 or 2 bytes, pad out to 4 characters.\n\n\n var j = length - lengthpad;\n\n if (lengthpad === 2) {\n result += this.toBase64Table[data[j] >> 2];\n result += this.toBase64Table[((data[j] & 0x03) << 4) + (data[j + 1] >> 4)];\n result += this.toBase64Table[(data[j + 1] & 0x0f) << 2];\n result += this.toBase64Table[64];\n } else if (lengthpad === 1) {\n result += this.toBase64Table[data[j] >> 2];\n result += this.toBase64Table[(data[j] & 0x03) << 4];\n result += this.toBase64Table[64];\n result += this.toBase64Table[64];\n }\n\n return result;\n },\n\n /* Convert Base64 data to a string */\n\n /* eslint-disable comma-spacing */\n toBinaryTable: [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, 0, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1],\n\n /* eslint-enable comma-spacing */\n decode: function decode(data) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var dataLength = data.indexOf('=') - offset;\n\n if (dataLength < 0) {\n dataLength = data.length - offset;\n }\n /* Every four characters is 3 resulting numbers */\n\n\n var resultLength = (dataLength >> 2) * 3 + Math.floor(dataLength % 4 / 1.5);\n var result = new Array(resultLength); // Convert one by one.\n\n var leftbits = 0; // number of bits decoded, but yet to be appended\n\n var leftdata = 0; // bits decoded, but yet to be appended\n\n for (var idx = 0, i = offset; i < data.length; i++) {\n var c = this.toBinaryTable[data.charCodeAt(i) & 0x7f];\n var padding = data.charAt(i) === this.base64Pad; // Skip illegal characters and whitespace\n\n if (c === -1) {\n Log.Error(\"Illegal character code \" + data.charCodeAt(i) + \" at position \" + i);\n continue;\n } // Collect data into leftdata, update bitcount\n\n\n leftdata = leftdata << 6 | c;\n leftbits += 6; // If we have 8 or more bits, append 8 bits to the result\n\n if (leftbits >= 8) {\n leftbits -= 8; // Append if not padding.\n\n if (!padding) {\n result[idx++] = leftdata >> leftbits & 0xff;\n }\n\n leftdata &= (1 << leftbits) - 1;\n }\n } // If there are any bits left, the base64 string was corrupted\n\n\n if (leftbits) {\n var err = new Error('Corrupted base64 string');\n err.name = 'Base64-Error';\n throw err;\n }\n\n return result;\n }\n};\n/* End of Base64 namespace */\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\nvar CopyRectDecoder = /*#__PURE__*/function () {\n function CopyRectDecoder() {\n _classCallCheck(this, CopyRectDecoder);\n }\n\n _createClass(CopyRectDecoder, [{\n key: \"decodeRect\",\n value: function decodeRect(x, y, width, height, sock, display, depth) {\n if (sock.rQwait(\"COPYRECT\", 4)) {\n return false;\n }\n\n var deltaX = sock.rQshift16();\n var deltaY = sock.rQshift16();\n\n if (width === 0 || height === 0) {\n return true;\n }\n\n display.copyImage(deltaX, deltaY, x, y, width, height);\n return true;\n }\n }]);\n\n return CopyRectDecoder;\n}();\n\nexports[\"default\"] = CopyRectDecoder;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar Log = _interopRequireWildcard(require(\"../util/logging.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar HextileDecoder = /*#__PURE__*/function () {\n function HextileDecoder() {\n _classCallCheck(this, HextileDecoder);\n\n this._tiles = 0;\n this._lastsubencoding = 0;\n this._tileBuffer = new Uint8Array(16 * 16 * 4);\n }\n\n _createClass(HextileDecoder, [{\n key: \"decodeRect\",\n value: function decodeRect(x, y, width, height, sock, display, depth) {\n if (this._tiles === 0) {\n this._tilesX = Math.ceil(width / 16);\n this._tilesY = Math.ceil(height / 16);\n this._totalTiles = this._tilesX * this._tilesY;\n this._tiles = this._totalTiles;\n }\n\n while (this._tiles > 0) {\n var bytes = 1;\n\n if (sock.rQwait(\"HEXTILE\", bytes)) {\n return false;\n }\n\n var rQ = sock.rQ;\n var rQi = sock.rQi;\n var subencoding = rQ[rQi]; // Peek\n\n if (subencoding > 30) {\n // Raw\n throw new Error(\"Illegal hextile subencoding (subencoding: \" + subencoding + \")\");\n }\n\n var currTile = this._totalTiles - this._tiles;\n var tileX = currTile % this._tilesX;\n var tileY = Math.floor(currTile / this._tilesX);\n var tx = x + tileX * 16;\n var ty = y + tileY * 16;\n var tw = Math.min(16, x + width - tx);\n var th = Math.min(16, y + height - ty); // Figure out how much we are expecting\n\n if (subencoding & 0x01) {\n // Raw\n bytes += tw * th * 4;\n } else {\n if (subencoding & 0x02) {\n // Background\n bytes += 4;\n }\n\n if (subencoding & 0x04) {\n // Foreground\n bytes += 4;\n }\n\n if (subencoding & 0x08) {\n // AnySubrects\n bytes++; // Since we aren't shifting it off\n\n if (sock.rQwait(\"HEXTILE\", bytes)) {\n return false;\n }\n\n var subrects = rQ[rQi + bytes - 1]; // Peek\n\n if (subencoding & 0x10) {\n // SubrectsColoured\n bytes += subrects * (4 + 2);\n } else {\n bytes += subrects * 2;\n }\n }\n }\n\n if (sock.rQwait(\"HEXTILE\", bytes)) {\n return false;\n } // We know the encoding and have a whole tile\n\n\n rQi++;\n\n if (subencoding === 0) {\n if (this._lastsubencoding & 0x01) {\n // Weird: ignore blanks are RAW\n Log.Debug(\" Ignoring blank after RAW\");\n } else {\n display.fillRect(tx, ty, tw, th, this._background);\n }\n } else if (subencoding & 0x01) {\n // Raw\n var pixels = tw * th; // Max sure the image is fully opaque\n\n for (var i = 0; i < pixels; i++) {\n rQ[rQi + i * 4 + 3] = 255;\n }\n\n display.blitImage(tx, ty, tw, th, rQ, rQi);\n rQi += bytes - 1;\n } else {\n if (subencoding & 0x02) {\n // Background\n this._background = [rQ[rQi], rQ[rQi + 1], rQ[rQi + 2], rQ[rQi + 3]];\n rQi += 4;\n }\n\n if (subencoding & 0x04) {\n // Foreground\n this._foreground = [rQ[rQi], rQ[rQi + 1], rQ[rQi + 2], rQ[rQi + 3]];\n rQi += 4;\n }\n\n this._startTile(tx, ty, tw, th, this._background);\n\n if (subencoding & 0x08) {\n // AnySubrects\n var _subrects = rQ[rQi];\n rQi++;\n\n for (var s = 0; s < _subrects; s++) {\n var color = void 0;\n\n if (subencoding & 0x10) {\n // SubrectsColoured\n color = [rQ[rQi], rQ[rQi + 1], rQ[rQi + 2], rQ[rQi + 3]];\n rQi += 4;\n } else {\n color = this._foreground;\n }\n\n var xy = rQ[rQi];\n rQi++;\n var sx = xy >> 4;\n var sy = xy & 0x0f;\n var wh = rQ[rQi];\n rQi++;\n var sw = (wh >> 4) + 1;\n var sh = (wh & 0x0f) + 1;\n\n this._subTile(sx, sy, sw, sh, color);\n }\n }\n\n this._finishTile(display);\n }\n\n sock.rQi = rQi;\n this._lastsubencoding = subencoding;\n this._tiles--;\n }\n\n return true;\n } // start updating a tile\n\n }, {\n key: \"_startTile\",\n value: function _startTile(x, y, width, height, color) {\n this._tileX = x;\n this._tileY = y;\n this._tileW = width;\n this._tileH = height;\n var red = color[0];\n var green = color[1];\n var blue = color[2];\n var data = this._tileBuffer;\n\n for (var i = 0; i < width * height * 4; i += 4) {\n data[i] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n data[i + 3] = 255;\n }\n } // update sub-rectangle of the current tile\n\n }, {\n key: \"_subTile\",\n value: function _subTile(x, y, w, h, color) {\n var red = color[0];\n var green = color[1];\n var blue = color[2];\n var xend = x + w;\n var yend = y + h;\n var data = this._tileBuffer;\n var width = this._tileW;\n\n for (var j = y; j < yend; j++) {\n for (var i = x; i < xend; i++) {\n var p = (i + j * width) * 4;\n data[p] = red;\n data[p + 1] = green;\n data[p + 2] = blue;\n data[p + 3] = 255;\n }\n }\n } // draw the current tile to the screen\n\n }, {\n key: \"_finishTile\",\n value: function _finishTile(display) {\n display.blitImage(this._tileX, this._tileY, this._tileW, this._tileH, this._tileBuffer, 0);\n }\n }]);\n\n return HextileDecoder;\n}();\n\nexports[\"default\"] = HextileDecoder;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\nvar RawDecoder = /*#__PURE__*/function () {\n function RawDecoder() {\n _classCallCheck(this, RawDecoder);\n\n this._lines = 0;\n }\n\n _createClass(RawDecoder, [{\n key: \"decodeRect\",\n value: function decodeRect(x, y, width, height, sock, display, depth) {\n if (width === 0 || height === 0) {\n return true;\n }\n\n if (this._lines === 0) {\n this._lines = height;\n }\n\n var pixelSize = depth == 8 ? 1 : 4;\n var bytesPerLine = width * pixelSize;\n\n if (sock.rQwait(\"RAW\", bytesPerLine)) {\n return false;\n }\n\n var curY = y + (height - this._lines);\n var currHeight = Math.min(this._lines, Math.floor(sock.rQlen / bytesPerLine));\n var pixels = width * currHeight;\n var data = sock.rQ;\n var index = sock.rQi; // Convert data if needed\n\n if (depth == 8) {\n var newdata = new Uint8Array(pixels * 4);\n\n for (var i = 0; i < pixels; i++) {\n newdata[i * 4 + 0] = (data[index + i] >> 0 & 0x3) * 255 / 3;\n newdata[i * 4 + 1] = (data[index + i] >> 2 & 0x3) * 255 / 3;\n newdata[i * 4 + 2] = (data[index + i] >> 4 & 0x3) * 255 / 3;\n newdata[i * 4 + 3] = 255;\n }\n\n data = newdata;\n index = 0;\n } // Max sure the image is fully opaque\n\n\n for (var _i = 0; _i < pixels; _i++) {\n data[_i * 4 + 3] = 255;\n }\n\n display.blitImage(x, curY, width, currHeight, data, index);\n sock.rQskipBytes(currHeight * bytesPerLine);\n this._lines -= currHeight;\n\n if (this._lines > 0) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return RawDecoder;\n}();\n\nexports[\"default\"] = RawDecoder;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\nvar RREDecoder = /*#__PURE__*/function () {\n function RREDecoder() {\n _classCallCheck(this, RREDecoder);\n\n this._subrects = 0;\n }\n\n _createClass(RREDecoder, [{\n key: \"decodeRect\",\n value: function decodeRect(x, y, width, height, sock, display, depth) {\n if (this._subrects === 0) {\n if (sock.rQwait(\"RRE\", 4 + 4)) {\n return false;\n }\n\n this._subrects = sock.rQshift32();\n var color = sock.rQshiftBytes(4); // Background\n\n display.fillRect(x, y, width, height, color);\n }\n\n while (this._subrects > 0) {\n if (sock.rQwait(\"RRE\", 4 + 8)) {\n return false;\n }\n\n var _color = sock.rQshiftBytes(4);\n\n var sx = sock.rQshift16();\n var sy = sock.rQshift16();\n var swidth = sock.rQshift16();\n var sheight = sock.rQshift16();\n display.fillRect(x + sx, y + sy, swidth, sheight, _color);\n this._subrects--;\n }\n\n return true;\n }\n }]);\n\n return RREDecoder;\n}();\n\nexports[\"default\"] = RREDecoder;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar Log = _interopRequireWildcard(require(\"../util/logging.js\"));\n\nvar _inflator = _interopRequireDefault(require(\"../inflator.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar TightDecoder = /*#__PURE__*/function () {\n function TightDecoder() {\n _classCallCheck(this, TightDecoder);\n\n this._ctl = null;\n this._filter = null;\n this._numColors = 0;\n this._palette = new Uint8Array(1024); // 256 * 4 (max palette size * max bytes-per-pixel)\n\n this._len = 0;\n this._zlibs = [];\n\n for (var i = 0; i < 4; i++) {\n this._zlibs[i] = new _inflator[\"default\"]();\n }\n }\n\n _createClass(TightDecoder, [{\n key: \"decodeRect\",\n value: function decodeRect(x, y, width, height, sock, display, depth) {\n if (this._ctl === null) {\n if (sock.rQwait(\"TIGHT compression-control\", 1)) {\n return false;\n }\n\n this._ctl = sock.rQshift8(); // Reset streams if the server requests it\n\n for (var i = 0; i < 4; i++) {\n if (this._ctl >> i & 1) {\n this._zlibs[i].reset();\n\n Log.Info(\"Reset zlib stream \" + i);\n }\n } // Figure out filter\n\n\n this._ctl = this._ctl >> 4;\n }\n\n var ret;\n\n if (this._ctl === 0x08) {\n ret = this._fillRect(x, y, width, height, sock, display, depth);\n } else if (this._ctl === 0x09) {\n ret = this._jpegRect(x, y, width, height, sock, display, depth);\n } else if (this._ctl === 0x0A) {\n ret = this._pngRect(x, y, width, height, sock, display, depth);\n } else if ((this._ctl & 0x08) == 0) {\n ret = this._basicRect(this._ctl, x, y, width, height, sock, display, depth);\n } else {\n throw new Error(\"Illegal tight compression received (ctl: \" + this._ctl + \")\");\n }\n\n if (ret) {\n this._ctl = null;\n }\n\n return ret;\n }\n }, {\n key: \"_fillRect\",\n value: function _fillRect(x, y, width, height, sock, display, depth) {\n if (sock.rQwait(\"TIGHT\", 3)) {\n return false;\n }\n\n var rQi = sock.rQi;\n var rQ = sock.rQ;\n display.fillRect(x, y, width, height, [rQ[rQi], rQ[rQi + 1], rQ[rQi + 2]], false);\n sock.rQskipBytes(3);\n return true;\n }\n }, {\n key: \"_jpegRect\",\n value: function _jpegRect(x, y, width, height, sock, display, depth) {\n var data = this._readData(sock);\n\n if (data === null) {\n return false;\n }\n\n display.imageRect(x, y, width, height, \"image/jpeg\", data);\n return true;\n }\n }, {\n key: \"_pngRect\",\n value: function _pngRect(x, y, width, height, sock, display, depth) {\n throw new Error(\"PNG received in standard Tight rect\");\n }\n }, {\n key: \"_basicRect\",\n value: function _basicRect(ctl, x, y, width, height, sock, display, depth) {\n if (this._filter === null) {\n if (ctl & 0x4) {\n if (sock.rQwait(\"TIGHT\", 1)) {\n return false;\n }\n\n this._filter = sock.rQshift8();\n } else {\n // Implicit CopyFilter\n this._filter = 0;\n }\n }\n\n var streamId = ctl & 0x3;\n var ret;\n\n switch (this._filter) {\n case 0:\n // CopyFilter\n ret = this._copyFilter(streamId, x, y, width, height, sock, display, depth);\n break;\n\n case 1:\n // PaletteFilter\n ret = this._paletteFilter(streamId, x, y, width, height, sock, display, depth);\n break;\n\n case 2:\n // GradientFilter\n ret = this._gradientFilter(streamId, x, y, width, height, sock, display, depth);\n break;\n\n default:\n throw new Error(\"Illegal tight filter received (ctl: \" + this._filter + \")\");\n }\n\n if (ret) {\n this._filter = null;\n }\n\n return ret;\n }\n }, {\n key: \"_copyFilter\",\n value: function _copyFilter(streamId, x, y, width, height, sock, display, depth) {\n var uncompressedSize = width * height * 3;\n var data;\n\n if (uncompressedSize === 0) {\n return true;\n }\n\n if (uncompressedSize < 12) {\n if (sock.rQwait(\"TIGHT\", uncompressedSize)) {\n return false;\n }\n\n data = sock.rQshiftBytes(uncompressedSize);\n } else {\n data = this._readData(sock);\n\n if (data === null) {\n return false;\n }\n\n this._zlibs[streamId].setInput(data);\n\n data = this._zlibs[streamId].inflate(uncompressedSize);\n\n this._zlibs[streamId].setInput(null);\n }\n\n var rgbx = new Uint8Array(width * height * 4);\n\n for (var i = 0, j = 0; i < width * height * 4; i += 4, j += 3) {\n rgbx[i] = data[j];\n rgbx[i + 1] = data[j + 1];\n rgbx[i + 2] = data[j + 2];\n rgbx[i + 3] = 255; // Alpha\n }\n\n display.blitImage(x, y, width, height, rgbx, 0, false);\n return true;\n }\n }, {\n key: \"_paletteFilter\",\n value: function _paletteFilter(streamId, x, y, width, height, sock, display, depth) {\n if (this._numColors === 0) {\n if (sock.rQwait(\"TIGHT palette\", 1)) {\n return false;\n }\n\n var numColors = sock.rQpeek8() + 1;\n var paletteSize = numColors * 3;\n\n if (sock.rQwait(\"TIGHT palette\", 1 + paletteSize)) {\n return false;\n }\n\n this._numColors = numColors;\n sock.rQskipBytes(1);\n sock.rQshiftTo(this._palette, paletteSize);\n }\n\n var bpp = this._numColors <= 2 ? 1 : 8;\n var rowSize = Math.floor((width * bpp + 7) / 8);\n var uncompressedSize = rowSize * height;\n var data;\n\n if (uncompressedSize === 0) {\n return true;\n }\n\n if (uncompressedSize < 12) {\n if (sock.rQwait(\"TIGHT\", uncompressedSize)) {\n return false;\n }\n\n data = sock.rQshiftBytes(uncompressedSize);\n } else {\n data = this._readData(sock);\n\n if (data === null) {\n return false;\n }\n\n this._zlibs[streamId].setInput(data);\n\n data = this._zlibs[streamId].inflate(uncompressedSize);\n\n this._zlibs[streamId].setInput(null);\n } // Convert indexed (palette based) image data to RGB\n\n\n if (this._numColors == 2) {\n this._monoRect(x, y, width, height, data, this._palette, display);\n } else {\n this._paletteRect(x, y, width, height, data, this._palette, display);\n }\n\n this._numColors = 0;\n return true;\n }\n }, {\n key: \"_monoRect\",\n value: function _monoRect(x, y, width, height, data, palette, display) {\n // Convert indexed (palette based) image data to RGB\n // TODO: reduce number of calculations inside loop\n var dest = this._getScratchBuffer(width * height * 4);\n\n var w = Math.floor((width + 7) / 8);\n var w1 = Math.floor(width / 8);\n\n for (var _y = 0; _y < height; _y++) {\n var dp = void 0,\n sp = void 0,\n _x = void 0;\n\n for (_x = 0; _x < w1; _x++) {\n for (var b = 7; b >= 0; b--) {\n dp = (_y * width + _x * 8 + 7 - b) * 4;\n sp = (data[_y * w + _x] >> b & 1) * 3;\n dest[dp] = palette[sp];\n dest[dp + 1] = palette[sp + 1];\n dest[dp + 2] = palette[sp + 2];\n dest[dp + 3] = 255;\n }\n }\n\n for (var _b = 7; _b >= 8 - width % 8; _b--) {\n dp = (_y * width + _x * 8 + 7 - _b) * 4;\n sp = (data[_y * w + _x] >> _b & 1) * 3;\n dest[dp] = palette[sp];\n dest[dp + 1] = palette[sp + 1];\n dest[dp + 2] = palette[sp + 2];\n dest[dp + 3] = 255;\n }\n }\n\n display.blitImage(x, y, width, height, dest, 0, false);\n }\n }, {\n key: \"_paletteRect\",\n value: function _paletteRect(x, y, width, height, data, palette, display) {\n // Convert indexed (palette based) image data to RGB\n var dest = this._getScratchBuffer(width * height * 4);\n\n var total = width * height * 4;\n\n for (var i = 0, j = 0; i < total; i += 4, j++) {\n var sp = data[j] * 3;\n dest[i] = palette[sp];\n dest[i + 1] = palette[sp + 1];\n dest[i + 2] = palette[sp + 2];\n dest[i + 3] = 255;\n }\n\n display.blitImage(x, y, width, height, dest, 0, false);\n }\n }, {\n key: \"_gradientFilter\",\n value: function _gradientFilter(streamId, x, y, width, height, sock, display, depth) {\n throw new Error(\"Gradient filter not implemented\");\n }\n }, {\n key: \"_readData\",\n value: function _readData(sock) {\n if (this._len === 0) {\n if (sock.rQwait(\"TIGHT\", 3)) {\n return null;\n }\n\n var _byte;\n\n _byte = sock.rQshift8();\n this._len = _byte & 0x7f;\n\n if (_byte & 0x80) {\n _byte = sock.rQshift8();\n this._len |= (_byte & 0x7f) << 7;\n\n if (_byte & 0x80) {\n _byte = sock.rQshift8();\n this._len |= _byte << 14;\n }\n }\n }\n\n if (sock.rQwait(\"TIGHT\", this._len)) {\n return null;\n }\n\n var data = sock.rQshiftBytes(this._len);\n this._len = 0;\n return data;\n }\n }, {\n key: \"_getScratchBuffer\",\n value: function _getScratchBuffer(size) {\n if (!this._scratchBuffer || this._scratchBuffer.length < size) {\n this._scratchBuffer = new Uint8Array(size);\n }\n\n return this._scratchBuffer;\n }\n }]);\n\n return TightDecoder;\n}();\n\nexports[\"default\"] = TightDecoder;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _tight = _interopRequireDefault(require(\"./tight.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar TightPNGDecoder = /*#__PURE__*/function (_TightDecoder) {\n _inherits(TightPNGDecoder, _TightDecoder);\n\n var _super = _createSuper(TightPNGDecoder);\n\n function TightPNGDecoder() {\n _classCallCheck(this, TightPNGDecoder);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(TightPNGDecoder, [{\n key: \"_pngRect\",\n value: function _pngRect(x, y, width, height, sock, display, depth) {\n var data = this._readData(sock);\n\n if (data === null) {\n return false;\n }\n\n display.imageRect(x, y, width, height, \"image/png\", data);\n return true;\n }\n }, {\n key: \"_basicRect\",\n value: function _basicRect(ctl, x, y, width, height, sock, display, depth) {\n throw new Error(\"BasicCompression received in TightPNG rect\");\n }\n }]);\n\n return TightPNGDecoder;\n}(_tight[\"default\"]);\n\nexports[\"default\"] = TightPNGDecoder;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _deflate2 = require(\"../lib/vendor/pako/lib/zlib/deflate.js\");\n\nvar _zstream = _interopRequireDefault(require(\"../lib/vendor/pako/lib/zlib/zstream.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Deflator = /*#__PURE__*/function () {\n function Deflator() {\n _classCallCheck(this, Deflator);\n\n this.strm = new _zstream[\"default\"]();\n this.chunkSize = 1024 * 10 * 10;\n this.outputBuffer = new Uint8Array(this.chunkSize);\n this.windowBits = 5;\n (0, _deflate2.deflateInit)(this.strm, this.windowBits);\n }\n\n _createClass(Deflator, [{\n key: \"deflate\",\n value: function deflate(inData) {\n /* eslint-disable camelcase */\n this.strm.input = inData;\n this.strm.avail_in = this.strm.input.length;\n this.strm.next_in = 0;\n this.strm.output = this.outputBuffer;\n this.strm.avail_out = this.chunkSize;\n this.strm.next_out = 0;\n /* eslint-enable camelcase */\n\n var lastRet = (0, _deflate2.deflate)(this.strm, _deflate2.Z_FULL_FLUSH);\n var outData = new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);\n\n if (lastRet < 0) {\n throw new Error(\"zlib deflate failed\");\n }\n\n if (this.strm.avail_in > 0) {\n // Read chunks until done\n var chunks = [outData];\n var totalLen = outData.length;\n\n do {\n /* eslint-disable camelcase */\n this.strm.output = new Uint8Array(this.chunkSize);\n this.strm.next_out = 0;\n this.strm.avail_out = this.chunkSize;\n /* eslint-enable camelcase */\n\n lastRet = (0, _deflate2.deflate)(this.strm, _deflate2.Z_FULL_FLUSH);\n\n if (lastRet < 0) {\n throw new Error(\"zlib deflate failed\");\n }\n\n var chunk = new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);\n totalLen += chunk.length;\n chunks.push(chunk);\n } while (this.strm.avail_in > 0); // Combine chunks into a single data\n\n\n var newData = new Uint8Array(totalLen);\n var offset = 0;\n\n for (var i = 0; i < chunks.length; i++) {\n newData.set(chunks[i], offset);\n offset += chunks[i].length;\n }\n\n outData = newData;\n }\n /* eslint-disable camelcase */\n\n\n this.strm.input = null;\n this.strm.avail_in = 0;\n this.strm.next_in = 0;\n /* eslint-enable camelcase */\n\n return outData;\n }\n }]);\n\n return Deflator;\n}();\n\nexports[\"default\"] = Deflator;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * Ported from Flashlight VNC ActionScript implementation:\n * http://www.wizhelp.com/flashlight-vnc/\n *\n * Full attribution follows:\n *\n * -------------------------------------------------------------------------\n *\n * This DES class has been extracted from package Acme.Crypto for use in VNC.\n * The unnecessary odd parity code has been removed.\n *\n * These changes are:\n * Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n *\n\n * DesCipher - the DES encryption method\n *\n * The meat of this code is by Dave Zimmerman , and is:\n *\n * Copyright (c) 1996 Widget Workshop, Inc. All Rights Reserved.\n *\n * Permission to use, copy, modify, and distribute this software\n * and its documentation for NON-COMMERCIAL or COMMERCIAL purposes and\n * without fee is hereby granted, provided that this copyright notice is kept\n * intact.\n *\n * WIDGET WORKSHOP MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY\n * OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED\n * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. WIDGET WORKSHOP SHALL NOT BE LIABLE\n * FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR\n * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.\n *\n * THIS SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE OR RESALE AS ON-LINE\n * CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE\n * PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT\n * NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT LIFE\n * SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE\n * SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE\n * PHYSICAL OR ENVIRONMENTAL DAMAGE (\"HIGH RISK ACTIVITIES\"). WIDGET WORKSHOP\n * SPECIFICALLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR\n * HIGH RISK ACTIVITIES.\n *\n *\n * The rest is:\n *\n * Copyright (C) 1996 by Jef Poskanzer . All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n *\n * Visit the ACME Labs Java page for up-to-date versions of this and other\n * fine Java utilities: http://www.acme.com/java/\n */\n\n/* eslint-disable comma-spacing */\n// Tables, permutations, S-boxes, etc.\nvar PC2 = [13, 16, 10, 23, 0, 4, 2, 27, 14, 5, 20, 9, 22, 18, 11, 3, 25, 7, 15, 6, 26, 19, 12, 1, 40, 51, 30, 36, 46, 54, 29, 39, 50, 44, 32, 47, 43, 48, 38, 55, 33, 52, 45, 41, 49, 35, 28, 31],\n totrot = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\nvar z = 0x0;\nvar a, b, c, d, e, f;\na = 1 << 16;\nb = 1 << 24;\nc = a | b;\nd = 1 << 2;\ne = 1 << 10;\nf = d | e;\nvar SP1 = [c | e, z | z, a | z, c | f, c | d, a | f, z | d, a | z, z | e, c | e, c | f, z | e, b | f, c | d, b | z, z | d, z | f, b | e, b | e, a | e, a | e, c | z, c | z, b | f, a | d, b | d, b | d, a | d, z | z, z | f, a | f, b | z, a | z, c | f, z | d, c | z, c | e, b | z, b | z, z | e, c | d, a | z, a | e, b | d, z | e, z | d, b | f, a | f, c | f, a | d, c | z, b | f, b | d, z | f, a | f, c | e, z | f, b | e, b | e, z | z, a | d, a | e, z | z, c | d];\na = 1 << 20;\nb = 1 << 31;\nc = a | b;\nd = 1 << 5;\ne = 1 << 15;\nf = d | e;\nvar SP2 = [c | f, b | e, z | e, a | f, a | z, z | d, c | d, b | f, b | d, c | f, c | e, b | z, b | e, a | z, z | d, c | d, a | e, a | d, b | f, z | z, b | z, z | e, a | f, c | z, a | d, b | d, z | z, a | e, z | f, c | e, c | z, z | f, z | z, a | f, c | d, a | z, b | f, c | z, c | e, z | e, c | z, b | e, z | d, c | f, a | f, z | d, z | e, b | z, z | f, c | e, a | z, b | d, a | d, b | f, b | d, a | d, a | e, z | z, b | e, z | f, b | z, c | d, c | f, a | e];\na = 1 << 17;\nb = 1 << 27;\nc = a | b;\nd = 1 << 3;\ne = 1 << 9;\nf = d | e;\nvar SP3 = [z | f, c | e, z | z, c | d, b | e, z | z, a | f, b | e, a | d, b | d, b | d, a | z, c | f, a | d, c | z, z | f, b | z, z | d, c | e, z | e, a | e, c | z, c | d, a | f, b | f, a | e, a | z, b | f, z | d, c | f, z | e, b | z, c | e, b | z, a | d, z | f, a | z, c | e, b | e, z | z, z | e, a | d, c | f, b | e, b | d, z | e, z | z, c | d, b | f, a | z, b | z, c | f, z | d, a | f, a | e, b | d, c | z, b | f, z | f, c | z, a | f, z | d, c | d, a | e];\na = 1 << 13;\nb = 1 << 23;\nc = a | b;\nd = 1 << 0;\ne = 1 << 7;\nf = d | e;\nvar SP4 = [c | d, a | f, a | f, z | e, c | e, b | f, b | d, a | d, z | z, c | z, c | z, c | f, z | f, z | z, b | e, b | d, z | d, a | z, b | z, c | d, z | e, b | z, a | d, a | e, b | f, z | d, a | e, b | e, a | z, c | e, c | f, z | f, b | e, b | d, c | z, c | f, z | f, z | z, z | z, c | z, a | e, b | e, b | f, z | d, c | d, a | f, a | f, z | e, c | f, z | f, z | d, a | z, b | d, a | d, c | e, b | f, a | d, a | e, b | z, c | d, z | e, b | z, a | z, c | e];\na = 1 << 25;\nb = 1 << 30;\nc = a | b;\nd = 1 << 8;\ne = 1 << 19;\nf = d | e;\nvar SP5 = [z | d, a | f, a | e, c | d, z | e, z | d, b | z, a | e, b | f, z | e, a | d, b | f, c | d, c | e, z | f, b | z, a | z, b | e, b | e, z | z, b | d, c | f, c | f, a | d, c | e, b | d, z | z, c | z, a | f, a | z, c | z, z | f, z | e, c | d, z | d, a | z, b | z, a | e, c | d, b | f, a | d, b | z, c | e, a | f, b | f, z | d, a | z, c | e, c | f, z | f, c | z, c | f, a | e, z | z, b | e, c | z, z | f, a | d, b | d, z | e, z | z, b | e, a | f, b | d];\na = 1 << 22;\nb = 1 << 29;\nc = a | b;\nd = 1 << 4;\ne = 1 << 14;\nf = d | e;\nvar SP6 = [b | d, c | z, z | e, c | f, c | z, z | d, c | f, a | z, b | e, a | f, a | z, b | d, a | d, b | e, b | z, z | f, z | z, a | d, b | f, z | e, a | e, b | f, z | d, c | d, c | d, z | z, a | f, c | e, z | f, a | e, c | e, b | z, b | e, z | d, c | d, a | e, c | f, a | z, z | f, b | d, a | z, b | e, b | z, z | f, b | d, c | f, a | e, c | z, a | f, c | e, z | z, c | d, z | d, z | e, c | z, a | f, z | e, a | d, b | f, z | z, c | e, b | z, a | d, b | f];\na = 1 << 21;\nb = 1 << 26;\nc = a | b;\nd = 1 << 1;\ne = 1 << 11;\nf = d | e;\nvar SP7 = [a | z, c | d, b | f, z | z, z | e, b | f, a | f, c | e, c | f, a | z, z | z, b | d, z | d, b | z, c | d, z | f, b | e, a | f, a | d, b | e, b | d, c | z, c | e, a | d, c | z, z | e, z | f, c | f, a | e, z | d, b | z, a | e, b | z, a | e, a | z, b | f, b | f, c | d, c | d, z | d, a | d, b | z, b | e, a | z, c | e, z | f, a | f, c | e, z | f, b | d, c | f, c | z, a | e, z | z, z | d, c | f, z | z, a | f, c | z, z | e, b | d, b | e, z | e, a | d];\na = 1 << 18;\nb = 1 << 28;\nc = a | b;\nd = 1 << 6;\ne = 1 << 12;\nf = d | e;\nvar SP8 = [b | f, z | e, a | z, c | f, b | z, b | f, z | d, b | z, a | d, c | z, c | f, a | e, c | e, a | f, z | e, z | d, c | z, b | d, b | e, z | f, a | e, a | d, c | d, c | e, z | f, z | z, z | z, c | d, b | d, b | e, a | f, a | z, a | f, a | z, c | e, z | e, z | d, c | d, z | e, a | f, b | e, z | d, b | d, c | z, c | d, b | z, a | z, b | f, z | z, c | f, a | d, b | d, c | z, b | e, b | f, z | z, c | f, a | e, a | e, z | f, z | f, a | d, b | z, c | e];\n/* eslint-enable comma-spacing */\n\nvar DES = /*#__PURE__*/function () {\n function DES(password) {\n _classCallCheck(this, DES);\n\n this.keys = []; // Set the key.\n\n var pc1m = [],\n pcr = [],\n kn = [];\n\n for (var j = 0, l = 56; j < 56; ++j, l -= 8) {\n l += l < -5 ? 65 : l < -3 ? 31 : l < -1 ? 63 : l === 27 ? 35 : 0; // PC1\n\n var m = l & 0x7;\n pc1m[j] = (password[l >>> 3] & 1 << m) !== 0 ? 1 : 0;\n }\n\n for (var i = 0; i < 16; ++i) {\n var _m = i << 1;\n\n var n = _m + 1;\n kn[_m] = kn[n] = 0;\n\n for (var o = 28; o < 59; o += 28) {\n for (var _j = o - 28; _j < o; ++_j) {\n var _l = _j + totrot[i];\n\n pcr[_j] = _l < o ? pc1m[_l] : pc1m[_l - 28];\n }\n }\n\n for (var _j2 = 0; _j2 < 24; ++_j2) {\n if (pcr[PC2[_j2]] !== 0) {\n kn[_m] |= 1 << 23 - _j2;\n }\n\n if (pcr[PC2[_j2 + 24]] !== 0) {\n kn[n] |= 1 << 23 - _j2;\n }\n }\n } // cookey\n\n\n for (var _i = 0, rawi = 0, KnLi = 0; _i < 16; ++_i) {\n var raw0 = kn[rawi++];\n var raw1 = kn[rawi++];\n this.keys[KnLi] = (raw0 & 0x00fc0000) << 6;\n this.keys[KnLi] |= (raw0 & 0x00000fc0) << 10;\n this.keys[KnLi] |= (raw1 & 0x00fc0000) >>> 10;\n this.keys[KnLi] |= (raw1 & 0x00000fc0) >>> 6;\n ++KnLi;\n this.keys[KnLi] = (raw0 & 0x0003f000) << 12;\n this.keys[KnLi] |= (raw0 & 0x0000003f) << 16;\n this.keys[KnLi] |= (raw1 & 0x0003f000) >>> 4;\n this.keys[KnLi] |= raw1 & 0x0000003f;\n ++KnLi;\n }\n } // Encrypt 8 bytes of text\n\n\n _createClass(DES, [{\n key: \"enc8\",\n value: function enc8(text) {\n var b = text.slice();\n var i = 0,\n l,\n r,\n x; // left, right, accumulator\n // Squash 8 bytes to 2 ints\n\n l = b[i++] << 24 | b[i++] << 16 | b[i++] << 8 | b[i++];\n r = b[i++] << 24 | b[i++] << 16 | b[i++] << 8 | b[i++];\n x = (l >>> 4 ^ r) & 0x0f0f0f0f;\n r ^= x;\n l ^= x << 4;\n x = (l >>> 16 ^ r) & 0x0000ffff;\n r ^= x;\n l ^= x << 16;\n x = (r >>> 2 ^ l) & 0x33333333;\n l ^= x;\n r ^= x << 2;\n x = (r >>> 8 ^ l) & 0x00ff00ff;\n l ^= x;\n r ^= x << 8;\n r = r << 1 | r >>> 31 & 1;\n x = (l ^ r) & 0xaaaaaaaa;\n l ^= x;\n r ^= x;\n l = l << 1 | l >>> 31 & 1;\n\n for (var _i2 = 0, keysi = 0; _i2 < 8; ++_i2) {\n x = r << 28 | r >>> 4;\n x ^= this.keys[keysi++];\n var fval = SP7[x & 0x3f];\n fval |= SP5[x >>> 8 & 0x3f];\n fval |= SP3[x >>> 16 & 0x3f];\n fval |= SP1[x >>> 24 & 0x3f];\n x = r ^ this.keys[keysi++];\n fval |= SP8[x & 0x3f];\n fval |= SP6[x >>> 8 & 0x3f];\n fval |= SP4[x >>> 16 & 0x3f];\n fval |= SP2[x >>> 24 & 0x3f];\n l ^= fval;\n x = l << 28 | l >>> 4;\n x ^= this.keys[keysi++];\n fval = SP7[x & 0x3f];\n fval |= SP5[x >>> 8 & 0x3f];\n fval |= SP3[x >>> 16 & 0x3f];\n fval |= SP1[x >>> 24 & 0x3f];\n x = l ^ this.keys[keysi++];\n fval |= SP8[x & 0x0000003f];\n fval |= SP6[x >>> 8 & 0x3f];\n fval |= SP4[x >>> 16 & 0x3f];\n fval |= SP2[x >>> 24 & 0x3f];\n r ^= fval;\n }\n\n r = r << 31 | r >>> 1;\n x = (l ^ r) & 0xaaaaaaaa;\n l ^= x;\n r ^= x;\n l = l << 31 | l >>> 1;\n x = (l >>> 8 ^ r) & 0x00ff00ff;\n r ^= x;\n l ^= x << 8;\n x = (l >>> 2 ^ r) & 0x33333333;\n r ^= x;\n l ^= x << 2;\n x = (r >>> 16 ^ l) & 0x0000ffff;\n l ^= x;\n r ^= x << 16;\n x = (r >>> 4 ^ l) & 0x0f0f0f0f;\n l ^= x;\n r ^= x << 4; // Spread ints to bytes\n\n x = [r, l];\n\n for (i = 0; i < 8; i++) {\n b[i] = (x[i >>> 2] >>> 8 * (3 - i % 4)) % 256;\n\n if (b[i] < 0) {\n b[i] += 256;\n } // unsigned\n\n }\n\n return b;\n } // Encrypt 16 bytes of text using passwd as key\n\n }, {\n key: \"encrypt\",\n value: function encrypt(t) {\n return this.enc8(t.slice(0, 8)).concat(this.enc8(t.slice(8, 16)));\n }\n }]);\n\n return DES;\n}();\n\nexports[\"default\"] = DES;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar Log = _interopRequireWildcard(require(\"./util/logging.js\"));\n\nvar _base = _interopRequireDefault(require(\"./base64.js\"));\n\nvar _int = require(\"./util/int.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Display = /*#__PURE__*/function () {\n function Display(target) {\n _classCallCheck(this, Display);\n\n this._drawCtx = null;\n this._renderQ = []; // queue drawing actions for in-oder rendering\n\n this._flushing = false; // the full frame buffer (logical canvas) size\n\n this._fbWidth = 0;\n this._fbHeight = 0;\n this._prevDrawStyle = \"\";\n Log.Debug(\">> Display.constructor\"); // The visible canvas\n\n this._target = target;\n\n if (!this._target) {\n throw new Error(\"Target must be set\");\n }\n\n if (typeof this._target === 'string') {\n throw new Error('target must be a DOM element');\n }\n\n if (!this._target.getContext) {\n throw new Error(\"no getContext method\");\n }\n\n this._targetCtx = this._target.getContext('2d'); // the visible canvas viewport (i.e. what actually gets seen)\n\n this._viewportLoc = {\n 'x': 0,\n 'y': 0,\n 'w': this._target.width,\n 'h': this._target.height\n }; // The hidden canvas, where we do the actual rendering\n\n this._backbuffer = document.createElement('canvas');\n this._drawCtx = this._backbuffer.getContext('2d');\n this._damageBounds = {\n left: 0,\n top: 0,\n right: this._backbuffer.width,\n bottom: this._backbuffer.height\n };\n Log.Debug(\"User Agent: \" + navigator.userAgent);\n Log.Debug(\"<< Display.constructor\"); // ===== PROPERTIES =====\n\n this._scale = 1.0;\n this._clipViewport = false; // ===== EVENT HANDLERS =====\n\n this.onflush = function () {}; // A flush request has finished\n\n } // ===== PROPERTIES =====\n\n\n _createClass(Display, [{\n key: \"scale\",\n get: function get() {\n return this._scale;\n },\n set: function set(scale) {\n this._rescale(scale);\n }\n }, {\n key: \"clipViewport\",\n get: function get() {\n return this._clipViewport;\n },\n set: function set(viewport) {\n this._clipViewport = viewport; // May need to readjust the viewport dimensions\n\n var vp = this._viewportLoc;\n this.viewportChangeSize(vp.w, vp.h);\n this.viewportChangePos(0, 0);\n }\n }, {\n key: \"width\",\n get: function get() {\n return this._fbWidth;\n }\n }, {\n key: \"height\",\n get: function get() {\n return this._fbHeight;\n } // ===== PUBLIC METHODS =====\n\n }, {\n key: \"viewportChangePos\",\n value: function viewportChangePos(deltaX, deltaY) {\n var vp = this._viewportLoc;\n deltaX = Math.floor(deltaX);\n deltaY = Math.floor(deltaY);\n\n if (!this._clipViewport) {\n deltaX = -vp.w; // clamped later of out of bounds\n\n deltaY = -vp.h;\n }\n\n var vx2 = vp.x + vp.w - 1;\n var vy2 = vp.y + vp.h - 1; // Position change\n\n if (deltaX < 0 && vp.x + deltaX < 0) {\n deltaX = -vp.x;\n }\n\n if (vx2 + deltaX >= this._fbWidth) {\n deltaX -= vx2 + deltaX - this._fbWidth + 1;\n }\n\n if (vp.y + deltaY < 0) {\n deltaY = -vp.y;\n }\n\n if (vy2 + deltaY >= this._fbHeight) {\n deltaY -= vy2 + deltaY - this._fbHeight + 1;\n }\n\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n Log.Debug(\"viewportChange deltaX: \" + deltaX + \", deltaY: \" + deltaY);\n vp.x += deltaX;\n vp.y += deltaY;\n\n this._damage(vp.x, vp.y, vp.w, vp.h);\n\n this.flip();\n }\n }, {\n key: \"viewportChangeSize\",\n value: function viewportChangeSize(width, height) {\n if (!this._clipViewport || typeof width === \"undefined\" || typeof height === \"undefined\") {\n Log.Debug(\"Setting viewport to full display region\");\n width = this._fbWidth;\n height = this._fbHeight;\n }\n\n width = Math.floor(width);\n height = Math.floor(height);\n\n if (width > this._fbWidth) {\n width = this._fbWidth;\n }\n\n if (height > this._fbHeight) {\n height = this._fbHeight;\n }\n\n var vp = this._viewportLoc;\n\n if (vp.w !== width || vp.h !== height) {\n vp.w = width;\n vp.h = height;\n var canvas = this._target;\n canvas.width = width;\n canvas.height = height; // The position might need to be updated if we've grown\n\n this.viewportChangePos(0, 0);\n\n this._damage(vp.x, vp.y, vp.w, vp.h);\n\n this.flip(); // Update the visible size of the target canvas\n\n this._rescale(this._scale);\n }\n }\n }, {\n key: \"absX\",\n value: function absX(x) {\n if (this._scale === 0) {\n return 0;\n }\n\n return (0, _int.toSigned32bit)(x / this._scale + this._viewportLoc.x);\n }\n }, {\n key: \"absY\",\n value: function absY(y) {\n if (this._scale === 0) {\n return 0;\n }\n\n return (0, _int.toSigned32bit)(y / this._scale + this._viewportLoc.y);\n }\n }, {\n key: \"resize\",\n value: function resize(width, height) {\n this._prevDrawStyle = \"\";\n this._fbWidth = width;\n this._fbHeight = height;\n var canvas = this._backbuffer;\n\n if (canvas.width !== width || canvas.height !== height) {\n // We have to save the canvas data since changing the size will clear it\n var saveImg = null;\n\n if (canvas.width > 0 && canvas.height > 0) {\n saveImg = this._drawCtx.getImageData(0, 0, canvas.width, canvas.height);\n }\n\n if (canvas.width !== width) {\n canvas.width = width;\n }\n\n if (canvas.height !== height) {\n canvas.height = height;\n }\n\n if (saveImg) {\n this._drawCtx.putImageData(saveImg, 0, 0);\n }\n } // Readjust the viewport as it may be incorrectly sized\n // and positioned\n\n\n var vp = this._viewportLoc;\n this.viewportChangeSize(vp.w, vp.h);\n this.viewportChangePos(0, 0);\n } // Track what parts of the visible canvas that need updating\n\n }, {\n key: \"_damage\",\n value: function _damage(x, y, w, h) {\n if (x < this._damageBounds.left) {\n this._damageBounds.left = x;\n }\n\n if (y < this._damageBounds.top) {\n this._damageBounds.top = y;\n }\n\n if (x + w > this._damageBounds.right) {\n this._damageBounds.right = x + w;\n }\n\n if (y + h > this._damageBounds.bottom) {\n this._damageBounds.bottom = y + h;\n }\n } // Update the visible canvas with the contents of the\n // rendering canvas\n\n }, {\n key: \"flip\",\n value: function flip(fromQueue) {\n if (this._renderQ.length !== 0 && !fromQueue) {\n this._renderQPush({\n 'type': 'flip'\n });\n } else {\n var x = this._damageBounds.left;\n var y = this._damageBounds.top;\n var w = this._damageBounds.right - x;\n var h = this._damageBounds.bottom - y;\n var vx = x - this._viewportLoc.x;\n var vy = y - this._viewportLoc.y;\n\n if (vx < 0) {\n w += vx;\n x -= vx;\n vx = 0;\n }\n\n if (vy < 0) {\n h += vy;\n y -= vy;\n vy = 0;\n }\n\n if (vx + w > this._viewportLoc.w) {\n w = this._viewportLoc.w - vx;\n }\n\n if (vy + h > this._viewportLoc.h) {\n h = this._viewportLoc.h - vy;\n }\n\n if (w > 0 && h > 0) {\n // FIXME: We may need to disable image smoothing here\n // as well (see copyImage()), but we haven't\n // noticed any problem yet.\n this._targetCtx.drawImage(this._backbuffer, x, y, w, h, vx, vy, w, h);\n }\n\n this._damageBounds.left = this._damageBounds.top = 65535;\n this._damageBounds.right = this._damageBounds.bottom = 0;\n }\n }\n }, {\n key: \"pending\",\n value: function pending() {\n return this._renderQ.length > 0;\n }\n }, {\n key: \"flush\",\n value: function flush() {\n if (this._renderQ.length === 0) {\n this.onflush();\n } else {\n this._flushing = true;\n }\n }\n }, {\n key: \"fillRect\",\n value: function fillRect(x, y, width, height, color, fromQueue) {\n if (this._renderQ.length !== 0 && !fromQueue) {\n this._renderQPush({\n 'type': 'fill',\n 'x': x,\n 'y': y,\n 'width': width,\n 'height': height,\n 'color': color\n });\n } else {\n this._setFillColor(color);\n\n this._drawCtx.fillRect(x, y, width, height);\n\n this._damage(x, y, width, height);\n }\n }\n }, {\n key: \"copyImage\",\n value: function copyImage(oldX, oldY, newX, newY, w, h, fromQueue) {\n if (this._renderQ.length !== 0 && !fromQueue) {\n this._renderQPush({\n 'type': 'copy',\n 'oldX': oldX,\n 'oldY': oldY,\n 'x': newX,\n 'y': newY,\n 'width': w,\n 'height': h\n });\n } else {\n // Due to this bug among others [1] we need to disable the image-smoothing to\n // avoid getting a blur effect when copying data.\n //\n // 1. https://bugzilla.mozilla.org/show_bug.cgi?id=1194719\n //\n // We need to set these every time since all properties are reset\n // when the the size is changed\n this._drawCtx.mozImageSmoothingEnabled = false;\n this._drawCtx.webkitImageSmoothingEnabled = false;\n this._drawCtx.msImageSmoothingEnabled = false;\n this._drawCtx.imageSmoothingEnabled = false;\n\n this._drawCtx.drawImage(this._backbuffer, oldX, oldY, w, h, newX, newY, w, h);\n\n this._damage(newX, newY, w, h);\n }\n }\n }, {\n key: \"imageRect\",\n value: function imageRect(x, y, width, height, mime, arr) {\n /* The internal logic cannot handle empty images, so bail early */\n if (width === 0 || height === 0) {\n return;\n }\n\n var img = new Image();\n img.src = \"data: \" + mime + \";base64,\" + _base[\"default\"].encode(arr);\n\n this._renderQPush({\n 'type': 'img',\n 'img': img,\n 'x': x,\n 'y': y,\n 'width': width,\n 'height': height\n });\n }\n }, {\n key: \"blitImage\",\n value: function blitImage(x, y, width, height, arr, offset, fromQueue) {\n if (this._renderQ.length !== 0 && !fromQueue) {\n // NB(directxman12): it's technically more performant here to use preallocated arrays,\n // but it's a lot of extra work for not a lot of payoff -- if we're using the render queue,\n // this probably isn't getting called *nearly* as much\n var newArr = new Uint8Array(width * height * 4);\n newArr.set(new Uint8Array(arr.buffer, 0, newArr.length));\n\n this._renderQPush({\n 'type': 'blit',\n 'data': newArr,\n 'x': x,\n 'y': y,\n 'width': width,\n 'height': height\n });\n } else {\n // NB(directxman12): arr must be an Type Array view\n var data = new Uint8ClampedArray(arr.buffer, arr.byteOffset + offset, width * height * 4);\n var img = new ImageData(data, width, height);\n\n this._drawCtx.putImageData(img, x, y);\n\n this._damage(x, y, width, height);\n }\n }\n }, {\n key: \"drawImage\",\n value: function drawImage(img, x, y) {\n this._drawCtx.drawImage(img, x, y);\n\n this._damage(x, y, img.width, img.height);\n }\n }, {\n key: \"autoscale\",\n value: function autoscale(containerWidth, containerHeight) {\n var scaleRatio;\n\n if (containerWidth === 0 || containerHeight === 0) {\n scaleRatio = 0;\n } else {\n var vp = this._viewportLoc;\n var targetAspectRatio = containerWidth / containerHeight;\n var fbAspectRatio = vp.w / vp.h;\n\n if (fbAspectRatio >= targetAspectRatio) {\n scaleRatio = containerWidth / vp.w;\n } else {\n scaleRatio = containerHeight / vp.h;\n }\n }\n\n this._rescale(scaleRatio);\n } // ===== PRIVATE METHODS =====\n\n }, {\n key: \"_rescale\",\n value: function _rescale(factor) {\n this._scale = factor;\n var vp = this._viewportLoc; // NB(directxman12): If you set the width directly, or set the\n // style width to a number, the canvas is cleared.\n // However, if you set the style width to a string\n // ('NNNpx'), the canvas is scaled without clearing.\n\n var width = factor * vp.w + 'px';\n var height = factor * vp.h + 'px';\n\n if (this._target.style.width !== width || this._target.style.height !== height) {\n this._target.style.width = width;\n this._target.style.height = height;\n }\n }\n }, {\n key: \"_setFillColor\",\n value: function _setFillColor(color) {\n var newStyle = 'rgb(' + color[0] + ',' + color[1] + ',' + color[2] + ')';\n\n if (newStyle !== this._prevDrawStyle) {\n this._drawCtx.fillStyle = newStyle;\n this._prevDrawStyle = newStyle;\n }\n }\n }, {\n key: \"_renderQPush\",\n value: function _renderQPush(action) {\n this._renderQ.push(action);\n\n if (this._renderQ.length === 1) {\n // If this can be rendered immediately it will be, otherwise\n // the scanner will wait for the relevant event\n this._scanRenderQ();\n }\n }\n }, {\n key: \"_resumeRenderQ\",\n value: function _resumeRenderQ() {\n // \"this\" is the object that is ready, not the\n // display object\n this.removeEventListener('load', this._noVNCDisplay._resumeRenderQ);\n\n this._noVNCDisplay._scanRenderQ();\n }\n }, {\n key: \"_scanRenderQ\",\n value: function _scanRenderQ() {\n var ready = true;\n\n while (ready && this._renderQ.length > 0) {\n var a = this._renderQ[0];\n\n switch (a.type) {\n case 'flip':\n this.flip(true);\n break;\n\n case 'copy':\n this.copyImage(a.oldX, a.oldY, a.x, a.y, a.width, a.height, true);\n break;\n\n case 'fill':\n this.fillRect(a.x, a.y, a.width, a.height, a.color, true);\n break;\n\n case 'blit':\n this.blitImage(a.x, a.y, a.width, a.height, a.data, 0, true);\n break;\n\n case 'img':\n if (a.img.complete) {\n if (a.img.width !== a.width || a.img.height !== a.height) {\n Log.Error(\"Decoded image has incorrect dimensions. Got \" + a.img.width + \"x\" + a.img.height + \". Expected \" + a.width + \"x\" + a.height + \".\");\n return;\n }\n\n this.drawImage(a.img, a.x, a.y);\n } else {\n a.img._noVNCDisplay = this;\n a.img.addEventListener('load', this._resumeRenderQ); // We need to wait for this image to 'load'\n // to keep things in-order\n\n ready = false;\n }\n\n break;\n }\n\n if (ready) {\n this._renderQ.shift();\n }\n }\n\n if (this._renderQ.length === 0 && this._flushing) {\n this._flushing = false;\n this.onflush();\n }\n }\n }]);\n\n return Display;\n}();\n\nexports[\"default\"] = Display;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.encodingName = encodingName;\nexports.encodings = void 0;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\nvar encodings = {\n encodingRaw: 0,\n encodingCopyRect: 1,\n encodingRRE: 2,\n encodingHextile: 5,\n encodingTight: 7,\n encodingTightPNG: -260,\n pseudoEncodingQualityLevel9: -23,\n pseudoEncodingQualityLevel0: -32,\n pseudoEncodingDesktopSize: -223,\n pseudoEncodingLastRect: -224,\n pseudoEncodingCursor: -239,\n pseudoEncodingQEMUExtendedKeyEvent: -258,\n pseudoEncodingDesktopName: -307,\n pseudoEncodingExtendedDesktopSize: -308,\n pseudoEncodingXvp: -309,\n pseudoEncodingFence: -312,\n pseudoEncodingContinuousUpdates: -313,\n pseudoEncodingCompressLevel9: -247,\n pseudoEncodingCompressLevel0: -256,\n pseudoEncodingVMwareCursor: 0x574d5664,\n pseudoEncodingExtendedClipboard: 0xc0a1e5ce\n};\nexports.encodings = encodings;\n\nfunction encodingName(num) {\n switch (num) {\n case encodings.encodingRaw:\n return \"Raw\";\n\n case encodings.encodingCopyRect:\n return \"CopyRect\";\n\n case encodings.encodingRRE:\n return \"RRE\";\n\n case encodings.encodingHextile:\n return \"Hextile\";\n\n case encodings.encodingTight:\n return \"Tight\";\n\n case encodings.encodingTightPNG:\n return \"TightPNG\";\n\n default:\n return \"[unknown encoding \" + num + \"]\";\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _inflate2 = require(\"../lib/vendor/pako/lib/zlib/inflate.js\");\n\nvar _zstream = _interopRequireDefault(require(\"../lib/vendor/pako/lib/zlib/zstream.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Inflate = /*#__PURE__*/function () {\n function Inflate() {\n _classCallCheck(this, Inflate);\n\n this.strm = new _zstream[\"default\"]();\n this.chunkSize = 1024 * 10 * 10;\n this.strm.output = new Uint8Array(this.chunkSize);\n this.windowBits = 5;\n (0, _inflate2.inflateInit)(this.strm, this.windowBits);\n }\n\n _createClass(Inflate, [{\n key: \"setInput\",\n value: function setInput(data) {\n if (!data) {\n //FIXME: flush remaining data.\n\n /* eslint-disable camelcase */\n this.strm.input = null;\n this.strm.avail_in = 0;\n this.strm.next_in = 0;\n } else {\n this.strm.input = data;\n this.strm.avail_in = this.strm.input.length;\n this.strm.next_in = 0;\n /* eslint-enable camelcase */\n }\n }\n }, {\n key: \"inflate\",\n value: function inflate(expected) {\n // resize our output buffer if it's too small\n // (we could just use multiple chunks, but that would cause an extra\n // allocation each time to flatten the chunks)\n if (expected > this.chunkSize) {\n this.chunkSize = expected;\n this.strm.output = new Uint8Array(this.chunkSize);\n }\n /* eslint-disable camelcase */\n\n\n this.strm.next_out = 0;\n this.strm.avail_out = expected;\n /* eslint-enable camelcase */\n\n var ret = (0, _inflate2.inflate)(this.strm, 0); // Flush argument not used.\n\n if (ret < 0) {\n throw new Error(\"zlib inflate failed\");\n }\n\n if (this.strm.next_out != expected) {\n throw new Error(\"Incomplete zlib block\");\n }\n\n return new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n (0, _inflate2.inflateReset)(this.strm);\n }\n }]);\n\n return Inflate;\n}();\n\nexports[\"default\"] = Inflate;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _keysym = _interopRequireDefault(require(\"./keysym.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2018 The noVNC Authors\n * Licensed under MPL 2.0 or any later version (see LICENSE.txt)\n */\n\n/*\n * Mapping between HTML key values and VNC/X11 keysyms for \"special\"\n * keys that cannot be handled via their Unicode codepoint.\n *\n * See https://www.w3.org/TR/uievents-key/ for possible values.\n */\nvar DOMKeyTable = {};\n\nfunction addStandard(key, standard) {\n if (standard === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (key in DOMKeyTable) throw new Error(\"Duplicate entry for key \\\"\" + key + \"\\\"\");\n DOMKeyTable[key] = [standard, standard, standard, standard];\n}\n\nfunction addLeftRight(key, left, right) {\n if (left === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (right === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (key in DOMKeyTable) throw new Error(\"Duplicate entry for key \\\"\" + key + \"\\\"\");\n DOMKeyTable[key] = [left, left, right, left];\n}\n\nfunction addNumpad(key, standard, numpad) {\n if (standard === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (numpad === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (key in DOMKeyTable) throw new Error(\"Duplicate entry for key \\\"\" + key + \"\\\"\");\n DOMKeyTable[key] = [standard, standard, standard, numpad];\n} // 3.2. Modifier Keys\n\n\naddLeftRight(\"Alt\", _keysym[\"default\"].XK_Alt_L, _keysym[\"default\"].XK_Alt_R);\naddStandard(\"AltGraph\", _keysym[\"default\"].XK_ISO_Level3_Shift);\naddStandard(\"CapsLock\", _keysym[\"default\"].XK_Caps_Lock);\naddLeftRight(\"Control\", _keysym[\"default\"].XK_Control_L, _keysym[\"default\"].XK_Control_R); // - Fn\n// - FnLock\n\naddLeftRight(\"Meta\", _keysym[\"default\"].XK_Super_L, _keysym[\"default\"].XK_Super_R);\naddStandard(\"NumLock\", _keysym[\"default\"].XK_Num_Lock);\naddStandard(\"ScrollLock\", _keysym[\"default\"].XK_Scroll_Lock);\naddLeftRight(\"Shift\", _keysym[\"default\"].XK_Shift_L, _keysym[\"default\"].XK_Shift_R); // - Symbol\n// - SymbolLock\n// - Hyper\n// - Super\n// 3.3. Whitespace Keys\n\naddNumpad(\"Enter\", _keysym[\"default\"].XK_Return, _keysym[\"default\"].XK_KP_Enter);\naddStandard(\"Tab\", _keysym[\"default\"].XK_Tab);\naddNumpad(\" \", _keysym[\"default\"].XK_space, _keysym[\"default\"].XK_KP_Space); // 3.4. Navigation Keys\n\naddNumpad(\"ArrowDown\", _keysym[\"default\"].XK_Down, _keysym[\"default\"].XK_KP_Down);\naddNumpad(\"ArrowLeft\", _keysym[\"default\"].XK_Left, _keysym[\"default\"].XK_KP_Left);\naddNumpad(\"ArrowRight\", _keysym[\"default\"].XK_Right, _keysym[\"default\"].XK_KP_Right);\naddNumpad(\"ArrowUp\", _keysym[\"default\"].XK_Up, _keysym[\"default\"].XK_KP_Up);\naddNumpad(\"End\", _keysym[\"default\"].XK_End, _keysym[\"default\"].XK_KP_End);\naddNumpad(\"Home\", _keysym[\"default\"].XK_Home, _keysym[\"default\"].XK_KP_Home);\naddNumpad(\"PageDown\", _keysym[\"default\"].XK_Next, _keysym[\"default\"].XK_KP_Next);\naddNumpad(\"PageUp\", _keysym[\"default\"].XK_Prior, _keysym[\"default\"].XK_KP_Prior); // 3.5. Editing Keys\n\naddStandard(\"Backspace\", _keysym[\"default\"].XK_BackSpace); // Browsers send \"Clear\" for the numpad 5 without NumLock because\n// Windows uses VK_Clear for that key. But Unix expects KP_Begin for\n// that scenario.\n\naddNumpad(\"Clear\", _keysym[\"default\"].XK_Clear, _keysym[\"default\"].XK_KP_Begin);\naddStandard(\"Copy\", _keysym[\"default\"].XF86XK_Copy); // - CrSel\n\naddStandard(\"Cut\", _keysym[\"default\"].XF86XK_Cut);\naddNumpad(\"Delete\", _keysym[\"default\"].XK_Delete, _keysym[\"default\"].XK_KP_Delete); // - EraseEof\n// - ExSel\n\naddNumpad(\"Insert\", _keysym[\"default\"].XK_Insert, _keysym[\"default\"].XK_KP_Insert);\naddStandard(\"Paste\", _keysym[\"default\"].XF86XK_Paste);\naddStandard(\"Redo\", _keysym[\"default\"].XK_Redo);\naddStandard(\"Undo\", _keysym[\"default\"].XK_Undo); // 3.6. UI Keys\n// - Accept\n// - Again (could just be XK_Redo)\n// - Attn\n\naddStandard(\"Cancel\", _keysym[\"default\"].XK_Cancel);\naddStandard(\"ContextMenu\", _keysym[\"default\"].XK_Menu);\naddStandard(\"Escape\", _keysym[\"default\"].XK_Escape);\naddStandard(\"Execute\", _keysym[\"default\"].XK_Execute);\naddStandard(\"Find\", _keysym[\"default\"].XK_Find);\naddStandard(\"Help\", _keysym[\"default\"].XK_Help);\naddStandard(\"Pause\", _keysym[\"default\"].XK_Pause); // - Play\n// - Props\n\naddStandard(\"Select\", _keysym[\"default\"].XK_Select);\naddStandard(\"ZoomIn\", _keysym[\"default\"].XF86XK_ZoomIn);\naddStandard(\"ZoomOut\", _keysym[\"default\"].XF86XK_ZoomOut); // 3.7. Device Keys\n\naddStandard(\"BrightnessDown\", _keysym[\"default\"].XF86XK_MonBrightnessDown);\naddStandard(\"BrightnessUp\", _keysym[\"default\"].XF86XK_MonBrightnessUp);\naddStandard(\"Eject\", _keysym[\"default\"].XF86XK_Eject);\naddStandard(\"LogOff\", _keysym[\"default\"].XF86XK_LogOff);\naddStandard(\"Power\", _keysym[\"default\"].XF86XK_PowerOff);\naddStandard(\"PowerOff\", _keysym[\"default\"].XF86XK_PowerDown);\naddStandard(\"PrintScreen\", _keysym[\"default\"].XK_Print);\naddStandard(\"Hibernate\", _keysym[\"default\"].XF86XK_Hibernate);\naddStandard(\"Standby\", _keysym[\"default\"].XF86XK_Standby);\naddStandard(\"WakeUp\", _keysym[\"default\"].XF86XK_WakeUp); // 3.8. IME and Composition Keys\n\naddStandard(\"AllCandidates\", _keysym[\"default\"].XK_MultipleCandidate);\naddStandard(\"Alphanumeric\", _keysym[\"default\"].XK_Eisu_toggle);\naddStandard(\"CodeInput\", _keysym[\"default\"].XK_Codeinput);\naddStandard(\"Compose\", _keysym[\"default\"].XK_Multi_key);\naddStandard(\"Convert\", _keysym[\"default\"].XK_Henkan); // - Dead\n// - FinalMode\n\naddStandard(\"GroupFirst\", _keysym[\"default\"].XK_ISO_First_Group);\naddStandard(\"GroupLast\", _keysym[\"default\"].XK_ISO_Last_Group);\naddStandard(\"GroupNext\", _keysym[\"default\"].XK_ISO_Next_Group);\naddStandard(\"GroupPrevious\", _keysym[\"default\"].XK_ISO_Prev_Group); // - ModeChange (XK_Mode_switch is often used for AltGr)\n// - NextCandidate\n\naddStandard(\"NonConvert\", _keysym[\"default\"].XK_Muhenkan);\naddStandard(\"PreviousCandidate\", _keysym[\"default\"].XK_PreviousCandidate); // - Process\n\naddStandard(\"SingleCandidate\", _keysym[\"default\"].XK_SingleCandidate);\naddStandard(\"HangulMode\", _keysym[\"default\"].XK_Hangul);\naddStandard(\"HanjaMode\", _keysym[\"default\"].XK_Hangul_Hanja);\naddStandard(\"JunjaMode\", _keysym[\"default\"].XK_Hangul_Jeonja);\naddStandard(\"Eisu\", _keysym[\"default\"].XK_Eisu_toggle);\naddStandard(\"Hankaku\", _keysym[\"default\"].XK_Hankaku);\naddStandard(\"Hiragana\", _keysym[\"default\"].XK_Hiragana);\naddStandard(\"HiraganaKatakana\", _keysym[\"default\"].XK_Hiragana_Katakana);\naddStandard(\"KanaMode\", _keysym[\"default\"].XK_Kana_Shift); // could also be _Kana_Lock\n\naddStandard(\"KanjiMode\", _keysym[\"default\"].XK_Kanji);\naddStandard(\"Katakana\", _keysym[\"default\"].XK_Katakana);\naddStandard(\"Romaji\", _keysym[\"default\"].XK_Romaji);\naddStandard(\"Zenkaku\", _keysym[\"default\"].XK_Zenkaku);\naddStandard(\"ZenkakuHankaku\", _keysym[\"default\"].XK_Zenkaku_Hankaku); // 3.9. General-Purpose Function Keys\n\naddStandard(\"F1\", _keysym[\"default\"].XK_F1);\naddStandard(\"F2\", _keysym[\"default\"].XK_F2);\naddStandard(\"F3\", _keysym[\"default\"].XK_F3);\naddStandard(\"F4\", _keysym[\"default\"].XK_F4);\naddStandard(\"F5\", _keysym[\"default\"].XK_F5);\naddStandard(\"F6\", _keysym[\"default\"].XK_F6);\naddStandard(\"F7\", _keysym[\"default\"].XK_F7);\naddStandard(\"F8\", _keysym[\"default\"].XK_F8);\naddStandard(\"F9\", _keysym[\"default\"].XK_F9);\naddStandard(\"F10\", _keysym[\"default\"].XK_F10);\naddStandard(\"F11\", _keysym[\"default\"].XK_F11);\naddStandard(\"F12\", _keysym[\"default\"].XK_F12);\naddStandard(\"F13\", _keysym[\"default\"].XK_F13);\naddStandard(\"F14\", _keysym[\"default\"].XK_F14);\naddStandard(\"F15\", _keysym[\"default\"].XK_F15);\naddStandard(\"F16\", _keysym[\"default\"].XK_F16);\naddStandard(\"F17\", _keysym[\"default\"].XK_F17);\naddStandard(\"F18\", _keysym[\"default\"].XK_F18);\naddStandard(\"F19\", _keysym[\"default\"].XK_F19);\naddStandard(\"F20\", _keysym[\"default\"].XK_F20);\naddStandard(\"F21\", _keysym[\"default\"].XK_F21);\naddStandard(\"F22\", _keysym[\"default\"].XK_F22);\naddStandard(\"F23\", _keysym[\"default\"].XK_F23);\naddStandard(\"F24\", _keysym[\"default\"].XK_F24);\naddStandard(\"F25\", _keysym[\"default\"].XK_F25);\naddStandard(\"F26\", _keysym[\"default\"].XK_F26);\naddStandard(\"F27\", _keysym[\"default\"].XK_F27);\naddStandard(\"F28\", _keysym[\"default\"].XK_F28);\naddStandard(\"F29\", _keysym[\"default\"].XK_F29);\naddStandard(\"F30\", _keysym[\"default\"].XK_F30);\naddStandard(\"F31\", _keysym[\"default\"].XK_F31);\naddStandard(\"F32\", _keysym[\"default\"].XK_F32);\naddStandard(\"F33\", _keysym[\"default\"].XK_F33);\naddStandard(\"F34\", _keysym[\"default\"].XK_F34);\naddStandard(\"F35\", _keysym[\"default\"].XK_F35); // - Soft1...\n// 3.10. Multimedia Keys\n// - ChannelDown\n// - ChannelUp\n\naddStandard(\"Close\", _keysym[\"default\"].XF86XK_Close);\naddStandard(\"MailForward\", _keysym[\"default\"].XF86XK_MailForward);\naddStandard(\"MailReply\", _keysym[\"default\"].XF86XK_Reply);\naddStandard(\"MailSend\", _keysym[\"default\"].XF86XK_Send); // - MediaClose\n\naddStandard(\"MediaFastForward\", _keysym[\"default\"].XF86XK_AudioForward);\naddStandard(\"MediaPause\", _keysym[\"default\"].XF86XK_AudioPause);\naddStandard(\"MediaPlay\", _keysym[\"default\"].XF86XK_AudioPlay); // - MediaPlayPause\n\naddStandard(\"MediaRecord\", _keysym[\"default\"].XF86XK_AudioRecord);\naddStandard(\"MediaRewind\", _keysym[\"default\"].XF86XK_AudioRewind);\naddStandard(\"MediaStop\", _keysym[\"default\"].XF86XK_AudioStop);\naddStandard(\"MediaTrackNext\", _keysym[\"default\"].XF86XK_AudioNext);\naddStandard(\"MediaTrackPrevious\", _keysym[\"default\"].XF86XK_AudioPrev);\naddStandard(\"New\", _keysym[\"default\"].XF86XK_New);\naddStandard(\"Open\", _keysym[\"default\"].XF86XK_Open);\naddStandard(\"Print\", _keysym[\"default\"].XK_Print);\naddStandard(\"Save\", _keysym[\"default\"].XF86XK_Save);\naddStandard(\"SpellCheck\", _keysym[\"default\"].XF86XK_Spell); // 3.11. Multimedia Numpad Keys\n// - Key11\n// - Key12\n// 3.12. Audio Keys\n// - AudioBalanceLeft\n// - AudioBalanceRight\n// - AudioBassBoostDown\n// - AudioBassBoostToggle\n// - AudioBassBoostUp\n// - AudioFaderFront\n// - AudioFaderRear\n// - AudioSurroundModeNext\n// - AudioTrebleDown\n// - AudioTrebleUp\n\naddStandard(\"AudioVolumeDown\", _keysym[\"default\"].XF86XK_AudioLowerVolume);\naddStandard(\"AudioVolumeUp\", _keysym[\"default\"].XF86XK_AudioRaiseVolume);\naddStandard(\"AudioVolumeMute\", _keysym[\"default\"].XF86XK_AudioMute); // - MicrophoneToggle\n// - MicrophoneVolumeDown\n// - MicrophoneVolumeUp\n\naddStandard(\"MicrophoneVolumeMute\", _keysym[\"default\"].XF86XK_AudioMicMute); // 3.13. Speech Keys\n// - SpeechCorrectionList\n// - SpeechInputToggle\n// 3.14. Application Keys\n\naddStandard(\"LaunchApplication1\", _keysym[\"default\"].XF86XK_MyComputer);\naddStandard(\"LaunchApplication2\", _keysym[\"default\"].XF86XK_Calculator);\naddStandard(\"LaunchCalendar\", _keysym[\"default\"].XF86XK_Calendar); // - LaunchContacts\n\naddStandard(\"LaunchMail\", _keysym[\"default\"].XF86XK_Mail);\naddStandard(\"LaunchMediaPlayer\", _keysym[\"default\"].XF86XK_AudioMedia);\naddStandard(\"LaunchMusicPlayer\", _keysym[\"default\"].XF86XK_Music);\naddStandard(\"LaunchPhone\", _keysym[\"default\"].XF86XK_Phone);\naddStandard(\"LaunchScreenSaver\", _keysym[\"default\"].XF86XK_ScreenSaver);\naddStandard(\"LaunchSpreadsheet\", _keysym[\"default\"].XF86XK_Excel);\naddStandard(\"LaunchWebBrowser\", _keysym[\"default\"].XF86XK_WWW);\naddStandard(\"LaunchWebCam\", _keysym[\"default\"].XF86XK_WebCam);\naddStandard(\"LaunchWordProcessor\", _keysym[\"default\"].XF86XK_Word); // 3.15. Browser Keys\n\naddStandard(\"BrowserBack\", _keysym[\"default\"].XF86XK_Back);\naddStandard(\"BrowserFavorites\", _keysym[\"default\"].XF86XK_Favorites);\naddStandard(\"BrowserForward\", _keysym[\"default\"].XF86XK_Forward);\naddStandard(\"BrowserHome\", _keysym[\"default\"].XF86XK_HomePage);\naddStandard(\"BrowserRefresh\", _keysym[\"default\"].XF86XK_Refresh);\naddStandard(\"BrowserSearch\", _keysym[\"default\"].XF86XK_Search);\naddStandard(\"BrowserStop\", _keysym[\"default\"].XF86XK_Stop); // 3.16. Mobile Phone Keys\n// - A whole bunch...\n// 3.17. TV Keys\n// - A whole bunch...\n// 3.18. Media Controller Keys\n// - A whole bunch...\n\naddStandard(\"Dimmer\", _keysym[\"default\"].XF86XK_BrightnessAdjust);\naddStandard(\"MediaAudioTrack\", _keysym[\"default\"].XF86XK_AudioCycleTrack);\naddStandard(\"RandomToggle\", _keysym[\"default\"].XF86XK_AudioRandomPlay);\naddStandard(\"SplitScreenToggle\", _keysym[\"default\"].XF86XK_SplitScreen);\naddStandard(\"Subtitle\", _keysym[\"default\"].XF86XK_Subtitle);\naddStandard(\"VideoModeNext\", _keysym[\"default\"].XF86XK_Next_VMode); // Extra: Numpad\n\naddNumpad(\"=\", _keysym[\"default\"].XK_equal, _keysym[\"default\"].XK_KP_Equal);\naddNumpad(\"+\", _keysym[\"default\"].XK_plus, _keysym[\"default\"].XK_KP_Add);\naddNumpad(\"-\", _keysym[\"default\"].XK_minus, _keysym[\"default\"].XK_KP_Subtract);\naddNumpad(\"*\", _keysym[\"default\"].XK_asterisk, _keysym[\"default\"].XK_KP_Multiply);\naddNumpad(\"/\", _keysym[\"default\"].XK_slash, _keysym[\"default\"].XK_KP_Divide);\naddNumpad(\".\", _keysym[\"default\"].XK_period, _keysym[\"default\"].XK_KP_Decimal);\naddNumpad(\",\", _keysym[\"default\"].XK_comma, _keysym[\"default\"].XK_KP_Separator);\naddNumpad(\"0\", _keysym[\"default\"].XK_0, _keysym[\"default\"].XK_KP_0);\naddNumpad(\"1\", _keysym[\"default\"].XK_1, _keysym[\"default\"].XK_KP_1);\naddNumpad(\"2\", _keysym[\"default\"].XK_2, _keysym[\"default\"].XK_KP_2);\naddNumpad(\"3\", _keysym[\"default\"].XK_3, _keysym[\"default\"].XK_KP_3);\naddNumpad(\"4\", _keysym[\"default\"].XK_4, _keysym[\"default\"].XK_KP_4);\naddNumpad(\"5\", _keysym[\"default\"].XK_5, _keysym[\"default\"].XK_KP_5);\naddNumpad(\"6\", _keysym[\"default\"].XK_6, _keysym[\"default\"].XK_KP_6);\naddNumpad(\"7\", _keysym[\"default\"].XK_7, _keysym[\"default\"].XK_KP_7);\naddNumpad(\"8\", _keysym[\"default\"].XK_8, _keysym[\"default\"].XK_KP_8);\naddNumpad(\"9\", _keysym[\"default\"].XK_9, _keysym[\"default\"].XK_KP_9);\nvar _default = DOMKeyTable;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2018 The noVNC Authors\n * Licensed under MPL 2.0 or any later version (see LICENSE.txt)\n */\n\n/*\n * Fallback mapping between HTML key codes (physical keys) and\n * HTML key values. This only works for keys that don't vary\n * between layouts. We also omit those who manage fine by mapping the\n * Unicode representation.\n *\n * See https://www.w3.org/TR/uievents-code/ for possible codes.\n * See https://www.w3.org/TR/uievents-key/ for possible values.\n */\n\n/* eslint-disable key-spacing */\nvar _default = {\n // 3.1.1.1. Writing System Keys\n 'Backspace': 'Backspace',\n // 3.1.1.2. Functional Keys\n 'AltLeft': 'Alt',\n 'AltRight': 'Alt',\n // This could also be 'AltGraph'\n 'CapsLock': 'CapsLock',\n 'ContextMenu': 'ContextMenu',\n 'ControlLeft': 'Control',\n 'ControlRight': 'Control',\n 'Enter': 'Enter',\n 'MetaLeft': 'Meta',\n 'MetaRight': 'Meta',\n 'ShiftLeft': 'Shift',\n 'ShiftRight': 'Shift',\n 'Tab': 'Tab',\n // FIXME: Japanese/Korean keys\n // 3.1.2. Control Pad Section\n 'Delete': 'Delete',\n 'End': 'End',\n 'Help': 'Help',\n 'Home': 'Home',\n 'Insert': 'Insert',\n 'PageDown': 'PageDown',\n 'PageUp': 'PageUp',\n // 3.1.3. Arrow Pad Section\n 'ArrowDown': 'ArrowDown',\n 'ArrowLeft': 'ArrowLeft',\n 'ArrowRight': 'ArrowRight',\n 'ArrowUp': 'ArrowUp',\n // 3.1.4. Numpad Section\n 'NumLock': 'NumLock',\n 'NumpadBackspace': 'Backspace',\n 'NumpadClear': 'Clear',\n // 3.1.5. Function Section\n 'Escape': 'Escape',\n 'F1': 'F1',\n 'F2': 'F2',\n 'F3': 'F3',\n 'F4': 'F4',\n 'F5': 'F5',\n 'F6': 'F6',\n 'F7': 'F7',\n 'F8': 'F8',\n 'F9': 'F9',\n 'F10': 'F10',\n 'F11': 'F11',\n 'F12': 'F12',\n 'F13': 'F13',\n 'F14': 'F14',\n 'F15': 'F15',\n 'F16': 'F16',\n 'F17': 'F17',\n 'F18': 'F18',\n 'F19': 'F19',\n 'F20': 'F20',\n 'F21': 'F21',\n 'F22': 'F22',\n 'F23': 'F23',\n 'F24': 'F24',\n 'F25': 'F25',\n 'F26': 'F26',\n 'F27': 'F27',\n 'F28': 'F28',\n 'F29': 'F29',\n 'F30': 'F30',\n 'F31': 'F31',\n 'F32': 'F32',\n 'F33': 'F33',\n 'F34': 'F34',\n 'F35': 'F35',\n 'PrintScreen': 'PrintScreen',\n 'ScrollLock': 'ScrollLock',\n 'Pause': 'Pause',\n // 3.1.6. Media Keys\n 'BrowserBack': 'BrowserBack',\n 'BrowserFavorites': 'BrowserFavorites',\n 'BrowserForward': 'BrowserForward',\n 'BrowserHome': 'BrowserHome',\n 'BrowserRefresh': 'BrowserRefresh',\n 'BrowserSearch': 'BrowserSearch',\n 'BrowserStop': 'BrowserStop',\n 'Eject': 'Eject',\n 'LaunchApp1': 'LaunchMyComputer',\n 'LaunchApp2': 'LaunchCalendar',\n 'LaunchMail': 'LaunchMail',\n 'MediaPlayPause': 'MediaPlay',\n 'MediaStop': 'MediaStop',\n 'MediaTrackNext': 'MediaTrackNext',\n 'MediaTrackPrevious': 'MediaTrackPrevious',\n 'Power': 'Power',\n 'Sleep': 'Sleep',\n 'AudioVolumeDown': 'AudioVolumeDown',\n 'AudioVolumeMute': 'AudioVolumeMute',\n 'AudioVolumeUp': 'AudioVolumeUp',\n 'WakeUp': 'WakeUp'\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2020 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\nvar GH_NOGESTURE = 0;\nvar GH_ONETAP = 1;\nvar GH_TWOTAP = 2;\nvar GH_THREETAP = 4;\nvar GH_DRAG = 8;\nvar GH_LONGPRESS = 16;\nvar GH_TWODRAG = 32;\nvar GH_PINCH = 64;\nvar GH_INITSTATE = 127;\nvar GH_MOVE_THRESHOLD = 50;\nvar GH_ANGLE_THRESHOLD = 90; // Degrees\n// Timeout when waiting for gestures (ms)\n\nvar GH_MULTITOUCH_TIMEOUT = 250; // Maximum time between press and release for a tap (ms)\n\nvar GH_TAP_TIMEOUT = 1000; // Timeout when waiting for longpress (ms)\n\nvar GH_LONGPRESS_TIMEOUT = 1000; // Timeout when waiting to decide between PINCH and TWODRAG (ms)\n\nvar GH_TWOTOUCH_TIMEOUT = 50;\n\nvar GestureHandler = /*#__PURE__*/function () {\n function GestureHandler() {\n _classCallCheck(this, GestureHandler);\n\n this._target = null;\n this._state = GH_INITSTATE;\n this._tracked = [];\n this._ignored = [];\n this._waitingRelease = false;\n this._releaseStart = 0.0;\n this._longpressTimeoutId = null;\n this._twoTouchTimeoutId = null;\n this._boundEventHandler = this._eventHandler.bind(this);\n }\n\n _createClass(GestureHandler, [{\n key: \"attach\",\n value: function attach(target) {\n this.detach();\n this._target = target;\n\n this._target.addEventListener('touchstart', this._boundEventHandler);\n\n this._target.addEventListener('touchmove', this._boundEventHandler);\n\n this._target.addEventListener('touchend', this._boundEventHandler);\n\n this._target.addEventListener('touchcancel', this._boundEventHandler);\n }\n }, {\n key: \"detach\",\n value: function detach() {\n if (!this._target) {\n return;\n }\n\n this._stopLongpressTimeout();\n\n this._stopTwoTouchTimeout();\n\n this._target.removeEventListener('touchstart', this._boundEventHandler);\n\n this._target.removeEventListener('touchmove', this._boundEventHandler);\n\n this._target.removeEventListener('touchend', this._boundEventHandler);\n\n this._target.removeEventListener('touchcancel', this._boundEventHandler);\n\n this._target = null;\n }\n }, {\n key: \"_eventHandler\",\n value: function _eventHandler(e) {\n var fn;\n e.stopPropagation();\n e.preventDefault();\n\n switch (e.type) {\n case 'touchstart':\n fn = this._touchStart;\n break;\n\n case 'touchmove':\n fn = this._touchMove;\n break;\n\n case 'touchend':\n case 'touchcancel':\n fn = this._touchEnd;\n break;\n }\n\n for (var i = 0; i < e.changedTouches.length; i++) {\n var touch = e.changedTouches[i];\n fn.call(this, touch.identifier, touch.clientX, touch.clientY);\n }\n }\n }, {\n key: \"_touchStart\",\n value: function _touchStart(id, x, y) {\n // Ignore any new touches if there is already an active gesture,\n // or we're in a cleanup state\n if (this._hasDetectedGesture() || this._state === GH_NOGESTURE) {\n this._ignored.push(id);\n\n return;\n } // Did it take too long between touches that we should no longer\n // consider this a single gesture?\n\n\n if (this._tracked.length > 0 && Date.now() - this._tracked[0].started > GH_MULTITOUCH_TIMEOUT) {\n this._state = GH_NOGESTURE;\n\n this._ignored.push(id);\n\n return;\n } // If we're waiting for fingers to release then we should no longer\n // recognize new touches\n\n\n if (this._waitingRelease) {\n this._state = GH_NOGESTURE;\n\n this._ignored.push(id);\n\n return;\n }\n\n this._tracked.push({\n id: id,\n started: Date.now(),\n active: true,\n firstX: x,\n firstY: y,\n lastX: x,\n lastY: y,\n angle: 0\n });\n\n switch (this._tracked.length) {\n case 1:\n this._startLongpressTimeout();\n\n break;\n\n case 2:\n this._state &= ~(GH_ONETAP | GH_DRAG | GH_LONGPRESS);\n\n this._stopLongpressTimeout();\n\n break;\n\n case 3:\n this._state &= ~(GH_TWOTAP | GH_TWODRAG | GH_PINCH);\n break;\n\n default:\n this._state = GH_NOGESTURE;\n }\n }\n }, {\n key: \"_touchMove\",\n value: function _touchMove(id, x, y) {\n var touch = this._tracked.find(function (t) {\n return t.id === id;\n }); // If this is an update for a touch we're not tracking, ignore it\n\n\n if (touch === undefined) {\n return;\n } // Update the touches last position with the event coordinates\n\n\n touch.lastX = x;\n touch.lastY = y;\n var deltaX = x - touch.firstX;\n var deltaY = y - touch.firstY; // Update angle when the touch has moved\n\n if (touch.firstX !== touch.lastX || touch.firstY !== touch.lastY) {\n touch.angle = Math.atan2(deltaY, deltaX) * 180 / Math.PI;\n }\n\n if (!this._hasDetectedGesture()) {\n // Ignore moves smaller than the minimum threshold\n if (Math.hypot(deltaX, deltaY) < GH_MOVE_THRESHOLD) {\n return;\n } // Can't be a tap or long press as we've seen movement\n\n\n this._state &= ~(GH_ONETAP | GH_TWOTAP | GH_THREETAP | GH_LONGPRESS);\n\n this._stopLongpressTimeout();\n\n if (this._tracked.length !== 1) {\n this._state &= ~GH_DRAG;\n }\n\n if (this._tracked.length !== 2) {\n this._state &= ~(GH_TWODRAG | GH_PINCH);\n } // We need to figure out which of our different two touch gestures\n // this might be\n\n\n if (this._tracked.length === 2) {\n // The other touch is the one where the id doesn't match\n var prevTouch = this._tracked.find(function (t) {\n return t.id !== id;\n }); // How far the previous touch point has moved since start\n\n\n var prevDeltaMove = Math.hypot(prevTouch.firstX - prevTouch.lastX, prevTouch.firstY - prevTouch.lastY); // We know that the current touch moved far enough,\n // but unless both touches moved further than their\n // threshold we don't want to disqualify any gestures\n\n if (prevDeltaMove > GH_MOVE_THRESHOLD) {\n // The angle difference between the direction of the touch points\n var deltaAngle = Math.abs(touch.angle - prevTouch.angle);\n deltaAngle = Math.abs((deltaAngle + 180) % 360 - 180); // PINCH or TWODRAG can be eliminated depending on the angle\n\n if (deltaAngle > GH_ANGLE_THRESHOLD) {\n this._state &= ~GH_TWODRAG;\n } else {\n this._state &= ~GH_PINCH;\n }\n\n if (this._isTwoTouchTimeoutRunning()) {\n this._stopTwoTouchTimeout();\n }\n } else if (!this._isTwoTouchTimeoutRunning()) {\n // We can't determine the gesture right now, let's\n // wait and see if more events are on their way\n this._startTwoTouchTimeout();\n }\n }\n\n if (!this._hasDetectedGesture()) {\n return;\n }\n\n this._pushEvent('gesturestart');\n }\n\n this._pushEvent('gesturemove');\n }\n }, {\n key: \"_touchEnd\",\n value: function _touchEnd(id, x, y) {\n // Check if this is an ignored touch\n if (this._ignored.indexOf(id) !== -1) {\n // Remove this touch from ignored\n this._ignored.splice(this._ignored.indexOf(id), 1); // And reset the state if there are no more touches\n\n\n if (this._ignored.length === 0 && this._tracked.length === 0) {\n this._state = GH_INITSTATE;\n this._waitingRelease = false;\n }\n\n return;\n } // We got a touchend before the timer triggered,\n // this cannot result in a gesture anymore.\n\n\n if (!this._hasDetectedGesture() && this._isTwoTouchTimeoutRunning()) {\n this._stopTwoTouchTimeout();\n\n this._state = GH_NOGESTURE;\n } // Some gestures don't trigger until a touch is released\n\n\n if (!this._hasDetectedGesture()) {\n // Can't be a gesture that relies on movement\n this._state &= ~(GH_DRAG | GH_TWODRAG | GH_PINCH); // Or something that relies on more time\n\n this._state &= ~GH_LONGPRESS;\n\n this._stopLongpressTimeout();\n\n if (!this._waitingRelease) {\n this._releaseStart = Date.now();\n this._waitingRelease = true; // Can't be a tap that requires more touches than we current have\n\n switch (this._tracked.length) {\n case 1:\n this._state &= ~(GH_TWOTAP | GH_THREETAP);\n break;\n\n case 2:\n this._state &= ~(GH_ONETAP | GH_THREETAP);\n break;\n }\n }\n } // Waiting for all touches to release? (i.e. some tap)\n\n\n if (this._waitingRelease) {\n // Were all touches released at roughly the same time?\n if (Date.now() - this._releaseStart > GH_MULTITOUCH_TIMEOUT) {\n this._state = GH_NOGESTURE;\n } // Did too long time pass between press and release?\n\n\n if (this._tracked.some(function (t) {\n return Date.now() - t.started > GH_TAP_TIMEOUT;\n })) {\n this._state = GH_NOGESTURE;\n }\n\n var touch = this._tracked.find(function (t) {\n return t.id === id;\n });\n\n touch.active = false; // Are we still waiting for more releases?\n\n if (this._hasDetectedGesture()) {\n this._pushEvent('gesturestart');\n } else {\n // Have we reached a dead end?\n if (this._state !== GH_NOGESTURE) {\n return;\n }\n }\n }\n\n if (this._hasDetectedGesture()) {\n this._pushEvent('gestureend');\n } // Ignore any remaining touches until they are ended\n\n\n for (var i = 0; i < this._tracked.length; i++) {\n if (this._tracked[i].active) {\n this._ignored.push(this._tracked[i].id);\n }\n }\n\n this._tracked = [];\n this._state = GH_NOGESTURE; // Remove this touch from ignored if it's in there\n\n if (this._ignored.indexOf(id) !== -1) {\n this._ignored.splice(this._ignored.indexOf(id), 1);\n } // We reset the state if ignored is empty\n\n\n if (this._ignored.length === 0) {\n this._state = GH_INITSTATE;\n this._waitingRelease = false;\n }\n }\n }, {\n key: \"_hasDetectedGesture\",\n value: function _hasDetectedGesture() {\n if (this._state === GH_NOGESTURE) {\n return false;\n } // Check to see if the bitmask value is a power of 2\n // (i.e. only one bit set). If it is, we have a state.\n\n\n if (this._state & this._state - 1) {\n return false;\n } // For taps we also need to have all touches released\n // before we've fully detected the gesture\n\n\n if (this._state & (GH_ONETAP | GH_TWOTAP | GH_THREETAP)) {\n if (this._tracked.some(function (t) {\n return t.active;\n })) {\n return false;\n }\n }\n\n return true;\n }\n }, {\n key: \"_startLongpressTimeout\",\n value: function _startLongpressTimeout() {\n var _this = this;\n\n this._stopLongpressTimeout();\n\n this._longpressTimeoutId = setTimeout(function () {\n return _this._longpressTimeout();\n }, GH_LONGPRESS_TIMEOUT);\n }\n }, {\n key: \"_stopLongpressTimeout\",\n value: function _stopLongpressTimeout() {\n clearTimeout(this._longpressTimeoutId);\n this._longpressTimeoutId = null;\n }\n }, {\n key: \"_longpressTimeout\",\n value: function _longpressTimeout() {\n if (this._hasDetectedGesture()) {\n throw new Error(\"A longpress gesture failed, conflict with a different gesture\");\n }\n\n this._state = GH_LONGPRESS;\n\n this._pushEvent('gesturestart');\n }\n }, {\n key: \"_startTwoTouchTimeout\",\n value: function _startTwoTouchTimeout() {\n var _this2 = this;\n\n this._stopTwoTouchTimeout();\n\n this._twoTouchTimeoutId = setTimeout(function () {\n return _this2._twoTouchTimeout();\n }, GH_TWOTOUCH_TIMEOUT);\n }\n }, {\n key: \"_stopTwoTouchTimeout\",\n value: function _stopTwoTouchTimeout() {\n clearTimeout(this._twoTouchTimeoutId);\n this._twoTouchTimeoutId = null;\n }\n }, {\n key: \"_isTwoTouchTimeoutRunning\",\n value: function _isTwoTouchTimeoutRunning() {\n return this._twoTouchTimeoutId !== null;\n }\n }, {\n key: \"_twoTouchTimeout\",\n value: function _twoTouchTimeout() {\n if (this._tracked.length === 0) {\n throw new Error(\"A pinch or two drag gesture failed, no tracked touches\");\n } // How far each touch point has moved since start\n\n\n var avgM = this._getAverageMovement();\n\n var avgMoveH = Math.abs(avgM.x);\n var avgMoveV = Math.abs(avgM.y); // The difference in the distance between where\n // the touch points started and where they are now\n\n var avgD = this._getAverageDistance();\n\n var deltaTouchDistance = Math.abs(Math.hypot(avgD.first.x, avgD.first.y) - Math.hypot(avgD.last.x, avgD.last.y));\n\n if (avgMoveV < deltaTouchDistance && avgMoveH < deltaTouchDistance) {\n this._state = GH_PINCH;\n } else {\n this._state = GH_TWODRAG;\n }\n\n this._pushEvent('gesturestart');\n\n this._pushEvent('gesturemove');\n }\n }, {\n key: \"_pushEvent\",\n value: function _pushEvent(type) {\n var detail = {\n type: this._stateToGesture(this._state)\n }; // For most gesture events the current (average) position is the\n // most useful\n\n var avg = this._getPosition();\n\n var pos = avg.last; // However we have a slight distance to detect gestures, so for the\n // first gesture event we want to use the first positions we saw\n\n if (type === 'gesturestart') {\n pos = avg.first;\n } // For these gestures, we always want the event coordinates\n // to be where the gesture began, not the current touch location.\n\n\n switch (this._state) {\n case GH_TWODRAG:\n case GH_PINCH:\n pos = avg.first;\n break;\n }\n\n detail['clientX'] = pos.x;\n detail['clientY'] = pos.y; // FIXME: other coordinates?\n // Some gestures also have a magnitude\n\n if (this._state === GH_PINCH) {\n var distance = this._getAverageDistance();\n\n if (type === 'gesturestart') {\n detail['magnitudeX'] = distance.first.x;\n detail['magnitudeY'] = distance.first.y;\n } else {\n detail['magnitudeX'] = distance.last.x;\n detail['magnitudeY'] = distance.last.y;\n }\n } else if (this._state === GH_TWODRAG) {\n if (type === 'gesturestart') {\n detail['magnitudeX'] = 0.0;\n detail['magnitudeY'] = 0.0;\n } else {\n var movement = this._getAverageMovement();\n\n detail['magnitudeX'] = movement.x;\n detail['magnitudeY'] = movement.y;\n }\n }\n\n var gev = new CustomEvent(type, {\n detail: detail\n });\n\n this._target.dispatchEvent(gev);\n }\n }, {\n key: \"_stateToGesture\",\n value: function _stateToGesture(state) {\n switch (state) {\n case GH_ONETAP:\n return 'onetap';\n\n case GH_TWOTAP:\n return 'twotap';\n\n case GH_THREETAP:\n return 'threetap';\n\n case GH_DRAG:\n return 'drag';\n\n case GH_LONGPRESS:\n return 'longpress';\n\n case GH_TWODRAG:\n return 'twodrag';\n\n case GH_PINCH:\n return 'pinch';\n }\n\n throw new Error(\"Unknown gesture state: \" + state);\n }\n }, {\n key: \"_getPosition\",\n value: function _getPosition() {\n if (this._tracked.length === 0) {\n throw new Error(\"Failed to get gesture position, no tracked touches\");\n }\n\n var size = this._tracked.length;\n var fx = 0,\n fy = 0,\n lx = 0,\n ly = 0;\n\n for (var i = 0; i < this._tracked.length; i++) {\n fx += this._tracked[i].firstX;\n fy += this._tracked[i].firstY;\n lx += this._tracked[i].lastX;\n ly += this._tracked[i].lastY;\n }\n\n return {\n first: {\n x: fx / size,\n y: fy / size\n },\n last: {\n x: lx / size,\n y: ly / size\n }\n };\n }\n }, {\n key: \"_getAverageMovement\",\n value: function _getAverageMovement() {\n if (this._tracked.length === 0) {\n throw new Error(\"Failed to get gesture movement, no tracked touches\");\n }\n\n var totalH, totalV;\n totalH = totalV = 0;\n var size = this._tracked.length;\n\n for (var i = 0; i < this._tracked.length; i++) {\n totalH += this._tracked[i].lastX - this._tracked[i].firstX;\n totalV += this._tracked[i].lastY - this._tracked[i].firstY;\n }\n\n return {\n x: totalH / size,\n y: totalV / size\n };\n }\n }, {\n key: \"_getAverageDistance\",\n value: function _getAverageDistance() {\n if (this._tracked.length === 0) {\n throw new Error(\"Failed to get gesture distance, no tracked touches\");\n } // Distance between the first and last tracked touches\n\n\n var first = this._tracked[0];\n var last = this._tracked[this._tracked.length - 1];\n var fdx = Math.abs(last.firstX - first.firstX);\n var fdy = Math.abs(last.firstY - first.firstY);\n var ldx = Math.abs(last.lastX - first.lastX);\n var ldy = Math.abs(last.lastY - first.lastY);\n return {\n first: {\n x: fdx,\n y: fdy\n },\n last: {\n x: ldx,\n y: ldy\n }\n };\n }\n }]);\n\n return GestureHandler;\n}();\n\nexports[\"default\"] = GestureHandler;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar Log = _interopRequireWildcard(require(\"../util/logging.js\"));\n\nvar _events = require(\"../util/events.js\");\n\nvar KeyboardUtil = _interopRequireWildcard(require(\"./util.js\"));\n\nvar _keysym = _interopRequireDefault(require(\"./keysym.js\"));\n\nvar browser = _interopRequireWildcard(require(\"../util/browser.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n//\n// Keyboard event handler\n//\nvar Keyboard = /*#__PURE__*/function () {\n function Keyboard(target) {\n _classCallCheck(this, Keyboard);\n\n this._target = target || null;\n this._keyDownList = {}; // List of depressed keys\n // (even if they are happy)\n\n this._altGrArmed = false; // Windows AltGr detection\n // keep these here so we can refer to them later\n\n this._eventHandlers = {\n 'keyup': this._handleKeyUp.bind(this),\n 'keydown': this._handleKeyDown.bind(this),\n 'blur': this._allKeysUp.bind(this)\n }; // ===== EVENT HANDLERS =====\n\n this.onkeyevent = function () {}; // Handler for key press/release\n\n } // ===== PRIVATE METHODS =====\n\n\n _createClass(Keyboard, [{\n key: \"_sendKeyEvent\",\n value: function _sendKeyEvent(keysym, code, down) {\n if (down) {\n this._keyDownList[code] = keysym;\n } else {\n // Do we really think this key is down?\n if (!(code in this._keyDownList)) {\n return;\n }\n\n delete this._keyDownList[code];\n }\n\n Log.Debug(\"onkeyevent \" + (down ? \"down\" : \"up\") + \", keysym: \" + keysym, \", code: \" + code);\n this.onkeyevent(keysym, code, down);\n }\n }, {\n key: \"_getKeyCode\",\n value: function _getKeyCode(e) {\n var code = KeyboardUtil.getKeycode(e);\n\n if (code !== 'Unidentified') {\n return code;\n } // Unstable, but we don't have anything else to go on\n\n\n if (e.keyCode) {\n // 229 is used for composition events\n if (e.keyCode !== 229) {\n return 'Platform' + e.keyCode;\n }\n } // A precursor to the final DOM3 standard. Unfortunately it\n // is not layout independent, so it is as bad as using keyCode\n\n\n if (e.keyIdentifier) {\n // Non-character key?\n if (e.keyIdentifier.substr(0, 2) !== 'U+') {\n return e.keyIdentifier;\n }\n\n var codepoint = parseInt(e.keyIdentifier.substr(2), 16);\n\n var _char = String.fromCharCode(codepoint).toUpperCase();\n\n return 'Platform' + _char.charCodeAt();\n }\n\n return 'Unidentified';\n }\n }, {\n key: \"_handleKeyDown\",\n value: function _handleKeyDown(e) {\n var code = this._getKeyCode(e);\n\n var keysym = KeyboardUtil.getKeysym(e); // Windows doesn't have a proper AltGr, but handles it using\n // fake Ctrl+Alt. However the remote end might not be Windows,\n // so we need to merge those in to a single AltGr event. We\n // detect this case by seeing the two key events directly after\n // each other with a very short time between them (<50ms).\n\n if (this._altGrArmed) {\n this._altGrArmed = false;\n clearTimeout(this._altGrTimeout);\n\n if (code === \"AltRight\" && e.timeStamp - this._altGrCtrlTime < 50) {\n // FIXME: We fail to detect this if either Ctrl key is\n // first manually pressed as Windows then no\n // longer sends the fake Ctrl down event. It\n // does however happily send real Ctrl events\n // even when AltGr is already down. Some\n // browsers detect this for us though and set the\n // key to \"AltGraph\".\n keysym = _keysym[\"default\"].XK_ISO_Level3_Shift;\n } else {\n this._sendKeyEvent(_keysym[\"default\"].XK_Control_L, \"ControlLeft\", true);\n }\n } // We cannot handle keys we cannot track, but we also need\n // to deal with virtual keyboards which omit key info\n\n\n if (code === 'Unidentified') {\n if (keysym) {\n // If it's a virtual keyboard then it should be\n // sufficient to just send press and release right\n // after each other\n this._sendKeyEvent(keysym, code, true);\n\n this._sendKeyEvent(keysym, code, false);\n }\n\n (0, _events.stopEvent)(e);\n return;\n } // Alt behaves more like AltGraph on macOS, so shuffle the\n // keys around a bit to make things more sane for the remote\n // server. This method is used by RealVNC and TigerVNC (and\n // possibly others).\n\n\n if (browser.isMac() || browser.isIOS()) {\n switch (keysym) {\n case _keysym[\"default\"].XK_Super_L:\n keysym = _keysym[\"default\"].XK_Alt_L;\n break;\n\n case _keysym[\"default\"].XK_Super_R:\n keysym = _keysym[\"default\"].XK_Super_L;\n break;\n\n case _keysym[\"default\"].XK_Alt_L:\n keysym = _keysym[\"default\"].XK_Mode_switch;\n break;\n\n case _keysym[\"default\"].XK_Alt_R:\n keysym = _keysym[\"default\"].XK_ISO_Level3_Shift;\n break;\n }\n } // Is this key already pressed? If so, then we must use the\n // same keysym or we'll confuse the server\n\n\n if (code in this._keyDownList) {\n keysym = this._keyDownList[code];\n } // macOS doesn't send proper key events for modifiers, only\n // state change events. That gets extra confusing for CapsLock\n // which toggles on each press, but not on release. So pretend\n // it was a quick press and release of the button.\n\n\n if ((browser.isMac() || browser.isIOS()) && code === 'CapsLock') {\n this._sendKeyEvent(_keysym[\"default\"].XK_Caps_Lock, 'CapsLock', true);\n\n this._sendKeyEvent(_keysym[\"default\"].XK_Caps_Lock, 'CapsLock', false);\n\n (0, _events.stopEvent)(e);\n return;\n } // Windows doesn't send proper key releases for a bunch of\n // Japanese IM keys so we have to fake the release right away\n\n\n var jpBadKeys = [_keysym[\"default\"].XK_Zenkaku_Hankaku, _keysym[\"default\"].XK_Eisu_toggle, _keysym[\"default\"].XK_Katakana, _keysym[\"default\"].XK_Hiragana, _keysym[\"default\"].XK_Romaji];\n\n if (browser.isWindows() && jpBadKeys.includes(keysym)) {\n this._sendKeyEvent(keysym, code, true);\n\n this._sendKeyEvent(keysym, code, false);\n\n (0, _events.stopEvent)(e);\n return;\n }\n\n (0, _events.stopEvent)(e); // Possible start of AltGr sequence? (see above)\n\n if (code === \"ControlLeft\" && browser.isWindows() && !(\"ControlLeft\" in this._keyDownList)) {\n this._altGrArmed = true;\n this._altGrTimeout = setTimeout(this._handleAltGrTimeout.bind(this), 100);\n this._altGrCtrlTime = e.timeStamp;\n return;\n }\n\n this._sendKeyEvent(keysym, code, true);\n }\n }, {\n key: \"_handleKeyUp\",\n value: function _handleKeyUp(e) {\n (0, _events.stopEvent)(e);\n\n var code = this._getKeyCode(e); // We can't get a release in the middle of an AltGr sequence, so\n // abort that detection\n\n\n if (this._altGrArmed) {\n this._altGrArmed = false;\n clearTimeout(this._altGrTimeout);\n\n this._sendKeyEvent(_keysym[\"default\"].XK_Control_L, \"ControlLeft\", true);\n } // See comment in _handleKeyDown()\n\n\n if ((browser.isMac() || browser.isIOS()) && code === 'CapsLock') {\n this._sendKeyEvent(_keysym[\"default\"].XK_Caps_Lock, 'CapsLock', true);\n\n this._sendKeyEvent(_keysym[\"default\"].XK_Caps_Lock, 'CapsLock', false);\n\n return;\n }\n\n this._sendKeyEvent(this._keyDownList[code], code, false); // Windows has a rather nasty bug where it won't send key\n // release events for a Shift button if the other Shift is still\n // pressed\n\n\n if (browser.isWindows() && (code === 'ShiftLeft' || code === 'ShiftRight')) {\n if ('ShiftRight' in this._keyDownList) {\n this._sendKeyEvent(this._keyDownList['ShiftRight'], 'ShiftRight', false);\n }\n\n if ('ShiftLeft' in this._keyDownList) {\n this._sendKeyEvent(this._keyDownList['ShiftLeft'], 'ShiftLeft', false);\n }\n }\n }\n }, {\n key: \"_handleAltGrTimeout\",\n value: function _handleAltGrTimeout() {\n this._altGrArmed = false;\n clearTimeout(this._altGrTimeout);\n\n this._sendKeyEvent(_keysym[\"default\"].XK_Control_L, \"ControlLeft\", true);\n }\n }, {\n key: \"_allKeysUp\",\n value: function _allKeysUp() {\n Log.Debug(\">> Keyboard.allKeysUp\");\n\n for (var code in this._keyDownList) {\n this._sendKeyEvent(this._keyDownList[code], code, false);\n }\n\n Log.Debug(\"<< Keyboard.allKeysUp\");\n } // ===== PUBLIC METHODS =====\n\n }, {\n key: \"grab\",\n value: function grab() {\n //Log.Debug(\">> Keyboard.grab\");\n this._target.addEventListener('keydown', this._eventHandlers.keydown);\n\n this._target.addEventListener('keyup', this._eventHandlers.keyup); // Release (key up) if window loses focus\n\n\n window.addEventListener('blur', this._eventHandlers.blur); //Log.Debug(\"<< Keyboard.grab\");\n }\n }, {\n key: \"ungrab\",\n value: function ungrab() {\n //Log.Debug(\">> Keyboard.ungrab\");\n this._target.removeEventListener('keydown', this._eventHandlers.keydown);\n\n this._target.removeEventListener('keyup', this._eventHandlers.keyup);\n\n window.removeEventListener('blur', this._eventHandlers.blur); // Release (key up) all keys that are in a down state\n\n this._allKeysUp(); //Log.Debug(\">> Keyboard.ungrab\");\n\n }\n }]);\n\n return Keyboard;\n}();\n\nexports[\"default\"] = Keyboard;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/* eslint-disable key-spacing */\nvar _default = {\n XK_VoidSymbol: 0xffffff,\n\n /* Void symbol */\n XK_BackSpace: 0xff08,\n\n /* Back space, back char */\n XK_Tab: 0xff09,\n XK_Linefeed: 0xff0a,\n\n /* Linefeed, LF */\n XK_Clear: 0xff0b,\n XK_Return: 0xff0d,\n\n /* Return, enter */\n XK_Pause: 0xff13,\n\n /* Pause, hold */\n XK_Scroll_Lock: 0xff14,\n XK_Sys_Req: 0xff15,\n XK_Escape: 0xff1b,\n XK_Delete: 0xffff,\n\n /* Delete, rubout */\n\n /* International & multi-key character composition */\n XK_Multi_key: 0xff20,\n\n /* Multi-key character compose */\n XK_Codeinput: 0xff37,\n XK_SingleCandidate: 0xff3c,\n XK_MultipleCandidate: 0xff3d,\n XK_PreviousCandidate: 0xff3e,\n\n /* Japanese keyboard support */\n XK_Kanji: 0xff21,\n\n /* Kanji, Kanji convert */\n XK_Muhenkan: 0xff22,\n\n /* Cancel Conversion */\n XK_Henkan_Mode: 0xff23,\n\n /* Start/Stop Conversion */\n XK_Henkan: 0xff23,\n\n /* Alias for Henkan_Mode */\n XK_Romaji: 0xff24,\n\n /* to Romaji */\n XK_Hiragana: 0xff25,\n\n /* to Hiragana */\n XK_Katakana: 0xff26,\n\n /* to Katakana */\n XK_Hiragana_Katakana: 0xff27,\n\n /* Hiragana/Katakana toggle */\n XK_Zenkaku: 0xff28,\n\n /* to Zenkaku */\n XK_Hankaku: 0xff29,\n\n /* to Hankaku */\n XK_Zenkaku_Hankaku: 0xff2a,\n\n /* Zenkaku/Hankaku toggle */\n XK_Touroku: 0xff2b,\n\n /* Add to Dictionary */\n XK_Massyo: 0xff2c,\n\n /* Delete from Dictionary */\n XK_Kana_Lock: 0xff2d,\n\n /* Kana Lock */\n XK_Kana_Shift: 0xff2e,\n\n /* Kana Shift */\n XK_Eisu_Shift: 0xff2f,\n\n /* Alphanumeric Shift */\n XK_Eisu_toggle: 0xff30,\n\n /* Alphanumeric toggle */\n XK_Kanji_Bangou: 0xff37,\n\n /* Codeinput */\n XK_Zen_Koho: 0xff3d,\n\n /* Multiple/All Candidate(s) */\n XK_Mae_Koho: 0xff3e,\n\n /* Previous Candidate */\n\n /* Cursor control & motion */\n XK_Home: 0xff50,\n XK_Left: 0xff51,\n\n /* Move left, left arrow */\n XK_Up: 0xff52,\n\n /* Move up, up arrow */\n XK_Right: 0xff53,\n\n /* Move right, right arrow */\n XK_Down: 0xff54,\n\n /* Move down, down arrow */\n XK_Prior: 0xff55,\n\n /* Prior, previous */\n XK_Page_Up: 0xff55,\n XK_Next: 0xff56,\n\n /* Next */\n XK_Page_Down: 0xff56,\n XK_End: 0xff57,\n\n /* EOL */\n XK_Begin: 0xff58,\n\n /* BOL */\n\n /* Misc functions */\n XK_Select: 0xff60,\n\n /* Select, mark */\n XK_Print: 0xff61,\n XK_Execute: 0xff62,\n\n /* Execute, run, do */\n XK_Insert: 0xff63,\n\n /* Insert, insert here */\n XK_Undo: 0xff65,\n XK_Redo: 0xff66,\n\n /* Redo, again */\n XK_Menu: 0xff67,\n XK_Find: 0xff68,\n\n /* Find, search */\n XK_Cancel: 0xff69,\n\n /* Cancel, stop, abort, exit */\n XK_Help: 0xff6a,\n\n /* Help */\n XK_Break: 0xff6b,\n XK_Mode_switch: 0xff7e,\n\n /* Character set switch */\n XK_script_switch: 0xff7e,\n\n /* Alias for mode_switch */\n XK_Num_Lock: 0xff7f,\n\n /* Keypad functions, keypad numbers cleverly chosen to map to ASCII */\n XK_KP_Space: 0xff80,\n\n /* Space */\n XK_KP_Tab: 0xff89,\n XK_KP_Enter: 0xff8d,\n\n /* Enter */\n XK_KP_F1: 0xff91,\n\n /* PF1, KP_A, ... */\n XK_KP_F2: 0xff92,\n XK_KP_F3: 0xff93,\n XK_KP_F4: 0xff94,\n XK_KP_Home: 0xff95,\n XK_KP_Left: 0xff96,\n XK_KP_Up: 0xff97,\n XK_KP_Right: 0xff98,\n XK_KP_Down: 0xff99,\n XK_KP_Prior: 0xff9a,\n XK_KP_Page_Up: 0xff9a,\n XK_KP_Next: 0xff9b,\n XK_KP_Page_Down: 0xff9b,\n XK_KP_End: 0xff9c,\n XK_KP_Begin: 0xff9d,\n XK_KP_Insert: 0xff9e,\n XK_KP_Delete: 0xff9f,\n XK_KP_Equal: 0xffbd,\n\n /* Equals */\n XK_KP_Multiply: 0xffaa,\n XK_KP_Add: 0xffab,\n XK_KP_Separator: 0xffac,\n\n /* Separator, often comma */\n XK_KP_Subtract: 0xffad,\n XK_KP_Decimal: 0xffae,\n XK_KP_Divide: 0xffaf,\n XK_KP_0: 0xffb0,\n XK_KP_1: 0xffb1,\n XK_KP_2: 0xffb2,\n XK_KP_3: 0xffb3,\n XK_KP_4: 0xffb4,\n XK_KP_5: 0xffb5,\n XK_KP_6: 0xffb6,\n XK_KP_7: 0xffb7,\n XK_KP_8: 0xffb8,\n XK_KP_9: 0xffb9,\n\n /*\n * Auxiliary functions; note the duplicate definitions for left and right\n * function keys; Sun keyboards and a few other manufacturers have such\n * function key groups on the left and/or right sides of the keyboard.\n * We've not found a keyboard with more than 35 function keys total.\n */\n XK_F1: 0xffbe,\n XK_F2: 0xffbf,\n XK_F3: 0xffc0,\n XK_F4: 0xffc1,\n XK_F5: 0xffc2,\n XK_F6: 0xffc3,\n XK_F7: 0xffc4,\n XK_F8: 0xffc5,\n XK_F9: 0xffc6,\n XK_F10: 0xffc7,\n XK_F11: 0xffc8,\n XK_L1: 0xffc8,\n XK_F12: 0xffc9,\n XK_L2: 0xffc9,\n XK_F13: 0xffca,\n XK_L3: 0xffca,\n XK_F14: 0xffcb,\n XK_L4: 0xffcb,\n XK_F15: 0xffcc,\n XK_L5: 0xffcc,\n XK_F16: 0xffcd,\n XK_L6: 0xffcd,\n XK_F17: 0xffce,\n XK_L7: 0xffce,\n XK_F18: 0xffcf,\n XK_L8: 0xffcf,\n XK_F19: 0xffd0,\n XK_L9: 0xffd0,\n XK_F20: 0xffd1,\n XK_L10: 0xffd1,\n XK_F21: 0xffd2,\n XK_R1: 0xffd2,\n XK_F22: 0xffd3,\n XK_R2: 0xffd3,\n XK_F23: 0xffd4,\n XK_R3: 0xffd4,\n XK_F24: 0xffd5,\n XK_R4: 0xffd5,\n XK_F25: 0xffd6,\n XK_R5: 0xffd6,\n XK_F26: 0xffd7,\n XK_R6: 0xffd7,\n XK_F27: 0xffd8,\n XK_R7: 0xffd8,\n XK_F28: 0xffd9,\n XK_R8: 0xffd9,\n XK_F29: 0xffda,\n XK_R9: 0xffda,\n XK_F30: 0xffdb,\n XK_R10: 0xffdb,\n XK_F31: 0xffdc,\n XK_R11: 0xffdc,\n XK_F32: 0xffdd,\n XK_R12: 0xffdd,\n XK_F33: 0xffde,\n XK_R13: 0xffde,\n XK_F34: 0xffdf,\n XK_R14: 0xffdf,\n XK_F35: 0xffe0,\n XK_R15: 0xffe0,\n\n /* Modifiers */\n XK_Shift_L: 0xffe1,\n\n /* Left shift */\n XK_Shift_R: 0xffe2,\n\n /* Right shift */\n XK_Control_L: 0xffe3,\n\n /* Left control */\n XK_Control_R: 0xffe4,\n\n /* Right control */\n XK_Caps_Lock: 0xffe5,\n\n /* Caps lock */\n XK_Shift_Lock: 0xffe6,\n\n /* Shift lock */\n XK_Meta_L: 0xffe7,\n\n /* Left meta */\n XK_Meta_R: 0xffe8,\n\n /* Right meta */\n XK_Alt_L: 0xffe9,\n\n /* Left alt */\n XK_Alt_R: 0xffea,\n\n /* Right alt */\n XK_Super_L: 0xffeb,\n\n /* Left super */\n XK_Super_R: 0xffec,\n\n /* Right super */\n XK_Hyper_L: 0xffed,\n\n /* Left hyper */\n XK_Hyper_R: 0xffee,\n\n /* Right hyper */\n\n /*\n * Keyboard (XKB) Extension function and modifier keys\n * (from Appendix C of \"The X Keyboard Extension: Protocol Specification\")\n * Byte 3 = 0xfe\n */\n XK_ISO_Level3_Shift: 0xfe03,\n\n /* AltGr */\n XK_ISO_Next_Group: 0xfe08,\n XK_ISO_Prev_Group: 0xfe0a,\n XK_ISO_First_Group: 0xfe0c,\n XK_ISO_Last_Group: 0xfe0e,\n\n /*\n * Latin 1\n * (ISO/IEC 8859-1: Unicode U+0020..U+00FF)\n * Byte 3: 0\n */\n XK_space: 0x0020,\n\n /* U+0020 SPACE */\n XK_exclam: 0x0021,\n\n /* U+0021 EXCLAMATION MARK */\n XK_quotedbl: 0x0022,\n\n /* U+0022 QUOTATION MARK */\n XK_numbersign: 0x0023,\n\n /* U+0023 NUMBER SIGN */\n XK_dollar: 0x0024,\n\n /* U+0024 DOLLAR SIGN */\n XK_percent: 0x0025,\n\n /* U+0025 PERCENT SIGN */\n XK_ampersand: 0x0026,\n\n /* U+0026 AMPERSAND */\n XK_apostrophe: 0x0027,\n\n /* U+0027 APOSTROPHE */\n XK_quoteright: 0x0027,\n\n /* deprecated */\n XK_parenleft: 0x0028,\n\n /* U+0028 LEFT PARENTHESIS */\n XK_parenright: 0x0029,\n\n /* U+0029 RIGHT PARENTHESIS */\n XK_asterisk: 0x002a,\n\n /* U+002A ASTERISK */\n XK_plus: 0x002b,\n\n /* U+002B PLUS SIGN */\n XK_comma: 0x002c,\n\n /* U+002C COMMA */\n XK_minus: 0x002d,\n\n /* U+002D HYPHEN-MINUS */\n XK_period: 0x002e,\n\n /* U+002E FULL STOP */\n XK_slash: 0x002f,\n\n /* U+002F SOLIDUS */\n XK_0: 0x0030,\n\n /* U+0030 DIGIT ZERO */\n XK_1: 0x0031,\n\n /* U+0031 DIGIT ONE */\n XK_2: 0x0032,\n\n /* U+0032 DIGIT TWO */\n XK_3: 0x0033,\n\n /* U+0033 DIGIT THREE */\n XK_4: 0x0034,\n\n /* U+0034 DIGIT FOUR */\n XK_5: 0x0035,\n\n /* U+0035 DIGIT FIVE */\n XK_6: 0x0036,\n\n /* U+0036 DIGIT SIX */\n XK_7: 0x0037,\n\n /* U+0037 DIGIT SEVEN */\n XK_8: 0x0038,\n\n /* U+0038 DIGIT EIGHT */\n XK_9: 0x0039,\n\n /* U+0039 DIGIT NINE */\n XK_colon: 0x003a,\n\n /* U+003A COLON */\n XK_semicolon: 0x003b,\n\n /* U+003B SEMICOLON */\n XK_less: 0x003c,\n\n /* U+003C LESS-THAN SIGN */\n XK_equal: 0x003d,\n\n /* U+003D EQUALS SIGN */\n XK_greater: 0x003e,\n\n /* U+003E GREATER-THAN SIGN */\n XK_question: 0x003f,\n\n /* U+003F QUESTION MARK */\n XK_at: 0x0040,\n\n /* U+0040 COMMERCIAL AT */\n XK_A: 0x0041,\n\n /* U+0041 LATIN CAPITAL LETTER A */\n XK_B: 0x0042,\n\n /* U+0042 LATIN CAPITAL LETTER B */\n XK_C: 0x0043,\n\n /* U+0043 LATIN CAPITAL LETTER C */\n XK_D: 0x0044,\n\n /* U+0044 LATIN CAPITAL LETTER D */\n XK_E: 0x0045,\n\n /* U+0045 LATIN CAPITAL LETTER E */\n XK_F: 0x0046,\n\n /* U+0046 LATIN CAPITAL LETTER F */\n XK_G: 0x0047,\n\n /* U+0047 LATIN CAPITAL LETTER G */\n XK_H: 0x0048,\n\n /* U+0048 LATIN CAPITAL LETTER H */\n XK_I: 0x0049,\n\n /* U+0049 LATIN CAPITAL LETTER I */\n XK_J: 0x004a,\n\n /* U+004A LATIN CAPITAL LETTER J */\n XK_K: 0x004b,\n\n /* U+004B LATIN CAPITAL LETTER K */\n XK_L: 0x004c,\n\n /* U+004C LATIN CAPITAL LETTER L */\n XK_M: 0x004d,\n\n /* U+004D LATIN CAPITAL LETTER M */\n XK_N: 0x004e,\n\n /* U+004E LATIN CAPITAL LETTER N */\n XK_O: 0x004f,\n\n /* U+004F LATIN CAPITAL LETTER O */\n XK_P: 0x0050,\n\n /* U+0050 LATIN CAPITAL LETTER P */\n XK_Q: 0x0051,\n\n /* U+0051 LATIN CAPITAL LETTER Q */\n XK_R: 0x0052,\n\n /* U+0052 LATIN CAPITAL LETTER R */\n XK_S: 0x0053,\n\n /* U+0053 LATIN CAPITAL LETTER S */\n XK_T: 0x0054,\n\n /* U+0054 LATIN CAPITAL LETTER T */\n XK_U: 0x0055,\n\n /* U+0055 LATIN CAPITAL LETTER U */\n XK_V: 0x0056,\n\n /* U+0056 LATIN CAPITAL LETTER V */\n XK_W: 0x0057,\n\n /* U+0057 LATIN CAPITAL LETTER W */\n XK_X: 0x0058,\n\n /* U+0058 LATIN CAPITAL LETTER X */\n XK_Y: 0x0059,\n\n /* U+0059 LATIN CAPITAL LETTER Y */\n XK_Z: 0x005a,\n\n /* U+005A LATIN CAPITAL LETTER Z */\n XK_bracketleft: 0x005b,\n\n /* U+005B LEFT SQUARE BRACKET */\n XK_backslash: 0x005c,\n\n /* U+005C REVERSE SOLIDUS */\n XK_bracketright: 0x005d,\n\n /* U+005D RIGHT SQUARE BRACKET */\n XK_asciicircum: 0x005e,\n\n /* U+005E CIRCUMFLEX ACCENT */\n XK_underscore: 0x005f,\n\n /* U+005F LOW LINE */\n XK_grave: 0x0060,\n\n /* U+0060 GRAVE ACCENT */\n XK_quoteleft: 0x0060,\n\n /* deprecated */\n XK_a: 0x0061,\n\n /* U+0061 LATIN SMALL LETTER A */\n XK_b: 0x0062,\n\n /* U+0062 LATIN SMALL LETTER B */\n XK_c: 0x0063,\n\n /* U+0063 LATIN SMALL LETTER C */\n XK_d: 0x0064,\n\n /* U+0064 LATIN SMALL LETTER D */\n XK_e: 0x0065,\n\n /* U+0065 LATIN SMALL LETTER E */\n XK_f: 0x0066,\n\n /* U+0066 LATIN SMALL LETTER F */\n XK_g: 0x0067,\n\n /* U+0067 LATIN SMALL LETTER G */\n XK_h: 0x0068,\n\n /* U+0068 LATIN SMALL LETTER H */\n XK_i: 0x0069,\n\n /* U+0069 LATIN SMALL LETTER I */\n XK_j: 0x006a,\n\n /* U+006A LATIN SMALL LETTER J */\n XK_k: 0x006b,\n\n /* U+006B LATIN SMALL LETTER K */\n XK_l: 0x006c,\n\n /* U+006C LATIN SMALL LETTER L */\n XK_m: 0x006d,\n\n /* U+006D LATIN SMALL LETTER M */\n XK_n: 0x006e,\n\n /* U+006E LATIN SMALL LETTER N */\n XK_o: 0x006f,\n\n /* U+006F LATIN SMALL LETTER O */\n XK_p: 0x0070,\n\n /* U+0070 LATIN SMALL LETTER P */\n XK_q: 0x0071,\n\n /* U+0071 LATIN SMALL LETTER Q */\n XK_r: 0x0072,\n\n /* U+0072 LATIN SMALL LETTER R */\n XK_s: 0x0073,\n\n /* U+0073 LATIN SMALL LETTER S */\n XK_t: 0x0074,\n\n /* U+0074 LATIN SMALL LETTER T */\n XK_u: 0x0075,\n\n /* U+0075 LATIN SMALL LETTER U */\n XK_v: 0x0076,\n\n /* U+0076 LATIN SMALL LETTER V */\n XK_w: 0x0077,\n\n /* U+0077 LATIN SMALL LETTER W */\n XK_x: 0x0078,\n\n /* U+0078 LATIN SMALL LETTER X */\n XK_y: 0x0079,\n\n /* U+0079 LATIN SMALL LETTER Y */\n XK_z: 0x007a,\n\n /* U+007A LATIN SMALL LETTER Z */\n XK_braceleft: 0x007b,\n\n /* U+007B LEFT CURLY BRACKET */\n XK_bar: 0x007c,\n\n /* U+007C VERTICAL LINE */\n XK_braceright: 0x007d,\n\n /* U+007D RIGHT CURLY BRACKET */\n XK_asciitilde: 0x007e,\n\n /* U+007E TILDE */\n XK_nobreakspace: 0x00a0,\n\n /* U+00A0 NO-BREAK SPACE */\n XK_exclamdown: 0x00a1,\n\n /* U+00A1 INVERTED EXCLAMATION MARK */\n XK_cent: 0x00a2,\n\n /* U+00A2 CENT SIGN */\n XK_sterling: 0x00a3,\n\n /* U+00A3 POUND SIGN */\n XK_currency: 0x00a4,\n\n /* U+00A4 CURRENCY SIGN */\n XK_yen: 0x00a5,\n\n /* U+00A5 YEN SIGN */\n XK_brokenbar: 0x00a6,\n\n /* U+00A6 BROKEN BAR */\n XK_section: 0x00a7,\n\n /* U+00A7 SECTION SIGN */\n XK_diaeresis: 0x00a8,\n\n /* U+00A8 DIAERESIS */\n XK_copyright: 0x00a9,\n\n /* U+00A9 COPYRIGHT SIGN */\n XK_ordfeminine: 0x00aa,\n\n /* U+00AA FEMININE ORDINAL INDICATOR */\n XK_guillemotleft: 0x00ab,\n\n /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */\n XK_notsign: 0x00ac,\n\n /* U+00AC NOT SIGN */\n XK_hyphen: 0x00ad,\n\n /* U+00AD SOFT HYPHEN */\n XK_registered: 0x00ae,\n\n /* U+00AE REGISTERED SIGN */\n XK_macron: 0x00af,\n\n /* U+00AF MACRON */\n XK_degree: 0x00b0,\n\n /* U+00B0 DEGREE SIGN */\n XK_plusminus: 0x00b1,\n\n /* U+00B1 PLUS-MINUS SIGN */\n XK_twosuperior: 0x00b2,\n\n /* U+00B2 SUPERSCRIPT TWO */\n XK_threesuperior: 0x00b3,\n\n /* U+00B3 SUPERSCRIPT THREE */\n XK_acute: 0x00b4,\n\n /* U+00B4 ACUTE ACCENT */\n XK_mu: 0x00b5,\n\n /* U+00B5 MICRO SIGN */\n XK_paragraph: 0x00b6,\n\n /* U+00B6 PILCROW SIGN */\n XK_periodcentered: 0x00b7,\n\n /* U+00B7 MIDDLE DOT */\n XK_cedilla: 0x00b8,\n\n /* U+00B8 CEDILLA */\n XK_onesuperior: 0x00b9,\n\n /* U+00B9 SUPERSCRIPT ONE */\n XK_masculine: 0x00ba,\n\n /* U+00BA MASCULINE ORDINAL INDICATOR */\n XK_guillemotright: 0x00bb,\n\n /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */\n XK_onequarter: 0x00bc,\n\n /* U+00BC VULGAR FRACTION ONE QUARTER */\n XK_onehalf: 0x00bd,\n\n /* U+00BD VULGAR FRACTION ONE HALF */\n XK_threequarters: 0x00be,\n\n /* U+00BE VULGAR FRACTION THREE QUARTERS */\n XK_questiondown: 0x00bf,\n\n /* U+00BF INVERTED QUESTION MARK */\n XK_Agrave: 0x00c0,\n\n /* U+00C0 LATIN CAPITAL LETTER A WITH GRAVE */\n XK_Aacute: 0x00c1,\n\n /* U+00C1 LATIN CAPITAL LETTER A WITH ACUTE */\n XK_Acircumflex: 0x00c2,\n\n /* U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX */\n XK_Atilde: 0x00c3,\n\n /* U+00C3 LATIN CAPITAL LETTER A WITH TILDE */\n XK_Adiaeresis: 0x00c4,\n\n /* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */\n XK_Aring: 0x00c5,\n\n /* U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE */\n XK_AE: 0x00c6,\n\n /* U+00C6 LATIN CAPITAL LETTER AE */\n XK_Ccedilla: 0x00c7,\n\n /* U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA */\n XK_Egrave: 0x00c8,\n\n /* U+00C8 LATIN CAPITAL LETTER E WITH GRAVE */\n XK_Eacute: 0x00c9,\n\n /* U+00C9 LATIN CAPITAL LETTER E WITH ACUTE */\n XK_Ecircumflex: 0x00ca,\n\n /* U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX */\n XK_Ediaeresis: 0x00cb,\n\n /* U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS */\n XK_Igrave: 0x00cc,\n\n /* U+00CC LATIN CAPITAL LETTER I WITH GRAVE */\n XK_Iacute: 0x00cd,\n\n /* U+00CD LATIN CAPITAL LETTER I WITH ACUTE */\n XK_Icircumflex: 0x00ce,\n\n /* U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX */\n XK_Idiaeresis: 0x00cf,\n\n /* U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS */\n XK_ETH: 0x00d0,\n\n /* U+00D0 LATIN CAPITAL LETTER ETH */\n XK_Eth: 0x00d0,\n\n /* deprecated */\n XK_Ntilde: 0x00d1,\n\n /* U+00D1 LATIN CAPITAL LETTER N WITH TILDE */\n XK_Ograve: 0x00d2,\n\n /* U+00D2 LATIN CAPITAL LETTER O WITH GRAVE */\n XK_Oacute: 0x00d3,\n\n /* U+00D3 LATIN CAPITAL LETTER O WITH ACUTE */\n XK_Ocircumflex: 0x00d4,\n\n /* U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX */\n XK_Otilde: 0x00d5,\n\n /* U+00D5 LATIN CAPITAL LETTER O WITH TILDE */\n XK_Odiaeresis: 0x00d6,\n\n /* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */\n XK_multiply: 0x00d7,\n\n /* U+00D7 MULTIPLICATION SIGN */\n XK_Oslash: 0x00d8,\n\n /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */\n XK_Ooblique: 0x00d8,\n\n /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */\n XK_Ugrave: 0x00d9,\n\n /* U+00D9 LATIN CAPITAL LETTER U WITH GRAVE */\n XK_Uacute: 0x00da,\n\n /* U+00DA LATIN CAPITAL LETTER U WITH ACUTE */\n XK_Ucircumflex: 0x00db,\n\n /* U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX */\n XK_Udiaeresis: 0x00dc,\n\n /* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */\n XK_Yacute: 0x00dd,\n\n /* U+00DD LATIN CAPITAL LETTER Y WITH ACUTE */\n XK_THORN: 0x00de,\n\n /* U+00DE LATIN CAPITAL LETTER THORN */\n XK_Thorn: 0x00de,\n\n /* deprecated */\n XK_ssharp: 0x00df,\n\n /* U+00DF LATIN SMALL LETTER SHARP S */\n XK_agrave: 0x00e0,\n\n /* U+00E0 LATIN SMALL LETTER A WITH GRAVE */\n XK_aacute: 0x00e1,\n\n /* U+00E1 LATIN SMALL LETTER A WITH ACUTE */\n XK_acircumflex: 0x00e2,\n\n /* U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX */\n XK_atilde: 0x00e3,\n\n /* U+00E3 LATIN SMALL LETTER A WITH TILDE */\n XK_adiaeresis: 0x00e4,\n\n /* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */\n XK_aring: 0x00e5,\n\n /* U+00E5 LATIN SMALL LETTER A WITH RING ABOVE */\n XK_ae: 0x00e6,\n\n /* U+00E6 LATIN SMALL LETTER AE */\n XK_ccedilla: 0x00e7,\n\n /* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */\n XK_egrave: 0x00e8,\n\n /* U+00E8 LATIN SMALL LETTER E WITH GRAVE */\n XK_eacute: 0x00e9,\n\n /* U+00E9 LATIN SMALL LETTER E WITH ACUTE */\n XK_ecircumflex: 0x00ea,\n\n /* U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX */\n XK_ediaeresis: 0x00eb,\n\n /* U+00EB LATIN SMALL LETTER E WITH DIAERESIS */\n XK_igrave: 0x00ec,\n\n /* U+00EC LATIN SMALL LETTER I WITH GRAVE */\n XK_iacute: 0x00ed,\n\n /* U+00ED LATIN SMALL LETTER I WITH ACUTE */\n XK_icircumflex: 0x00ee,\n\n /* U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX */\n XK_idiaeresis: 0x00ef,\n\n /* U+00EF LATIN SMALL LETTER I WITH DIAERESIS */\n XK_eth: 0x00f0,\n\n /* U+00F0 LATIN SMALL LETTER ETH */\n XK_ntilde: 0x00f1,\n\n /* U+00F1 LATIN SMALL LETTER N WITH TILDE */\n XK_ograve: 0x00f2,\n\n /* U+00F2 LATIN SMALL LETTER O WITH GRAVE */\n XK_oacute: 0x00f3,\n\n /* U+00F3 LATIN SMALL LETTER O WITH ACUTE */\n XK_ocircumflex: 0x00f4,\n\n /* U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX */\n XK_otilde: 0x00f5,\n\n /* U+00F5 LATIN SMALL LETTER O WITH TILDE */\n XK_odiaeresis: 0x00f6,\n\n /* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */\n XK_division: 0x00f7,\n\n /* U+00F7 DIVISION SIGN */\n XK_oslash: 0x00f8,\n\n /* U+00F8 LATIN SMALL LETTER O WITH STROKE */\n XK_ooblique: 0x00f8,\n\n /* U+00F8 LATIN SMALL LETTER O WITH STROKE */\n XK_ugrave: 0x00f9,\n\n /* U+00F9 LATIN SMALL LETTER U WITH GRAVE */\n XK_uacute: 0x00fa,\n\n /* U+00FA LATIN SMALL LETTER U WITH ACUTE */\n XK_ucircumflex: 0x00fb,\n\n /* U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX */\n XK_udiaeresis: 0x00fc,\n\n /* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */\n XK_yacute: 0x00fd,\n\n /* U+00FD LATIN SMALL LETTER Y WITH ACUTE */\n XK_thorn: 0x00fe,\n\n /* U+00FE LATIN SMALL LETTER THORN */\n XK_ydiaeresis: 0x00ff,\n\n /* U+00FF LATIN SMALL LETTER Y WITH DIAERESIS */\n\n /*\n * Korean\n * Byte 3 = 0x0e\n */\n XK_Hangul: 0xff31,\n\n /* Hangul start/stop(toggle) */\n XK_Hangul_Hanja: 0xff34,\n\n /* Start Hangul->Hanja Conversion */\n XK_Hangul_Jeonja: 0xff38,\n\n /* Jeonja mode */\n\n /*\n * XFree86 vendor specific keysyms.\n *\n * The XFree86 keysym range is 0x10080001 - 0x1008FFFF.\n */\n XF86XK_ModeLock: 0x1008FF01,\n XF86XK_MonBrightnessUp: 0x1008FF02,\n XF86XK_MonBrightnessDown: 0x1008FF03,\n XF86XK_KbdLightOnOff: 0x1008FF04,\n XF86XK_KbdBrightnessUp: 0x1008FF05,\n XF86XK_KbdBrightnessDown: 0x1008FF06,\n XF86XK_Standby: 0x1008FF10,\n XF86XK_AudioLowerVolume: 0x1008FF11,\n XF86XK_AudioMute: 0x1008FF12,\n XF86XK_AudioRaiseVolume: 0x1008FF13,\n XF86XK_AudioPlay: 0x1008FF14,\n XF86XK_AudioStop: 0x1008FF15,\n XF86XK_AudioPrev: 0x1008FF16,\n XF86XK_AudioNext: 0x1008FF17,\n XF86XK_HomePage: 0x1008FF18,\n XF86XK_Mail: 0x1008FF19,\n XF86XK_Start: 0x1008FF1A,\n XF86XK_Search: 0x1008FF1B,\n XF86XK_AudioRecord: 0x1008FF1C,\n XF86XK_Calculator: 0x1008FF1D,\n XF86XK_Memo: 0x1008FF1E,\n XF86XK_ToDoList: 0x1008FF1F,\n XF86XK_Calendar: 0x1008FF20,\n XF86XK_PowerDown: 0x1008FF21,\n XF86XK_ContrastAdjust: 0x1008FF22,\n XF86XK_RockerUp: 0x1008FF23,\n XF86XK_RockerDown: 0x1008FF24,\n XF86XK_RockerEnter: 0x1008FF25,\n XF86XK_Back: 0x1008FF26,\n XF86XK_Forward: 0x1008FF27,\n XF86XK_Stop: 0x1008FF28,\n XF86XK_Refresh: 0x1008FF29,\n XF86XK_PowerOff: 0x1008FF2A,\n XF86XK_WakeUp: 0x1008FF2B,\n XF86XK_Eject: 0x1008FF2C,\n XF86XK_ScreenSaver: 0x1008FF2D,\n XF86XK_WWW: 0x1008FF2E,\n XF86XK_Sleep: 0x1008FF2F,\n XF86XK_Favorites: 0x1008FF30,\n XF86XK_AudioPause: 0x1008FF31,\n XF86XK_AudioMedia: 0x1008FF32,\n XF86XK_MyComputer: 0x1008FF33,\n XF86XK_VendorHome: 0x1008FF34,\n XF86XK_LightBulb: 0x1008FF35,\n XF86XK_Shop: 0x1008FF36,\n XF86XK_History: 0x1008FF37,\n XF86XK_OpenURL: 0x1008FF38,\n XF86XK_AddFavorite: 0x1008FF39,\n XF86XK_HotLinks: 0x1008FF3A,\n XF86XK_BrightnessAdjust: 0x1008FF3B,\n XF86XK_Finance: 0x1008FF3C,\n XF86XK_Community: 0x1008FF3D,\n XF86XK_AudioRewind: 0x1008FF3E,\n XF86XK_BackForward: 0x1008FF3F,\n XF86XK_Launch0: 0x1008FF40,\n XF86XK_Launch1: 0x1008FF41,\n XF86XK_Launch2: 0x1008FF42,\n XF86XK_Launch3: 0x1008FF43,\n XF86XK_Launch4: 0x1008FF44,\n XF86XK_Launch5: 0x1008FF45,\n XF86XK_Launch6: 0x1008FF46,\n XF86XK_Launch7: 0x1008FF47,\n XF86XK_Launch8: 0x1008FF48,\n XF86XK_Launch9: 0x1008FF49,\n XF86XK_LaunchA: 0x1008FF4A,\n XF86XK_LaunchB: 0x1008FF4B,\n XF86XK_LaunchC: 0x1008FF4C,\n XF86XK_LaunchD: 0x1008FF4D,\n XF86XK_LaunchE: 0x1008FF4E,\n XF86XK_LaunchF: 0x1008FF4F,\n XF86XK_ApplicationLeft: 0x1008FF50,\n XF86XK_ApplicationRight: 0x1008FF51,\n XF86XK_Book: 0x1008FF52,\n XF86XK_CD: 0x1008FF53,\n XF86XK_Calculater: 0x1008FF54,\n XF86XK_Clear: 0x1008FF55,\n XF86XK_Close: 0x1008FF56,\n XF86XK_Copy: 0x1008FF57,\n XF86XK_Cut: 0x1008FF58,\n XF86XK_Display: 0x1008FF59,\n XF86XK_DOS: 0x1008FF5A,\n XF86XK_Documents: 0x1008FF5B,\n XF86XK_Excel: 0x1008FF5C,\n XF86XK_Explorer: 0x1008FF5D,\n XF86XK_Game: 0x1008FF5E,\n XF86XK_Go: 0x1008FF5F,\n XF86XK_iTouch: 0x1008FF60,\n XF86XK_LogOff: 0x1008FF61,\n XF86XK_Market: 0x1008FF62,\n XF86XK_Meeting: 0x1008FF63,\n XF86XK_MenuKB: 0x1008FF65,\n XF86XK_MenuPB: 0x1008FF66,\n XF86XK_MySites: 0x1008FF67,\n XF86XK_New: 0x1008FF68,\n XF86XK_News: 0x1008FF69,\n XF86XK_OfficeHome: 0x1008FF6A,\n XF86XK_Open: 0x1008FF6B,\n XF86XK_Option: 0x1008FF6C,\n XF86XK_Paste: 0x1008FF6D,\n XF86XK_Phone: 0x1008FF6E,\n XF86XK_Q: 0x1008FF70,\n XF86XK_Reply: 0x1008FF72,\n XF86XK_Reload: 0x1008FF73,\n XF86XK_RotateWindows: 0x1008FF74,\n XF86XK_RotationPB: 0x1008FF75,\n XF86XK_RotationKB: 0x1008FF76,\n XF86XK_Save: 0x1008FF77,\n XF86XK_ScrollUp: 0x1008FF78,\n XF86XK_ScrollDown: 0x1008FF79,\n XF86XK_ScrollClick: 0x1008FF7A,\n XF86XK_Send: 0x1008FF7B,\n XF86XK_Spell: 0x1008FF7C,\n XF86XK_SplitScreen: 0x1008FF7D,\n XF86XK_Support: 0x1008FF7E,\n XF86XK_TaskPane: 0x1008FF7F,\n XF86XK_Terminal: 0x1008FF80,\n XF86XK_Tools: 0x1008FF81,\n XF86XK_Travel: 0x1008FF82,\n XF86XK_UserPB: 0x1008FF84,\n XF86XK_User1KB: 0x1008FF85,\n XF86XK_User2KB: 0x1008FF86,\n XF86XK_Video: 0x1008FF87,\n XF86XK_WheelButton: 0x1008FF88,\n XF86XK_Word: 0x1008FF89,\n XF86XK_Xfer: 0x1008FF8A,\n XF86XK_ZoomIn: 0x1008FF8B,\n XF86XK_ZoomOut: 0x1008FF8C,\n XF86XK_Away: 0x1008FF8D,\n XF86XK_Messenger: 0x1008FF8E,\n XF86XK_WebCam: 0x1008FF8F,\n XF86XK_MailForward: 0x1008FF90,\n XF86XK_Pictures: 0x1008FF91,\n XF86XK_Music: 0x1008FF92,\n XF86XK_Battery: 0x1008FF93,\n XF86XK_Bluetooth: 0x1008FF94,\n XF86XK_WLAN: 0x1008FF95,\n XF86XK_UWB: 0x1008FF96,\n XF86XK_AudioForward: 0x1008FF97,\n XF86XK_AudioRepeat: 0x1008FF98,\n XF86XK_AudioRandomPlay: 0x1008FF99,\n XF86XK_Subtitle: 0x1008FF9A,\n XF86XK_AudioCycleTrack: 0x1008FF9B,\n XF86XK_CycleAngle: 0x1008FF9C,\n XF86XK_FrameBack: 0x1008FF9D,\n XF86XK_FrameForward: 0x1008FF9E,\n XF86XK_Time: 0x1008FF9F,\n XF86XK_Select: 0x1008FFA0,\n XF86XK_View: 0x1008FFA1,\n XF86XK_TopMenu: 0x1008FFA2,\n XF86XK_Red: 0x1008FFA3,\n XF86XK_Green: 0x1008FFA4,\n XF86XK_Yellow: 0x1008FFA5,\n XF86XK_Blue: 0x1008FFA6,\n XF86XK_Suspend: 0x1008FFA7,\n XF86XK_Hibernate: 0x1008FFA8,\n XF86XK_TouchpadToggle: 0x1008FFA9,\n XF86XK_TouchpadOn: 0x1008FFB0,\n XF86XK_TouchpadOff: 0x1008FFB1,\n XF86XK_AudioMicMute: 0x1008FFB2,\n XF86XK_Switch_VT_1: 0x1008FE01,\n XF86XK_Switch_VT_2: 0x1008FE02,\n XF86XK_Switch_VT_3: 0x1008FE03,\n XF86XK_Switch_VT_4: 0x1008FE04,\n XF86XK_Switch_VT_5: 0x1008FE05,\n XF86XK_Switch_VT_6: 0x1008FE06,\n XF86XK_Switch_VT_7: 0x1008FE07,\n XF86XK_Switch_VT_8: 0x1008FE08,\n XF86XK_Switch_VT_9: 0x1008FE09,\n XF86XK_Switch_VT_10: 0x1008FE0A,\n XF86XK_Switch_VT_11: 0x1008FE0B,\n XF86XK_Switch_VT_12: 0x1008FE0C,\n XF86XK_Ungrab: 0x1008FE20,\n XF86XK_ClearGrab: 0x1008FE21,\n XF86XK_Next_VMode: 0x1008FE22,\n XF86XK_Prev_VMode: 0x1008FE23,\n XF86XK_LogWindowTree: 0x1008FE24,\n XF86XK_LogGrabInfo: 0x1008FE25\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/*\n * Mapping from Unicode codepoints to X11/RFB keysyms\n *\n * This file was automatically generated from keysymdef.h\n * DO NOT EDIT!\n */\n\n/* Functions at the bottom */\nvar codepoints = {\n 0x0100: 0x03c0,\n // XK_Amacron\n 0x0101: 0x03e0,\n // XK_amacron\n 0x0102: 0x01c3,\n // XK_Abreve\n 0x0103: 0x01e3,\n // XK_abreve\n 0x0104: 0x01a1,\n // XK_Aogonek\n 0x0105: 0x01b1,\n // XK_aogonek\n 0x0106: 0x01c6,\n // XK_Cacute\n 0x0107: 0x01e6,\n // XK_cacute\n 0x0108: 0x02c6,\n // XK_Ccircumflex\n 0x0109: 0x02e6,\n // XK_ccircumflex\n 0x010a: 0x02c5,\n // XK_Cabovedot\n 0x010b: 0x02e5,\n // XK_cabovedot\n 0x010c: 0x01c8,\n // XK_Ccaron\n 0x010d: 0x01e8,\n // XK_ccaron\n 0x010e: 0x01cf,\n // XK_Dcaron\n 0x010f: 0x01ef,\n // XK_dcaron\n 0x0110: 0x01d0,\n // XK_Dstroke\n 0x0111: 0x01f0,\n // XK_dstroke\n 0x0112: 0x03aa,\n // XK_Emacron\n 0x0113: 0x03ba,\n // XK_emacron\n 0x0116: 0x03cc,\n // XK_Eabovedot\n 0x0117: 0x03ec,\n // XK_eabovedot\n 0x0118: 0x01ca,\n // XK_Eogonek\n 0x0119: 0x01ea,\n // XK_eogonek\n 0x011a: 0x01cc,\n // XK_Ecaron\n 0x011b: 0x01ec,\n // XK_ecaron\n 0x011c: 0x02d8,\n // XK_Gcircumflex\n 0x011d: 0x02f8,\n // XK_gcircumflex\n 0x011e: 0x02ab,\n // XK_Gbreve\n 0x011f: 0x02bb,\n // XK_gbreve\n 0x0120: 0x02d5,\n // XK_Gabovedot\n 0x0121: 0x02f5,\n // XK_gabovedot\n 0x0122: 0x03ab,\n // XK_Gcedilla\n 0x0123: 0x03bb,\n // XK_gcedilla\n 0x0124: 0x02a6,\n // XK_Hcircumflex\n 0x0125: 0x02b6,\n // XK_hcircumflex\n 0x0126: 0x02a1,\n // XK_Hstroke\n 0x0127: 0x02b1,\n // XK_hstroke\n 0x0128: 0x03a5,\n // XK_Itilde\n 0x0129: 0x03b5,\n // XK_itilde\n 0x012a: 0x03cf,\n // XK_Imacron\n 0x012b: 0x03ef,\n // XK_imacron\n 0x012e: 0x03c7,\n // XK_Iogonek\n 0x012f: 0x03e7,\n // XK_iogonek\n 0x0130: 0x02a9,\n // XK_Iabovedot\n 0x0131: 0x02b9,\n // XK_idotless\n 0x0134: 0x02ac,\n // XK_Jcircumflex\n 0x0135: 0x02bc,\n // XK_jcircumflex\n 0x0136: 0x03d3,\n // XK_Kcedilla\n 0x0137: 0x03f3,\n // XK_kcedilla\n 0x0138: 0x03a2,\n // XK_kra\n 0x0139: 0x01c5,\n // XK_Lacute\n 0x013a: 0x01e5,\n // XK_lacute\n 0x013b: 0x03a6,\n // XK_Lcedilla\n 0x013c: 0x03b6,\n // XK_lcedilla\n 0x013d: 0x01a5,\n // XK_Lcaron\n 0x013e: 0x01b5,\n // XK_lcaron\n 0x0141: 0x01a3,\n // XK_Lstroke\n 0x0142: 0x01b3,\n // XK_lstroke\n 0x0143: 0x01d1,\n // XK_Nacute\n 0x0144: 0x01f1,\n // XK_nacute\n 0x0145: 0x03d1,\n // XK_Ncedilla\n 0x0146: 0x03f1,\n // XK_ncedilla\n 0x0147: 0x01d2,\n // XK_Ncaron\n 0x0148: 0x01f2,\n // XK_ncaron\n 0x014a: 0x03bd,\n // XK_ENG\n 0x014b: 0x03bf,\n // XK_eng\n 0x014c: 0x03d2,\n // XK_Omacron\n 0x014d: 0x03f2,\n // XK_omacron\n 0x0150: 0x01d5,\n // XK_Odoubleacute\n 0x0151: 0x01f5,\n // XK_odoubleacute\n 0x0152: 0x13bc,\n // XK_OE\n 0x0153: 0x13bd,\n // XK_oe\n 0x0154: 0x01c0,\n // XK_Racute\n 0x0155: 0x01e0,\n // XK_racute\n 0x0156: 0x03a3,\n // XK_Rcedilla\n 0x0157: 0x03b3,\n // XK_rcedilla\n 0x0158: 0x01d8,\n // XK_Rcaron\n 0x0159: 0x01f8,\n // XK_rcaron\n 0x015a: 0x01a6,\n // XK_Sacute\n 0x015b: 0x01b6,\n // XK_sacute\n 0x015c: 0x02de,\n // XK_Scircumflex\n 0x015d: 0x02fe,\n // XK_scircumflex\n 0x015e: 0x01aa,\n // XK_Scedilla\n 0x015f: 0x01ba,\n // XK_scedilla\n 0x0160: 0x01a9,\n // XK_Scaron\n 0x0161: 0x01b9,\n // XK_scaron\n 0x0162: 0x01de,\n // XK_Tcedilla\n 0x0163: 0x01fe,\n // XK_tcedilla\n 0x0164: 0x01ab,\n // XK_Tcaron\n 0x0165: 0x01bb,\n // XK_tcaron\n 0x0166: 0x03ac,\n // XK_Tslash\n 0x0167: 0x03bc,\n // XK_tslash\n 0x0168: 0x03dd,\n // XK_Utilde\n 0x0169: 0x03fd,\n // XK_utilde\n 0x016a: 0x03de,\n // XK_Umacron\n 0x016b: 0x03fe,\n // XK_umacron\n 0x016c: 0x02dd,\n // XK_Ubreve\n 0x016d: 0x02fd,\n // XK_ubreve\n 0x016e: 0x01d9,\n // XK_Uring\n 0x016f: 0x01f9,\n // XK_uring\n 0x0170: 0x01db,\n // XK_Udoubleacute\n 0x0171: 0x01fb,\n // XK_udoubleacute\n 0x0172: 0x03d9,\n // XK_Uogonek\n 0x0173: 0x03f9,\n // XK_uogonek\n 0x0178: 0x13be,\n // XK_Ydiaeresis\n 0x0179: 0x01ac,\n // XK_Zacute\n 0x017a: 0x01bc,\n // XK_zacute\n 0x017b: 0x01af,\n // XK_Zabovedot\n 0x017c: 0x01bf,\n // XK_zabovedot\n 0x017d: 0x01ae,\n // XK_Zcaron\n 0x017e: 0x01be,\n // XK_zcaron\n 0x0192: 0x08f6,\n // XK_function\n 0x01d2: 0x10001d1,\n // XK_Ocaron\n 0x02c7: 0x01b7,\n // XK_caron\n 0x02d8: 0x01a2,\n // XK_breve\n 0x02d9: 0x01ff,\n // XK_abovedot\n 0x02db: 0x01b2,\n // XK_ogonek\n 0x02dd: 0x01bd,\n // XK_doubleacute\n 0x0385: 0x07ae,\n // XK_Greek_accentdieresis\n 0x0386: 0x07a1,\n // XK_Greek_ALPHAaccent\n 0x0388: 0x07a2,\n // XK_Greek_EPSILONaccent\n 0x0389: 0x07a3,\n // XK_Greek_ETAaccent\n 0x038a: 0x07a4,\n // XK_Greek_IOTAaccent\n 0x038c: 0x07a7,\n // XK_Greek_OMICRONaccent\n 0x038e: 0x07a8,\n // XK_Greek_UPSILONaccent\n 0x038f: 0x07ab,\n // XK_Greek_OMEGAaccent\n 0x0390: 0x07b6,\n // XK_Greek_iotaaccentdieresis\n 0x0391: 0x07c1,\n // XK_Greek_ALPHA\n 0x0392: 0x07c2,\n // XK_Greek_BETA\n 0x0393: 0x07c3,\n // XK_Greek_GAMMA\n 0x0394: 0x07c4,\n // XK_Greek_DELTA\n 0x0395: 0x07c5,\n // XK_Greek_EPSILON\n 0x0396: 0x07c6,\n // XK_Greek_ZETA\n 0x0397: 0x07c7,\n // XK_Greek_ETA\n 0x0398: 0x07c8,\n // XK_Greek_THETA\n 0x0399: 0x07c9,\n // XK_Greek_IOTA\n 0x039a: 0x07ca,\n // XK_Greek_KAPPA\n 0x039b: 0x07cb,\n // XK_Greek_LAMDA\n 0x039c: 0x07cc,\n // XK_Greek_MU\n 0x039d: 0x07cd,\n // XK_Greek_NU\n 0x039e: 0x07ce,\n // XK_Greek_XI\n 0x039f: 0x07cf,\n // XK_Greek_OMICRON\n 0x03a0: 0x07d0,\n // XK_Greek_PI\n 0x03a1: 0x07d1,\n // XK_Greek_RHO\n 0x03a3: 0x07d2,\n // XK_Greek_SIGMA\n 0x03a4: 0x07d4,\n // XK_Greek_TAU\n 0x03a5: 0x07d5,\n // XK_Greek_UPSILON\n 0x03a6: 0x07d6,\n // XK_Greek_PHI\n 0x03a7: 0x07d7,\n // XK_Greek_CHI\n 0x03a8: 0x07d8,\n // XK_Greek_PSI\n 0x03a9: 0x07d9,\n // XK_Greek_OMEGA\n 0x03aa: 0x07a5,\n // XK_Greek_IOTAdieresis\n 0x03ab: 0x07a9,\n // XK_Greek_UPSILONdieresis\n 0x03ac: 0x07b1,\n // XK_Greek_alphaaccent\n 0x03ad: 0x07b2,\n // XK_Greek_epsilonaccent\n 0x03ae: 0x07b3,\n // XK_Greek_etaaccent\n 0x03af: 0x07b4,\n // XK_Greek_iotaaccent\n 0x03b0: 0x07ba,\n // XK_Greek_upsilonaccentdieresis\n 0x03b1: 0x07e1,\n // XK_Greek_alpha\n 0x03b2: 0x07e2,\n // XK_Greek_beta\n 0x03b3: 0x07e3,\n // XK_Greek_gamma\n 0x03b4: 0x07e4,\n // XK_Greek_delta\n 0x03b5: 0x07e5,\n // XK_Greek_epsilon\n 0x03b6: 0x07e6,\n // XK_Greek_zeta\n 0x03b7: 0x07e7,\n // XK_Greek_eta\n 0x03b8: 0x07e8,\n // XK_Greek_theta\n 0x03b9: 0x07e9,\n // XK_Greek_iota\n 0x03ba: 0x07ea,\n // XK_Greek_kappa\n 0x03bb: 0x07eb,\n // XK_Greek_lamda\n 0x03bc: 0x07ec,\n // XK_Greek_mu\n 0x03bd: 0x07ed,\n // XK_Greek_nu\n 0x03be: 0x07ee,\n // XK_Greek_xi\n 0x03bf: 0x07ef,\n // XK_Greek_omicron\n 0x03c0: 0x07f0,\n // XK_Greek_pi\n 0x03c1: 0x07f1,\n // XK_Greek_rho\n 0x03c2: 0x07f3,\n // XK_Greek_finalsmallsigma\n 0x03c3: 0x07f2,\n // XK_Greek_sigma\n 0x03c4: 0x07f4,\n // XK_Greek_tau\n 0x03c5: 0x07f5,\n // XK_Greek_upsilon\n 0x03c6: 0x07f6,\n // XK_Greek_phi\n 0x03c7: 0x07f7,\n // XK_Greek_chi\n 0x03c8: 0x07f8,\n // XK_Greek_psi\n 0x03c9: 0x07f9,\n // XK_Greek_omega\n 0x03ca: 0x07b5,\n // XK_Greek_iotadieresis\n 0x03cb: 0x07b9,\n // XK_Greek_upsilondieresis\n 0x03cc: 0x07b7,\n // XK_Greek_omicronaccent\n 0x03cd: 0x07b8,\n // XK_Greek_upsilonaccent\n 0x03ce: 0x07bb,\n // XK_Greek_omegaaccent\n 0x0401: 0x06b3,\n // XK_Cyrillic_IO\n 0x0402: 0x06b1,\n // XK_Serbian_DJE\n 0x0403: 0x06b2,\n // XK_Macedonia_GJE\n 0x0404: 0x06b4,\n // XK_Ukrainian_IE\n 0x0405: 0x06b5,\n // XK_Macedonia_DSE\n 0x0406: 0x06b6,\n // XK_Ukrainian_I\n 0x0407: 0x06b7,\n // XK_Ukrainian_YI\n 0x0408: 0x06b8,\n // XK_Cyrillic_JE\n 0x0409: 0x06b9,\n // XK_Cyrillic_LJE\n 0x040a: 0x06ba,\n // XK_Cyrillic_NJE\n 0x040b: 0x06bb,\n // XK_Serbian_TSHE\n 0x040c: 0x06bc,\n // XK_Macedonia_KJE\n 0x040e: 0x06be,\n // XK_Byelorussian_SHORTU\n 0x040f: 0x06bf,\n // XK_Cyrillic_DZHE\n 0x0410: 0x06e1,\n // XK_Cyrillic_A\n 0x0411: 0x06e2,\n // XK_Cyrillic_BE\n 0x0412: 0x06f7,\n // XK_Cyrillic_VE\n 0x0413: 0x06e7,\n // XK_Cyrillic_GHE\n 0x0414: 0x06e4,\n // XK_Cyrillic_DE\n 0x0415: 0x06e5,\n // XK_Cyrillic_IE\n 0x0416: 0x06f6,\n // XK_Cyrillic_ZHE\n 0x0417: 0x06fa,\n // XK_Cyrillic_ZE\n 0x0418: 0x06e9,\n // XK_Cyrillic_I\n 0x0419: 0x06ea,\n // XK_Cyrillic_SHORTI\n 0x041a: 0x06eb,\n // XK_Cyrillic_KA\n 0x041b: 0x06ec,\n // XK_Cyrillic_EL\n 0x041c: 0x06ed,\n // XK_Cyrillic_EM\n 0x041d: 0x06ee,\n // XK_Cyrillic_EN\n 0x041e: 0x06ef,\n // XK_Cyrillic_O\n 0x041f: 0x06f0,\n // XK_Cyrillic_PE\n 0x0420: 0x06f2,\n // XK_Cyrillic_ER\n 0x0421: 0x06f3,\n // XK_Cyrillic_ES\n 0x0422: 0x06f4,\n // XK_Cyrillic_TE\n 0x0423: 0x06f5,\n // XK_Cyrillic_U\n 0x0424: 0x06e6,\n // XK_Cyrillic_EF\n 0x0425: 0x06e8,\n // XK_Cyrillic_HA\n 0x0426: 0x06e3,\n // XK_Cyrillic_TSE\n 0x0427: 0x06fe,\n // XK_Cyrillic_CHE\n 0x0428: 0x06fb,\n // XK_Cyrillic_SHA\n 0x0429: 0x06fd,\n // XK_Cyrillic_SHCHA\n 0x042a: 0x06ff,\n // XK_Cyrillic_HARDSIGN\n 0x042b: 0x06f9,\n // XK_Cyrillic_YERU\n 0x042c: 0x06f8,\n // XK_Cyrillic_SOFTSIGN\n 0x042d: 0x06fc,\n // XK_Cyrillic_E\n 0x042e: 0x06e0,\n // XK_Cyrillic_YU\n 0x042f: 0x06f1,\n // XK_Cyrillic_YA\n 0x0430: 0x06c1,\n // XK_Cyrillic_a\n 0x0431: 0x06c2,\n // XK_Cyrillic_be\n 0x0432: 0x06d7,\n // XK_Cyrillic_ve\n 0x0433: 0x06c7,\n // XK_Cyrillic_ghe\n 0x0434: 0x06c4,\n // XK_Cyrillic_de\n 0x0435: 0x06c5,\n // XK_Cyrillic_ie\n 0x0436: 0x06d6,\n // XK_Cyrillic_zhe\n 0x0437: 0x06da,\n // XK_Cyrillic_ze\n 0x0438: 0x06c9,\n // XK_Cyrillic_i\n 0x0439: 0x06ca,\n // XK_Cyrillic_shorti\n 0x043a: 0x06cb,\n // XK_Cyrillic_ka\n 0x043b: 0x06cc,\n // XK_Cyrillic_el\n 0x043c: 0x06cd,\n // XK_Cyrillic_em\n 0x043d: 0x06ce,\n // XK_Cyrillic_en\n 0x043e: 0x06cf,\n // XK_Cyrillic_o\n 0x043f: 0x06d0,\n // XK_Cyrillic_pe\n 0x0440: 0x06d2,\n // XK_Cyrillic_er\n 0x0441: 0x06d3,\n // XK_Cyrillic_es\n 0x0442: 0x06d4,\n // XK_Cyrillic_te\n 0x0443: 0x06d5,\n // XK_Cyrillic_u\n 0x0444: 0x06c6,\n // XK_Cyrillic_ef\n 0x0445: 0x06c8,\n // XK_Cyrillic_ha\n 0x0446: 0x06c3,\n // XK_Cyrillic_tse\n 0x0447: 0x06de,\n // XK_Cyrillic_che\n 0x0448: 0x06db,\n // XK_Cyrillic_sha\n 0x0449: 0x06dd,\n // XK_Cyrillic_shcha\n 0x044a: 0x06df,\n // XK_Cyrillic_hardsign\n 0x044b: 0x06d9,\n // XK_Cyrillic_yeru\n 0x044c: 0x06d8,\n // XK_Cyrillic_softsign\n 0x044d: 0x06dc,\n // XK_Cyrillic_e\n 0x044e: 0x06c0,\n // XK_Cyrillic_yu\n 0x044f: 0x06d1,\n // XK_Cyrillic_ya\n 0x0451: 0x06a3,\n // XK_Cyrillic_io\n 0x0452: 0x06a1,\n // XK_Serbian_dje\n 0x0453: 0x06a2,\n // XK_Macedonia_gje\n 0x0454: 0x06a4,\n // XK_Ukrainian_ie\n 0x0455: 0x06a5,\n // XK_Macedonia_dse\n 0x0456: 0x06a6,\n // XK_Ukrainian_i\n 0x0457: 0x06a7,\n // XK_Ukrainian_yi\n 0x0458: 0x06a8,\n // XK_Cyrillic_je\n 0x0459: 0x06a9,\n // XK_Cyrillic_lje\n 0x045a: 0x06aa,\n // XK_Cyrillic_nje\n 0x045b: 0x06ab,\n // XK_Serbian_tshe\n 0x045c: 0x06ac,\n // XK_Macedonia_kje\n 0x045e: 0x06ae,\n // XK_Byelorussian_shortu\n 0x045f: 0x06af,\n // XK_Cyrillic_dzhe\n 0x0490: 0x06bd,\n // XK_Ukrainian_GHE_WITH_UPTURN\n 0x0491: 0x06ad,\n // XK_Ukrainian_ghe_with_upturn\n 0x05d0: 0x0ce0,\n // XK_hebrew_aleph\n 0x05d1: 0x0ce1,\n // XK_hebrew_bet\n 0x05d2: 0x0ce2,\n // XK_hebrew_gimel\n 0x05d3: 0x0ce3,\n // XK_hebrew_dalet\n 0x05d4: 0x0ce4,\n // XK_hebrew_he\n 0x05d5: 0x0ce5,\n // XK_hebrew_waw\n 0x05d6: 0x0ce6,\n // XK_hebrew_zain\n 0x05d7: 0x0ce7,\n // XK_hebrew_chet\n 0x05d8: 0x0ce8,\n // XK_hebrew_tet\n 0x05d9: 0x0ce9,\n // XK_hebrew_yod\n 0x05da: 0x0cea,\n // XK_hebrew_finalkaph\n 0x05db: 0x0ceb,\n // XK_hebrew_kaph\n 0x05dc: 0x0cec,\n // XK_hebrew_lamed\n 0x05dd: 0x0ced,\n // XK_hebrew_finalmem\n 0x05de: 0x0cee,\n // XK_hebrew_mem\n 0x05df: 0x0cef,\n // XK_hebrew_finalnun\n 0x05e0: 0x0cf0,\n // XK_hebrew_nun\n 0x05e1: 0x0cf1,\n // XK_hebrew_samech\n 0x05e2: 0x0cf2,\n // XK_hebrew_ayin\n 0x05e3: 0x0cf3,\n // XK_hebrew_finalpe\n 0x05e4: 0x0cf4,\n // XK_hebrew_pe\n 0x05e5: 0x0cf5,\n // XK_hebrew_finalzade\n 0x05e6: 0x0cf6,\n // XK_hebrew_zade\n 0x05e7: 0x0cf7,\n // XK_hebrew_qoph\n 0x05e8: 0x0cf8,\n // XK_hebrew_resh\n 0x05e9: 0x0cf9,\n // XK_hebrew_shin\n 0x05ea: 0x0cfa,\n // XK_hebrew_taw\n 0x060c: 0x05ac,\n // XK_Arabic_comma\n 0x061b: 0x05bb,\n // XK_Arabic_semicolon\n 0x061f: 0x05bf,\n // XK_Arabic_question_mark\n 0x0621: 0x05c1,\n // XK_Arabic_hamza\n 0x0622: 0x05c2,\n // XK_Arabic_maddaonalef\n 0x0623: 0x05c3,\n // XK_Arabic_hamzaonalef\n 0x0624: 0x05c4,\n // XK_Arabic_hamzaonwaw\n 0x0625: 0x05c5,\n // XK_Arabic_hamzaunderalef\n 0x0626: 0x05c6,\n // XK_Arabic_hamzaonyeh\n 0x0627: 0x05c7,\n // XK_Arabic_alef\n 0x0628: 0x05c8,\n // XK_Arabic_beh\n 0x0629: 0x05c9,\n // XK_Arabic_tehmarbuta\n 0x062a: 0x05ca,\n // XK_Arabic_teh\n 0x062b: 0x05cb,\n // XK_Arabic_theh\n 0x062c: 0x05cc,\n // XK_Arabic_jeem\n 0x062d: 0x05cd,\n // XK_Arabic_hah\n 0x062e: 0x05ce,\n // XK_Arabic_khah\n 0x062f: 0x05cf,\n // XK_Arabic_dal\n 0x0630: 0x05d0,\n // XK_Arabic_thal\n 0x0631: 0x05d1,\n // XK_Arabic_ra\n 0x0632: 0x05d2,\n // XK_Arabic_zain\n 0x0633: 0x05d3,\n // XK_Arabic_seen\n 0x0634: 0x05d4,\n // XK_Arabic_sheen\n 0x0635: 0x05d5,\n // XK_Arabic_sad\n 0x0636: 0x05d6,\n // XK_Arabic_dad\n 0x0637: 0x05d7,\n // XK_Arabic_tah\n 0x0638: 0x05d8,\n // XK_Arabic_zah\n 0x0639: 0x05d9,\n // XK_Arabic_ain\n 0x063a: 0x05da,\n // XK_Arabic_ghain\n 0x0640: 0x05e0,\n // XK_Arabic_tatweel\n 0x0641: 0x05e1,\n // XK_Arabic_feh\n 0x0642: 0x05e2,\n // XK_Arabic_qaf\n 0x0643: 0x05e3,\n // XK_Arabic_kaf\n 0x0644: 0x05e4,\n // XK_Arabic_lam\n 0x0645: 0x05e5,\n // XK_Arabic_meem\n 0x0646: 0x05e6,\n // XK_Arabic_noon\n 0x0647: 0x05e7,\n // XK_Arabic_ha\n 0x0648: 0x05e8,\n // XK_Arabic_waw\n 0x0649: 0x05e9,\n // XK_Arabic_alefmaksura\n 0x064a: 0x05ea,\n // XK_Arabic_yeh\n 0x064b: 0x05eb,\n // XK_Arabic_fathatan\n 0x064c: 0x05ec,\n // XK_Arabic_dammatan\n 0x064d: 0x05ed,\n // XK_Arabic_kasratan\n 0x064e: 0x05ee,\n // XK_Arabic_fatha\n 0x064f: 0x05ef,\n // XK_Arabic_damma\n 0x0650: 0x05f0,\n // XK_Arabic_kasra\n 0x0651: 0x05f1,\n // XK_Arabic_shadda\n 0x0652: 0x05f2,\n // XK_Arabic_sukun\n 0x0e01: 0x0da1,\n // XK_Thai_kokai\n 0x0e02: 0x0da2,\n // XK_Thai_khokhai\n 0x0e03: 0x0da3,\n // XK_Thai_khokhuat\n 0x0e04: 0x0da4,\n // XK_Thai_khokhwai\n 0x0e05: 0x0da5,\n // XK_Thai_khokhon\n 0x0e06: 0x0da6,\n // XK_Thai_khorakhang\n 0x0e07: 0x0da7,\n // XK_Thai_ngongu\n 0x0e08: 0x0da8,\n // XK_Thai_chochan\n 0x0e09: 0x0da9,\n // XK_Thai_choching\n 0x0e0a: 0x0daa,\n // XK_Thai_chochang\n 0x0e0b: 0x0dab,\n // XK_Thai_soso\n 0x0e0c: 0x0dac,\n // XK_Thai_chochoe\n 0x0e0d: 0x0dad,\n // XK_Thai_yoying\n 0x0e0e: 0x0dae,\n // XK_Thai_dochada\n 0x0e0f: 0x0daf,\n // XK_Thai_topatak\n 0x0e10: 0x0db0,\n // XK_Thai_thothan\n 0x0e11: 0x0db1,\n // XK_Thai_thonangmontho\n 0x0e12: 0x0db2,\n // XK_Thai_thophuthao\n 0x0e13: 0x0db3,\n // XK_Thai_nonen\n 0x0e14: 0x0db4,\n // XK_Thai_dodek\n 0x0e15: 0x0db5,\n // XK_Thai_totao\n 0x0e16: 0x0db6,\n // XK_Thai_thothung\n 0x0e17: 0x0db7,\n // XK_Thai_thothahan\n 0x0e18: 0x0db8,\n // XK_Thai_thothong\n 0x0e19: 0x0db9,\n // XK_Thai_nonu\n 0x0e1a: 0x0dba,\n // XK_Thai_bobaimai\n 0x0e1b: 0x0dbb,\n // XK_Thai_popla\n 0x0e1c: 0x0dbc,\n // XK_Thai_phophung\n 0x0e1d: 0x0dbd,\n // XK_Thai_fofa\n 0x0e1e: 0x0dbe,\n // XK_Thai_phophan\n 0x0e1f: 0x0dbf,\n // XK_Thai_fofan\n 0x0e20: 0x0dc0,\n // XK_Thai_phosamphao\n 0x0e21: 0x0dc1,\n // XK_Thai_moma\n 0x0e22: 0x0dc2,\n // XK_Thai_yoyak\n 0x0e23: 0x0dc3,\n // XK_Thai_rorua\n 0x0e24: 0x0dc4,\n // XK_Thai_ru\n 0x0e25: 0x0dc5,\n // XK_Thai_loling\n 0x0e26: 0x0dc6,\n // XK_Thai_lu\n 0x0e27: 0x0dc7,\n // XK_Thai_wowaen\n 0x0e28: 0x0dc8,\n // XK_Thai_sosala\n 0x0e29: 0x0dc9,\n // XK_Thai_sorusi\n 0x0e2a: 0x0dca,\n // XK_Thai_sosua\n 0x0e2b: 0x0dcb,\n // XK_Thai_hohip\n 0x0e2c: 0x0dcc,\n // XK_Thai_lochula\n 0x0e2d: 0x0dcd,\n // XK_Thai_oang\n 0x0e2e: 0x0dce,\n // XK_Thai_honokhuk\n 0x0e2f: 0x0dcf,\n // XK_Thai_paiyannoi\n 0x0e30: 0x0dd0,\n // XK_Thai_saraa\n 0x0e31: 0x0dd1,\n // XK_Thai_maihanakat\n 0x0e32: 0x0dd2,\n // XK_Thai_saraaa\n 0x0e33: 0x0dd3,\n // XK_Thai_saraam\n 0x0e34: 0x0dd4,\n // XK_Thai_sarai\n 0x0e35: 0x0dd5,\n // XK_Thai_saraii\n 0x0e36: 0x0dd6,\n // XK_Thai_saraue\n 0x0e37: 0x0dd7,\n // XK_Thai_sarauee\n 0x0e38: 0x0dd8,\n // XK_Thai_sarau\n 0x0e39: 0x0dd9,\n // XK_Thai_sarauu\n 0x0e3a: 0x0dda,\n // XK_Thai_phinthu\n 0x0e3f: 0x0ddf,\n // XK_Thai_baht\n 0x0e40: 0x0de0,\n // XK_Thai_sarae\n 0x0e41: 0x0de1,\n // XK_Thai_saraae\n 0x0e42: 0x0de2,\n // XK_Thai_sarao\n 0x0e43: 0x0de3,\n // XK_Thai_saraaimaimuan\n 0x0e44: 0x0de4,\n // XK_Thai_saraaimaimalai\n 0x0e45: 0x0de5,\n // XK_Thai_lakkhangyao\n 0x0e46: 0x0de6,\n // XK_Thai_maiyamok\n 0x0e47: 0x0de7,\n // XK_Thai_maitaikhu\n 0x0e48: 0x0de8,\n // XK_Thai_maiek\n 0x0e49: 0x0de9,\n // XK_Thai_maitho\n 0x0e4a: 0x0dea,\n // XK_Thai_maitri\n 0x0e4b: 0x0deb,\n // XK_Thai_maichattawa\n 0x0e4c: 0x0dec,\n // XK_Thai_thanthakhat\n 0x0e4d: 0x0ded,\n // XK_Thai_nikhahit\n 0x0e50: 0x0df0,\n // XK_Thai_leksun\n 0x0e51: 0x0df1,\n // XK_Thai_leknung\n 0x0e52: 0x0df2,\n // XK_Thai_leksong\n 0x0e53: 0x0df3,\n // XK_Thai_leksam\n 0x0e54: 0x0df4,\n // XK_Thai_leksi\n 0x0e55: 0x0df5,\n // XK_Thai_lekha\n 0x0e56: 0x0df6,\n // XK_Thai_lekhok\n 0x0e57: 0x0df7,\n // XK_Thai_lekchet\n 0x0e58: 0x0df8,\n // XK_Thai_lekpaet\n 0x0e59: 0x0df9,\n // XK_Thai_lekkao\n 0x2002: 0x0aa2,\n // XK_enspace\n 0x2003: 0x0aa1,\n // XK_emspace\n 0x2004: 0x0aa3,\n // XK_em3space\n 0x2005: 0x0aa4,\n // XK_em4space\n 0x2007: 0x0aa5,\n // XK_digitspace\n 0x2008: 0x0aa6,\n // XK_punctspace\n 0x2009: 0x0aa7,\n // XK_thinspace\n 0x200a: 0x0aa8,\n // XK_hairspace\n 0x2012: 0x0abb,\n // XK_figdash\n 0x2013: 0x0aaa,\n // XK_endash\n 0x2014: 0x0aa9,\n // XK_emdash\n 0x2015: 0x07af,\n // XK_Greek_horizbar\n 0x2017: 0x0cdf,\n // XK_hebrew_doublelowline\n 0x2018: 0x0ad0,\n // XK_leftsinglequotemark\n 0x2019: 0x0ad1,\n // XK_rightsinglequotemark\n 0x201a: 0x0afd,\n // XK_singlelowquotemark\n 0x201c: 0x0ad2,\n // XK_leftdoublequotemark\n 0x201d: 0x0ad3,\n // XK_rightdoublequotemark\n 0x201e: 0x0afe,\n // XK_doublelowquotemark\n 0x2020: 0x0af1,\n // XK_dagger\n 0x2021: 0x0af2,\n // XK_doubledagger\n 0x2022: 0x0ae6,\n // XK_enfilledcircbullet\n 0x2025: 0x0aaf,\n // XK_doubbaselinedot\n 0x2026: 0x0aae,\n // XK_ellipsis\n 0x2030: 0x0ad5,\n // XK_permille\n 0x2032: 0x0ad6,\n // XK_minutes\n 0x2033: 0x0ad7,\n // XK_seconds\n 0x2038: 0x0afc,\n // XK_caret\n 0x203e: 0x047e,\n // XK_overline\n 0x20a9: 0x0eff,\n // XK_Korean_Won\n 0x20ac: 0x20ac,\n // XK_EuroSign\n 0x2105: 0x0ab8,\n // XK_careof\n 0x2116: 0x06b0,\n // XK_numerosign\n 0x2117: 0x0afb,\n // XK_phonographcopyright\n 0x211e: 0x0ad4,\n // XK_prescription\n 0x2122: 0x0ac9,\n // XK_trademark\n 0x2153: 0x0ab0,\n // XK_onethird\n 0x2154: 0x0ab1,\n // XK_twothirds\n 0x2155: 0x0ab2,\n // XK_onefifth\n 0x2156: 0x0ab3,\n // XK_twofifths\n 0x2157: 0x0ab4,\n // XK_threefifths\n 0x2158: 0x0ab5,\n // XK_fourfifths\n 0x2159: 0x0ab6,\n // XK_onesixth\n 0x215a: 0x0ab7,\n // XK_fivesixths\n 0x215b: 0x0ac3,\n // XK_oneeighth\n 0x215c: 0x0ac4,\n // XK_threeeighths\n 0x215d: 0x0ac5,\n // XK_fiveeighths\n 0x215e: 0x0ac6,\n // XK_seveneighths\n 0x2190: 0x08fb,\n // XK_leftarrow\n 0x2191: 0x08fc,\n // XK_uparrow\n 0x2192: 0x08fd,\n // XK_rightarrow\n 0x2193: 0x08fe,\n // XK_downarrow\n 0x21d2: 0x08ce,\n // XK_implies\n 0x21d4: 0x08cd,\n // XK_ifonlyif\n 0x2202: 0x08ef,\n // XK_partialderivative\n 0x2207: 0x08c5,\n // XK_nabla\n 0x2218: 0x0bca,\n // XK_jot\n 0x221a: 0x08d6,\n // XK_radical\n 0x221d: 0x08c1,\n // XK_variation\n 0x221e: 0x08c2,\n // XK_infinity\n 0x2227: 0x08de,\n // XK_logicaland\n 0x2228: 0x08df,\n // XK_logicalor\n 0x2229: 0x08dc,\n // XK_intersection\n 0x222a: 0x08dd,\n // XK_union\n 0x222b: 0x08bf,\n // XK_integral\n 0x2234: 0x08c0,\n // XK_therefore\n 0x223c: 0x08c8,\n // XK_approximate\n 0x2243: 0x08c9,\n // XK_similarequal\n 0x2245: 0x1002248,\n // XK_approxeq\n 0x2260: 0x08bd,\n // XK_notequal\n 0x2261: 0x08cf,\n // XK_identical\n 0x2264: 0x08bc,\n // XK_lessthanequal\n 0x2265: 0x08be,\n // XK_greaterthanequal\n 0x2282: 0x08da,\n // XK_includedin\n 0x2283: 0x08db,\n // XK_includes\n 0x22a2: 0x0bfc,\n // XK_righttack\n 0x22a3: 0x0bdc,\n // XK_lefttack\n 0x22a4: 0x0bc2,\n // XK_downtack\n 0x22a5: 0x0bce,\n // XK_uptack\n 0x2308: 0x0bd3,\n // XK_upstile\n 0x230a: 0x0bc4,\n // XK_downstile\n 0x2315: 0x0afa,\n // XK_telephonerecorder\n 0x2320: 0x08a4,\n // XK_topintegral\n 0x2321: 0x08a5,\n // XK_botintegral\n 0x2395: 0x0bcc,\n // XK_quad\n 0x239b: 0x08ab,\n // XK_topleftparens\n 0x239d: 0x08ac,\n // XK_botleftparens\n 0x239e: 0x08ad,\n // XK_toprightparens\n 0x23a0: 0x08ae,\n // XK_botrightparens\n 0x23a1: 0x08a7,\n // XK_topleftsqbracket\n 0x23a3: 0x08a8,\n // XK_botleftsqbracket\n 0x23a4: 0x08a9,\n // XK_toprightsqbracket\n 0x23a6: 0x08aa,\n // XK_botrightsqbracket\n 0x23a8: 0x08af,\n // XK_leftmiddlecurlybrace\n 0x23ac: 0x08b0,\n // XK_rightmiddlecurlybrace\n 0x23b7: 0x08a1,\n // XK_leftradical\n 0x23ba: 0x09ef,\n // XK_horizlinescan1\n 0x23bb: 0x09f0,\n // XK_horizlinescan3\n 0x23bc: 0x09f2,\n // XK_horizlinescan7\n 0x23bd: 0x09f3,\n // XK_horizlinescan9\n 0x2409: 0x09e2,\n // XK_ht\n 0x240a: 0x09e5,\n // XK_lf\n 0x240b: 0x09e9,\n // XK_vt\n 0x240c: 0x09e3,\n // XK_ff\n 0x240d: 0x09e4,\n // XK_cr\n 0x2423: 0x0aac,\n // XK_signifblank\n 0x2424: 0x09e8,\n // XK_nl\n 0x2500: 0x08a3,\n // XK_horizconnector\n 0x2502: 0x08a6,\n // XK_vertconnector\n 0x250c: 0x08a2,\n // XK_topleftradical\n 0x2510: 0x09eb,\n // XK_uprightcorner\n 0x2514: 0x09ed,\n // XK_lowleftcorner\n 0x2518: 0x09ea,\n // XK_lowrightcorner\n 0x251c: 0x09f4,\n // XK_leftt\n 0x2524: 0x09f5,\n // XK_rightt\n 0x252c: 0x09f7,\n // XK_topt\n 0x2534: 0x09f6,\n // XK_bott\n 0x253c: 0x09ee,\n // XK_crossinglines\n 0x2592: 0x09e1,\n // XK_checkerboard\n 0x25aa: 0x0ae7,\n // XK_enfilledsqbullet\n 0x25ab: 0x0ae1,\n // XK_enopensquarebullet\n 0x25ac: 0x0adb,\n // XK_filledrectbullet\n 0x25ad: 0x0ae2,\n // XK_openrectbullet\n 0x25ae: 0x0adf,\n // XK_emfilledrect\n 0x25af: 0x0acf,\n // XK_emopenrectangle\n 0x25b2: 0x0ae8,\n // XK_filledtribulletup\n 0x25b3: 0x0ae3,\n // XK_opentribulletup\n 0x25b6: 0x0add,\n // XK_filledrighttribullet\n 0x25b7: 0x0acd,\n // XK_rightopentriangle\n 0x25bc: 0x0ae9,\n // XK_filledtribulletdown\n 0x25bd: 0x0ae4,\n // XK_opentribulletdown\n 0x25c0: 0x0adc,\n // XK_filledlefttribullet\n 0x25c1: 0x0acc,\n // XK_leftopentriangle\n 0x25c6: 0x09e0,\n // XK_soliddiamond\n 0x25cb: 0x0ace,\n // XK_emopencircle\n 0x25cf: 0x0ade,\n // XK_emfilledcircle\n 0x25e6: 0x0ae0,\n // XK_enopencircbullet\n 0x2606: 0x0ae5,\n // XK_openstar\n 0x260e: 0x0af9,\n // XK_telephone\n 0x2613: 0x0aca,\n // XK_signaturemark\n 0x261c: 0x0aea,\n // XK_leftpointer\n 0x261e: 0x0aeb,\n // XK_rightpointer\n 0x2640: 0x0af8,\n // XK_femalesymbol\n 0x2642: 0x0af7,\n // XK_malesymbol\n 0x2663: 0x0aec,\n // XK_club\n 0x2665: 0x0aee,\n // XK_heart\n 0x2666: 0x0aed,\n // XK_diamond\n 0x266d: 0x0af6,\n // XK_musicalflat\n 0x266f: 0x0af5,\n // XK_musicalsharp\n 0x2713: 0x0af3,\n // XK_checkmark\n 0x2717: 0x0af4,\n // XK_ballotcross\n 0x271d: 0x0ad9,\n // XK_latincross\n 0x2720: 0x0af0,\n // XK_maltesecross\n 0x27e8: 0x0abc,\n // XK_leftanglebracket\n 0x27e9: 0x0abe,\n // XK_rightanglebracket\n 0x3001: 0x04a4,\n // XK_kana_comma\n 0x3002: 0x04a1,\n // XK_kana_fullstop\n 0x300c: 0x04a2,\n // XK_kana_openingbracket\n 0x300d: 0x04a3,\n // XK_kana_closingbracket\n 0x309b: 0x04de,\n // XK_voicedsound\n 0x309c: 0x04df,\n // XK_semivoicedsound\n 0x30a1: 0x04a7,\n // XK_kana_a\n 0x30a2: 0x04b1,\n // XK_kana_A\n 0x30a3: 0x04a8,\n // XK_kana_i\n 0x30a4: 0x04b2,\n // XK_kana_I\n 0x30a5: 0x04a9,\n // XK_kana_u\n 0x30a6: 0x04b3,\n // XK_kana_U\n 0x30a7: 0x04aa,\n // XK_kana_e\n 0x30a8: 0x04b4,\n // XK_kana_E\n 0x30a9: 0x04ab,\n // XK_kana_o\n 0x30aa: 0x04b5,\n // XK_kana_O\n 0x30ab: 0x04b6,\n // XK_kana_KA\n 0x30ad: 0x04b7,\n // XK_kana_KI\n 0x30af: 0x04b8,\n // XK_kana_KU\n 0x30b1: 0x04b9,\n // XK_kana_KE\n 0x30b3: 0x04ba,\n // XK_kana_KO\n 0x30b5: 0x04bb,\n // XK_kana_SA\n 0x30b7: 0x04bc,\n // XK_kana_SHI\n 0x30b9: 0x04bd,\n // XK_kana_SU\n 0x30bb: 0x04be,\n // XK_kana_SE\n 0x30bd: 0x04bf,\n // XK_kana_SO\n 0x30bf: 0x04c0,\n // XK_kana_TA\n 0x30c1: 0x04c1,\n // XK_kana_CHI\n 0x30c3: 0x04af,\n // XK_kana_tsu\n 0x30c4: 0x04c2,\n // XK_kana_TSU\n 0x30c6: 0x04c3,\n // XK_kana_TE\n 0x30c8: 0x04c4,\n // XK_kana_TO\n 0x30ca: 0x04c5,\n // XK_kana_NA\n 0x30cb: 0x04c6,\n // XK_kana_NI\n 0x30cc: 0x04c7,\n // XK_kana_NU\n 0x30cd: 0x04c8,\n // XK_kana_NE\n 0x30ce: 0x04c9,\n // XK_kana_NO\n 0x30cf: 0x04ca,\n // XK_kana_HA\n 0x30d2: 0x04cb,\n // XK_kana_HI\n 0x30d5: 0x04cc,\n // XK_kana_FU\n 0x30d8: 0x04cd,\n // XK_kana_HE\n 0x30db: 0x04ce,\n // XK_kana_HO\n 0x30de: 0x04cf,\n // XK_kana_MA\n 0x30df: 0x04d0,\n // XK_kana_MI\n 0x30e0: 0x04d1,\n // XK_kana_MU\n 0x30e1: 0x04d2,\n // XK_kana_ME\n 0x30e2: 0x04d3,\n // XK_kana_MO\n 0x30e3: 0x04ac,\n // XK_kana_ya\n 0x30e4: 0x04d4,\n // XK_kana_YA\n 0x30e5: 0x04ad,\n // XK_kana_yu\n 0x30e6: 0x04d5,\n // XK_kana_YU\n 0x30e7: 0x04ae,\n // XK_kana_yo\n 0x30e8: 0x04d6,\n // XK_kana_YO\n 0x30e9: 0x04d7,\n // XK_kana_RA\n 0x30ea: 0x04d8,\n // XK_kana_RI\n 0x30eb: 0x04d9,\n // XK_kana_RU\n 0x30ec: 0x04da,\n // XK_kana_RE\n 0x30ed: 0x04db,\n // XK_kana_RO\n 0x30ef: 0x04dc,\n // XK_kana_WA\n 0x30f2: 0x04a6,\n // XK_kana_WO\n 0x30f3: 0x04dd,\n // XK_kana_N\n 0x30fb: 0x04a5,\n // XK_kana_conjunctive\n 0x30fc: 0x04b0 // XK_prolongedsound\n\n};\nvar _default = {\n lookup: function lookup(u) {\n // Latin-1 is one-to-one mapping\n if (u >= 0x20 && u <= 0xff) {\n return u;\n } // Lookup table (fairly random)\n\n\n var keysym = codepoints[u];\n\n if (keysym !== undefined) {\n return keysym;\n } // General mapping as final fallback\n\n\n return 0x01000000 | u;\n }\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getKey = getKey;\nexports.getKeycode = getKeycode;\nexports.getKeysym = getKeysym;\n\nvar _keysym = _interopRequireDefault(require(\"./keysym.js\"));\n\nvar _keysymdef = _interopRequireDefault(require(\"./keysymdef.js\"));\n\nvar _vkeys = _interopRequireDefault(require(\"./vkeys.js\"));\n\nvar _fixedkeys = _interopRequireDefault(require(\"./fixedkeys.js\"));\n\nvar _domkeytable = _interopRequireDefault(require(\"./domkeytable.js\"));\n\nvar browser = _interopRequireWildcard(require(\"../util/browser.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// Get 'KeyboardEvent.code', handling legacy browsers\nfunction getKeycode(evt) {\n // Are we getting proper key identifiers?\n // (unfortunately Firefox and Chrome are crappy here and gives\n // us an empty string on some platforms, rather than leaving it\n // undefined)\n if (evt.code) {\n // Mozilla isn't fully in sync with the spec yet\n switch (evt.code) {\n case 'OSLeft':\n return 'MetaLeft';\n\n case 'OSRight':\n return 'MetaRight';\n }\n\n return evt.code;\n } // The de-facto standard is to use Windows Virtual-Key codes\n // in the 'keyCode' field for non-printable characters\n\n\n if (evt.keyCode in _vkeys[\"default\"]) {\n var code = _vkeys[\"default\"][evt.keyCode]; // macOS has messed up this code for some reason\n\n if (browser.isMac() && code === 'ContextMenu') {\n code = 'MetaRight';\n } // The keyCode doesn't distinguish between left and right\n // for the standard modifiers\n\n\n if (evt.location === 2) {\n switch (code) {\n case 'ShiftLeft':\n return 'ShiftRight';\n\n case 'ControlLeft':\n return 'ControlRight';\n\n case 'AltLeft':\n return 'AltRight';\n }\n } // Nor a bunch of the numpad keys\n\n\n if (evt.location === 3) {\n switch (code) {\n case 'Delete':\n return 'NumpadDecimal';\n\n case 'Insert':\n return 'Numpad0';\n\n case 'End':\n return 'Numpad1';\n\n case 'ArrowDown':\n return 'Numpad2';\n\n case 'PageDown':\n return 'Numpad3';\n\n case 'ArrowLeft':\n return 'Numpad4';\n\n case 'ArrowRight':\n return 'Numpad6';\n\n case 'Home':\n return 'Numpad7';\n\n case 'ArrowUp':\n return 'Numpad8';\n\n case 'PageUp':\n return 'Numpad9';\n\n case 'Enter':\n return 'NumpadEnter';\n }\n }\n\n return code;\n }\n\n return 'Unidentified';\n} // Get 'KeyboardEvent.key', handling legacy browsers\n\n\nfunction getKey(evt) {\n // Are we getting a proper key value?\n if (evt.key !== undefined) {\n // Mozilla isn't fully in sync with the spec yet\n switch (evt.key) {\n case 'OS':\n return 'Meta';\n\n case 'LaunchMyComputer':\n return 'LaunchApplication1';\n\n case 'LaunchCalculator':\n return 'LaunchApplication2';\n } // iOS leaks some OS names\n\n\n switch (evt.key) {\n case 'UIKeyInputUpArrow':\n return 'ArrowUp';\n\n case 'UIKeyInputDownArrow':\n return 'ArrowDown';\n\n case 'UIKeyInputLeftArrow':\n return 'ArrowLeft';\n\n case 'UIKeyInputRightArrow':\n return 'ArrowRight';\n\n case 'UIKeyInputEscape':\n return 'Escape';\n } // Broken behaviour in Chrome\n\n\n if (evt.key === '\\x00' && evt.code === 'NumpadDecimal') {\n return 'Delete';\n }\n\n return evt.key;\n } // Try to deduce it based on the physical key\n\n\n var code = getKeycode(evt);\n\n if (code in _fixedkeys[\"default\"]) {\n return _fixedkeys[\"default\"][code];\n } // If that failed, then see if we have a printable character\n\n\n if (evt.charCode) {\n return String.fromCharCode(evt.charCode);\n } // At this point we have nothing left to go on\n\n\n return 'Unidentified';\n} // Get the most reliable keysym value we can get from a key event\n\n\nfunction getKeysym(evt) {\n var key = getKey(evt);\n\n if (key === 'Unidentified') {\n return null;\n } // First look up special keys\n\n\n if (key in _domkeytable[\"default\"]) {\n var location = evt.location; // Safari screws up location for the right cmd key\n\n if (key === 'Meta' && location === 0) {\n location = 2;\n } // And for Clear\n\n\n if (key === 'Clear' && location === 3) {\n var code = getKeycode(evt);\n\n if (code === 'NumLock') {\n location = 0;\n }\n }\n\n if (location === undefined || location > 3) {\n location = 0;\n } // The original Meta key now gets confused with the Windows key\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1020141\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1232918\n\n\n if (key === 'Meta') {\n var _code = getKeycode(evt);\n\n if (_code === 'AltLeft') {\n return _keysym[\"default\"].XK_Meta_L;\n } else if (_code === 'AltRight') {\n return _keysym[\"default\"].XK_Meta_R;\n }\n } // macOS has Clear instead of NumLock, but the remote system is\n // probably not macOS, so lying here is probably best...\n\n\n if (key === 'Clear') {\n var _code2 = getKeycode(evt);\n\n if (_code2 === 'NumLock') {\n return _keysym[\"default\"].XK_Num_Lock;\n }\n } // Windows sends alternating symbols for some keys when using a\n // Japanese layout. We have no way of synchronising with the IM\n // running on the remote system, so we send some combined keysym\n // instead and hope for the best.\n\n\n if (browser.isWindows()) {\n switch (key) {\n case 'Zenkaku':\n case 'Hankaku':\n return _keysym[\"default\"].XK_Zenkaku_Hankaku;\n\n case 'Romaji':\n case 'KanaMode':\n return _keysym[\"default\"].XK_Romaji;\n }\n }\n\n return _domkeytable[\"default\"][key][location];\n } // Now we need to look at the Unicode symbol instead\n // Special key? (FIXME: Should have been caught earlier)\n\n\n if (key.length !== 1) {\n return null;\n }\n\n var codepoint = key.charCodeAt();\n\n if (codepoint) {\n return _keysymdef[\"default\"].lookup(codepoint);\n }\n\n return null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2018 The noVNC Authors\n * Licensed under MPL 2.0 or any later version (see LICENSE.txt)\n */\n\n/*\n * Mapping between Microsoft® Windows® Virtual-Key codes and\n * HTML key codes.\n */\nvar _default = {\n 0x08: 'Backspace',\n 0x09: 'Tab',\n 0x0a: 'NumpadClear',\n 0x0d: 'Enter',\n 0x10: 'ShiftLeft',\n 0x11: 'ControlLeft',\n 0x12: 'AltLeft',\n 0x13: 'Pause',\n 0x14: 'CapsLock',\n 0x15: 'Lang1',\n 0x19: 'Lang2',\n 0x1b: 'Escape',\n 0x1c: 'Convert',\n 0x1d: 'NonConvert',\n 0x20: 'Space',\n 0x21: 'PageUp',\n 0x22: 'PageDown',\n 0x23: 'End',\n 0x24: 'Home',\n 0x25: 'ArrowLeft',\n 0x26: 'ArrowUp',\n 0x27: 'ArrowRight',\n 0x28: 'ArrowDown',\n 0x29: 'Select',\n 0x2c: 'PrintScreen',\n 0x2d: 'Insert',\n 0x2e: 'Delete',\n 0x2f: 'Help',\n 0x30: 'Digit0',\n 0x31: 'Digit1',\n 0x32: 'Digit2',\n 0x33: 'Digit3',\n 0x34: 'Digit4',\n 0x35: 'Digit5',\n 0x36: 'Digit6',\n 0x37: 'Digit7',\n 0x38: 'Digit8',\n 0x39: 'Digit9',\n 0x5b: 'MetaLeft',\n 0x5c: 'MetaRight',\n 0x5d: 'ContextMenu',\n 0x5f: 'Sleep',\n 0x60: 'Numpad0',\n 0x61: 'Numpad1',\n 0x62: 'Numpad2',\n 0x63: 'Numpad3',\n 0x64: 'Numpad4',\n 0x65: 'Numpad5',\n 0x66: 'Numpad6',\n 0x67: 'Numpad7',\n 0x68: 'Numpad8',\n 0x69: 'Numpad9',\n 0x6a: 'NumpadMultiply',\n 0x6b: 'NumpadAdd',\n 0x6c: 'NumpadDecimal',\n 0x6d: 'NumpadSubtract',\n 0x6e: 'NumpadDecimal',\n // Duplicate, because buggy on Windows\n 0x6f: 'NumpadDivide',\n 0x70: 'F1',\n 0x71: 'F2',\n 0x72: 'F3',\n 0x73: 'F4',\n 0x74: 'F5',\n 0x75: 'F6',\n 0x76: 'F7',\n 0x77: 'F8',\n 0x78: 'F9',\n 0x79: 'F10',\n 0x7a: 'F11',\n 0x7b: 'F12',\n 0x7c: 'F13',\n 0x7d: 'F14',\n 0x7e: 'F15',\n 0x7f: 'F16',\n 0x80: 'F17',\n 0x81: 'F18',\n 0x82: 'F19',\n 0x83: 'F20',\n 0x84: 'F21',\n 0x85: 'F22',\n 0x86: 'F23',\n 0x87: 'F24',\n 0x90: 'NumLock',\n 0x91: 'ScrollLock',\n 0xa6: 'BrowserBack',\n 0xa7: 'BrowserForward',\n 0xa8: 'BrowserRefresh',\n 0xa9: 'BrowserStop',\n 0xaa: 'BrowserSearch',\n 0xab: 'BrowserFavorites',\n 0xac: 'BrowserHome',\n 0xad: 'AudioVolumeMute',\n 0xae: 'AudioVolumeDown',\n 0xaf: 'AudioVolumeUp',\n 0xb0: 'MediaTrackNext',\n 0xb1: 'MediaTrackPrevious',\n 0xb2: 'MediaStop',\n 0xb3: 'MediaPlayPause',\n 0xb4: 'LaunchMail',\n 0xb5: 'MediaSelect',\n 0xb6: 'LaunchApp1',\n 0xb7: 'LaunchApp2',\n 0xe1: 'AltRight' // Only when it is AltGraph\n\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/*\n * This file is auto-generated from keymaps.csv\n * Database checksum sha256(76d68c10e97d37fe2ea459e210125ae41796253fb217e900bf2983ade13a7920)\n * To re-generate, run:\n * keymap-gen code-map --lang=js keymaps.csv html atset1\n*/\nvar _default = {\n \"Again\": 0xe005,\n\n /* html:Again (Again) -> linux:129 (KEY_AGAIN) -> atset1:57349 */\n \"AltLeft\": 0x38,\n\n /* html:AltLeft (AltLeft) -> linux:56 (KEY_LEFTALT) -> atset1:56 */\n \"AltRight\": 0xe038,\n\n /* html:AltRight (AltRight) -> linux:100 (KEY_RIGHTALT) -> atset1:57400 */\n \"ArrowDown\": 0xe050,\n\n /* html:ArrowDown (ArrowDown) -> linux:108 (KEY_DOWN) -> atset1:57424 */\n \"ArrowLeft\": 0xe04b,\n\n /* html:ArrowLeft (ArrowLeft) -> linux:105 (KEY_LEFT) -> atset1:57419 */\n \"ArrowRight\": 0xe04d,\n\n /* html:ArrowRight (ArrowRight) -> linux:106 (KEY_RIGHT) -> atset1:57421 */\n \"ArrowUp\": 0xe048,\n\n /* html:ArrowUp (ArrowUp) -> linux:103 (KEY_UP) -> atset1:57416 */\n \"AudioVolumeDown\": 0xe02e,\n\n /* html:AudioVolumeDown (AudioVolumeDown) -> linux:114 (KEY_VOLUMEDOWN) -> atset1:57390 */\n \"AudioVolumeMute\": 0xe020,\n\n /* html:AudioVolumeMute (AudioVolumeMute) -> linux:113 (KEY_MUTE) -> atset1:57376 */\n \"AudioVolumeUp\": 0xe030,\n\n /* html:AudioVolumeUp (AudioVolumeUp) -> linux:115 (KEY_VOLUMEUP) -> atset1:57392 */\n \"Backquote\": 0x29,\n\n /* html:Backquote (Backquote) -> linux:41 (KEY_GRAVE) -> atset1:41 */\n \"Backslash\": 0x2b,\n\n /* html:Backslash (Backslash) -> linux:43 (KEY_BACKSLASH) -> atset1:43 */\n \"Backspace\": 0xe,\n\n /* html:Backspace (Backspace) -> linux:14 (KEY_BACKSPACE) -> atset1:14 */\n \"BracketLeft\": 0x1a,\n\n /* html:BracketLeft (BracketLeft) -> linux:26 (KEY_LEFTBRACE) -> atset1:26 */\n \"BracketRight\": 0x1b,\n\n /* html:BracketRight (BracketRight) -> linux:27 (KEY_RIGHTBRACE) -> atset1:27 */\n \"BrowserBack\": 0xe06a,\n\n /* html:BrowserBack (BrowserBack) -> linux:158 (KEY_BACK) -> atset1:57450 */\n \"BrowserFavorites\": 0xe066,\n\n /* html:BrowserFavorites (BrowserFavorites) -> linux:156 (KEY_BOOKMARKS) -> atset1:57446 */\n \"BrowserForward\": 0xe069,\n\n /* html:BrowserForward (BrowserForward) -> linux:159 (KEY_FORWARD) -> atset1:57449 */\n \"BrowserHome\": 0xe032,\n\n /* html:BrowserHome (BrowserHome) -> linux:172 (KEY_HOMEPAGE) -> atset1:57394 */\n \"BrowserRefresh\": 0xe067,\n\n /* html:BrowserRefresh (BrowserRefresh) -> linux:173 (KEY_REFRESH) -> atset1:57447 */\n \"BrowserSearch\": 0xe065,\n\n /* html:BrowserSearch (BrowserSearch) -> linux:217 (KEY_SEARCH) -> atset1:57445 */\n \"BrowserStop\": 0xe068,\n\n /* html:BrowserStop (BrowserStop) -> linux:128 (KEY_STOP) -> atset1:57448 */\n \"CapsLock\": 0x3a,\n\n /* html:CapsLock (CapsLock) -> linux:58 (KEY_CAPSLOCK) -> atset1:58 */\n \"Comma\": 0x33,\n\n /* html:Comma (Comma) -> linux:51 (KEY_COMMA) -> atset1:51 */\n \"ContextMenu\": 0xe05d,\n\n /* html:ContextMenu (ContextMenu) -> linux:127 (KEY_COMPOSE) -> atset1:57437 */\n \"ControlLeft\": 0x1d,\n\n /* html:ControlLeft (ControlLeft) -> linux:29 (KEY_LEFTCTRL) -> atset1:29 */\n \"ControlRight\": 0xe01d,\n\n /* html:ControlRight (ControlRight) -> linux:97 (KEY_RIGHTCTRL) -> atset1:57373 */\n \"Convert\": 0x79,\n\n /* html:Convert (Convert) -> linux:92 (KEY_HENKAN) -> atset1:121 */\n \"Copy\": 0xe078,\n\n /* html:Copy (Copy) -> linux:133 (KEY_COPY) -> atset1:57464 */\n \"Cut\": 0xe03c,\n\n /* html:Cut (Cut) -> linux:137 (KEY_CUT) -> atset1:57404 */\n \"Delete\": 0xe053,\n\n /* html:Delete (Delete) -> linux:111 (KEY_DELETE) -> atset1:57427 */\n \"Digit0\": 0xb,\n\n /* html:Digit0 (Digit0) -> linux:11 (KEY_0) -> atset1:11 */\n \"Digit1\": 0x2,\n\n /* html:Digit1 (Digit1) -> linux:2 (KEY_1) -> atset1:2 */\n \"Digit2\": 0x3,\n\n /* html:Digit2 (Digit2) -> linux:3 (KEY_2) -> atset1:3 */\n \"Digit3\": 0x4,\n\n /* html:Digit3 (Digit3) -> linux:4 (KEY_3) -> atset1:4 */\n \"Digit4\": 0x5,\n\n /* html:Digit4 (Digit4) -> linux:5 (KEY_4) -> atset1:5 */\n \"Digit5\": 0x6,\n\n /* html:Digit5 (Digit5) -> linux:6 (KEY_5) -> atset1:6 */\n \"Digit6\": 0x7,\n\n /* html:Digit6 (Digit6) -> linux:7 (KEY_6) -> atset1:7 */\n \"Digit7\": 0x8,\n\n /* html:Digit7 (Digit7) -> linux:8 (KEY_7) -> atset1:8 */\n \"Digit8\": 0x9,\n\n /* html:Digit8 (Digit8) -> linux:9 (KEY_8) -> atset1:9 */\n \"Digit9\": 0xa,\n\n /* html:Digit9 (Digit9) -> linux:10 (KEY_9) -> atset1:10 */\n \"Eject\": 0xe07d,\n\n /* html:Eject (Eject) -> linux:162 (KEY_EJECTCLOSECD) -> atset1:57469 */\n \"End\": 0xe04f,\n\n /* html:End (End) -> linux:107 (KEY_END) -> atset1:57423 */\n \"Enter\": 0x1c,\n\n /* html:Enter (Enter) -> linux:28 (KEY_ENTER) -> atset1:28 */\n \"Equal\": 0xd,\n\n /* html:Equal (Equal) -> linux:13 (KEY_EQUAL) -> atset1:13 */\n \"Escape\": 0x1,\n\n /* html:Escape (Escape) -> linux:1 (KEY_ESC) -> atset1:1 */\n \"F1\": 0x3b,\n\n /* html:F1 (F1) -> linux:59 (KEY_F1) -> atset1:59 */\n \"F10\": 0x44,\n\n /* html:F10 (F10) -> linux:68 (KEY_F10) -> atset1:68 */\n \"F11\": 0x57,\n\n /* html:F11 (F11) -> linux:87 (KEY_F11) -> atset1:87 */\n \"F12\": 0x58,\n\n /* html:F12 (F12) -> linux:88 (KEY_F12) -> atset1:88 */\n \"F13\": 0x5d,\n\n /* html:F13 (F13) -> linux:183 (KEY_F13) -> atset1:93 */\n \"F14\": 0x5e,\n\n /* html:F14 (F14) -> linux:184 (KEY_F14) -> atset1:94 */\n \"F15\": 0x5f,\n\n /* html:F15 (F15) -> linux:185 (KEY_F15) -> atset1:95 */\n \"F16\": 0x55,\n\n /* html:F16 (F16) -> linux:186 (KEY_F16) -> atset1:85 */\n \"F17\": 0xe003,\n\n /* html:F17 (F17) -> linux:187 (KEY_F17) -> atset1:57347 */\n \"F18\": 0xe077,\n\n /* html:F18 (F18) -> linux:188 (KEY_F18) -> atset1:57463 */\n \"F19\": 0xe004,\n\n /* html:F19 (F19) -> linux:189 (KEY_F19) -> atset1:57348 */\n \"F2\": 0x3c,\n\n /* html:F2 (F2) -> linux:60 (KEY_F2) -> atset1:60 */\n \"F20\": 0x5a,\n\n /* html:F20 (F20) -> linux:190 (KEY_F20) -> atset1:90 */\n \"F21\": 0x74,\n\n /* html:F21 (F21) -> linux:191 (KEY_F21) -> atset1:116 */\n \"F22\": 0xe079,\n\n /* html:F22 (F22) -> linux:192 (KEY_F22) -> atset1:57465 */\n \"F23\": 0x6d,\n\n /* html:F23 (F23) -> linux:193 (KEY_F23) -> atset1:109 */\n \"F24\": 0x6f,\n\n /* html:F24 (F24) -> linux:194 (KEY_F24) -> atset1:111 */\n \"F3\": 0x3d,\n\n /* html:F3 (F3) -> linux:61 (KEY_F3) -> atset1:61 */\n \"F4\": 0x3e,\n\n /* html:F4 (F4) -> linux:62 (KEY_F4) -> atset1:62 */\n \"F5\": 0x3f,\n\n /* html:F5 (F5) -> linux:63 (KEY_F5) -> atset1:63 */\n \"F6\": 0x40,\n\n /* html:F6 (F6) -> linux:64 (KEY_F6) -> atset1:64 */\n \"F7\": 0x41,\n\n /* html:F7 (F7) -> linux:65 (KEY_F7) -> atset1:65 */\n \"F8\": 0x42,\n\n /* html:F8 (F8) -> linux:66 (KEY_F8) -> atset1:66 */\n \"F9\": 0x43,\n\n /* html:F9 (F9) -> linux:67 (KEY_F9) -> atset1:67 */\n \"Find\": 0xe041,\n\n /* html:Find (Find) -> linux:136 (KEY_FIND) -> atset1:57409 */\n \"Help\": 0xe075,\n\n /* html:Help (Help) -> linux:138 (KEY_HELP) -> atset1:57461 */\n \"Hiragana\": 0x77,\n\n /* html:Hiragana (Lang4) -> linux:91 (KEY_HIRAGANA) -> atset1:119 */\n \"Home\": 0xe047,\n\n /* html:Home (Home) -> linux:102 (KEY_HOME) -> atset1:57415 */\n \"Insert\": 0xe052,\n\n /* html:Insert (Insert) -> linux:110 (KEY_INSERT) -> atset1:57426 */\n \"IntlBackslash\": 0x56,\n\n /* html:IntlBackslash (IntlBackslash) -> linux:86 (KEY_102ND) -> atset1:86 */\n \"IntlRo\": 0x73,\n\n /* html:IntlRo (IntlRo) -> linux:89 (KEY_RO) -> atset1:115 */\n \"IntlYen\": 0x7d,\n\n /* html:IntlYen (IntlYen) -> linux:124 (KEY_YEN) -> atset1:125 */\n \"KanaMode\": 0x70,\n\n /* html:KanaMode (KanaMode) -> linux:93 (KEY_KATAKANAHIRAGANA) -> atset1:112 */\n \"Katakana\": 0x78,\n\n /* html:Katakana (Lang3) -> linux:90 (KEY_KATAKANA) -> atset1:120 */\n \"KeyA\": 0x1e,\n\n /* html:KeyA (KeyA) -> linux:30 (KEY_A) -> atset1:30 */\n \"KeyB\": 0x30,\n\n /* html:KeyB (KeyB) -> linux:48 (KEY_B) -> atset1:48 */\n \"KeyC\": 0x2e,\n\n /* html:KeyC (KeyC) -> linux:46 (KEY_C) -> atset1:46 */\n \"KeyD\": 0x20,\n\n /* html:KeyD (KeyD) -> linux:32 (KEY_D) -> atset1:32 */\n \"KeyE\": 0x12,\n\n /* html:KeyE (KeyE) -> linux:18 (KEY_E) -> atset1:18 */\n \"KeyF\": 0x21,\n\n /* html:KeyF (KeyF) -> linux:33 (KEY_F) -> atset1:33 */\n \"KeyG\": 0x22,\n\n /* html:KeyG (KeyG) -> linux:34 (KEY_G) -> atset1:34 */\n \"KeyH\": 0x23,\n\n /* html:KeyH (KeyH) -> linux:35 (KEY_H) -> atset1:35 */\n \"KeyI\": 0x17,\n\n /* html:KeyI (KeyI) -> linux:23 (KEY_I) -> atset1:23 */\n \"KeyJ\": 0x24,\n\n /* html:KeyJ (KeyJ) -> linux:36 (KEY_J) -> atset1:36 */\n \"KeyK\": 0x25,\n\n /* html:KeyK (KeyK) -> linux:37 (KEY_K) -> atset1:37 */\n \"KeyL\": 0x26,\n\n /* html:KeyL (KeyL) -> linux:38 (KEY_L) -> atset1:38 */\n \"KeyM\": 0x32,\n\n /* html:KeyM (KeyM) -> linux:50 (KEY_M) -> atset1:50 */\n \"KeyN\": 0x31,\n\n /* html:KeyN (KeyN) -> linux:49 (KEY_N) -> atset1:49 */\n \"KeyO\": 0x18,\n\n /* html:KeyO (KeyO) -> linux:24 (KEY_O) -> atset1:24 */\n \"KeyP\": 0x19,\n\n /* html:KeyP (KeyP) -> linux:25 (KEY_P) -> atset1:25 */\n \"KeyQ\": 0x10,\n\n /* html:KeyQ (KeyQ) -> linux:16 (KEY_Q) -> atset1:16 */\n \"KeyR\": 0x13,\n\n /* html:KeyR (KeyR) -> linux:19 (KEY_R) -> atset1:19 */\n \"KeyS\": 0x1f,\n\n /* html:KeyS (KeyS) -> linux:31 (KEY_S) -> atset1:31 */\n \"KeyT\": 0x14,\n\n /* html:KeyT (KeyT) -> linux:20 (KEY_T) -> atset1:20 */\n \"KeyU\": 0x16,\n\n /* html:KeyU (KeyU) -> linux:22 (KEY_U) -> atset1:22 */\n \"KeyV\": 0x2f,\n\n /* html:KeyV (KeyV) -> linux:47 (KEY_V) -> atset1:47 */\n \"KeyW\": 0x11,\n\n /* html:KeyW (KeyW) -> linux:17 (KEY_W) -> atset1:17 */\n \"KeyX\": 0x2d,\n\n /* html:KeyX (KeyX) -> linux:45 (KEY_X) -> atset1:45 */\n \"KeyY\": 0x15,\n\n /* html:KeyY (KeyY) -> linux:21 (KEY_Y) -> atset1:21 */\n \"KeyZ\": 0x2c,\n\n /* html:KeyZ (KeyZ) -> linux:44 (KEY_Z) -> atset1:44 */\n \"Lang1\": 0x72,\n\n /* html:Lang1 (Lang1) -> linux:122 (KEY_HANGEUL) -> atset1:114 */\n \"Lang2\": 0x71,\n\n /* html:Lang2 (Lang2) -> linux:123 (KEY_HANJA) -> atset1:113 */\n \"Lang3\": 0x78,\n\n /* html:Lang3 (Lang3) -> linux:90 (KEY_KATAKANA) -> atset1:120 */\n \"Lang4\": 0x77,\n\n /* html:Lang4 (Lang4) -> linux:91 (KEY_HIRAGANA) -> atset1:119 */\n \"Lang5\": 0x76,\n\n /* html:Lang5 (Lang5) -> linux:85 (KEY_ZENKAKUHANKAKU) -> atset1:118 */\n \"LaunchApp1\": 0xe06b,\n\n /* html:LaunchApp1 (LaunchApp1) -> linux:157 (KEY_COMPUTER) -> atset1:57451 */\n \"LaunchApp2\": 0xe021,\n\n /* html:LaunchApp2 (LaunchApp2) -> linux:140 (KEY_CALC) -> atset1:57377 */\n \"LaunchMail\": 0xe06c,\n\n /* html:LaunchMail (LaunchMail) -> linux:155 (KEY_MAIL) -> atset1:57452 */\n \"MediaPlayPause\": 0xe022,\n\n /* html:MediaPlayPause (MediaPlayPause) -> linux:164 (KEY_PLAYPAUSE) -> atset1:57378 */\n \"MediaSelect\": 0xe06d,\n\n /* html:MediaSelect (MediaSelect) -> linux:226 (KEY_MEDIA) -> atset1:57453 */\n \"MediaStop\": 0xe024,\n\n /* html:MediaStop (MediaStop) -> linux:166 (KEY_STOPCD) -> atset1:57380 */\n \"MediaTrackNext\": 0xe019,\n\n /* html:MediaTrackNext (MediaTrackNext) -> linux:163 (KEY_NEXTSONG) -> atset1:57369 */\n \"MediaTrackPrevious\": 0xe010,\n\n /* html:MediaTrackPrevious (MediaTrackPrevious) -> linux:165 (KEY_PREVIOUSSONG) -> atset1:57360 */\n \"MetaLeft\": 0xe05b,\n\n /* html:MetaLeft (MetaLeft) -> linux:125 (KEY_LEFTMETA) -> atset1:57435 */\n \"MetaRight\": 0xe05c,\n\n /* html:MetaRight (MetaRight) -> linux:126 (KEY_RIGHTMETA) -> atset1:57436 */\n \"Minus\": 0xc,\n\n /* html:Minus (Minus) -> linux:12 (KEY_MINUS) -> atset1:12 */\n \"NonConvert\": 0x7b,\n\n /* html:NonConvert (NonConvert) -> linux:94 (KEY_MUHENKAN) -> atset1:123 */\n \"NumLock\": 0x45,\n\n /* html:NumLock (NumLock) -> linux:69 (KEY_NUMLOCK) -> atset1:69 */\n \"Numpad0\": 0x52,\n\n /* html:Numpad0 (Numpad0) -> linux:82 (KEY_KP0) -> atset1:82 */\n \"Numpad1\": 0x4f,\n\n /* html:Numpad1 (Numpad1) -> linux:79 (KEY_KP1) -> atset1:79 */\n \"Numpad2\": 0x50,\n\n /* html:Numpad2 (Numpad2) -> linux:80 (KEY_KP2) -> atset1:80 */\n \"Numpad3\": 0x51,\n\n /* html:Numpad3 (Numpad3) -> linux:81 (KEY_KP3) -> atset1:81 */\n \"Numpad4\": 0x4b,\n\n /* html:Numpad4 (Numpad4) -> linux:75 (KEY_KP4) -> atset1:75 */\n \"Numpad5\": 0x4c,\n\n /* html:Numpad5 (Numpad5) -> linux:76 (KEY_KP5) -> atset1:76 */\n \"Numpad6\": 0x4d,\n\n /* html:Numpad6 (Numpad6) -> linux:77 (KEY_KP6) -> atset1:77 */\n \"Numpad7\": 0x47,\n\n /* html:Numpad7 (Numpad7) -> linux:71 (KEY_KP7) -> atset1:71 */\n \"Numpad8\": 0x48,\n\n /* html:Numpad8 (Numpad8) -> linux:72 (KEY_KP8) -> atset1:72 */\n \"Numpad9\": 0x49,\n\n /* html:Numpad9 (Numpad9) -> linux:73 (KEY_KP9) -> atset1:73 */\n \"NumpadAdd\": 0x4e,\n\n /* html:NumpadAdd (NumpadAdd) -> linux:78 (KEY_KPPLUS) -> atset1:78 */\n \"NumpadComma\": 0x7e,\n\n /* html:NumpadComma (NumpadComma) -> linux:121 (KEY_KPCOMMA) -> atset1:126 */\n \"NumpadDecimal\": 0x53,\n\n /* html:NumpadDecimal (NumpadDecimal) -> linux:83 (KEY_KPDOT) -> atset1:83 */\n \"NumpadDivide\": 0xe035,\n\n /* html:NumpadDivide (NumpadDivide) -> linux:98 (KEY_KPSLASH) -> atset1:57397 */\n \"NumpadEnter\": 0xe01c,\n\n /* html:NumpadEnter (NumpadEnter) -> linux:96 (KEY_KPENTER) -> atset1:57372 */\n \"NumpadEqual\": 0x59,\n\n /* html:NumpadEqual (NumpadEqual) -> linux:117 (KEY_KPEQUAL) -> atset1:89 */\n \"NumpadMultiply\": 0x37,\n\n /* html:NumpadMultiply (NumpadMultiply) -> linux:55 (KEY_KPASTERISK) -> atset1:55 */\n \"NumpadParenLeft\": 0xe076,\n\n /* html:NumpadParenLeft (NumpadParenLeft) -> linux:179 (KEY_KPLEFTPAREN) -> atset1:57462 */\n \"NumpadParenRight\": 0xe07b,\n\n /* html:NumpadParenRight (NumpadParenRight) -> linux:180 (KEY_KPRIGHTPAREN) -> atset1:57467 */\n \"NumpadSubtract\": 0x4a,\n\n /* html:NumpadSubtract (NumpadSubtract) -> linux:74 (KEY_KPMINUS) -> atset1:74 */\n \"Open\": 0x64,\n\n /* html:Open (Open) -> linux:134 (KEY_OPEN) -> atset1:100 */\n \"PageDown\": 0xe051,\n\n /* html:PageDown (PageDown) -> linux:109 (KEY_PAGEDOWN) -> atset1:57425 */\n \"PageUp\": 0xe049,\n\n /* html:PageUp (PageUp) -> linux:104 (KEY_PAGEUP) -> atset1:57417 */\n \"Paste\": 0x65,\n\n /* html:Paste (Paste) -> linux:135 (KEY_PASTE) -> atset1:101 */\n \"Pause\": 0xe046,\n\n /* html:Pause (Pause) -> linux:119 (KEY_PAUSE) -> atset1:57414 */\n \"Period\": 0x34,\n\n /* html:Period (Period) -> linux:52 (KEY_DOT) -> atset1:52 */\n \"Power\": 0xe05e,\n\n /* html:Power (Power) -> linux:116 (KEY_POWER) -> atset1:57438 */\n \"PrintScreen\": 0x54,\n\n /* html:PrintScreen (PrintScreen) -> linux:99 (KEY_SYSRQ) -> atset1:84 */\n \"Props\": 0xe006,\n\n /* html:Props (Props) -> linux:130 (KEY_PROPS) -> atset1:57350 */\n \"Quote\": 0x28,\n\n /* html:Quote (Quote) -> linux:40 (KEY_APOSTROPHE) -> atset1:40 */\n \"ScrollLock\": 0x46,\n\n /* html:ScrollLock (ScrollLock) -> linux:70 (KEY_SCROLLLOCK) -> atset1:70 */\n \"Semicolon\": 0x27,\n\n /* html:Semicolon (Semicolon) -> linux:39 (KEY_SEMICOLON) -> atset1:39 */\n \"ShiftLeft\": 0x2a,\n\n /* html:ShiftLeft (ShiftLeft) -> linux:42 (KEY_LEFTSHIFT) -> atset1:42 */\n \"ShiftRight\": 0x36,\n\n /* html:ShiftRight (ShiftRight) -> linux:54 (KEY_RIGHTSHIFT) -> atset1:54 */\n \"Slash\": 0x35,\n\n /* html:Slash (Slash) -> linux:53 (KEY_SLASH) -> atset1:53 */\n \"Sleep\": 0xe05f,\n\n /* html:Sleep (Sleep) -> linux:142 (KEY_SLEEP) -> atset1:57439 */\n \"Space\": 0x39,\n\n /* html:Space (Space) -> linux:57 (KEY_SPACE) -> atset1:57 */\n \"Suspend\": 0xe025,\n\n /* html:Suspend (Suspend) -> linux:205 (KEY_SUSPEND) -> atset1:57381 */\n \"Tab\": 0xf,\n\n /* html:Tab (Tab) -> linux:15 (KEY_TAB) -> atset1:15 */\n \"Undo\": 0xe007,\n\n /* html:Undo (Undo) -> linux:131 (KEY_UNDO) -> atset1:57351 */\n \"WakeUp\": 0xe063\n /* html:WakeUp (WakeUp) -> linux:143 (KEY_WAKEUP) -> atset1:57443 */\n\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _int = require(\"./util/int.js\");\n\nvar Log = _interopRequireWildcard(require(\"./util/logging.js\"));\n\nvar _strings = require(\"./util/strings.js\");\n\nvar _browser = require(\"./util/browser.js\");\n\nvar _element = require(\"./util/element.js\");\n\nvar _events = require(\"./util/events.js\");\n\nvar _eventtarget = _interopRequireDefault(require(\"./util/eventtarget.js\"));\n\nvar _display = _interopRequireDefault(require(\"./display.js\"));\n\nvar _inflator = _interopRequireDefault(require(\"./inflator.js\"));\n\nvar _deflator = _interopRequireDefault(require(\"./deflator.js\"));\n\nvar _keyboard = _interopRequireDefault(require(\"./input/keyboard.js\"));\n\nvar _gesturehandler = _interopRequireDefault(require(\"./input/gesturehandler.js\"));\n\nvar _cursor = _interopRequireDefault(require(\"./util/cursor.js\"));\n\nvar _websock = _interopRequireDefault(require(\"./websock.js\"));\n\nvar _des = _interopRequireDefault(require(\"./des.js\"));\n\nvar _keysym = _interopRequireDefault(require(\"./input/keysym.js\"));\n\nvar _xtscancodes = _interopRequireDefault(require(\"./input/xtscancodes.js\"));\n\nvar _encodings = require(\"./encodings.js\");\n\nvar _raw = _interopRequireDefault(require(\"./decoders/raw.js\"));\n\nvar _copyrect = _interopRequireDefault(require(\"./decoders/copyrect.js\"));\n\nvar _rre = _interopRequireDefault(require(\"./decoders/rre.js\"));\n\nvar _hextile = _interopRequireDefault(require(\"./decoders/hextile.js\"));\n\nvar _tight = _interopRequireDefault(require(\"./decoders/tight.js\"));\n\nvar _tightpng = _interopRequireDefault(require(\"./decoders/tightpng.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// How many seconds to wait for a disconnect to finish\nvar DISCONNECT_TIMEOUT = 3;\nvar DEFAULT_BACKGROUND = 'rgb(40, 40, 40)'; // Minimum wait (ms) between two mouse moves\n\nvar MOUSE_MOVE_DELAY = 17; // Wheel thresholds\n\nvar WHEEL_STEP = 50; // Pixels needed for one step\n\nvar WHEEL_LINE_HEIGHT = 19; // Assumed pixels for one line step\n// Gesture thresholds\n\nvar GESTURE_ZOOMSENS = 75;\nvar GESTURE_SCRLSENS = 50;\nvar DOUBLE_TAP_TIMEOUT = 1000;\nvar DOUBLE_TAP_THRESHOLD = 50; // Extended clipboard pseudo-encoding formats\n\nvar extendedClipboardFormatText = 1;\n/*eslint-disable no-unused-vars */\n\nvar extendedClipboardFormatRtf = 1 << 1;\nvar extendedClipboardFormatHtml = 1 << 2;\nvar extendedClipboardFormatDib = 1 << 3;\nvar extendedClipboardFormatFiles = 1 << 4;\n/*eslint-enable */\n// Extended clipboard pseudo-encoding actions\n\nvar extendedClipboardActionCaps = 1 << 24;\nvar extendedClipboardActionRequest = 1 << 25;\nvar extendedClipboardActionPeek = 1 << 26;\nvar extendedClipboardActionNotify = 1 << 27;\nvar extendedClipboardActionProvide = 1 << 28;\n\nvar RFB = /*#__PURE__*/function (_EventTargetMixin) {\n _inherits(RFB, _EventTargetMixin);\n\n var _super = _createSuper(RFB);\n\n function RFB(target, urlOrChannel, options) {\n var _this;\n\n _classCallCheck(this, RFB);\n\n if (!target) {\n throw new Error(\"Must specify target\");\n }\n\n if (!urlOrChannel) {\n throw new Error(\"Must specify URL, WebSocket or RTCDataChannel\");\n }\n\n _this = _super.call(this);\n _this._target = target;\n\n if (typeof urlOrChannel === \"string\") {\n _this._url = urlOrChannel;\n } else {\n _this._url = null;\n _this._rawChannel = urlOrChannel;\n } // Connection details\n\n\n options = options || {};\n _this._rfbCredentials = options.credentials || {};\n _this._shared = 'shared' in options ? !!options.shared : true;\n _this._repeaterID = options.repeaterID || '';\n _this._wsProtocols = options.wsProtocols || []; // Internal state\n\n _this._rfbConnectionState = '';\n _this._rfbInitState = '';\n _this._rfbAuthScheme = -1;\n _this._rfbCleanDisconnect = true; // Server capabilities\n\n _this._rfbVersion = 0;\n _this._rfbMaxVersion = 3.8;\n _this._rfbTightVNC = false;\n _this._rfbVeNCryptState = 0;\n _this._rfbXvpVer = 0;\n _this._fbWidth = 0;\n _this._fbHeight = 0;\n _this._fbName = \"\";\n _this._capabilities = {\n power: false\n };\n _this._supportsFence = false;\n _this._supportsContinuousUpdates = false;\n _this._enabledContinuousUpdates = false;\n _this._supportsSetDesktopSize = false;\n _this._screenID = 0;\n _this._screenFlags = 0;\n _this._qemuExtKeyEventSupported = false;\n _this._clipboardText = null;\n _this._clipboardServerCapabilitiesActions = {};\n _this._clipboardServerCapabilitiesFormats = {}; // Internal objects\n\n _this._sock = null; // Websock object\n\n _this._display = null; // Display object\n\n _this._flushing = false; // Display flushing state\n\n _this._keyboard = null; // Keyboard input handler object\n\n _this._gestures = null; // Gesture input handler object\n\n _this._resizeObserver = null; // Resize observer object\n // Timers\n\n _this._disconnTimer = null; // disconnection timer\n\n _this._resizeTimeout = null; // resize rate limiting\n\n _this._mouseMoveTimer = null; // Decoder states\n\n _this._decoders = {};\n _this._FBU = {\n rects: 0,\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n encoding: null\n }; // Mouse state\n\n _this._mousePos = {};\n _this._mouseButtonMask = 0;\n _this._mouseLastMoveTime = 0;\n _this._viewportDragging = false;\n _this._viewportDragPos = {};\n _this._viewportHasMoved = false;\n _this._accumulatedWheelDeltaX = 0;\n _this._accumulatedWheelDeltaY = 0; // Gesture state\n\n _this._gestureLastTapTime = null;\n _this._gestureFirstDoubleTapEv = null;\n _this._gestureLastMagnitudeX = 0;\n _this._gestureLastMagnitudeY = 0; // Bound event handlers\n\n _this._eventHandlers = {\n focusCanvas: _this._focusCanvas.bind(_assertThisInitialized(_this)),\n handleResize: _this._handleResize.bind(_assertThisInitialized(_this)),\n handleMouse: _this._handleMouse.bind(_assertThisInitialized(_this)),\n handleWheel: _this._handleWheel.bind(_assertThisInitialized(_this)),\n handleGesture: _this._handleGesture.bind(_assertThisInitialized(_this))\n }; // main setup\n\n Log.Debug(\">> RFB.constructor\"); // Create DOM elements\n\n _this._screen = document.createElement('div');\n _this._screen.style.display = 'flex';\n _this._screen.style.width = '100%';\n _this._screen.style.height = '100%';\n _this._screen.style.overflow = 'auto';\n _this._screen.style.background = DEFAULT_BACKGROUND;\n _this._canvas = document.createElement('canvas');\n _this._canvas.style.margin = 'auto'; // Some browsers add an outline on focus\n\n _this._canvas.style.outline = 'none';\n _this._canvas.width = 0;\n _this._canvas.height = 0;\n _this._canvas.tabIndex = -1;\n\n _this._screen.appendChild(_this._canvas); // Cursor\n\n\n _this._cursor = new _cursor[\"default\"](); // XXX: TightVNC 2.8.11 sends no cursor at all until Windows changes\n // it. Result: no cursor at all until a window border or an edit field\n // is hit blindly. But there are also VNC servers that draw the cursor\n // in the framebuffer and don't send the empty local cursor. There is\n // no way to satisfy both sides.\n //\n // The spec is unclear on this \"initial cursor\" issue. Many other\n // viewers (TigerVNC, RealVNC, Remmina) display an arrow as the\n // initial cursor instead.\n\n _this._cursorImage = RFB.cursors.none; // populate decoder array with objects\n\n _this._decoders[_encodings.encodings.encodingRaw] = new _raw[\"default\"]();\n _this._decoders[_encodings.encodings.encodingCopyRect] = new _copyrect[\"default\"]();\n _this._decoders[_encodings.encodings.encodingRRE] = new _rre[\"default\"]();\n _this._decoders[_encodings.encodings.encodingHextile] = new _hextile[\"default\"]();\n _this._decoders[_encodings.encodings.encodingTight] = new _tight[\"default\"]();\n _this._decoders[_encodings.encodings.encodingTightPNG] = new _tightpng[\"default\"](); // NB: nothing that needs explicit teardown should be done\n // before this point, since this can throw an exception\n\n try {\n _this._display = new _display[\"default\"](_this._canvas);\n } catch (exc) {\n Log.Error(\"Display exception: \" + exc);\n throw exc;\n }\n\n _this._display.onflush = _this._onFlush.bind(_assertThisInitialized(_this));\n _this._keyboard = new _keyboard[\"default\"](_this._canvas);\n _this._keyboard.onkeyevent = _this._handleKeyEvent.bind(_assertThisInitialized(_this));\n _this._gestures = new _gesturehandler[\"default\"]();\n _this._sock = new _websock[\"default\"]();\n\n _this._sock.on('open', _this._socketOpen.bind(_assertThisInitialized(_this)));\n\n _this._sock.on('close', _this._socketClose.bind(_assertThisInitialized(_this)));\n\n _this._sock.on('message', _this._handleMessage.bind(_assertThisInitialized(_this)));\n\n _this._sock.on('error', _this._socketError.bind(_assertThisInitialized(_this)));\n\n _this._resizeObserver = new ResizeObserver(_this._eventHandlers.handleResize); // All prepared, kick off the connection\n\n _this._updateConnectionState('connecting');\n\n Log.Debug(\"<< RFB.constructor\"); // ===== PROPERTIES =====\n\n _this.dragViewport = false;\n _this.focusOnClick = true;\n _this._viewOnly = false;\n _this._clipViewport = false;\n _this._scaleViewport = false;\n _this._resizeSession = false;\n _this._showDotCursor = false;\n\n if (options.showDotCursor !== undefined) {\n Log.Warn(\"Specifying showDotCursor as a RFB constructor argument is deprecated\");\n _this._showDotCursor = options.showDotCursor;\n }\n\n _this._qualityLevel = 6;\n _this._compressionLevel = 2;\n return _this;\n } // ===== PROPERTIES =====\n\n\n _createClass(RFB, [{\n key: \"viewOnly\",\n get: function get() {\n return this._viewOnly;\n },\n set: function set(viewOnly) {\n this._viewOnly = viewOnly;\n\n if (this._rfbConnectionState === \"connecting\" || this._rfbConnectionState === \"connected\") {\n if (viewOnly) {\n this._keyboard.ungrab();\n } else {\n this._keyboard.grab();\n }\n }\n }\n }, {\n key: \"capabilities\",\n get: function get() {\n return this._capabilities;\n }\n }, {\n key: \"touchButton\",\n get: function get() {\n return 0;\n },\n set: function set(button) {\n Log.Warn(\"Using old API!\");\n }\n }, {\n key: \"clipViewport\",\n get: function get() {\n return this._clipViewport;\n },\n set: function set(viewport) {\n this._clipViewport = viewport;\n\n this._updateClip();\n }\n }, {\n key: \"scaleViewport\",\n get: function get() {\n return this._scaleViewport;\n },\n set: function set(scale) {\n this._scaleViewport = scale; // Scaling trumps clipping, so we may need to adjust\n // clipping when enabling or disabling scaling\n\n if (scale && this._clipViewport) {\n this._updateClip();\n }\n\n this._updateScale();\n\n if (!scale && this._clipViewport) {\n this._updateClip();\n }\n }\n }, {\n key: \"resizeSession\",\n get: function get() {\n return this._resizeSession;\n },\n set: function set(resize) {\n this._resizeSession = resize;\n\n if (resize) {\n this._requestRemoteResize();\n }\n }\n }, {\n key: \"showDotCursor\",\n get: function get() {\n return this._showDotCursor;\n },\n set: function set(show) {\n this._showDotCursor = show;\n\n this._refreshCursor();\n }\n }, {\n key: \"background\",\n get: function get() {\n return this._screen.style.background;\n },\n set: function set(cssValue) {\n this._screen.style.background = cssValue;\n }\n }, {\n key: \"qualityLevel\",\n get: function get() {\n return this._qualityLevel;\n },\n set: function set(qualityLevel) {\n if (!Number.isInteger(qualityLevel) || qualityLevel < 0 || qualityLevel > 9) {\n Log.Error(\"qualityLevel must be an integer between 0 and 9\");\n return;\n }\n\n if (this._qualityLevel === qualityLevel) {\n return;\n }\n\n this._qualityLevel = qualityLevel;\n\n if (this._rfbConnectionState === 'connected') {\n this._sendEncodings();\n }\n }\n }, {\n key: \"compressionLevel\",\n get: function get() {\n return this._compressionLevel;\n },\n set: function set(compressionLevel) {\n if (!Number.isInteger(compressionLevel) || compressionLevel < 0 || compressionLevel > 9) {\n Log.Error(\"compressionLevel must be an integer between 0 and 9\");\n return;\n }\n\n if (this._compressionLevel === compressionLevel) {\n return;\n }\n\n this._compressionLevel = compressionLevel;\n\n if (this._rfbConnectionState === 'connected') {\n this._sendEncodings();\n }\n } // ===== PUBLIC METHODS =====\n\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n this._updateConnectionState('disconnecting');\n\n this._sock.off('error');\n\n this._sock.off('message');\n\n this._sock.off('open');\n }\n }, {\n key: \"sendCredentials\",\n value: function sendCredentials(creds) {\n this._rfbCredentials = creds;\n setTimeout(this._initMsg.bind(this), 0);\n }\n }, {\n key: \"sendCtrlAltDel\",\n value: function sendCtrlAltDel() {\n if (this._rfbConnectionState !== 'connected' || this._viewOnly) {\n return;\n }\n\n Log.Info(\"Sending Ctrl-Alt-Del\");\n this.sendKey(_keysym[\"default\"].XK_Control_L, \"ControlLeft\", true);\n this.sendKey(_keysym[\"default\"].XK_Alt_L, \"AltLeft\", true);\n this.sendKey(_keysym[\"default\"].XK_Delete, \"Delete\", true);\n this.sendKey(_keysym[\"default\"].XK_Delete, \"Delete\", false);\n this.sendKey(_keysym[\"default\"].XK_Alt_L, \"AltLeft\", false);\n this.sendKey(_keysym[\"default\"].XK_Control_L, \"ControlLeft\", false);\n }\n }, {\n key: \"machineShutdown\",\n value: function machineShutdown() {\n this._xvpOp(1, 2);\n }\n }, {\n key: \"machineReboot\",\n value: function machineReboot() {\n this._xvpOp(1, 3);\n }\n }, {\n key: \"machineReset\",\n value: function machineReset() {\n this._xvpOp(1, 4);\n } // Send a key press. If 'down' is not specified then send a down key\n // followed by an up key.\n\n }, {\n key: \"sendKey\",\n value: function sendKey(keysym, code, down) {\n if (this._rfbConnectionState !== 'connected' || this._viewOnly) {\n return;\n }\n\n if (down === undefined) {\n this.sendKey(keysym, code, true);\n this.sendKey(keysym, code, false);\n return;\n }\n\n var scancode = _xtscancodes[\"default\"][code];\n\n if (this._qemuExtKeyEventSupported && scancode) {\n // 0 is NoSymbol\n keysym = keysym || 0;\n Log.Info(\"Sending key (\" + (down ? \"down\" : \"up\") + \"): keysym \" + keysym + \", scancode \" + scancode);\n RFB.messages.QEMUExtendedKeyEvent(this._sock, keysym, down, scancode);\n } else {\n if (!keysym) {\n return;\n }\n\n Log.Info(\"Sending keysym (\" + (down ? \"down\" : \"up\") + \"): \" + keysym);\n RFB.messages.keyEvent(this._sock, keysym, down ? 1 : 0);\n }\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this._canvas.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this._canvas.blur();\n }\n }, {\n key: \"clipboardPasteFrom\",\n value: function clipboardPasteFrom(text) {\n if (this._rfbConnectionState !== 'connected' || this._viewOnly) {\n return;\n }\n\n if (this._clipboardServerCapabilitiesFormats[extendedClipboardFormatText] && this._clipboardServerCapabilitiesActions[extendedClipboardActionNotify]) {\n this._clipboardText = text;\n RFB.messages.extendedClipboardNotify(this._sock, [extendedClipboardFormatText]);\n } else {\n var data = new Uint8Array(text.length);\n\n for (var i = 0; i < text.length; i++) {\n // FIXME: text can have values outside of Latin1/Uint8\n data[i] = text.charCodeAt(i);\n }\n\n RFB.messages.clientCutText(this._sock, data);\n }\n } // ===== PRIVATE METHODS =====\n\n }, {\n key: \"_connect\",\n value: function _connect() {\n Log.Debug(\">> RFB.connect\");\n\n if (this._url) {\n Log.Info(\"connecting to \".concat(this._url));\n\n this._sock.open(this._url, this._wsProtocols);\n } else {\n Log.Info(\"attaching \".concat(this._rawChannel, \" to Websock\"));\n\n this._sock.attach(this._rawChannel);\n\n if (this._sock.readyState === 'closed') {\n throw Error(\"Cannot use already closed WebSocket/RTCDataChannel\");\n }\n\n if (this._sock.readyState === 'open') {\n // FIXME: _socketOpen() can in theory call _fail(), which\n // isn't allowed this early, but I'm not sure that can\n // happen without a bug messing up our state variables\n this._socketOpen();\n }\n } // Make our elements part of the page\n\n\n this._target.appendChild(this._screen);\n\n this._gestures.attach(this._canvas);\n\n this._cursor.attach(this._canvas);\n\n this._refreshCursor(); // Monitor size changes of the screen element\n\n\n this._resizeObserver.observe(this._screen); // Always grab focus on some kind of click event\n\n\n this._canvas.addEventListener(\"mousedown\", this._eventHandlers.focusCanvas);\n\n this._canvas.addEventListener(\"touchstart\", this._eventHandlers.focusCanvas); // Mouse events\n\n\n this._canvas.addEventListener('mousedown', this._eventHandlers.handleMouse);\n\n this._canvas.addEventListener('mouseup', this._eventHandlers.handleMouse);\n\n this._canvas.addEventListener('mousemove', this._eventHandlers.handleMouse); // Prevent middle-click pasting (see handler for why we bind to document)\n\n\n this._canvas.addEventListener('click', this._eventHandlers.handleMouse); // preventDefault() on mousedown doesn't stop this event for some\n // reason so we have to explicitly block it\n\n\n this._canvas.addEventListener('contextmenu', this._eventHandlers.handleMouse); // Wheel events\n\n\n this._canvas.addEventListener(\"wheel\", this._eventHandlers.handleWheel); // Gesture events\n\n\n this._canvas.addEventListener(\"gesturestart\", this._eventHandlers.handleGesture);\n\n this._canvas.addEventListener(\"gesturemove\", this._eventHandlers.handleGesture);\n\n this._canvas.addEventListener(\"gestureend\", this._eventHandlers.handleGesture);\n\n Log.Debug(\"<< RFB.connect\");\n }\n }, {\n key: \"_disconnect\",\n value: function _disconnect() {\n Log.Debug(\">> RFB.disconnect\");\n\n this._cursor.detach();\n\n this._canvas.removeEventListener(\"gesturestart\", this._eventHandlers.handleGesture);\n\n this._canvas.removeEventListener(\"gesturemove\", this._eventHandlers.handleGesture);\n\n this._canvas.removeEventListener(\"gestureend\", this._eventHandlers.handleGesture);\n\n this._canvas.removeEventListener(\"wheel\", this._eventHandlers.handleWheel);\n\n this._canvas.removeEventListener('mousedown', this._eventHandlers.handleMouse);\n\n this._canvas.removeEventListener('mouseup', this._eventHandlers.handleMouse);\n\n this._canvas.removeEventListener('mousemove', this._eventHandlers.handleMouse);\n\n this._canvas.removeEventListener('click', this._eventHandlers.handleMouse);\n\n this._canvas.removeEventListener('contextmenu', this._eventHandlers.handleMouse);\n\n this._canvas.removeEventListener(\"mousedown\", this._eventHandlers.focusCanvas);\n\n this._canvas.removeEventListener(\"touchstart\", this._eventHandlers.focusCanvas);\n\n this._resizeObserver.disconnect();\n\n this._keyboard.ungrab();\n\n this._gestures.detach();\n\n this._sock.close();\n\n try {\n this._target.removeChild(this._screen);\n } catch (e) {\n if (e.name === 'NotFoundError') {// Some cases where the initial connection fails\n // can disconnect before the _screen is created\n } else {\n throw e;\n }\n }\n\n clearTimeout(this._resizeTimeout);\n clearTimeout(this._mouseMoveTimer);\n Log.Debug(\"<< RFB.disconnect\");\n }\n }, {\n key: \"_socketOpen\",\n value: function _socketOpen() {\n if (this._rfbConnectionState === 'connecting' && this._rfbInitState === '') {\n this._rfbInitState = 'ProtocolVersion';\n Log.Debug(\"Starting VNC handshake\");\n } else {\n this._fail(\"Unexpected server connection while \" + this._rfbConnectionState);\n }\n }\n }, {\n key: \"_socketClose\",\n value: function _socketClose(e) {\n Log.Debug(\"WebSocket on-close event\");\n var msg = \"\";\n\n if (e.code) {\n msg = \"(code: \" + e.code;\n\n if (e.reason) {\n msg += \", reason: \" + e.reason;\n }\n\n msg += \")\";\n }\n\n switch (this._rfbConnectionState) {\n case 'connecting':\n this._fail(\"Connection closed \" + msg);\n\n break;\n\n case 'connected':\n // Handle disconnects that were initiated server-side\n this._updateConnectionState('disconnecting');\n\n this._updateConnectionState('disconnected');\n\n break;\n\n case 'disconnecting':\n // Normal disconnection path\n this._updateConnectionState('disconnected');\n\n break;\n\n case 'disconnected':\n this._fail(\"Unexpected server disconnect \" + \"when already disconnected \" + msg);\n\n break;\n\n default:\n this._fail(\"Unexpected server disconnect before connecting \" + msg);\n\n break;\n }\n\n this._sock.off('close'); // Delete reference to raw channel to allow cleanup.\n\n\n this._rawChannel = null;\n }\n }, {\n key: \"_socketError\",\n value: function _socketError(e) {\n Log.Warn(\"WebSocket on-error event\");\n }\n }, {\n key: \"_focusCanvas\",\n value: function _focusCanvas(event) {\n if (!this.focusOnClick) {\n return;\n }\n\n this.focus();\n }\n }, {\n key: \"_setDesktopName\",\n value: function _setDesktopName(name) {\n this._fbName = name;\n this.dispatchEvent(new CustomEvent(\"desktopname\", {\n detail: {\n name: this._fbName\n }\n }));\n }\n }, {\n key: \"_handleResize\",\n value: function _handleResize() {\n var _this2 = this;\n\n // If the window resized then our screen element might have\n // as well. Update the viewport dimensions.\n window.requestAnimationFrame(function () {\n _this2._updateClip();\n\n _this2._updateScale();\n });\n\n if (this._resizeSession) {\n // Request changing the resolution of the remote display to\n // the size of the local browser viewport.\n // In order to not send multiple requests before the browser-resize\n // is finished we wait 0.5 seconds before sending the request.\n clearTimeout(this._resizeTimeout);\n this._resizeTimeout = setTimeout(this._requestRemoteResize.bind(this), 500);\n }\n } // Update state of clipping in Display object, and make sure the\n // configured viewport matches the current screen size\n\n }, {\n key: \"_updateClip\",\n value: function _updateClip() {\n var curClip = this._display.clipViewport;\n var newClip = this._clipViewport;\n\n if (this._scaleViewport) {\n // Disable viewport clipping if we are scaling\n newClip = false;\n }\n\n if (curClip !== newClip) {\n this._display.clipViewport = newClip;\n }\n\n if (newClip) {\n // When clipping is enabled, the screen is limited to\n // the size of the container.\n var size = this._screenSize();\n\n this._display.viewportChangeSize(size.w, size.h);\n\n this._fixScrollbars();\n }\n }\n }, {\n key: \"_updateScale\",\n value: function _updateScale() {\n if (!this._scaleViewport) {\n this._display.scale = 1.0;\n } else {\n var size = this._screenSize();\n\n this._display.autoscale(size.w, size.h);\n }\n\n this._fixScrollbars();\n } // Requests a change of remote desktop size. This message is an extension\n // and may only be sent if we have received an ExtendedDesktopSize message\n\n }, {\n key: \"_requestRemoteResize\",\n value: function _requestRemoteResize() {\n clearTimeout(this._resizeTimeout);\n this._resizeTimeout = null;\n\n if (!this._resizeSession || this._viewOnly || !this._supportsSetDesktopSize) {\n return;\n }\n\n var size = this._screenSize();\n\n RFB.messages.setDesktopSize(this._sock, Math.floor(size.w), Math.floor(size.h), this._screenID, this._screenFlags);\n Log.Debug('Requested new desktop size: ' + size.w + 'x' + size.h);\n } // Gets the the size of the available screen\n\n }, {\n key: \"_screenSize\",\n value: function _screenSize() {\n var r = this._screen.getBoundingClientRect();\n\n return {\n w: r.width,\n h: r.height\n };\n }\n }, {\n key: \"_fixScrollbars\",\n value: function _fixScrollbars() {\n // This is a hack because Chrome screws up the calculation\n // for when scrollbars are needed. So to fix it we temporarily\n // toggle them off and on.\n var orig = this._screen.style.overflow;\n this._screen.style.overflow = 'hidden'; // Force Chrome to recalculate the layout by asking for\n // an element's dimensions\n\n this._screen.getBoundingClientRect();\n\n this._screen.style.overflow = orig;\n }\n /*\n * Connection states:\n * connecting\n * connected\n * disconnecting\n * disconnected - permanent state\n */\n\n }, {\n key: \"_updateConnectionState\",\n value: function _updateConnectionState(state) {\n var _this3 = this;\n\n var oldstate = this._rfbConnectionState;\n\n if (state === oldstate) {\n Log.Debug(\"Already in state '\" + state + \"', ignoring\");\n return;\n } // The 'disconnected' state is permanent for each RFB object\n\n\n if (oldstate === 'disconnected') {\n Log.Error(\"Tried changing state of a disconnected RFB object\");\n return;\n } // Ensure proper transitions before doing anything\n\n\n switch (state) {\n case 'connected':\n if (oldstate !== 'connecting') {\n Log.Error(\"Bad transition to connected state, \" + \"previous connection state: \" + oldstate);\n return;\n }\n\n break;\n\n case 'disconnected':\n if (oldstate !== 'disconnecting') {\n Log.Error(\"Bad transition to disconnected state, \" + \"previous connection state: \" + oldstate);\n return;\n }\n\n break;\n\n case 'connecting':\n if (oldstate !== '') {\n Log.Error(\"Bad transition to connecting state, \" + \"previous connection state: \" + oldstate);\n return;\n }\n\n break;\n\n case 'disconnecting':\n if (oldstate !== 'connected' && oldstate !== 'connecting') {\n Log.Error(\"Bad transition to disconnecting state, \" + \"previous connection state: \" + oldstate);\n return;\n }\n\n break;\n\n default:\n Log.Error(\"Unknown connection state: \" + state);\n return;\n } // State change actions\n\n\n this._rfbConnectionState = state;\n Log.Debug(\"New state '\" + state + \"', was '\" + oldstate + \"'.\");\n\n if (this._disconnTimer && state !== 'disconnecting') {\n Log.Debug(\"Clearing disconnect timer\");\n clearTimeout(this._disconnTimer);\n this._disconnTimer = null; // make sure we don't get a double event\n\n this._sock.off('close');\n }\n\n switch (state) {\n case 'connecting':\n this._connect();\n\n break;\n\n case 'connected':\n this.dispatchEvent(new CustomEvent(\"connect\", {\n detail: {}\n }));\n break;\n\n case 'disconnecting':\n this._disconnect();\n\n this._disconnTimer = setTimeout(function () {\n Log.Error(\"Disconnection timed out.\");\n\n _this3._updateConnectionState('disconnected');\n }, DISCONNECT_TIMEOUT * 1000);\n break;\n\n case 'disconnected':\n this.dispatchEvent(new CustomEvent(\"disconnect\", {\n detail: {\n clean: this._rfbCleanDisconnect\n }\n }));\n break;\n }\n }\n /* Print errors and disconnect\n *\n * The parameter 'details' is used for information that\n * should be logged but not sent to the user interface.\n */\n\n }, {\n key: \"_fail\",\n value: function _fail(details) {\n switch (this._rfbConnectionState) {\n case 'disconnecting':\n Log.Error(\"Failed when disconnecting: \" + details);\n break;\n\n case 'connected':\n Log.Error(\"Failed while connected: \" + details);\n break;\n\n case 'connecting':\n Log.Error(\"Failed when connecting: \" + details);\n break;\n\n default:\n Log.Error(\"RFB failure: \" + details);\n break;\n }\n\n this._rfbCleanDisconnect = false; //This is sent to the UI\n // Transition to disconnected without waiting for socket to close\n\n this._updateConnectionState('disconnecting');\n\n this._updateConnectionState('disconnected');\n\n return false;\n }\n }, {\n key: \"_setCapability\",\n value: function _setCapability(cap, val) {\n this._capabilities[cap] = val;\n this.dispatchEvent(new CustomEvent(\"capabilities\", {\n detail: {\n capabilities: this._capabilities\n }\n }));\n }\n }, {\n key: \"_handleMessage\",\n value: function _handleMessage() {\n if (this._sock.rQlen === 0) {\n Log.Warn(\"handleMessage called on an empty receive queue\");\n return;\n }\n\n switch (this._rfbConnectionState) {\n case 'disconnected':\n Log.Error(\"Got data while disconnected\");\n break;\n\n case 'connected':\n while (true) {\n if (this._flushing) {\n break;\n }\n\n if (!this._normalMsg()) {\n break;\n }\n\n if (this._sock.rQlen === 0) {\n break;\n }\n }\n\n break;\n\n default:\n this._initMsg();\n\n break;\n }\n }\n }, {\n key: \"_handleKeyEvent\",\n value: function _handleKeyEvent(keysym, code, down) {\n this.sendKey(keysym, code, down);\n }\n }, {\n key: \"_handleMouse\",\n value: function _handleMouse(ev) {\n /*\n * We don't check connection status or viewOnly here as the\n * mouse events might be used to control the viewport\n */\n if (ev.type === 'click') {\n /*\n * Note: This is only needed for the 'click' event as it fails\n * to fire properly for the target element so we have\n * to listen on the document element instead.\n */\n if (ev.target !== this._canvas) {\n return;\n }\n } // FIXME: if we're in view-only and not dragging,\n // should we stop events?\n\n\n ev.stopPropagation();\n ev.preventDefault();\n\n if (ev.type === 'click' || ev.type === 'contextmenu') {\n return;\n }\n\n var pos = (0, _element.clientToElement)(ev.clientX, ev.clientY, this._canvas);\n\n switch (ev.type) {\n case 'mousedown':\n (0, _events.setCapture)(this._canvas);\n\n this._handleMouseButton(pos.x, pos.y, true, 1 << ev.button);\n\n break;\n\n case 'mouseup':\n this._handleMouseButton(pos.x, pos.y, false, 1 << ev.button);\n\n break;\n\n case 'mousemove':\n this._handleMouseMove(pos.x, pos.y);\n\n break;\n }\n }\n }, {\n key: \"_handleMouseButton\",\n value: function _handleMouseButton(x, y, down, bmask) {\n if (this.dragViewport) {\n if (down && !this._viewportDragging) {\n this._viewportDragging = true;\n this._viewportDragPos = {\n 'x': x,\n 'y': y\n };\n this._viewportHasMoved = false; // Skip sending mouse events\n\n return;\n } else {\n this._viewportDragging = false; // If we actually performed a drag then we are done\n // here and should not send any mouse events\n\n if (this._viewportHasMoved) {\n return;\n } // Otherwise we treat this as a mouse click event.\n // Send the button down event here, as the button up\n // event is sent at the end of this function.\n\n\n this._sendMouse(x, y, bmask);\n }\n } // Flush waiting move event first\n\n\n if (this._mouseMoveTimer !== null) {\n clearTimeout(this._mouseMoveTimer);\n this._mouseMoveTimer = null;\n\n this._sendMouse(x, y, this._mouseButtonMask);\n }\n\n if (down) {\n this._mouseButtonMask |= bmask;\n } else {\n this._mouseButtonMask &= ~bmask;\n }\n\n this._sendMouse(x, y, this._mouseButtonMask);\n }\n }, {\n key: \"_handleMouseMove\",\n value: function _handleMouseMove(x, y) {\n var _this4 = this;\n\n if (this._viewportDragging) {\n var deltaX = this._viewportDragPos.x - x;\n var deltaY = this._viewportDragPos.y - y;\n\n if (this._viewportHasMoved || Math.abs(deltaX) > _browser.dragThreshold || Math.abs(deltaY) > _browser.dragThreshold) {\n this._viewportHasMoved = true;\n this._viewportDragPos = {\n 'x': x,\n 'y': y\n };\n\n this._display.viewportChangePos(deltaX, deltaY);\n } // Skip sending mouse events\n\n\n return;\n }\n\n this._mousePos = {\n 'x': x,\n 'y': y\n }; // Limit many mouse move events to one every MOUSE_MOVE_DELAY ms\n\n if (this._mouseMoveTimer == null) {\n var timeSinceLastMove = Date.now() - this._mouseLastMoveTime;\n\n if (timeSinceLastMove > MOUSE_MOVE_DELAY) {\n this._sendMouse(x, y, this._mouseButtonMask);\n\n this._mouseLastMoveTime = Date.now();\n } else {\n // Too soon since the latest move, wait the remaining time\n this._mouseMoveTimer = setTimeout(function () {\n _this4._handleDelayedMouseMove();\n }, MOUSE_MOVE_DELAY - timeSinceLastMove);\n }\n }\n }\n }, {\n key: \"_handleDelayedMouseMove\",\n value: function _handleDelayedMouseMove() {\n this._mouseMoveTimer = null;\n\n this._sendMouse(this._mousePos.x, this._mousePos.y, this._mouseButtonMask);\n\n this._mouseLastMoveTime = Date.now();\n }\n }, {\n key: \"_sendMouse\",\n value: function _sendMouse(x, y, mask) {\n if (this._rfbConnectionState !== 'connected') {\n return;\n }\n\n if (this._viewOnly) {\n return;\n } // View only, skip mouse events\n\n\n RFB.messages.pointerEvent(this._sock, this._display.absX(x), this._display.absY(y), mask);\n }\n }, {\n key: \"_handleWheel\",\n value: function _handleWheel(ev) {\n if (this._rfbConnectionState !== 'connected') {\n return;\n }\n\n if (this._viewOnly) {\n return;\n } // View only, skip mouse events\n\n\n ev.stopPropagation();\n ev.preventDefault();\n var pos = (0, _element.clientToElement)(ev.clientX, ev.clientY, this._canvas);\n var dX = ev.deltaX;\n var dY = ev.deltaY; // Pixel units unless it's non-zero.\n // Note that if deltamode is line or page won't matter since we aren't\n // sending the mouse wheel delta to the server anyway.\n // The difference between pixel and line can be important however since\n // we have a threshold that can be smaller than the line height.\n\n if (ev.deltaMode !== 0) {\n dX *= WHEEL_LINE_HEIGHT;\n dY *= WHEEL_LINE_HEIGHT;\n } // Mouse wheel events are sent in steps over VNC. This means that the VNC\n // protocol can't handle a wheel event with specific distance or speed.\n // Therefor, if we get a lot of small mouse wheel events we combine them.\n\n\n this._accumulatedWheelDeltaX += dX;\n this._accumulatedWheelDeltaY += dY; // Generate a mouse wheel step event when the accumulated delta\n // for one of the axes is large enough.\n\n if (Math.abs(this._accumulatedWheelDeltaX) >= WHEEL_STEP) {\n if (this._accumulatedWheelDeltaX < 0) {\n this._handleMouseButton(pos.x, pos.y, true, 1 << 5);\n\n this._handleMouseButton(pos.x, pos.y, false, 1 << 5);\n } else if (this._accumulatedWheelDeltaX > 0) {\n this._handleMouseButton(pos.x, pos.y, true, 1 << 6);\n\n this._handleMouseButton(pos.x, pos.y, false, 1 << 6);\n }\n\n this._accumulatedWheelDeltaX = 0;\n }\n\n if (Math.abs(this._accumulatedWheelDeltaY) >= WHEEL_STEP) {\n if (this._accumulatedWheelDeltaY < 0) {\n this._handleMouseButton(pos.x, pos.y, true, 1 << 3);\n\n this._handleMouseButton(pos.x, pos.y, false, 1 << 3);\n } else if (this._accumulatedWheelDeltaY > 0) {\n this._handleMouseButton(pos.x, pos.y, true, 1 << 4);\n\n this._handleMouseButton(pos.x, pos.y, false, 1 << 4);\n }\n\n this._accumulatedWheelDeltaY = 0;\n }\n }\n }, {\n key: \"_fakeMouseMove\",\n value: function _fakeMouseMove(ev, elementX, elementY) {\n this._handleMouseMove(elementX, elementY);\n\n this._cursor.move(ev.detail.clientX, ev.detail.clientY);\n }\n }, {\n key: \"_handleTapEvent\",\n value: function _handleTapEvent(ev, bmask) {\n var pos = (0, _element.clientToElement)(ev.detail.clientX, ev.detail.clientY, this._canvas); // If the user quickly taps multiple times we assume they meant to\n // hit the same spot, so slightly adjust coordinates\n\n if (this._gestureLastTapTime !== null && Date.now() - this._gestureLastTapTime < DOUBLE_TAP_TIMEOUT && this._gestureFirstDoubleTapEv.detail.type === ev.detail.type) {\n var dx = this._gestureFirstDoubleTapEv.detail.clientX - ev.detail.clientX;\n var dy = this._gestureFirstDoubleTapEv.detail.clientY - ev.detail.clientY;\n var distance = Math.hypot(dx, dy);\n\n if (distance < DOUBLE_TAP_THRESHOLD) {\n pos = (0, _element.clientToElement)(this._gestureFirstDoubleTapEv.detail.clientX, this._gestureFirstDoubleTapEv.detail.clientY, this._canvas);\n } else {\n this._gestureFirstDoubleTapEv = ev;\n }\n } else {\n this._gestureFirstDoubleTapEv = ev;\n }\n\n this._gestureLastTapTime = Date.now();\n\n this._fakeMouseMove(this._gestureFirstDoubleTapEv, pos.x, pos.y);\n\n this._handleMouseButton(pos.x, pos.y, true, bmask);\n\n this._handleMouseButton(pos.x, pos.y, false, bmask);\n }\n }, {\n key: \"_handleGesture\",\n value: function _handleGesture(ev) {\n var magnitude;\n var pos = (0, _element.clientToElement)(ev.detail.clientX, ev.detail.clientY, this._canvas);\n\n switch (ev.type) {\n case 'gesturestart':\n switch (ev.detail.type) {\n case 'onetap':\n this._handleTapEvent(ev, 0x1);\n\n break;\n\n case 'twotap':\n this._handleTapEvent(ev, 0x4);\n\n break;\n\n case 'threetap':\n this._handleTapEvent(ev, 0x2);\n\n break;\n\n case 'drag':\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n this._handleMouseButton(pos.x, pos.y, true, 0x1);\n\n break;\n\n case 'longpress':\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n this._handleMouseButton(pos.x, pos.y, true, 0x4);\n\n break;\n\n case 'twodrag':\n this._gestureLastMagnitudeX = ev.detail.magnitudeX;\n this._gestureLastMagnitudeY = ev.detail.magnitudeY;\n\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n break;\n\n case 'pinch':\n this._gestureLastMagnitudeX = Math.hypot(ev.detail.magnitudeX, ev.detail.magnitudeY);\n\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n break;\n }\n\n break;\n\n case 'gesturemove':\n switch (ev.detail.type) {\n case 'onetap':\n case 'twotap':\n case 'threetap':\n break;\n\n case 'drag':\n case 'longpress':\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n break;\n\n case 'twodrag':\n // Always scroll in the same position.\n // We don't know if the mouse was moved so we need to move it\n // every update.\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n while (ev.detail.magnitudeY - this._gestureLastMagnitudeY > GESTURE_SCRLSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x8);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x8);\n\n this._gestureLastMagnitudeY += GESTURE_SCRLSENS;\n }\n\n while (ev.detail.magnitudeY - this._gestureLastMagnitudeY < -GESTURE_SCRLSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x10);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x10);\n\n this._gestureLastMagnitudeY -= GESTURE_SCRLSENS;\n }\n\n while (ev.detail.magnitudeX - this._gestureLastMagnitudeX > GESTURE_SCRLSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x20);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x20);\n\n this._gestureLastMagnitudeX += GESTURE_SCRLSENS;\n }\n\n while (ev.detail.magnitudeX - this._gestureLastMagnitudeX < -GESTURE_SCRLSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x40);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x40);\n\n this._gestureLastMagnitudeX -= GESTURE_SCRLSENS;\n }\n\n break;\n\n case 'pinch':\n // Always scroll in the same position.\n // We don't know if the mouse was moved so we need to move it\n // every update.\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n magnitude = Math.hypot(ev.detail.magnitudeX, ev.detail.magnitudeY);\n\n if (Math.abs(magnitude - this._gestureLastMagnitudeX) > GESTURE_ZOOMSENS) {\n this._handleKeyEvent(_keysym[\"default\"].XK_Control_L, \"ControlLeft\", true);\n\n while (magnitude - this._gestureLastMagnitudeX > GESTURE_ZOOMSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x8);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x8);\n\n this._gestureLastMagnitudeX += GESTURE_ZOOMSENS;\n }\n\n while (magnitude - this._gestureLastMagnitudeX < -GESTURE_ZOOMSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x10);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x10);\n\n this._gestureLastMagnitudeX -= GESTURE_ZOOMSENS;\n }\n }\n\n this._handleKeyEvent(_keysym[\"default\"].XK_Control_L, \"ControlLeft\", false);\n\n break;\n }\n\n break;\n\n case 'gestureend':\n switch (ev.detail.type) {\n case 'onetap':\n case 'twotap':\n case 'threetap':\n case 'pinch':\n case 'twodrag':\n break;\n\n case 'drag':\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x1);\n\n break;\n\n case 'longpress':\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x4);\n\n break;\n }\n\n break;\n }\n } // Message Handlers\n\n }, {\n key: \"_negotiateProtocolVersion\",\n value: function _negotiateProtocolVersion() {\n if (this._sock.rQwait(\"version\", 12)) {\n return false;\n }\n\n var sversion = this._sock.rQshiftStr(12).substr(4, 7);\n\n Log.Info(\"Server ProtocolVersion: \" + sversion);\n var isRepeater = 0;\n\n switch (sversion) {\n case \"000.000\":\n // UltraVNC repeater\n isRepeater = 1;\n break;\n\n case \"003.003\":\n case \"003.006\": // UltraVNC\n\n case \"003.889\":\n // Apple Remote Desktop\n this._rfbVersion = 3.3;\n break;\n\n case \"003.007\":\n this._rfbVersion = 3.7;\n break;\n\n case \"003.008\":\n case \"004.000\": // Intel AMT KVM\n\n case \"004.001\": // RealVNC 4.6\n\n case \"005.000\":\n // RealVNC 5.3\n this._rfbVersion = 3.8;\n break;\n\n default:\n return this._fail(\"Invalid server version \" + sversion);\n }\n\n if (isRepeater) {\n var repeaterID = \"ID:\" + this._repeaterID;\n\n while (repeaterID.length < 250) {\n repeaterID += \"\\0\";\n }\n\n this._sock.sendString(repeaterID);\n\n return true;\n }\n\n if (this._rfbVersion > this._rfbMaxVersion) {\n this._rfbVersion = this._rfbMaxVersion;\n }\n\n var cversion = \"00\" + parseInt(this._rfbVersion, 10) + \".00\" + this._rfbVersion * 10 % 10;\n\n this._sock.sendString(\"RFB \" + cversion + \"\\n\");\n\n Log.Debug('Sent ProtocolVersion: ' + cversion);\n this._rfbInitState = 'Security';\n }\n }, {\n key: \"_negotiateSecurity\",\n value: function _negotiateSecurity() {\n if (this._rfbVersion >= 3.7) {\n // Server sends supported list, client decides\n var numTypes = this._sock.rQshift8();\n\n if (this._sock.rQwait(\"security type\", numTypes, 1)) {\n return false;\n }\n\n if (numTypes === 0) {\n this._rfbInitState = \"SecurityReason\";\n this._securityContext = \"no security types\";\n this._securityStatus = 1;\n return this._initMsg();\n }\n\n var types = this._sock.rQshiftBytes(numTypes);\n\n Log.Debug(\"Server security types: \" + types); // Look for each auth in preferred order\n\n if (types.includes(1)) {\n this._rfbAuthScheme = 1; // None\n } else if (types.includes(22)) {\n this._rfbAuthScheme = 22; // XVP\n } else if (types.includes(16)) {\n this._rfbAuthScheme = 16; // Tight\n } else if (types.includes(2)) {\n this._rfbAuthScheme = 2; // VNC Auth\n } else if (types.includes(19)) {\n this._rfbAuthScheme = 19; // VeNCrypt Auth\n } else {\n return this._fail(\"Unsupported security types (types: \" + types + \")\");\n }\n\n this._sock.send([this._rfbAuthScheme]);\n } else {\n // Server decides\n if (this._sock.rQwait(\"security scheme\", 4)) {\n return false;\n }\n\n this._rfbAuthScheme = this._sock.rQshift32();\n\n if (this._rfbAuthScheme == 0) {\n this._rfbInitState = \"SecurityReason\";\n this._securityContext = \"authentication scheme\";\n this._securityStatus = 1;\n return this._initMsg();\n }\n }\n\n this._rfbInitState = 'Authentication';\n Log.Debug('Authenticating using scheme: ' + this._rfbAuthScheme);\n return this._initMsg(); // jump to authentication\n }\n }, {\n key: \"_handleSecurityReason\",\n value: function _handleSecurityReason() {\n if (this._sock.rQwait(\"reason length\", 4)) {\n return false;\n }\n\n var strlen = this._sock.rQshift32();\n\n var reason = \"\";\n\n if (strlen > 0) {\n if (this._sock.rQwait(\"reason\", strlen, 4)) {\n return false;\n }\n\n reason = this._sock.rQshiftStr(strlen);\n }\n\n if (reason !== \"\") {\n this.dispatchEvent(new CustomEvent(\"securityfailure\", {\n detail: {\n status: this._securityStatus,\n reason: reason\n }\n }));\n return this._fail(\"Security negotiation failed on \" + this._securityContext + \" (reason: \" + reason + \")\");\n } else {\n this.dispatchEvent(new CustomEvent(\"securityfailure\", {\n detail: {\n status: this._securityStatus\n }\n }));\n return this._fail(\"Security negotiation failed on \" + this._securityContext);\n }\n } // authentication\n\n }, {\n key: \"_negotiateXvpAuth\",\n value: function _negotiateXvpAuth() {\n if (this._rfbCredentials.username === undefined || this._rfbCredentials.password === undefined || this._rfbCredentials.target === undefined) {\n this.dispatchEvent(new CustomEvent(\"credentialsrequired\", {\n detail: {\n types: [\"username\", \"password\", \"target\"]\n }\n }));\n return false;\n }\n\n var xvpAuthStr = String.fromCharCode(this._rfbCredentials.username.length) + String.fromCharCode(this._rfbCredentials.target.length) + this._rfbCredentials.username + this._rfbCredentials.target;\n\n this._sock.sendString(xvpAuthStr);\n\n this._rfbAuthScheme = 2;\n return this._negotiateAuthentication();\n } // VeNCrypt authentication, currently only supports version 0.2 and only Plain subtype\n\n }, {\n key: \"_negotiateVeNCryptAuth\",\n value: function _negotiateVeNCryptAuth() {\n // waiting for VeNCrypt version\n if (this._rfbVeNCryptState == 0) {\n if (this._sock.rQwait(\"vencrypt version\", 2)) {\n return false;\n }\n\n var major = this._sock.rQshift8();\n\n var minor = this._sock.rQshift8();\n\n if (!(major == 0 && minor == 2)) {\n return this._fail(\"Unsupported VeNCrypt version \" + major + \".\" + minor);\n }\n\n this._sock.send([0, 2]);\n\n this._rfbVeNCryptState = 1;\n } // waiting for ACK\n\n\n if (this._rfbVeNCryptState == 1) {\n if (this._sock.rQwait(\"vencrypt ack\", 1)) {\n return false;\n }\n\n var res = this._sock.rQshift8();\n\n if (res != 0) {\n return this._fail(\"VeNCrypt failure \" + res);\n }\n\n this._rfbVeNCryptState = 2;\n } // must fall through here (i.e. no \"else if\"), beacause we may have already received\n // the subtypes length and won't be called again\n\n\n if (this._rfbVeNCryptState == 2) {\n // waiting for subtypes length\n if (this._sock.rQwait(\"vencrypt subtypes length\", 1)) {\n return false;\n }\n\n var subtypesLength = this._sock.rQshift8();\n\n if (subtypesLength < 1) {\n return this._fail(\"VeNCrypt subtypes empty\");\n }\n\n this._rfbVeNCryptSubtypesLength = subtypesLength;\n this._rfbVeNCryptState = 3;\n } // waiting for subtypes list\n\n\n if (this._rfbVeNCryptState == 3) {\n if (this._sock.rQwait(\"vencrypt subtypes\", 4 * this._rfbVeNCryptSubtypesLength)) {\n return false;\n }\n\n var subtypes = [];\n\n for (var i = 0; i < this._rfbVeNCryptSubtypesLength; i++) {\n subtypes.push(this._sock.rQshift32());\n } // 256 = Plain subtype\n\n\n if (subtypes.indexOf(256) != -1) {\n // 0x100 = 256\n this._sock.send([0, 0, 1, 0]);\n\n this._rfbVeNCryptState = 4;\n } else {\n return this._fail(\"VeNCrypt Plain subtype not offered by server\");\n }\n } // negotiated Plain subtype, server waits for password\n\n\n if (this._rfbVeNCryptState == 4) {\n if (this._rfbCredentials.username === undefined || this._rfbCredentials.password === undefined) {\n this.dispatchEvent(new CustomEvent(\"credentialsrequired\", {\n detail: {\n types: [\"username\", \"password\"]\n }\n }));\n return false;\n }\n\n var user = (0, _strings.encodeUTF8)(this._rfbCredentials.username);\n var pass = (0, _strings.encodeUTF8)(this._rfbCredentials.password);\n\n this._sock.send([user.length >> 24 & 0xFF, user.length >> 16 & 0xFF, user.length >> 8 & 0xFF, user.length & 0xFF]);\n\n this._sock.send([pass.length >> 24 & 0xFF, pass.length >> 16 & 0xFF, pass.length >> 8 & 0xFF, pass.length & 0xFF]);\n\n this._sock.sendString(user);\n\n this._sock.sendString(pass);\n\n this._rfbInitState = \"SecurityResult\";\n return true;\n }\n }\n }, {\n key: \"_negotiateStdVNCAuth\",\n value: function _negotiateStdVNCAuth() {\n if (this._sock.rQwait(\"auth challenge\", 16)) {\n return false;\n }\n\n if (this._rfbCredentials.password === undefined) {\n this.dispatchEvent(new CustomEvent(\"credentialsrequired\", {\n detail: {\n types: [\"password\"]\n }\n }));\n return false;\n } // TODO(directxman12): make genDES not require an Array\n\n\n var challenge = Array.prototype.slice.call(this._sock.rQshiftBytes(16));\n var response = RFB.genDES(this._rfbCredentials.password, challenge);\n\n this._sock.send(response);\n\n this._rfbInitState = \"SecurityResult\";\n return true;\n }\n }, {\n key: \"_negotiateTightUnixAuth\",\n value: function _negotiateTightUnixAuth() {\n if (this._rfbCredentials.username === undefined || this._rfbCredentials.password === undefined) {\n this.dispatchEvent(new CustomEvent(\"credentialsrequired\", {\n detail: {\n types: [\"username\", \"password\"]\n }\n }));\n return false;\n }\n\n this._sock.send([0, 0, 0, this._rfbCredentials.username.length]);\n\n this._sock.send([0, 0, 0, this._rfbCredentials.password.length]);\n\n this._sock.sendString(this._rfbCredentials.username);\n\n this._sock.sendString(this._rfbCredentials.password);\n\n this._rfbInitState = \"SecurityResult\";\n return true;\n }\n }, {\n key: \"_negotiateTightTunnels\",\n value: function _negotiateTightTunnels(numTunnels) {\n var clientSupportedTunnelTypes = {\n 0: {\n vendor: 'TGHT',\n signature: 'NOTUNNEL'\n }\n };\n var serverSupportedTunnelTypes = {}; // receive tunnel capabilities\n\n for (var i = 0; i < numTunnels; i++) {\n var capCode = this._sock.rQshift32();\n\n var capVendor = this._sock.rQshiftStr(4);\n\n var capSignature = this._sock.rQshiftStr(8);\n\n serverSupportedTunnelTypes[capCode] = {\n vendor: capVendor,\n signature: capSignature\n };\n }\n\n Log.Debug(\"Server Tight tunnel types: \" + serverSupportedTunnelTypes); // Siemens touch panels have a VNC server that supports NOTUNNEL,\n // but forgets to advertise it. Try to detect such servers by\n // looking for their custom tunnel type.\n\n if (serverSupportedTunnelTypes[1] && serverSupportedTunnelTypes[1].vendor === \"SICR\" && serverSupportedTunnelTypes[1].signature === \"SCHANNEL\") {\n Log.Debug(\"Detected Siemens server. Assuming NOTUNNEL support.\");\n serverSupportedTunnelTypes[0] = {\n vendor: 'TGHT',\n signature: 'NOTUNNEL'\n };\n } // choose the notunnel type\n\n\n if (serverSupportedTunnelTypes[0]) {\n if (serverSupportedTunnelTypes[0].vendor != clientSupportedTunnelTypes[0].vendor || serverSupportedTunnelTypes[0].signature != clientSupportedTunnelTypes[0].signature) {\n return this._fail(\"Client's tunnel type had the incorrect \" + \"vendor or signature\");\n }\n\n Log.Debug(\"Selected tunnel type: \" + clientSupportedTunnelTypes[0]);\n\n this._sock.send([0, 0, 0, 0]); // use NOTUNNEL\n\n\n return false; // wait until we receive the sub auth count to continue\n } else {\n return this._fail(\"Server wanted tunnels, but doesn't support \" + \"the notunnel type\");\n }\n }\n }, {\n key: \"_negotiateTightAuth\",\n value: function _negotiateTightAuth() {\n if (!this._rfbTightVNC) {\n // first pass, do the tunnel negotiation\n if (this._sock.rQwait(\"num tunnels\", 4)) {\n return false;\n }\n\n var numTunnels = this._sock.rQshift32();\n\n if (numTunnels > 0 && this._sock.rQwait(\"tunnel capabilities\", 16 * numTunnels, 4)) {\n return false;\n }\n\n this._rfbTightVNC = true;\n\n if (numTunnels > 0) {\n this._negotiateTightTunnels(numTunnels);\n\n return false; // wait until we receive the sub auth to continue\n }\n } // second pass, do the sub-auth negotiation\n\n\n if (this._sock.rQwait(\"sub auth count\", 4)) {\n return false;\n }\n\n var subAuthCount = this._sock.rQshift32();\n\n if (subAuthCount === 0) {\n // empty sub-auth list received means 'no auth' subtype selected\n this._rfbInitState = 'SecurityResult';\n return true;\n }\n\n if (this._sock.rQwait(\"sub auth capabilities\", 16 * subAuthCount, 4)) {\n return false;\n }\n\n var clientSupportedTypes = {\n 'STDVNOAUTH__': 1,\n 'STDVVNCAUTH_': 2,\n 'TGHTULGNAUTH': 129\n };\n var serverSupportedTypes = [];\n\n for (var i = 0; i < subAuthCount; i++) {\n this._sock.rQshift32(); // capNum\n\n\n var capabilities = this._sock.rQshiftStr(12);\n\n serverSupportedTypes.push(capabilities);\n }\n\n Log.Debug(\"Server Tight authentication types: \" + serverSupportedTypes);\n\n for (var authType in clientSupportedTypes) {\n if (serverSupportedTypes.indexOf(authType) != -1) {\n this._sock.send([0, 0, 0, clientSupportedTypes[authType]]);\n\n Log.Debug(\"Selected authentication type: \" + authType);\n\n switch (authType) {\n case 'STDVNOAUTH__':\n // no auth\n this._rfbInitState = 'SecurityResult';\n return true;\n\n case 'STDVVNCAUTH_':\n // VNC auth\n this._rfbAuthScheme = 2;\n return this._initMsg();\n\n case 'TGHTULGNAUTH':\n // UNIX auth\n this._rfbAuthScheme = 129;\n return this._initMsg();\n\n default:\n return this._fail(\"Unsupported tiny auth scheme \" + \"(scheme: \" + authType + \")\");\n }\n }\n }\n\n return this._fail(\"No supported sub-auth types!\");\n }\n }, {\n key: \"_negotiateAuthentication\",\n value: function _negotiateAuthentication() {\n switch (this._rfbAuthScheme) {\n case 1:\n // no auth\n if (this._rfbVersion >= 3.8) {\n this._rfbInitState = 'SecurityResult';\n return true;\n }\n\n this._rfbInitState = 'ClientInitialisation';\n return this._initMsg();\n\n case 22:\n // XVP auth\n return this._negotiateXvpAuth();\n\n case 2:\n // VNC authentication\n return this._negotiateStdVNCAuth();\n\n case 16:\n // TightVNC Security Type\n return this._negotiateTightAuth();\n\n case 19:\n // VeNCrypt Security Type\n return this._negotiateVeNCryptAuth();\n\n case 129:\n // TightVNC UNIX Security Type\n return this._negotiateTightUnixAuth();\n\n default:\n return this._fail(\"Unsupported auth scheme (scheme: \" + this._rfbAuthScheme + \")\");\n }\n }\n }, {\n key: \"_handleSecurityResult\",\n value: function _handleSecurityResult() {\n if (this._sock.rQwait('VNC auth response ', 4)) {\n return false;\n }\n\n var status = this._sock.rQshift32();\n\n if (status === 0) {\n // OK\n this._rfbInitState = 'ClientInitialisation';\n Log.Debug('Authentication OK');\n return this._initMsg();\n } else {\n if (this._rfbVersion >= 3.8) {\n this._rfbInitState = \"SecurityReason\";\n this._securityContext = \"security result\";\n this._securityStatus = status;\n return this._initMsg();\n } else {\n this.dispatchEvent(new CustomEvent(\"securityfailure\", {\n detail: {\n status: status\n }\n }));\n return this._fail(\"Security handshake failed\");\n }\n }\n }\n }, {\n key: \"_negotiateServerInit\",\n value: function _negotiateServerInit() {\n if (this._sock.rQwait(\"server initialization\", 24)) {\n return false;\n }\n /* Screen size */\n\n\n var width = this._sock.rQshift16();\n\n var height = this._sock.rQshift16();\n /* PIXEL_FORMAT */\n\n\n var bpp = this._sock.rQshift8();\n\n var depth = this._sock.rQshift8();\n\n var bigEndian = this._sock.rQshift8();\n\n var trueColor = this._sock.rQshift8();\n\n var redMax = this._sock.rQshift16();\n\n var greenMax = this._sock.rQshift16();\n\n var blueMax = this._sock.rQshift16();\n\n var redShift = this._sock.rQshift8();\n\n var greenShift = this._sock.rQshift8();\n\n var blueShift = this._sock.rQshift8();\n\n this._sock.rQskipBytes(3); // padding\n // NB(directxman12): we don't want to call any callbacks or print messages until\n // *after* we're past the point where we could backtrack\n\n /* Connection name/title */\n\n\n var nameLength = this._sock.rQshift32();\n\n if (this._sock.rQwait('server init name', nameLength, 24)) {\n return false;\n }\n\n var name = this._sock.rQshiftStr(nameLength);\n\n name = (0, _strings.decodeUTF8)(name, true);\n\n if (this._rfbTightVNC) {\n if (this._sock.rQwait('TightVNC extended server init header', 8, 24 + nameLength)) {\n return false;\n } // In TightVNC mode, ServerInit message is extended\n\n\n var numServerMessages = this._sock.rQshift16();\n\n var numClientMessages = this._sock.rQshift16();\n\n var numEncodings = this._sock.rQshift16();\n\n this._sock.rQskipBytes(2); // padding\n\n\n var totalMessagesLength = (numServerMessages + numClientMessages + numEncodings) * 16;\n\n if (this._sock.rQwait('TightVNC extended server init header', totalMessagesLength, 32 + nameLength)) {\n return false;\n } // we don't actually do anything with the capability information that TIGHT sends,\n // so we just skip the all of this.\n // TIGHT server message capabilities\n\n\n this._sock.rQskipBytes(16 * numServerMessages); // TIGHT client message capabilities\n\n\n this._sock.rQskipBytes(16 * numClientMessages); // TIGHT encoding capabilities\n\n\n this._sock.rQskipBytes(16 * numEncodings);\n } // NB(directxman12): these are down here so that we don't run them multiple times\n // if we backtrack\n\n\n Log.Info(\"Screen: \" + width + \"x\" + height + \", bpp: \" + bpp + \", depth: \" + depth + \", bigEndian: \" + bigEndian + \", trueColor: \" + trueColor + \", redMax: \" + redMax + \", greenMax: \" + greenMax + \", blueMax: \" + blueMax + \", redShift: \" + redShift + \", greenShift: \" + greenShift + \", blueShift: \" + blueShift); // we're past the point where we could backtrack, so it's safe to call this\n\n this._setDesktopName(name);\n\n this._resize(width, height);\n\n if (!this._viewOnly) {\n this._keyboard.grab();\n }\n\n this._fbDepth = 24;\n\n if (this._fbName === \"Intel(r) AMT KVM\") {\n Log.Warn(\"Intel AMT KVM only supports 8/16 bit depths. Using low color mode.\");\n this._fbDepth = 8;\n }\n\n RFB.messages.pixelFormat(this._sock, this._fbDepth, true);\n\n this._sendEncodings();\n\n RFB.messages.fbUpdateRequest(this._sock, false, 0, 0, this._fbWidth, this._fbHeight);\n\n this._updateConnectionState('connected');\n\n return true;\n }\n }, {\n key: \"_sendEncodings\",\n value: function _sendEncodings() {\n var encs = []; // In preference order\n\n encs.push(_encodings.encodings.encodingCopyRect); // Only supported with full depth support\n\n if (this._fbDepth == 24) {\n encs.push(_encodings.encodings.encodingTight);\n encs.push(_encodings.encodings.encodingTightPNG);\n encs.push(_encodings.encodings.encodingHextile);\n encs.push(_encodings.encodings.encodingRRE);\n }\n\n encs.push(_encodings.encodings.encodingRaw); // Psuedo-encoding settings\n\n encs.push(_encodings.encodings.pseudoEncodingQualityLevel0 + this._qualityLevel);\n encs.push(_encodings.encodings.pseudoEncodingCompressLevel0 + this._compressionLevel);\n encs.push(_encodings.encodings.pseudoEncodingDesktopSize);\n encs.push(_encodings.encodings.pseudoEncodingLastRect);\n encs.push(_encodings.encodings.pseudoEncodingQEMUExtendedKeyEvent);\n encs.push(_encodings.encodings.pseudoEncodingExtendedDesktopSize);\n encs.push(_encodings.encodings.pseudoEncodingXvp);\n encs.push(_encodings.encodings.pseudoEncodingFence);\n encs.push(_encodings.encodings.pseudoEncodingContinuousUpdates);\n encs.push(_encodings.encodings.pseudoEncodingDesktopName);\n encs.push(_encodings.encodings.pseudoEncodingExtendedClipboard);\n\n if (this._fbDepth == 24) {\n encs.push(_encodings.encodings.pseudoEncodingVMwareCursor);\n encs.push(_encodings.encodings.pseudoEncodingCursor);\n }\n\n RFB.messages.clientEncodings(this._sock, encs);\n }\n /* RFB protocol initialization states:\n * ProtocolVersion\n * Security\n * Authentication\n * SecurityResult\n * ClientInitialization - not triggered by server message\n * ServerInitialization\n */\n\n }, {\n key: \"_initMsg\",\n value: function _initMsg() {\n switch (this._rfbInitState) {\n case 'ProtocolVersion':\n return this._negotiateProtocolVersion();\n\n case 'Security':\n return this._negotiateSecurity();\n\n case 'Authentication':\n return this._negotiateAuthentication();\n\n case 'SecurityResult':\n return this._handleSecurityResult();\n\n case 'SecurityReason':\n return this._handleSecurityReason();\n\n case 'ClientInitialisation':\n this._sock.send([this._shared ? 1 : 0]); // ClientInitialisation\n\n\n this._rfbInitState = 'ServerInitialisation';\n return true;\n\n case 'ServerInitialisation':\n return this._negotiateServerInit();\n\n default:\n return this._fail(\"Unknown init state (state: \" + this._rfbInitState + \")\");\n }\n }\n }, {\n key: \"_handleSetColourMapMsg\",\n value: function _handleSetColourMapMsg() {\n Log.Debug(\"SetColorMapEntries\");\n return this._fail(\"Unexpected SetColorMapEntries message\");\n }\n }, {\n key: \"_handleServerCutText\",\n value: function _handleServerCutText() {\n Log.Debug(\"ServerCutText\");\n\n if (this._sock.rQwait(\"ServerCutText header\", 7, 1)) {\n return false;\n }\n\n this._sock.rQskipBytes(3); // Padding\n\n\n var length = this._sock.rQshift32();\n\n length = (0, _int.toSigned32bit)(length);\n\n if (this._sock.rQwait(\"ServerCutText content\", Math.abs(length), 8)) {\n return false;\n }\n\n if (length >= 0) {\n //Standard msg\n var text = this._sock.rQshiftStr(length);\n\n if (this._viewOnly) {\n return true;\n }\n\n this.dispatchEvent(new CustomEvent(\"clipboard\", {\n detail: {\n text: text\n }\n }));\n } else {\n //Extended msg.\n length = Math.abs(length);\n\n var flags = this._sock.rQshift32();\n\n var formats = flags & 0x0000FFFF;\n var actions = flags & 0xFF000000;\n var isCaps = !!(actions & extendedClipboardActionCaps);\n\n if (isCaps) {\n this._clipboardServerCapabilitiesFormats = {};\n this._clipboardServerCapabilitiesActions = {}; // Update our server capabilities for Formats\n\n for (var i = 0; i <= 15; i++) {\n var index = 1 << i; // Check if format flag is set.\n\n if (formats & index) {\n this._clipboardServerCapabilitiesFormats[index] = true; // We don't send unsolicited clipboard, so we\n // ignore the size\n\n this._sock.rQshift32();\n }\n } // Update our server capabilities for Actions\n\n\n for (var _i = 24; _i <= 31; _i++) {\n var _index = 1 << _i;\n\n this._clipboardServerCapabilitiesActions[_index] = !!(actions & _index);\n }\n /* Caps handling done, send caps with the clients\n capabilities set as a response */\n\n\n var clientActions = [extendedClipboardActionCaps, extendedClipboardActionRequest, extendedClipboardActionPeek, extendedClipboardActionNotify, extendedClipboardActionProvide];\n RFB.messages.extendedClipboardCaps(this._sock, clientActions, {\n extendedClipboardFormatText: 0\n });\n } else if (actions === extendedClipboardActionRequest) {\n if (this._viewOnly) {\n return true;\n } // Check if server has told us it can handle Provide and there is clipboard data to send.\n\n\n if (this._clipboardText != null && this._clipboardServerCapabilitiesActions[extendedClipboardActionProvide]) {\n if (formats & extendedClipboardFormatText) {\n RFB.messages.extendedClipboardProvide(this._sock, [extendedClipboardFormatText], [this._clipboardText]);\n }\n }\n } else if (actions === extendedClipboardActionPeek) {\n if (this._viewOnly) {\n return true;\n }\n\n if (this._clipboardServerCapabilitiesActions[extendedClipboardActionNotify]) {\n if (this._clipboardText != null) {\n RFB.messages.extendedClipboardNotify(this._sock, [extendedClipboardFormatText]);\n } else {\n RFB.messages.extendedClipboardNotify(this._sock, []);\n }\n }\n } else if (actions === extendedClipboardActionNotify) {\n if (this._viewOnly) {\n return true;\n }\n\n if (this._clipboardServerCapabilitiesActions[extendedClipboardActionRequest]) {\n if (formats & extendedClipboardFormatText) {\n RFB.messages.extendedClipboardRequest(this._sock, [extendedClipboardFormatText]);\n }\n }\n } else if (actions === extendedClipboardActionProvide) {\n if (this._viewOnly) {\n return true;\n }\n\n if (!(formats & extendedClipboardFormatText)) {\n return true;\n } // Ignore what we had in our clipboard client side.\n\n\n this._clipboardText = null; // FIXME: Should probably verify that this data was actually requested\n\n var zlibStream = this._sock.rQshiftBytes(length - 4);\n\n var streamInflator = new _inflator[\"default\"]();\n var textData = null;\n streamInflator.setInput(zlibStream);\n\n for (var _i2 = 0; _i2 <= 15; _i2++) {\n var format = 1 << _i2;\n\n if (formats & format) {\n var size = 0x00;\n var sizeArray = streamInflator.inflate(4);\n size |= sizeArray[0] << 24;\n size |= sizeArray[1] << 16;\n size |= sizeArray[2] << 8;\n size |= sizeArray[3];\n var chunk = streamInflator.inflate(size);\n\n if (format === extendedClipboardFormatText) {\n textData = chunk;\n }\n }\n }\n\n streamInflator.setInput(null);\n\n if (textData !== null) {\n var tmpText = \"\";\n\n for (var _i3 = 0; _i3 < textData.length; _i3++) {\n tmpText += String.fromCharCode(textData[_i3]);\n }\n\n textData = tmpText;\n textData = (0, _strings.decodeUTF8)(textData);\n\n if (textData.length > 0 && \"\\0\" === textData.charAt(textData.length - 1)) {\n textData = textData.slice(0, -1);\n }\n\n textData = textData.replace(\"\\r\\n\", \"\\n\");\n this.dispatchEvent(new CustomEvent(\"clipboard\", {\n detail: {\n text: textData\n }\n }));\n }\n } else {\n return this._fail(\"Unexpected action in extended clipboard message: \" + actions);\n }\n }\n\n return true;\n }\n }, {\n key: \"_handleServerFenceMsg\",\n value: function _handleServerFenceMsg() {\n if (this._sock.rQwait(\"ServerFence header\", 8, 1)) {\n return false;\n }\n\n this._sock.rQskipBytes(3); // Padding\n\n\n var flags = this._sock.rQshift32();\n\n var length = this._sock.rQshift8();\n\n if (this._sock.rQwait(\"ServerFence payload\", length, 9)) {\n return false;\n }\n\n if (length > 64) {\n Log.Warn(\"Bad payload length (\" + length + \") in fence response\");\n length = 64;\n }\n\n var payload = this._sock.rQshiftStr(length);\n\n this._supportsFence = true;\n /*\n * Fence flags\n *\n * (1<<0) - BlockBefore\n * (1<<1) - BlockAfter\n * (1<<2) - SyncNext\n * (1<<31) - Request\n */\n\n if (!(flags & 1 << 31)) {\n return this._fail(\"Unexpected fence response\");\n } // Filter out unsupported flags\n // FIXME: support syncNext\n\n\n flags &= 1 << 0 | 1 << 1; // BlockBefore and BlockAfter are automatically handled by\n // the fact that we process each incoming message\n // synchronuosly.\n\n RFB.messages.clientFence(this._sock, flags, payload);\n return true;\n }\n }, {\n key: \"_handleXvpMsg\",\n value: function _handleXvpMsg() {\n if (this._sock.rQwait(\"XVP version and message\", 3, 1)) {\n return false;\n }\n\n this._sock.rQskipBytes(1); // Padding\n\n\n var xvpVer = this._sock.rQshift8();\n\n var xvpMsg = this._sock.rQshift8();\n\n switch (xvpMsg) {\n case 0:\n // XVP_FAIL\n Log.Error(\"XVP Operation Failed\");\n break;\n\n case 1:\n // XVP_INIT\n this._rfbXvpVer = xvpVer;\n Log.Info(\"XVP extensions enabled (version \" + this._rfbXvpVer + \")\");\n\n this._setCapability(\"power\", true);\n\n break;\n\n default:\n this._fail(\"Illegal server XVP message (msg: \" + xvpMsg + \")\");\n\n break;\n }\n\n return true;\n }\n }, {\n key: \"_normalMsg\",\n value: function _normalMsg() {\n var msgType;\n\n if (this._FBU.rects > 0) {\n msgType = 0;\n } else {\n msgType = this._sock.rQshift8();\n }\n\n var first, ret;\n\n switch (msgType) {\n case 0:\n // FramebufferUpdate\n ret = this._framebufferUpdate();\n\n if (ret && !this._enabledContinuousUpdates) {\n RFB.messages.fbUpdateRequest(this._sock, true, 0, 0, this._fbWidth, this._fbHeight);\n }\n\n return ret;\n\n case 1:\n // SetColorMapEntries\n return this._handleSetColourMapMsg();\n\n case 2:\n // Bell\n Log.Debug(\"Bell\");\n this.dispatchEvent(new CustomEvent(\"bell\", {\n detail: {}\n }));\n return true;\n\n case 3:\n // ServerCutText\n return this._handleServerCutText();\n\n case 150:\n // EndOfContinuousUpdates\n first = !this._supportsContinuousUpdates;\n this._supportsContinuousUpdates = true;\n this._enabledContinuousUpdates = false;\n\n if (first) {\n this._enabledContinuousUpdates = true;\n\n this._updateContinuousUpdates();\n\n Log.Info(\"Enabling continuous updates.\");\n } else {// FIXME: We need to send a framebufferupdaterequest here\n // if we add support for turning off continuous updates\n }\n\n return true;\n\n case 248:\n // ServerFence\n return this._handleServerFenceMsg();\n\n case 250:\n // XVP\n return this._handleXvpMsg();\n\n default:\n this._fail(\"Unexpected server message (type \" + msgType + \")\");\n\n Log.Debug(\"sock.rQslice(0, 30): \" + this._sock.rQslice(0, 30));\n return true;\n }\n }\n }, {\n key: \"_onFlush\",\n value: function _onFlush() {\n this._flushing = false; // Resume processing\n\n if (this._sock.rQlen > 0) {\n this._handleMessage();\n }\n }\n }, {\n key: \"_framebufferUpdate\",\n value: function _framebufferUpdate() {\n if (this._FBU.rects === 0) {\n if (this._sock.rQwait(\"FBU header\", 3, 1)) {\n return false;\n }\n\n this._sock.rQskipBytes(1); // Padding\n\n\n this._FBU.rects = this._sock.rQshift16(); // Make sure the previous frame is fully rendered first\n // to avoid building up an excessive queue\n\n if (this._display.pending()) {\n this._flushing = true;\n\n this._display.flush();\n\n return false;\n }\n }\n\n while (this._FBU.rects > 0) {\n if (this._FBU.encoding === null) {\n if (this._sock.rQwait(\"rect header\", 12)) {\n return false;\n }\n /* New FramebufferUpdate */\n\n\n var hdr = this._sock.rQshiftBytes(12);\n\n this._FBU.x = (hdr[0] << 8) + hdr[1];\n this._FBU.y = (hdr[2] << 8) + hdr[3];\n this._FBU.width = (hdr[4] << 8) + hdr[5];\n this._FBU.height = (hdr[6] << 8) + hdr[7];\n this._FBU.encoding = parseInt((hdr[8] << 24) + (hdr[9] << 16) + (hdr[10] << 8) + hdr[11], 10);\n }\n\n if (!this._handleRect()) {\n return false;\n }\n\n this._FBU.rects--;\n this._FBU.encoding = null;\n }\n\n this._display.flip();\n\n return true; // We finished this FBU\n }\n }, {\n key: \"_handleRect\",\n value: function _handleRect() {\n switch (this._FBU.encoding) {\n case _encodings.encodings.pseudoEncodingLastRect:\n this._FBU.rects = 1; // Will be decreased when we return\n\n return true;\n\n case _encodings.encodings.pseudoEncodingVMwareCursor:\n return this._handleVMwareCursor();\n\n case _encodings.encodings.pseudoEncodingCursor:\n return this._handleCursor();\n\n case _encodings.encodings.pseudoEncodingQEMUExtendedKeyEvent:\n this._qemuExtKeyEventSupported = true;\n return true;\n\n case _encodings.encodings.pseudoEncodingDesktopName:\n return this._handleDesktopName();\n\n case _encodings.encodings.pseudoEncodingDesktopSize:\n this._resize(this._FBU.width, this._FBU.height);\n\n return true;\n\n case _encodings.encodings.pseudoEncodingExtendedDesktopSize:\n return this._handleExtendedDesktopSize();\n\n default:\n return this._handleDataRect();\n }\n }\n }, {\n key: \"_handleVMwareCursor\",\n value: function _handleVMwareCursor() {\n var hotx = this._FBU.x; // hotspot-x\n\n var hoty = this._FBU.y; // hotspot-y\n\n var w = this._FBU.width;\n var h = this._FBU.height;\n\n if (this._sock.rQwait(\"VMware cursor encoding\", 1)) {\n return false;\n }\n\n var cursorType = this._sock.rQshift8();\n\n this._sock.rQshift8(); //Padding\n\n\n var rgba;\n var bytesPerPixel = 4; //Classic cursor\n\n if (cursorType == 0) {\n //Used to filter away unimportant bits.\n //OR is used for correct conversion in js.\n var PIXEL_MASK = 0xffffff00 | 0;\n rgba = new Array(w * h * bytesPerPixel);\n\n if (this._sock.rQwait(\"VMware cursor classic encoding\", w * h * bytesPerPixel * 2, 2)) {\n return false;\n }\n\n var andMask = new Array(w * h);\n\n for (var pixel = 0; pixel < w * h; pixel++) {\n andMask[pixel] = this._sock.rQshift32();\n }\n\n var xorMask = new Array(w * h);\n\n for (var _pixel = 0; _pixel < w * h; _pixel++) {\n xorMask[_pixel] = this._sock.rQshift32();\n }\n\n for (var _pixel2 = 0; _pixel2 < w * h; _pixel2++) {\n if (andMask[_pixel2] == 0) {\n //Fully opaque pixel\n var bgr = xorMask[_pixel2];\n var r = bgr >> 8 & 0xff;\n var g = bgr >> 16 & 0xff;\n var b = bgr >> 24 & 0xff;\n rgba[_pixel2 * bytesPerPixel] = r; //r\n\n rgba[_pixel2 * bytesPerPixel + 1] = g; //g\n\n rgba[_pixel2 * bytesPerPixel + 2] = b; //b\n\n rgba[_pixel2 * bytesPerPixel + 3] = 0xff; //a\n } else if ((andMask[_pixel2] & PIXEL_MASK) == PIXEL_MASK) {\n //Only screen value matters, no mouse colouring\n if (xorMask[_pixel2] == 0) {\n //Transparent pixel\n rgba[_pixel2 * bytesPerPixel] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 1] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 2] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 3] = 0x00;\n } else if ((xorMask[_pixel2] & PIXEL_MASK) == PIXEL_MASK) {\n //Inverted pixel, not supported in browsers.\n //Fully opaque instead.\n rgba[_pixel2 * bytesPerPixel] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 1] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 2] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 3] = 0xff;\n } else {\n //Unhandled xorMask\n rgba[_pixel2 * bytesPerPixel] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 1] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 2] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 3] = 0xff;\n }\n } else {\n //Unhandled andMask\n rgba[_pixel2 * bytesPerPixel] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 1] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 2] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 3] = 0xff;\n }\n } //Alpha cursor.\n\n } else if (cursorType == 1) {\n if (this._sock.rQwait(\"VMware cursor alpha encoding\", w * h * 4, 2)) {\n return false;\n }\n\n rgba = new Array(w * h * bytesPerPixel);\n\n for (var _pixel3 = 0; _pixel3 < w * h; _pixel3++) {\n var data = this._sock.rQshift32();\n\n rgba[_pixel3 * 4] = data >> 24 & 0xff; //r\n\n rgba[_pixel3 * 4 + 1] = data >> 16 & 0xff; //g\n\n rgba[_pixel3 * 4 + 2] = data >> 8 & 0xff; //b\n\n rgba[_pixel3 * 4 + 3] = data & 0xff; //a\n }\n } else {\n Log.Warn(\"The given cursor type is not supported: \" + cursorType + \" given.\");\n return false;\n }\n\n this._updateCursor(rgba, hotx, hoty, w, h);\n\n return true;\n }\n }, {\n key: \"_handleCursor\",\n value: function _handleCursor() {\n var hotx = this._FBU.x; // hotspot-x\n\n var hoty = this._FBU.y; // hotspot-y\n\n var w = this._FBU.width;\n var h = this._FBU.height;\n var pixelslength = w * h * 4;\n var masklength = Math.ceil(w / 8) * h;\n var bytes = pixelslength + masklength;\n\n if (this._sock.rQwait(\"cursor encoding\", bytes)) {\n return false;\n } // Decode from BGRX pixels + bit mask to RGBA\n\n\n var pixels = this._sock.rQshiftBytes(pixelslength);\n\n var mask = this._sock.rQshiftBytes(masklength);\n\n var rgba = new Uint8Array(w * h * 4);\n var pixIdx = 0;\n\n for (var y = 0; y < h; y++) {\n for (var x = 0; x < w; x++) {\n var maskIdx = y * Math.ceil(w / 8) + Math.floor(x / 8);\n var alpha = mask[maskIdx] << x % 8 & 0x80 ? 255 : 0;\n rgba[pixIdx] = pixels[pixIdx + 2];\n rgba[pixIdx + 1] = pixels[pixIdx + 1];\n rgba[pixIdx + 2] = pixels[pixIdx];\n rgba[pixIdx + 3] = alpha;\n pixIdx += 4;\n }\n }\n\n this._updateCursor(rgba, hotx, hoty, w, h);\n\n return true;\n }\n }, {\n key: \"_handleDesktopName\",\n value: function _handleDesktopName() {\n if (this._sock.rQwait(\"DesktopName\", 4)) {\n return false;\n }\n\n var length = this._sock.rQshift32();\n\n if (this._sock.rQwait(\"DesktopName\", length, 4)) {\n return false;\n }\n\n var name = this._sock.rQshiftStr(length);\n\n name = (0, _strings.decodeUTF8)(name, true);\n\n this._setDesktopName(name);\n\n return true;\n }\n }, {\n key: \"_handleExtendedDesktopSize\",\n value: function _handleExtendedDesktopSize() {\n if (this._sock.rQwait(\"ExtendedDesktopSize\", 4)) {\n return false;\n }\n\n var numberOfScreens = this._sock.rQpeek8();\n\n var bytes = 4 + numberOfScreens * 16;\n\n if (this._sock.rQwait(\"ExtendedDesktopSize\", bytes)) {\n return false;\n }\n\n var firstUpdate = !this._supportsSetDesktopSize;\n this._supportsSetDesktopSize = true; // Normally we only apply the current resize mode after a\n // window resize event. However there is no such trigger on the\n // initial connect. And we don't know if the server supports\n // resizing until we've gotten here.\n\n if (firstUpdate) {\n this._requestRemoteResize();\n }\n\n this._sock.rQskipBytes(1); // number-of-screens\n\n\n this._sock.rQskipBytes(3); // padding\n\n\n for (var i = 0; i < numberOfScreens; i += 1) {\n // Save the id and flags of the first screen\n if (i === 0) {\n this._screenID = this._sock.rQshiftBytes(4); // id\n\n this._sock.rQskipBytes(2); // x-position\n\n\n this._sock.rQskipBytes(2); // y-position\n\n\n this._sock.rQskipBytes(2); // width\n\n\n this._sock.rQskipBytes(2); // height\n\n\n this._screenFlags = this._sock.rQshiftBytes(4); // flags\n } else {\n this._sock.rQskipBytes(16);\n }\n }\n /*\n * The x-position indicates the reason for the change:\n *\n * 0 - server resized on its own\n * 1 - this client requested the resize\n * 2 - another client requested the resize\n */\n // We need to handle errors when we requested the resize.\n\n\n if (this._FBU.x === 1 && this._FBU.y !== 0) {\n var msg = \"\"; // The y-position indicates the status code from the server\n\n switch (this._FBU.y) {\n case 1:\n msg = \"Resize is administratively prohibited\";\n break;\n\n case 2:\n msg = \"Out of resources\";\n break;\n\n case 3:\n msg = \"Invalid screen layout\";\n break;\n\n default:\n msg = \"Unknown reason\";\n break;\n }\n\n Log.Warn(\"Server did not accept the resize request: \" + msg);\n } else {\n this._resize(this._FBU.width, this._FBU.height);\n }\n\n return true;\n }\n }, {\n key: \"_handleDataRect\",\n value: function _handleDataRect() {\n var decoder = this._decoders[this._FBU.encoding];\n\n if (!decoder) {\n this._fail(\"Unsupported encoding (encoding: \" + this._FBU.encoding + \")\");\n\n return false;\n }\n\n try {\n return decoder.decodeRect(this._FBU.x, this._FBU.y, this._FBU.width, this._FBU.height, this._sock, this._display, this._fbDepth);\n } catch (err) {\n this._fail(\"Error decoding rect: \" + err);\n\n return false;\n }\n }\n }, {\n key: \"_updateContinuousUpdates\",\n value: function _updateContinuousUpdates() {\n if (!this._enabledContinuousUpdates) {\n return;\n }\n\n RFB.messages.enableContinuousUpdates(this._sock, true, 0, 0, this._fbWidth, this._fbHeight);\n }\n }, {\n key: \"_resize\",\n value: function _resize(width, height) {\n this._fbWidth = width;\n this._fbHeight = height;\n\n this._display.resize(this._fbWidth, this._fbHeight); // Adjust the visible viewport based on the new dimensions\n\n\n this._updateClip();\n\n this._updateScale();\n\n this._updateContinuousUpdates();\n }\n }, {\n key: \"_xvpOp\",\n value: function _xvpOp(ver, op) {\n if (this._rfbXvpVer < ver) {\n return;\n }\n\n Log.Info(\"Sending XVP operation \" + op + \" (version \" + ver + \")\");\n RFB.messages.xvpOp(this._sock, ver, op);\n }\n }, {\n key: \"_updateCursor\",\n value: function _updateCursor(rgba, hotx, hoty, w, h) {\n this._cursorImage = {\n rgbaPixels: rgba,\n hotx: hotx,\n hoty: hoty,\n w: w,\n h: h\n };\n\n this._refreshCursor();\n }\n }, {\n key: \"_shouldShowDotCursor\",\n value: function _shouldShowDotCursor() {\n // Called when this._cursorImage is updated\n if (!this._showDotCursor) {\n // User does not want to see the dot, so...\n return false;\n } // The dot should not be shown if the cursor is already visible,\n // i.e. contains at least one not-fully-transparent pixel.\n // So iterate through all alpha bytes in rgba and stop at the\n // first non-zero.\n\n\n for (var i = 3; i < this._cursorImage.rgbaPixels.length; i += 4) {\n if (this._cursorImage.rgbaPixels[i]) {\n return false;\n }\n } // At this point, we know that the cursor is fully transparent, and\n // the user wants to see the dot instead of this.\n\n\n return true;\n }\n }, {\n key: \"_refreshCursor\",\n value: function _refreshCursor() {\n if (this._rfbConnectionState !== \"connecting\" && this._rfbConnectionState !== \"connected\") {\n return;\n }\n\n var image = this._shouldShowDotCursor() ? RFB.cursors.dot : this._cursorImage;\n\n this._cursor.change(image.rgbaPixels, image.hotx, image.hoty, image.w, image.h);\n }\n }], [{\n key: \"genDES\",\n value: function genDES(password, challenge) {\n var passwordChars = password.split('').map(function (c) {\n return c.charCodeAt(0);\n });\n return new _des[\"default\"](passwordChars).encrypt(challenge);\n }\n }]);\n\n return RFB;\n}(_eventtarget[\"default\"]); // Class Methods\n\n\nexports[\"default\"] = RFB;\nRFB.messages = {\n keyEvent: function keyEvent(sock, keysym, down) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 4; // msg-type\n\n buff[offset + 1] = down;\n buff[offset + 2] = 0;\n buff[offset + 3] = 0;\n buff[offset + 4] = keysym >> 24;\n buff[offset + 5] = keysym >> 16;\n buff[offset + 6] = keysym >> 8;\n buff[offset + 7] = keysym;\n sock._sQlen += 8;\n sock.flush();\n },\n QEMUExtendedKeyEvent: function QEMUExtendedKeyEvent(sock, keysym, down, keycode) {\n function getRFBkeycode(xtScanCode) {\n var upperByte = keycode >> 8;\n var lowerByte = keycode & 0x00ff;\n\n if (upperByte === 0xe0 && lowerByte < 0x7f) {\n return lowerByte | 0x80;\n }\n\n return xtScanCode;\n }\n\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 255; // msg-type\n\n buff[offset + 1] = 0; // sub msg-type\n\n buff[offset + 2] = down >> 8;\n buff[offset + 3] = down;\n buff[offset + 4] = keysym >> 24;\n buff[offset + 5] = keysym >> 16;\n buff[offset + 6] = keysym >> 8;\n buff[offset + 7] = keysym;\n var RFBkeycode = getRFBkeycode(keycode);\n buff[offset + 8] = RFBkeycode >> 24;\n buff[offset + 9] = RFBkeycode >> 16;\n buff[offset + 10] = RFBkeycode >> 8;\n buff[offset + 11] = RFBkeycode;\n sock._sQlen += 12;\n sock.flush();\n },\n pointerEvent: function pointerEvent(sock, x, y, mask) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 5; // msg-type\n\n buff[offset + 1] = mask;\n buff[offset + 2] = x >> 8;\n buff[offset + 3] = x;\n buff[offset + 4] = y >> 8;\n buff[offset + 5] = y;\n sock._sQlen += 6;\n sock.flush();\n },\n // Used to build Notify and Request data.\n _buildExtendedClipboardFlags: function _buildExtendedClipboardFlags(actions, formats) {\n var data = new Uint8Array(4);\n var formatFlag = 0x00000000;\n var actionFlag = 0x00000000;\n\n for (var i = 0; i < actions.length; i++) {\n actionFlag |= actions[i];\n }\n\n for (var _i4 = 0; _i4 < formats.length; _i4++) {\n formatFlag |= formats[_i4];\n }\n\n data[0] = actionFlag >> 24; // Actions\n\n data[1] = 0x00; // Reserved\n\n data[2] = 0x00; // Reserved\n\n data[3] = formatFlag; // Formats\n\n return data;\n },\n extendedClipboardProvide: function extendedClipboardProvide(sock, formats, inData) {\n // Deflate incomming data and their sizes\n var deflator = new _deflator[\"default\"]();\n var dataToDeflate = [];\n\n for (var i = 0; i < formats.length; i++) {\n // We only support the format Text at this time\n if (formats[i] != extendedClipboardFormatText) {\n throw new Error(\"Unsupported extended clipboard format for Provide message.\");\n } // Change lone \\r or \\n into \\r\\n as defined in rfbproto\n\n\n inData[i] = inData[i].replace(/\\r\\n|\\r|\\n/gm, \"\\r\\n\"); // Check if it already has \\0\n\n var text = (0, _strings.encodeUTF8)(inData[i] + \"\\0\");\n dataToDeflate.push(text.length >> 24 & 0xFF, text.length >> 16 & 0xFF, text.length >> 8 & 0xFF, text.length & 0xFF);\n\n for (var j = 0; j < text.length; j++) {\n dataToDeflate.push(text.charCodeAt(j));\n }\n }\n\n var deflatedData = deflator.deflate(new Uint8Array(dataToDeflate)); // Build data to send\n\n var data = new Uint8Array(4 + deflatedData.length);\n data.set(RFB.messages._buildExtendedClipboardFlags([extendedClipboardActionProvide], formats));\n data.set(deflatedData, 4);\n RFB.messages.clientCutText(sock, data, true);\n },\n extendedClipboardNotify: function extendedClipboardNotify(sock, formats) {\n var flags = RFB.messages._buildExtendedClipboardFlags([extendedClipboardActionNotify], formats);\n\n RFB.messages.clientCutText(sock, flags, true);\n },\n extendedClipboardRequest: function extendedClipboardRequest(sock, formats) {\n var flags = RFB.messages._buildExtendedClipboardFlags([extendedClipboardActionRequest], formats);\n\n RFB.messages.clientCutText(sock, flags, true);\n },\n extendedClipboardCaps: function extendedClipboardCaps(sock, actions, formats) {\n var formatKeys = Object.keys(formats);\n var data = new Uint8Array(4 + 4 * formatKeys.length);\n formatKeys.map(function (x) {\n return parseInt(x);\n });\n formatKeys.sort(function (a, b) {\n return a - b;\n });\n data.set(RFB.messages._buildExtendedClipboardFlags(actions, []));\n var loopOffset = 4;\n\n for (var i = 0; i < formatKeys.length; i++) {\n data[loopOffset] = formats[formatKeys[i]] >> 24;\n data[loopOffset + 1] = formats[formatKeys[i]] >> 16;\n data[loopOffset + 2] = formats[formatKeys[i]] >> 8;\n data[loopOffset + 3] = formats[formatKeys[i]] >> 0;\n loopOffset += 4;\n data[3] |= 1 << formatKeys[i]; // Update our format flags\n }\n\n RFB.messages.clientCutText(sock, data, true);\n },\n clientCutText: function clientCutText(sock, data) {\n var extended = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 6; // msg-type\n\n buff[offset + 1] = 0; // padding\n\n buff[offset + 2] = 0; // padding\n\n buff[offset + 3] = 0; // padding\n\n var length;\n\n if (extended) {\n length = (0, _int.toUnsigned32bit)(-data.length);\n } else {\n length = data.length;\n }\n\n buff[offset + 4] = length >> 24;\n buff[offset + 5] = length >> 16;\n buff[offset + 6] = length >> 8;\n buff[offset + 7] = length;\n sock._sQlen += 8; // We have to keep track of from where in the data we begin creating the\n // buffer for the flush in the next iteration.\n\n var dataOffset = 0;\n var remaining = data.length;\n\n while (remaining > 0) {\n var flushSize = Math.min(remaining, sock._sQbufferSize - sock._sQlen);\n\n for (var i = 0; i < flushSize; i++) {\n buff[sock._sQlen + i] = data[dataOffset + i];\n }\n\n sock._sQlen += flushSize;\n sock.flush();\n remaining -= flushSize;\n dataOffset += flushSize;\n }\n },\n setDesktopSize: function setDesktopSize(sock, width, height, id, flags) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 251; // msg-type\n\n buff[offset + 1] = 0; // padding\n\n buff[offset + 2] = width >> 8; // width\n\n buff[offset + 3] = width;\n buff[offset + 4] = height >> 8; // height\n\n buff[offset + 5] = height;\n buff[offset + 6] = 1; // number-of-screens\n\n buff[offset + 7] = 0; // padding\n // screen array\n\n buff[offset + 8] = id >> 24; // id\n\n buff[offset + 9] = id >> 16;\n buff[offset + 10] = id >> 8;\n buff[offset + 11] = id;\n buff[offset + 12] = 0; // x-position\n\n buff[offset + 13] = 0;\n buff[offset + 14] = 0; // y-position\n\n buff[offset + 15] = 0;\n buff[offset + 16] = width >> 8; // width\n\n buff[offset + 17] = width;\n buff[offset + 18] = height >> 8; // height\n\n buff[offset + 19] = height;\n buff[offset + 20] = flags >> 24; // flags\n\n buff[offset + 21] = flags >> 16;\n buff[offset + 22] = flags >> 8;\n buff[offset + 23] = flags;\n sock._sQlen += 24;\n sock.flush();\n },\n clientFence: function clientFence(sock, flags, payload) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 248; // msg-type\n\n buff[offset + 1] = 0; // padding\n\n buff[offset + 2] = 0; // padding\n\n buff[offset + 3] = 0; // padding\n\n buff[offset + 4] = flags >> 24; // flags\n\n buff[offset + 5] = flags >> 16;\n buff[offset + 6] = flags >> 8;\n buff[offset + 7] = flags;\n var n = payload.length;\n buff[offset + 8] = n; // length\n\n for (var i = 0; i < n; i++) {\n buff[offset + 9 + i] = payload.charCodeAt(i);\n }\n\n sock._sQlen += 9 + n;\n sock.flush();\n },\n enableContinuousUpdates: function enableContinuousUpdates(sock, enable, x, y, width, height) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 150; // msg-type\n\n buff[offset + 1] = enable; // enable-flag\n\n buff[offset + 2] = x >> 8; // x\n\n buff[offset + 3] = x;\n buff[offset + 4] = y >> 8; // y\n\n buff[offset + 5] = y;\n buff[offset + 6] = width >> 8; // width\n\n buff[offset + 7] = width;\n buff[offset + 8] = height >> 8; // height\n\n buff[offset + 9] = height;\n sock._sQlen += 10;\n sock.flush();\n },\n pixelFormat: function pixelFormat(sock, depth, trueColor) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n var bpp;\n\n if (depth > 16) {\n bpp = 32;\n } else if (depth > 8) {\n bpp = 16;\n } else {\n bpp = 8;\n }\n\n var bits = Math.floor(depth / 3);\n buff[offset] = 0; // msg-type\n\n buff[offset + 1] = 0; // padding\n\n buff[offset + 2] = 0; // padding\n\n buff[offset + 3] = 0; // padding\n\n buff[offset + 4] = bpp; // bits-per-pixel\n\n buff[offset + 5] = depth; // depth\n\n buff[offset + 6] = 0; // little-endian\n\n buff[offset + 7] = trueColor ? 1 : 0; // true-color\n\n buff[offset + 8] = 0; // red-max\n\n buff[offset + 9] = (1 << bits) - 1; // red-max\n\n buff[offset + 10] = 0; // green-max\n\n buff[offset + 11] = (1 << bits) - 1; // green-max\n\n buff[offset + 12] = 0; // blue-max\n\n buff[offset + 13] = (1 << bits) - 1; // blue-max\n\n buff[offset + 14] = bits * 0; // red-shift\n\n buff[offset + 15] = bits * 1; // green-shift\n\n buff[offset + 16] = bits * 2; // blue-shift\n\n buff[offset + 17] = 0; // padding\n\n buff[offset + 18] = 0; // padding\n\n buff[offset + 19] = 0; // padding\n\n sock._sQlen += 20;\n sock.flush();\n },\n clientEncodings: function clientEncodings(sock, encodings) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 2; // msg-type\n\n buff[offset + 1] = 0; // padding\n\n buff[offset + 2] = encodings.length >> 8;\n buff[offset + 3] = encodings.length;\n var j = offset + 4;\n\n for (var i = 0; i < encodings.length; i++) {\n var enc = encodings[i];\n buff[j] = enc >> 24;\n buff[j + 1] = enc >> 16;\n buff[j + 2] = enc >> 8;\n buff[j + 3] = enc;\n j += 4;\n }\n\n sock._sQlen += j - offset;\n sock.flush();\n },\n fbUpdateRequest: function fbUpdateRequest(sock, incremental, x, y, w, h) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n\n if (typeof x === \"undefined\") {\n x = 0;\n }\n\n if (typeof y === \"undefined\") {\n y = 0;\n }\n\n buff[offset] = 3; // msg-type\n\n buff[offset + 1] = incremental ? 1 : 0;\n buff[offset + 2] = x >> 8 & 0xFF;\n buff[offset + 3] = x & 0xFF;\n buff[offset + 4] = y >> 8 & 0xFF;\n buff[offset + 5] = y & 0xFF;\n buff[offset + 6] = w >> 8 & 0xFF;\n buff[offset + 7] = w & 0xFF;\n buff[offset + 8] = h >> 8 & 0xFF;\n buff[offset + 9] = h & 0xFF;\n sock._sQlen += 10;\n sock.flush();\n },\n xvpOp: function xvpOp(sock, ver, op) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 250; // msg-type\n\n buff[offset + 1] = 0; // padding\n\n buff[offset + 2] = ver;\n buff[offset + 3] = op;\n sock._sQlen += 4;\n sock.flush();\n }\n};\nRFB.cursors = {\n none: {\n rgbaPixels: new Uint8Array(),\n w: 0,\n h: 0,\n hotx: 0,\n hoty: 0\n },\n dot: {\n /* eslint-disable indent */\n rgbaPixels: new Uint8Array([255, 255, 255, 255, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 255, 255, 255, 255, 255]),\n\n /* eslint-enable indent */\n w: 3,\n h: 3,\n hotx: 1,\n hoty: 1\n }\n};","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hasScrollbarGutter = exports.dragThreshold = void 0;\nexports.isFirefox = isFirefox;\nexports.isIOS = isIOS;\nexports.isMac = isMac;\nexports.isSafari = isSafari;\nexports.isTouchDevice = void 0;\nexports.isWindows = isWindows;\nexports.supportsCursorURIs = void 0;\n\nvar Log = _interopRequireWildcard(require(\"./logging.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n * Browser feature support detection\n */\n// Touch detection\nvar isTouchDevice = 'ontouchstart' in document.documentElement || // requried for Chrome debugger\ndocument.ontouchstart !== undefined || // required for MS Surface\nnavigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\nexports.isTouchDevice = isTouchDevice;\nwindow.addEventListener('touchstart', function onFirstTouch() {\n exports.isTouchDevice = isTouchDevice = true;\n window.removeEventListener('touchstart', onFirstTouch, false);\n}, false); // The goal is to find a certain physical width, the devicePixelRatio\n// brings us a bit closer but is not optimal.\n\nvar dragThreshold = 10 * (window.devicePixelRatio || 1);\nexports.dragThreshold = dragThreshold;\nvar _supportsCursorURIs = false;\n\ntry {\n var target = document.createElement('canvas');\n target.style.cursor = 'url(\"data:image/x-icon;base64,AAACAAEACAgAAAIAAgA4AQAAFgAAACgAAAAIAAAAEAAAAAEAIAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAA==\") 2 2, default';\n\n if (target.style.cursor.indexOf(\"url\") === 0) {\n Log.Info(\"Data URI scheme cursor supported\");\n _supportsCursorURIs = true;\n } else {\n Log.Warn(\"Data URI scheme cursor not supported\");\n }\n} catch (exc) {\n Log.Error(\"Data URI scheme cursor test exception: \" + exc);\n}\n\nvar supportsCursorURIs = _supportsCursorURIs;\nexports.supportsCursorURIs = supportsCursorURIs;\nvar _hasScrollbarGutter = true;\n\ntry {\n // Create invisible container\n var container = document.createElement('div');\n container.style.visibility = 'hidden';\n container.style.overflow = 'scroll'; // forcing scrollbars\n\n document.body.appendChild(container); // Create a div and place it in the container\n\n var child = document.createElement('div');\n container.appendChild(child); // Calculate the difference between the container's full width\n // and the child's width - the difference is the scrollbars\n\n var scrollbarWidth = container.offsetWidth - child.offsetWidth; // Clean up\n\n container.parentNode.removeChild(container);\n _hasScrollbarGutter = scrollbarWidth != 0;\n} catch (exc) {\n Log.Error(\"Scrollbar test exception: \" + exc);\n}\n\nvar hasScrollbarGutter = _hasScrollbarGutter;\n/*\n * The functions for detection of platforms and browsers below are exported\n * but the use of these should be minimized as much as possible.\n *\n * It's better to use feature detection than platform detection.\n */\n\nexports.hasScrollbarGutter = hasScrollbarGutter;\n\nfunction isMac() {\n return navigator && !!/mac/i.exec(navigator.platform);\n}\n\nfunction isWindows() {\n return navigator && !!/win/i.exec(navigator.platform);\n}\n\nfunction isIOS() {\n return navigator && (!!/ipad/i.exec(navigator.platform) || !!/iphone/i.exec(navigator.platform) || !!/ipod/i.exec(navigator.platform));\n}\n\nfunction isSafari() {\n return navigator && navigator.userAgent.indexOf('Safari') !== -1 && navigator.userAgent.indexOf('Chrome') === -1;\n}\n\nfunction isFirefox() {\n return navigator && !!/firefox/i.exec(navigator.userAgent);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _browser = require(\"./browser.js\");\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar useFallback = !_browser.supportsCursorURIs || _browser.isTouchDevice;\n\nvar Cursor = /*#__PURE__*/function () {\n function Cursor() {\n _classCallCheck(this, Cursor);\n\n this._target = null;\n this._canvas = document.createElement('canvas');\n\n if (useFallback) {\n this._canvas.style.position = 'fixed';\n this._canvas.style.zIndex = '65535';\n this._canvas.style.pointerEvents = 'none'; // Can't use \"display\" because of Firefox bug #1445997\n\n this._canvas.style.visibility = 'hidden';\n }\n\n this._position = {\n x: 0,\n y: 0\n };\n this._hotSpot = {\n x: 0,\n y: 0\n };\n this._eventHandlers = {\n 'mouseover': this._handleMouseOver.bind(this),\n 'mouseleave': this._handleMouseLeave.bind(this),\n 'mousemove': this._handleMouseMove.bind(this),\n 'mouseup': this._handleMouseUp.bind(this)\n };\n }\n\n _createClass(Cursor, [{\n key: \"attach\",\n value: function attach(target) {\n if (this._target) {\n this.detach();\n }\n\n this._target = target;\n\n if (useFallback) {\n document.body.appendChild(this._canvas);\n var options = {\n capture: true,\n passive: true\n };\n\n this._target.addEventListener('mouseover', this._eventHandlers.mouseover, options);\n\n this._target.addEventListener('mouseleave', this._eventHandlers.mouseleave, options);\n\n this._target.addEventListener('mousemove', this._eventHandlers.mousemove, options);\n\n this._target.addEventListener('mouseup', this._eventHandlers.mouseup, options);\n }\n\n this.clear();\n }\n }, {\n key: \"detach\",\n value: function detach() {\n if (!this._target) {\n return;\n }\n\n if (useFallback) {\n var options = {\n capture: true,\n passive: true\n };\n\n this._target.removeEventListener('mouseover', this._eventHandlers.mouseover, options);\n\n this._target.removeEventListener('mouseleave', this._eventHandlers.mouseleave, options);\n\n this._target.removeEventListener('mousemove', this._eventHandlers.mousemove, options);\n\n this._target.removeEventListener('mouseup', this._eventHandlers.mouseup, options);\n\n document.body.removeChild(this._canvas);\n }\n\n this._target = null;\n }\n }, {\n key: \"change\",\n value: function change(rgba, hotx, hoty, w, h) {\n if (w === 0 || h === 0) {\n this.clear();\n return;\n }\n\n this._position.x = this._position.x + this._hotSpot.x - hotx;\n this._position.y = this._position.y + this._hotSpot.y - hoty;\n this._hotSpot.x = hotx;\n this._hotSpot.y = hoty;\n\n var ctx = this._canvas.getContext('2d');\n\n this._canvas.width = w;\n this._canvas.height = h;\n var img = new ImageData(new Uint8ClampedArray(rgba), w, h);\n ctx.clearRect(0, 0, w, h);\n ctx.putImageData(img, 0, 0);\n\n if (useFallback) {\n this._updatePosition();\n } else {\n var url = this._canvas.toDataURL();\n\n this._target.style.cursor = 'url(' + url + ')' + hotx + ' ' + hoty + ', default';\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this._target.style.cursor = 'none';\n this._canvas.width = 0;\n this._canvas.height = 0;\n this._position.x = this._position.x + this._hotSpot.x;\n this._position.y = this._position.y + this._hotSpot.y;\n this._hotSpot.x = 0;\n this._hotSpot.y = 0;\n } // Mouse events might be emulated, this allows\n // moving the cursor in such cases\n\n }, {\n key: \"move\",\n value: function move(clientX, clientY) {\n if (!useFallback) {\n return;\n } // clientX/clientY are relative the _visual viewport_,\n // but our position is relative the _layout viewport_,\n // so try to compensate when we can\n\n\n if (window.visualViewport) {\n this._position.x = clientX + window.visualViewport.offsetLeft;\n this._position.y = clientY + window.visualViewport.offsetTop;\n } else {\n this._position.x = clientX;\n this._position.y = clientY;\n }\n\n this._updatePosition();\n\n var target = document.elementFromPoint(clientX, clientY);\n\n this._updateVisibility(target);\n }\n }, {\n key: \"_handleMouseOver\",\n value: function _handleMouseOver(event) {\n // This event could be because we're entering the target, or\n // moving around amongst its sub elements. Let the move handler\n // sort things out.\n this._handleMouseMove(event);\n }\n }, {\n key: \"_handleMouseLeave\",\n value: function _handleMouseLeave(event) {\n // Check if we should show the cursor on the element we are leaving to\n this._updateVisibility(event.relatedTarget);\n }\n }, {\n key: \"_handleMouseMove\",\n value: function _handleMouseMove(event) {\n this._updateVisibility(event.target);\n\n this._position.x = event.clientX - this._hotSpot.x;\n this._position.y = event.clientY - this._hotSpot.y;\n\n this._updatePosition();\n }\n }, {\n key: \"_handleMouseUp\",\n value: function _handleMouseUp(event) {\n var _this = this;\n\n // We might get this event because of a drag operation that\n // moved outside of the target. Check what's under the cursor\n // now and adjust visibility based on that.\n var target = document.elementFromPoint(event.clientX, event.clientY);\n\n this._updateVisibility(target); // Captures end with a mouseup but we can't know the event order of\n // mouseup vs releaseCapture.\n //\n // In the cases when releaseCapture comes first, the code above is\n // enough.\n //\n // In the cases when the mouseup comes first, we need wait for the\n // browser to flush all events and then check again if the cursor\n // should be visible.\n\n\n if (this._captureIsActive()) {\n window.setTimeout(function () {\n // We might have detached at this point\n if (!_this._target) {\n return;\n } // Refresh the target from elementFromPoint since queued events\n // might have altered the DOM\n\n\n target = document.elementFromPoint(event.clientX, event.clientY);\n\n _this._updateVisibility(target);\n }, 0);\n }\n }\n }, {\n key: \"_showCursor\",\n value: function _showCursor() {\n if (this._canvas.style.visibility === 'hidden') {\n this._canvas.style.visibility = '';\n }\n }\n }, {\n key: \"_hideCursor\",\n value: function _hideCursor() {\n if (this._canvas.style.visibility !== 'hidden') {\n this._canvas.style.visibility = 'hidden';\n }\n } // Should we currently display the cursor?\n // (i.e. are we over the target, or a child of the target without a\n // different cursor set)\n\n }, {\n key: \"_shouldShowCursor\",\n value: function _shouldShowCursor(target) {\n if (!target) {\n return false;\n } // Easy case\n\n\n if (target === this._target) {\n return true;\n } // Other part of the DOM?\n\n\n if (!this._target.contains(target)) {\n return false;\n } // Has the child its own cursor?\n // FIXME: How can we tell that a sub element has an\n // explicit \"cursor: none;\"?\n\n\n if (window.getComputedStyle(target).cursor !== 'none') {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"_updateVisibility\",\n value: function _updateVisibility(target) {\n // When the cursor target has capture we want to show the cursor.\n // So, if a capture is active - look at the captured element instead.\n if (this._captureIsActive()) {\n target = document.captureElement;\n }\n\n if (this._shouldShowCursor(target)) {\n this._showCursor();\n } else {\n this._hideCursor();\n }\n }\n }, {\n key: \"_updatePosition\",\n value: function _updatePosition() {\n this._canvas.style.left = this._position.x + \"px\";\n this._canvas.style.top = this._position.y + \"px\";\n }\n }, {\n key: \"_captureIsActive\",\n value: function _captureIsActive() {\n return document.captureElement && document.documentElement.contains(document.captureElement);\n }\n }]);\n\n return Cursor;\n}();\n\nexports[\"default\"] = Cursor;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clientToElement = clientToElement;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2020 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\n/*\n * HTML element utility functions\n */\nfunction clientToElement(x, y, elem) {\n var bounds = elem.getBoundingClientRect();\n var pos = {\n x: 0,\n y: 0\n }; // Clip to target bounds\n\n if (x < bounds.left) {\n pos.x = 0;\n } else if (x >= bounds.right) {\n pos.x = bounds.width - 1;\n } else {\n pos.x = x - bounds.left;\n }\n\n if (y < bounds.top) {\n pos.y = 0;\n } else if (y >= bounds.bottom) {\n pos.y = bounds.height - 1;\n } else {\n pos.y = y - bounds.top;\n }\n\n return pos;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getPointerEvent = getPointerEvent;\nexports.releaseCapture = releaseCapture;\nexports.setCapture = setCapture;\nexports.stopEvent = stopEvent;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2018 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\n/*\n * Cross-browser event and position routines\n */\nfunction getPointerEvent(e) {\n return e.changedTouches ? e.changedTouches[0] : e.touches ? e.touches[0] : e;\n}\n\nfunction stopEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n} // Emulate Element.setCapture() when not supported\n\n\nvar _captureRecursion = false;\nvar _elementForUnflushedEvents = null;\ndocument.captureElement = null;\n\nfunction _captureProxy(e) {\n // Recursion protection as we'll see our own event\n if (_captureRecursion) return; // Clone the event as we cannot dispatch an already dispatched event\n\n var newEv = new e.constructor(e.type, e);\n _captureRecursion = true;\n\n if (document.captureElement) {\n document.captureElement.dispatchEvent(newEv);\n } else {\n _elementForUnflushedEvents.dispatchEvent(newEv);\n }\n\n _captureRecursion = false; // Avoid double events\n\n e.stopPropagation(); // Respect the wishes of the redirected event handlers\n\n if (newEv.defaultPrevented) {\n e.preventDefault();\n } // Implicitly release the capture on button release\n\n\n if (e.type === \"mouseup\") {\n releaseCapture();\n }\n} // Follow cursor style of target element\n\n\nfunction _capturedElemChanged() {\n var proxyElem = document.getElementById(\"noVNC_mouse_capture_elem\");\n proxyElem.style.cursor = window.getComputedStyle(document.captureElement).cursor;\n}\n\nvar _captureObserver = new MutationObserver(_capturedElemChanged);\n\nfunction setCapture(target) {\n if (target.setCapture) {\n target.setCapture();\n document.captureElement = target;\n } else {\n // Release any existing capture in case this method is\n // called multiple times without coordination\n releaseCapture();\n var proxyElem = document.getElementById(\"noVNC_mouse_capture_elem\");\n\n if (proxyElem === null) {\n proxyElem = document.createElement(\"div\");\n proxyElem.id = \"noVNC_mouse_capture_elem\";\n proxyElem.style.position = \"fixed\";\n proxyElem.style.top = \"0px\";\n proxyElem.style.left = \"0px\";\n proxyElem.style.width = \"100%\";\n proxyElem.style.height = \"100%\";\n proxyElem.style.zIndex = 10000;\n proxyElem.style.display = \"none\";\n document.body.appendChild(proxyElem); // This is to make sure callers don't get confused by having\n // our blocking element as the target\n\n proxyElem.addEventListener('contextmenu', _captureProxy);\n proxyElem.addEventListener('mousemove', _captureProxy);\n proxyElem.addEventListener('mouseup', _captureProxy);\n }\n\n document.captureElement = target; // Track cursor and get initial cursor\n\n _captureObserver.observe(target, {\n attributes: true\n });\n\n _capturedElemChanged();\n\n proxyElem.style.display = \"\"; // We listen to events on window in order to keep tracking if it\n // happens to leave the viewport\n\n window.addEventListener('mousemove', _captureProxy);\n window.addEventListener('mouseup', _captureProxy);\n }\n}\n\nfunction releaseCapture() {\n if (document.releaseCapture) {\n document.releaseCapture();\n document.captureElement = null;\n } else {\n if (!document.captureElement) {\n return;\n } // There might be events already queued. The event proxy needs\n // access to the captured element for these queued events.\n // E.g. contextmenu (right-click) in Microsoft Edge\n //\n // Before removing the capturedElem pointer we save it to a\n // temporary variable that the unflushed events can use.\n\n\n _elementForUnflushedEvents = document.captureElement;\n document.captureElement = null;\n\n _captureObserver.disconnect();\n\n var proxyElem = document.getElementById(\"noVNC_mouse_capture_elem\");\n proxyElem.style.display = \"none\";\n window.removeEventListener('mousemove', _captureProxy);\n window.removeEventListener('mouseup', _captureProxy);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\nvar EventTargetMixin = /*#__PURE__*/function () {\n function EventTargetMixin() {\n _classCallCheck(this, EventTargetMixin);\n\n this._listeners = new Map();\n }\n\n _createClass(EventTargetMixin, [{\n key: \"addEventListener\",\n value: function addEventListener(type, callback) {\n if (!this._listeners.has(type)) {\n this._listeners.set(type, new Set());\n }\n\n this._listeners.get(type).add(callback);\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(type, callback) {\n if (this._listeners.has(type)) {\n this._listeners.get(type)[\"delete\"](callback);\n }\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n var _this = this;\n\n if (!this._listeners.has(event.type)) {\n return true;\n }\n\n this._listeners.get(event.type).forEach(function (callback) {\n return callback.call(_this, event);\n });\n\n return !event.defaultPrevented;\n }\n }]);\n\n return EventTargetMixin;\n}();\n\nexports[\"default\"] = EventTargetMixin;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toSigned32bit = toSigned32bit;\nexports.toUnsigned32bit = toUnsigned32bit;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2020 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\nfunction toUnsigned32bit(toConvert) {\n return toConvert >>> 0;\n}\n\nfunction toSigned32bit(toConvert) {\n return toConvert | 0;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Warn = exports.Info = exports.Error = exports.Debug = void 0;\nexports.getLogging = getLogging;\nexports.initLogging = initLogging;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\n/*\n * Logging/debug routines\n */\nvar _logLevel = 'warn';\n\nvar Debug = function Debug() {};\n\nexports.Debug = Debug;\n\nvar Info = function Info() {};\n\nexports.Info = Info;\n\nvar Warn = function Warn() {};\n\nexports.Warn = Warn;\n\nvar Error = function Error() {};\n\nexports.Error = Error;\n\nfunction initLogging(level) {\n if (typeof level === 'undefined') {\n level = _logLevel;\n } else {\n _logLevel = level;\n }\n\n exports.Debug = Debug = exports.Info = Info = exports.Warn = Warn = exports.Error = Error = function Error() {};\n\n if (typeof window.console !== \"undefined\") {\n /* eslint-disable no-console, no-fallthrough */\n switch (level) {\n case 'debug':\n exports.Debug = Debug = console.debug.bind(window.console);\n\n case 'info':\n exports.Info = Info = console.info.bind(window.console);\n\n case 'warn':\n exports.Warn = Warn = console.warn.bind(window.console);\n\n case 'error':\n exports.Error = Error = console.error.bind(window.console);\n\n case 'none':\n break;\n\n default:\n throw new window.Error(\"invalid logging type '\" + level + \"'\");\n }\n /* eslint-enable no-console, no-fallthrough */\n\n }\n}\n\nfunction getLogging() {\n return _logLevel;\n}\n\n// Initialize logging level\ninitLogging();","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.decodeUTF8 = decodeUTF8;\nexports.encodeUTF8 = encodeUTF8;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n// Decode from UTF-8\nfunction decodeUTF8(utf8string) {\n var allowLatin1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n try {\n return decodeURIComponent(escape(utf8string));\n } catch (e) {\n if (e instanceof URIError) {\n if (allowLatin1) {\n // If we allow Latin1 we can ignore any decoding fails\n // and in these cases return the original string\n return utf8string;\n }\n }\n\n throw e;\n }\n} // Encode to UTF-8\n\n\nfunction encodeUTF8(DOMString) {\n return unescape(encodeURIComponent(DOMString));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Buf8 = exports.Buf32 = exports.Buf16 = void 0;\nexports.arraySet = arraySet;\nexports.flattenChunks = flattenChunks;\nexports.shrinkBuf = shrinkBuf;\n\n// reduce buffer size, avoiding mem copy\nfunction shrinkBuf(buf, size) {\n if (buf.length === size) {\n return buf;\n }\n\n if (buf.subarray) {\n return buf.subarray(0, size);\n }\n\n buf.length = size;\n return buf;\n}\n\n;\n\nfunction arraySet(dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n } // Fallback to ordinary array\n\n\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n} // Join array of chunks to single array.\n\n\nfunction flattenChunks(chunks) {\n var i, l, len, pos, chunk, result; // calculate data length\n\n len = 0;\n\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n } // join chunks\n\n\n result = new Uint8Array(len);\n pos = 0;\n\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n}\n\nvar Buf8 = Uint8Array;\nexports.Buf8 = Buf8;\nvar Buf16 = Uint16Array;\nexports.Buf16 = Buf16;\nvar Buf32 = Int32Array;\nexports.Buf32 = Buf32;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = adler32;\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It doesn't worth to make additional optimizationa as in original.\n// Small size is preferable.\nfunction adler32(adler, buf, len, pos) {\n var s1 = adler & 0xffff | 0,\n s2 = adler >>> 16 & 0xffff | 0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = s1 + buf[pos++] | 0;\n s2 = s2 + s1 | 0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return s1 | s2 << 16 | 0;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = makeTable;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c,\n table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n\n for (var k = 0; k < 8; k++) {\n c = c & 1 ? 0xEDB88320 ^ c >>> 1 : c >>> 1;\n }\n\n table[n] = c;\n }\n\n return table;\n} // Create table on load. Just 255 signed longs. Not a problem.\n\n\nvar crcTable = makeTable();\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return crc ^ -1; // >>> 0;\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Z_UNKNOWN = exports.Z_STREAM_ERROR = exports.Z_STREAM_END = exports.Z_RLE = exports.Z_PARTIAL_FLUSH = exports.Z_OK = exports.Z_NO_FLUSH = exports.Z_HUFFMAN_ONLY = exports.Z_FULL_FLUSH = exports.Z_FIXED = exports.Z_FINISH = exports.Z_FILTERED = exports.Z_DEFLATED = exports.Z_DEFAULT_STRATEGY = exports.Z_DEFAULT_COMPRESSION = exports.Z_DATA_ERROR = exports.Z_BUF_ERROR = exports.Z_BLOCK = void 0;\nexports.deflate = deflate;\nexports.deflateEnd = deflateEnd;\nexports.deflateInfo = void 0;\nexports.deflateInit = deflateInit;\nexports.deflateInit2 = deflateInit2;\nexports.deflateReset = deflateReset;\nexports.deflateResetKeep = deflateResetKeep;\nexports.deflateSetDictionary = deflateSetDictionary;\nexports.deflateSetHeader = deflateSetHeader;\n\nvar utils = _interopRequireWildcard(require(\"../utils/common.js\"));\n\nvar trees = _interopRequireWildcard(require(\"./trees.js\"));\n\nvar _adler = _interopRequireDefault(require(\"./adler32.js\"));\n\nvar _crc = _interopRequireDefault(require(\"./crc32.js\"));\n\nvar _messages = _interopRequireDefault(require(\"./messages.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/* Public constants ==========================================================*/\n\n/* ===========================================================================*/\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH = 0;\nexports.Z_NO_FLUSH = Z_NO_FLUSH;\nvar Z_PARTIAL_FLUSH = 1; //export const Z_SYNC_FLUSH = 2;\n\nexports.Z_PARTIAL_FLUSH = Z_PARTIAL_FLUSH;\nvar Z_FULL_FLUSH = 3;\nexports.Z_FULL_FLUSH = Z_FULL_FLUSH;\nvar Z_FINISH = 4;\nexports.Z_FINISH = Z_FINISH;\nvar Z_BLOCK = 5; //export const Z_TREES = 6;\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n\nexports.Z_BLOCK = Z_BLOCK;\nvar Z_OK = 0;\nexports.Z_OK = Z_OK;\nvar Z_STREAM_END = 1; //export const Z_NEED_DICT = 2;\n//export const Z_ERRNO = -1;\n\nexports.Z_STREAM_END = Z_STREAM_END;\nvar Z_STREAM_ERROR = -2;\nexports.Z_STREAM_ERROR = Z_STREAM_ERROR;\nvar Z_DATA_ERROR = -3; //export const Z_MEM_ERROR = -4;\n\nexports.Z_DATA_ERROR = Z_DATA_ERROR;\nvar Z_BUF_ERROR = -5; //export const Z_VERSION_ERROR = -6;\n\n/* compression levels */\n//export const Z_NO_COMPRESSION = 0;\n//export const Z_BEST_SPEED = 1;\n//export const Z_BEST_COMPRESSION = 9;\n\nexports.Z_BUF_ERROR = Z_BUF_ERROR;\nvar Z_DEFAULT_COMPRESSION = -1;\nexports.Z_DEFAULT_COMPRESSION = Z_DEFAULT_COMPRESSION;\nvar Z_FILTERED = 1;\nexports.Z_FILTERED = Z_FILTERED;\nvar Z_HUFFMAN_ONLY = 2;\nexports.Z_HUFFMAN_ONLY = Z_HUFFMAN_ONLY;\nvar Z_RLE = 3;\nexports.Z_RLE = Z_RLE;\nvar Z_FIXED = 4;\nexports.Z_FIXED = Z_FIXED;\nvar Z_DEFAULT_STRATEGY = 0;\n/* Possible values of the data_type field (though see inflate()) */\n//export const Z_BINARY = 0;\n//export const Z_TEXT = 1;\n//export const Z_ASCII = 1; // = Z_TEXT\n\nexports.Z_DEFAULT_STRATEGY = Z_DEFAULT_STRATEGY;\nvar Z_UNKNOWN = 2;\n/* The deflate compression method */\n\nexports.Z_UNKNOWN = Z_UNKNOWN;\nvar Z_DEFLATED = 8;\n/*============================================================================*/\n\nexports.Z_DEFLATED = Z_DEFLATED;\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\n\nvar DEF_MEM_LEVEL = 8;\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1;\nvar PRESET_DICT = 0x20;\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\nvar BS_NEED_MORE = 1;\n/* block not completed, need more input or more output */\n\nvar BS_BLOCK_DONE = 2;\n/* block flush performed */\n\nvar BS_FINISH_STARTED = 3;\n/* finish started, need only more output at next deflate */\n\nvar BS_FINISH_DONE = 4;\n/* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = _messages[\"default\"][errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return (f << 1) - (f > 4 ? 9 : 0);\n}\n\nfunction zero(buf) {\n var len = buf.length;\n\n while (--len >= 0) {\n buf[len] = 0;\n }\n}\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\n\n\nfunction flush_pending(strm) {\n var s = strm.state; //_tr_flush_bits(s);\n\n var len = s.pending;\n\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n\n if (len === 0) {\n return;\n }\n\n utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\nfunction flush_block_only(s, last) {\n trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last);\n\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\n\n\nfunction putShortMSB(s, b) {\n // put_byte(s, (Byte)(b >> 8));\n // put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = b >>> 8 & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\n\n\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) {\n len = size;\n }\n\n if (len === 0) {\n return 0;\n }\n\n strm.avail_in -= len; // zmemcpy(buf, strm->next_in, len);\n\n utils.arraySet(buf, strm.input, strm.next_in, len, start);\n\n if (strm.state.wrap === 1) {\n strm.adler = (0, _adler[\"default\"])(strm.adler, buf, len, start);\n } else if (strm.state.wrap === 2) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n return len;\n}\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\n\n\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length;\n /* max hash chain length */\n\n var scan = s.strstart;\n /* current string */\n\n var match;\n /* matched string */\n\n var len;\n /* length of current match */\n\n var best_len = s.prev_length;\n /* best match length so far */\n\n var nice_match = s.nice_match;\n /* stop if match long enough */\n\n var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0\n /*NIL*/\n ;\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n\n\n if (nice_match > s.lookahead) {\n nice_match = s.lookahead;\n } // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) {\n continue;\n }\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n\n\n scan += 2;\n match++; // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n\n do {// Do nothing\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend); // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n\n if (len >= nice_match) {\n break;\n }\n\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n\n return s.lookahead;\n}\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\n\n\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str; //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart; // JS ints have 32 bit, block below not needed\n\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n\n s.block_start -= _w_size;\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = m >= _w_size ? m - _w_size : 0;\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = m >= _w_size ? m - _w_size : 0;\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n\n if (s.strm.avail_in === 0) {\n break;\n }\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n\n\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n /* Initialize the hash value now that we have some input: */\n\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask; //#if MIN_MATCH != 3\n // Call update_hash() MIN_MATCH-3 more times\n //#endif\n\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n // if (s.high_water < s.window_size) {\n // var curr = s.strstart + s.lookahead;\n // var init = 0;\n //\n // if (s.high_water < curr) {\n // /* Previous high water mark below current data -- zero WIN_INIT\n // * bytes or up to end of window, whichever is less.\n // */\n // init = s.window_size - curr;\n // if (init > WIN_INIT)\n // init = WIN_INIT;\n // zmemzero(s->window + curr, (unsigned)init);\n // s->high_water = curr + init;\n // }\n // else if (s->high_water < (ulg)curr + WIN_INIT) {\n // /* High water mark at or above current data, but below current data\n // * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n // * to end of window, whichever is less.\n // */\n // init = (ulg)curr + WIN_INIT - s->high_water;\n // if (init > s->window_size - s->high_water)\n // init = s->window_size - s->high_water;\n // zmemzero(s->window + s->high_water, (unsigned)init);\n // s->high_water += init;\n // }\n // }\n //\n // Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n // \"not enough room for search\");\n\n}\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\n\n\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n /* Copy as much as possible from input to output: */\n\n\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n // if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n // s.block_start >= s.w_size)) {\n // throw new Error(\"slide too late\");\n // }\n fill_window(s);\n\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n\n } //Assert(s->block_start >= 0L, \"block gone\");\n // if (s.block_start < 0) throw new Error(\"block gone\");\n\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n /* Emit a stored block if pending_buf will be full: */\n\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n\n\n if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_NEED_MORE;\n}\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\n\n\nfunction deflate_fast(s, flush) {\n var hash_head;\n /* head of the hash chain */\n\n var bflush;\n /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n /* flush the current block */\n }\n }\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n\n\n hash_head = 0\n /*NIL*/\n ;\n\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n\n\n if (hash_head !== 0\n /*NIL*/\n && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n s.lookahead -= s.match_length;\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n\n if (s.match_length <= s.max_lazy_match\n /*max_insert_length*/\n && s.lookahead >= MIN_MATCH) {\n s.match_length--;\n /* string at strstart already in table */\n\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n\n s.strstart++;\n } else {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask; //#if MIN_MATCH != 3\n // Call UPDATE_HASH() MIN_MATCH-3 more times\n //#endif\n\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n }\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n }\n\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_BLOCK_DONE;\n}\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\n\n\nfunction deflate_slow(s, flush) {\n var hash_head;\n /* head of hash chain */\n\n var bflush;\n /* set if current block must be flushed */\n\n var max_insert;\n /* Process the input block. */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n\n }\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n\n\n hash_head = 0\n /*NIL*/\n ;\n\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n /* Find the longest match, discarding those <= prev_length.\n */\n\n\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0\n /*NIL*/\n && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD\n /*MAX_DIST(s)*/\n ) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096\n /*TOO_FAR*/\n )) {\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n\n\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n\n bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n\n s.strstart++;\n s.lookahead--;\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n } //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n\n\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n s.match_available = 0;\n }\n\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_BLOCK_DONE;\n}\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\n\n\nfunction deflate_rle(s, flush) {\n var bflush;\n /* set if current block must be flushed */\n\n var prev;\n /* byte at distance one to match */\n\n var scan, strend;\n /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n\n }\n /* See how many times the previous byte repeats */\n\n\n s.match_length = 0;\n\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n\n do {// Do nothing\n } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend);\n\n s.match_length = MAX_MATCH - (strend - scan);\n\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n } //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n\n }\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n\n\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n }\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_BLOCK_DONE;\n}\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\n\n\nfunction deflate_huff(s, flush) {\n var bflush;\n /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n break;\n /* flush the current block */\n }\n }\n /* Output a literal byte */\n\n\n s.match_length = 0; //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_BLOCK_DONE;\n}\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\n\n\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nvar configuration_table;\nconfiguration_table = [\n/* good lazy nice chain */\nnew Config(0, 0, 0, 0, deflate_stored),\n/* 0 store only */\nnew Config(4, 4, 8, 4, deflate_fast),\n/* 1 max speed, no lazy matches */\nnew Config(4, 5, 16, 8, deflate_fast),\n/* 2 */\nnew Config(4, 6, 32, 32, deflate_fast),\n/* 3 */\nnew Config(4, 4, 16, 16, deflate_slow),\n/* 4 lazy matches */\nnew Config(8, 16, 32, 32, deflate_slow),\n/* 5 */\nnew Config(8, 16, 128, 128, deflate_slow),\n/* 6 */\nnew Config(8, 32, 128, 256, deflate_slow),\n/* 7 */\nnew Config(32, 128, 258, 1024, deflate_slow),\n/* 8 */\nnew Config(32, 258, 258, 4096, deflate_slow)\n/* 9 max compression */\n];\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\n\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n /*** CLEAR_HASH(s); ***/\n\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\nfunction DeflateState() {\n this.strm = null;\n /* pointer back to this zlib stream */\n\n this.status = 0;\n /* as the name implies */\n\n this.pending_buf = null;\n /* output still pending */\n\n this.pending_buf_size = 0;\n /* size of pending_buf */\n\n this.pending_out = 0;\n /* next pending byte to output to the stream */\n\n this.pending = 0;\n /* nb of bytes in the pending buffer */\n\n this.wrap = 0;\n /* bit 0 true for zlib, bit 1 true for gzip */\n\n this.gzhead = null;\n /* gzip header information to write */\n\n this.gzindex = 0;\n /* where in extra, name, or comment */\n\n this.method = Z_DEFLATED;\n /* can only be DEFLATED */\n\n this.last_flush = -1;\n /* value of flush param for previous deflate call */\n\n this.w_size = 0;\n /* LZ77 window size (32K by default) */\n\n this.w_bits = 0;\n /* log2(w_size) (8..16) */\n\n this.w_mask = 0;\n /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null;\n /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0;\n /* hash index of string to be inserted */\n\n this.hash_size = 0;\n /* number of elements in hash table */\n\n this.hash_bits = 0;\n /* log2(hash_size) */\n\n this.hash_mask = 0;\n /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0;\n /* length of best match */\n\n this.prev_match = 0;\n /* previous match */\n\n this.match_available = 0;\n /* set if previous match exists */\n\n this.strstart = 0;\n /* start of string to insert */\n\n this.match_start = 0;\n /* start of matching string */\n\n this.lookahead = 0;\n /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0;\n /* compression level (1..9) */\n\n this.strategy = 0;\n /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0;\n /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n\n this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2);\n this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n this.l_desc = null;\n /* desc. for literal tree */\n\n this.d_desc = null;\n /* desc. for distance tree */\n\n this.bl_desc = null;\n /* desc. for bit length tree */\n //ush bl_count[MAX_BITS+1];\n\n this.bl_count = new utils.Buf16(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n\n this.heap = new utils.Buf16(2 * L_CODES + 1);\n /* heap used to build the Huffman trees */\n\n zero(this.heap);\n this.heap_len = 0;\n /* number of elements in the heap */\n\n this.heap_max = 0;\n /* element of largest frequency */\n\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0;\n /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0;\n /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0;\n /* bit length of current block with optimal trees */\n\n this.static_len = 0;\n /* bit length of current block with static trees */\n\n this.matches = 0;\n /* number of string matches in current block */\n\n this.insert = 0;\n /* bytes at end of window left to insert */\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n\n s.status = s.wrap ? INIT_STATE : BUSY_STATE;\n strm.adler = s.wrap === 2 ? 0 // crc32(0, Z_NULL, 0)\n : 1; // adler32(0, Z_NULL, 0)\n\n s.last_flush = Z_NO_FLUSH;\n\n trees._tr_init(s);\n\n return Z_OK;\n}\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n\n return ret;\n}\n\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n if (strm.state.wrap !== 2) {\n return Z_STREAM_ERROR;\n }\n\n strm.state.gzhead = head;\n return Z_OK;\n}\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) {\n // === Z_NULL\n return Z_STREAM_ERROR;\n }\n\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) {\n /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n } else if (windowBits > 15) {\n wrap = 2;\n /* write gzip wrapper instead */\n\n windowBits -= 16;\n }\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n\n var s = new DeflateState();\n strm.state = s;\n s.strm = strm;\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n s.window = new utils.Buf8(s.w_size * 2);\n s.head = new utils.Buf16(s.hash_size);\n s.prev = new utils.Buf16(s.w_size); // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << memLevel + 6;\n /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4; //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n\n s.pending_buf = new utils.Buf8(s.pending_buf_size); // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n\n s.d_buf = 1 * s.lit_bufsize; //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n\n s.l_buf = (1 + 2) * s.lit_bufsize;\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state || flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n s = strm.state;\n\n if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush !== Z_FINISH) {\n return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm;\n /* just in case */\n\n old_flush = s.last_flush;\n s.last_flush = flush;\n /* Write the header */\n\n if (s.status === INIT_STATE) {\n if (s.wrap === 2) {\n // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n\n if (!s.gzhead) {\n // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n } else {\n put_byte(s, (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16));\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, s.gzhead.time >> 8 & 0xff);\n put_byte(s, s.gzhead.time >> 16 & 0xff);\n put_byte(s, s.gzhead.time >> 24 & 0xff);\n put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);\n put_byte(s, s.gzhead.os & 0xff);\n\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, s.gzhead.extra.length >> 8 & 0xff);\n }\n\n if (s.gzhead.hcrc) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, s.pending_buf, s.pending, 0);\n }\n\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n } else // DEFLATE header\n {\n var header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n\n header |= level_flags << 6;\n\n if (s.strstart !== 0) {\n header |= PRESET_DICT;\n }\n\n header += 31 - header % 31;\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n /* Save the adler32 of the preset dictionary: */\n\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n } //#ifdef GZIP\n\n\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra\n /* != Z_NULL*/\n ) {\n beg = s.pending;\n /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n flush_pending(strm);\n beg = s.pending;\n\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n } else {\n s.status = NAME_STATE;\n }\n }\n\n if (s.status === NAME_STATE) {\n if (s.gzhead.name\n /* != Z_NULL*/\n ) {\n beg = s.pending;\n /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n flush_pending(strm);\n beg = s.pending;\n\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n } // JS specific: little magic to add zero terminator to end of string\n\n\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n } else {\n s.status = COMMENT_STATE;\n }\n }\n\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment\n /* != Z_NULL*/\n ) {\n beg = s.pending;\n /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n flush_pending(strm);\n beg = s.pending;\n\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n } // JS specific: little magic to add zero terminator to end of string\n\n\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n } else {\n s.status = HCRC_STATE;\n }\n }\n\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, strm.adler >> 8 & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n\n s.status = BUSY_STATE;\n }\n } else {\n s.status = BUSY_STATE;\n }\n } //#endif\n\n /* Flush as much pending output as possible */\n\n\n if (s.pending !== 0) {\n flush_pending(strm);\n\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n /* User must not provide more input after the first FINISH: */\n\n\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n /* Start a new block or continue the current one.\n */\n\n\n if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH && s.status !== FINISH_STATE) {\n var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : s.strategy === Z_RLE ? deflate_rle(s, flush) : configuration_table[s.level].func(s, flush);\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n trees._tr_align(s);\n } else if (flush !== Z_BLOCK) {\n /* FULL_FLUSH or SYNC_FLUSH */\n trees._tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n\n\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/\n\n /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n\n flush_pending(strm);\n\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR at next call, see above */\n\n return Z_OK;\n }\n }\n } //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n\n if (flush !== Z_FINISH) {\n return Z_OK;\n }\n\n if (s.wrap <= 0) {\n return Z_STREAM_END;\n }\n /* Write the trailer */\n\n\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, strm.adler >> 8 & 0xff);\n put_byte(s, strm.adler >> 16 & 0xff);\n put_byte(s, strm.adler >> 24 & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, strm.total_in >> 8 & 0xff);\n put_byte(s, strm.total_in >> 16 & 0xff);\n put_byte(s, strm.total_in >> 24 & 0xff);\n } else {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n\n if (s.wrap > 0) {\n s.wrap = -s.wrap;\n }\n /* write the trailer only once! */\n\n\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm\n /*== Z_NULL*/\n || !strm.state\n /*== Z_NULL*/\n ) {\n return Z_STREAM_ERROR;\n }\n\n status = strm.state.status;\n\n if (status !== INIT_STATE && status !== EXTRA_STATE && status !== NAME_STATE && status !== COMMENT_STATE && status !== HCRC_STATE && status !== BUSY_STATE && status !== FINISH_STATE) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\n\n\nfunction deflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n var s;\n var str, n;\n var wrap;\n var avail;\n var next;\n var input;\n var tmpDict;\n\n if (!strm\n /*== Z_NULL*/\n || !strm.state\n /*== Z_NULL*/\n ) {\n return Z_STREAM_ERROR;\n }\n\n s = strm.state;\n wrap = s.wrap;\n\n if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n\n\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = (0, _adler[\"default\"])(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0;\n /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n\n if (dictLength >= s.w_size) {\n if (wrap === 0) {\n /* already empty otherwise */\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n\n\n tmpDict = new utils.Buf8(s.w_size);\n utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n\n\n avail = strm.avail_in;\n next = strm.next_in;\n input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n\n while (s.lookahead >= MIN_MATCH) {\n str = s.strstart;\n n = s.lookahead - (MIN_MATCH - 1);\n\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n}\n\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n\nexports.deflateInfo = deflateInfo;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = inflate_fast;\n// See state defs from inflate.js\nvar BAD = 30;\n/* got a data error -- remain here until reset */\n\nvar TYPE = 12;\n/* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\n\nfunction inflate_fast(strm, start) {\n var state;\n\n var _in;\n /* local strm.input */\n\n\n var last;\n /* have enough input while in < last */\n\n var _out;\n /* local strm.output */\n\n\n var beg;\n /* inflate()'s initial strm.output */\n\n var end;\n /* while out < end, enough space available */\n //#ifdef INFLATE_STRICT\n\n var dmax;\n /* maximum distance from zlib header */\n //#endif\n\n var wsize;\n /* window size or zero if not using window */\n\n var whave;\n /* valid bytes in the window */\n\n var wnext;\n /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n\n var s_window;\n /* allocated sliding window, if wsize != 0 */\n\n var hold;\n /* local strm.hold */\n\n var bits;\n /* local strm.bits */\n\n var lcode;\n /* local strm.lencode */\n\n var dcode;\n /* local strm.distcode */\n\n var lmask;\n /* mask for first level of length codes */\n\n var dmask;\n /* mask for first level of distance codes */\n\n var here;\n /* retrieved table entry */\n\n var op;\n /* code bits, operation, extra bits, or */\n\n /* window position, window bytes to copy */\n\n var len;\n /* match length, unused bytes */\n\n var dist;\n /* match distance */\n\n var from;\n /* where to copy match from */\n\n var from_source;\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n\n state = strm.state; //here = state.here;\n\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257); //#ifdef INFLATE_STRICT\n\n dmax = state.dmax; //#endif\n\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top: do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen: for (;;) {\n // Goto emulation\n op = here >>> 24\n /*here.bits*/\n ;\n hold >>>= op;\n bits -= op;\n op = here >>> 16 & 0xff\n /*here.op*/\n ;\n\n if (op === 0) {\n /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff\n /*here.val*/\n ;\n } else if (op & 16) {\n /* length base */\n len = here & 0xffff\n /*here.val*/\n ;\n op &= 15;\n /* number of extra bits */\n\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n len += hold & (1 << op) - 1;\n hold >>>= op;\n bits -= op;\n } //Tracevv((stderr, \"inflate: length %u\\n\", len));\n\n\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = dcode[hold & dmask];\n\n dodist: for (;;) {\n // goto emulation\n op = here >>> 24\n /*here.bits*/\n ;\n hold >>>= op;\n bits -= op;\n op = here >>> 16 & 0xff\n /*here.op*/\n ;\n\n if (op & 16) {\n /* distance base */\n dist = here & 0xffff\n /*here.val*/\n ;\n op &= 15;\n /* number of extra bits */\n\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n\n dist += hold & (1 << op) - 1; //#ifdef INFLATE_STRICT\n\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n } //#endif\n\n\n hold >>>= op;\n bits -= op; //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n\n op = _out - beg;\n /* max distance in output */\n\n if (dist > op) {\n /* see if copy from window */\n op = dist - op;\n /* distance back in window */\n\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n } // (!) This block is disabled in zlib defailts,\n // don't enable it for binary compatibility\n //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n // if (len <= op - whave) {\n // do {\n // output[_out++] = 0;\n // } while (--len);\n // continue top;\n // }\n // len -= op - whave;\n // do {\n // output[_out++] = 0;\n // } while (--op > whave);\n // if (op === 0) {\n // from = _out - dist;\n // do {\n // output[_out++] = output[from++];\n // } while (--len);\n // continue top;\n // }\n //#endif\n\n }\n\n from = 0; // window index\n\n from_source = s_window;\n\n if (wnext === 0) {\n /* very common case */\n from += wsize - op;\n\n if (op < len) {\n /* some from window */\n len -= op;\n\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n\n from = _out - dist;\n /* rest from output */\n\n from_source = output;\n }\n } else if (wnext < op) {\n /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n\n if (op < len) {\n /* some from end of window */\n len -= op;\n\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n\n from = 0;\n\n if (wnext < len) {\n /* some from start of window */\n op = wnext;\n len -= op;\n\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n\n from = _out - dist;\n /* rest from output */\n\n from_source = output;\n }\n }\n } else {\n /* contiguous in window */\n from += wnext - op;\n\n if (op < len) {\n /* some from window */\n len -= op;\n\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n\n from = _out - dist;\n /* rest from output */\n\n from_source = output;\n }\n }\n\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n\n if (len) {\n output[_out++] = from_source[from++];\n\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n } else {\n from = _out - dist;\n /* copy direct from output */\n\n do {\n /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n\n if (len) {\n output[_out++] = output[from++];\n\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n } else if ((op & 64) === 0) {\n /* 2nd level distance code */\n here = dcode[(here & 0xffff\n /*here.val*/\n ) + (hold & (1 << op) - 1)];\n continue dodist;\n } else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } else if ((op & 64) === 0) {\n /* 2nd level length code */\n here = lcode[(here & 0xffff\n /*here.val*/\n ) + (hold & (1 << op) - 1)];\n continue dolen;\n } else if (op & 32) {\n /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n } else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n\n\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n /* update state and return */\n\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last);\n strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end);\n state.hold = hold;\n state.bits = bits;\n return;\n}\n\n;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Z_TREES = exports.Z_STREAM_ERROR = exports.Z_STREAM_END = exports.Z_OK = exports.Z_NEED_DICT = exports.Z_MEM_ERROR = exports.Z_FINISH = exports.Z_DEFLATED = exports.Z_DATA_ERROR = exports.Z_BUF_ERROR = exports.Z_BLOCK = void 0;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateInfo = void 0;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateSetDictionary = inflateSetDictionary;\n\nvar utils = _interopRequireWildcard(require(\"../utils/common.js\"));\n\nvar _adler = _interopRequireDefault(require(\"./adler32.js\"));\n\nvar _crc = _interopRequireDefault(require(\"./crc32.js\"));\n\nvar _inffast = _interopRequireDefault(require(\"./inffast.js\"));\n\nvar _inftrees = _interopRequireDefault(require(\"./inftrees.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n/* Public constants ==========================================================*/\n\n/* ===========================================================================*/\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//export const Z_NO_FLUSH = 0;\n//export const Z_PARTIAL_FLUSH = 1;\n//export const Z_SYNC_FLUSH = 2;\n//export const Z_FULL_FLUSH = 3;\n\nvar Z_FINISH = 4;\nexports.Z_FINISH = Z_FINISH;\nvar Z_BLOCK = 5;\nexports.Z_BLOCK = Z_BLOCK;\nvar Z_TREES = 6;\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n\nexports.Z_TREES = Z_TREES;\nvar Z_OK = 0;\nexports.Z_OK = Z_OK;\nvar Z_STREAM_END = 1;\nexports.Z_STREAM_END = Z_STREAM_END;\nvar Z_NEED_DICT = 2; //export const Z_ERRNO = -1;\n\nexports.Z_NEED_DICT = Z_NEED_DICT;\nvar Z_STREAM_ERROR = -2;\nexports.Z_STREAM_ERROR = Z_STREAM_ERROR;\nvar Z_DATA_ERROR = -3;\nexports.Z_DATA_ERROR = Z_DATA_ERROR;\nvar Z_MEM_ERROR = -4;\nexports.Z_MEM_ERROR = Z_MEM_ERROR;\nvar Z_BUF_ERROR = -5; //export const Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\n\nexports.Z_BUF_ERROR = Z_BUF_ERROR;\nvar Z_DEFLATED = 8;\n/* STATES ====================================================================*/\n\n/* ===========================================================================*/\n\nexports.Z_DEFLATED = Z_DEFLATED;\nvar HEAD = 1;\n/* i: waiting for magic header */\n\nvar FLAGS = 2;\n/* i: waiting for method and flags (gzip) */\n\nvar TIME = 3;\n/* i: waiting for modification time (gzip) */\n\nvar OS = 4;\n/* i: waiting for extra flags and operating system (gzip) */\n\nvar EXLEN = 5;\n/* i: waiting for extra length (gzip) */\n\nvar EXTRA = 6;\n/* i: waiting for extra bytes (gzip) */\n\nvar NAME = 7;\n/* i: waiting for end of file name (gzip) */\n\nvar COMMENT = 8;\n/* i: waiting for end of comment (gzip) */\n\nvar HCRC = 9;\n/* i: waiting for header crc (gzip) */\n\nvar DICTID = 10;\n/* i: waiting for dictionary check value */\n\nvar DICT = 11;\n/* waiting for inflateSetDictionary() call */\n\nvar TYPE = 12;\n/* i: waiting for type bits, including last-flag bit */\n\nvar TYPEDO = 13;\n/* i: same, but skip check to exit inflate on new block */\n\nvar STORED = 14;\n/* i: waiting for stored size (length and complement) */\n\nvar COPY_ = 15;\n/* i/o: same as COPY below, but only first time in */\n\nvar COPY = 16;\n/* i/o: waiting for input or output to copy stored block */\n\nvar TABLE = 17;\n/* i: waiting for dynamic block table lengths */\n\nvar LENLENS = 18;\n/* i: waiting for code length code lengths */\n\nvar CODELENS = 19;\n/* i: waiting for length/lit and distance code lengths */\n\nvar LEN_ = 20;\n/* i: same as LEN below, but only first time in */\n\nvar LEN = 21;\n/* i: waiting for length/lit/eob code */\n\nvar LENEXT = 22;\n/* i: waiting for length extra bits */\n\nvar DIST = 23;\n/* i: waiting for distance code */\n\nvar DISTEXT = 24;\n/* i: waiting for distance extra bits */\n\nvar MATCH = 25;\n/* o: waiting for output space to copy string */\n\nvar LIT = 26;\n/* o: waiting for output space to write literal */\n\nvar CHECK = 27;\n/* i: waiting for 32-bit check value */\n\nvar LENGTH = 28;\n/* i: waiting for 32-bit length (gzip) */\n\nvar DONE = 29;\n/* finished check, done -- remain here until reset */\n\nvar BAD = 30;\n/* got a data error -- remain here until reset */\n\nvar MEM = 31;\n/* got an inflate() memory error -- remain here until reset */\n\nvar SYNC = 32;\n/* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592; //var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\n\nvar DEF_WBITS = MAX_WBITS;\n\nfunction zswap32(q) {\n return (q >>> 24 & 0xff) + (q >>> 8 & 0xff00) + ((q & 0xff00) << 8) + ((q & 0xff) << 24);\n}\n\nfunction InflateState() {\n this.mode = 0;\n /* current inflate mode */\n\n this.last = false;\n /* true if processing last block */\n\n this.wrap = 0;\n /* bit 0 true for zlib, bit 1 true for gzip */\n\n this.havedict = false;\n /* true if dictionary provided */\n\n this.flags = 0;\n /* gzip header method and flags (0 if zlib) */\n\n this.dmax = 0;\n /* zlib header max distance (INFLATE_STRICT) */\n\n this.check = 0;\n /* protected copy of check value */\n\n this.total = 0;\n /* protected copy of output count */\n // TODO: may be {}\n\n this.head = null;\n /* where to save gzip header information */\n\n /* sliding window */\n\n this.wbits = 0;\n /* log base 2 of requested window size */\n\n this.wsize = 0;\n /* window size or zero if not using window */\n\n this.whave = 0;\n /* valid bytes in the window */\n\n this.wnext = 0;\n /* window write index */\n\n this.window = null;\n /* allocated sliding window, if needed */\n\n /* bit accumulator */\n\n this.hold = 0;\n /* input bit accumulator */\n\n this.bits = 0;\n /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n\n this.length = 0;\n /* literal or length of data to copy */\n\n this.offset = 0;\n /* distance back to copy string from */\n\n /* for table and code decoding */\n\n this.extra = 0;\n /* extra bits needed */\n\n /* fixed and dynamic code tables */\n\n this.lencode = null;\n /* starting table for length/literal codes */\n\n this.distcode = null;\n /* starting table for distance codes */\n\n this.lenbits = 0;\n /* index bits for lencode */\n\n this.distbits = 0;\n /* index bits for distcode */\n\n /* dynamic table building */\n\n this.ncode = 0;\n /* number of code length code lengths */\n\n this.nlen = 0;\n /* number of length code lengths */\n\n this.ndist = 0;\n /* number of distance code lengths */\n\n this.have = 0;\n /* number of code lengths in lens[] */\n\n this.next = null;\n /* next available space in codes[] */\n\n this.lens = new utils.Buf16(320);\n /* temporary storage for code lengths */\n\n this.work = new utils.Buf16(288);\n /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n\n this.lendyn = null;\n /* dynamic table for length/literal codes (JS specific) */\n\n this.distdyn = null;\n /* dynamic table for distance codes (JS specific) */\n\n this.sane = 0;\n /* if false, allow invalid distance too far */\n\n this.back = 0;\n /* bits back of last unprocessed length/lit */\n\n this.was = 0;\n /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = '';\n /*Z_NULL*/\n\n if (state.wrap) {\n /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null\n /*Z_NULL*/\n ;\n state.hold = 0;\n state.bits = 0; //state.lencode = state.distcode = state.next = state.codes;\n\n state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n state.sane = 1;\n state.back = -1; //Tracev((stderr, \"inflate: reset\\n\"));\n\n return Z_OK;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n /* get the state */\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n /* extract wrap request from windowBits parameter */\n\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n } else {\n wrap = (windowBits >> 4) + 1;\n\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n /* set number of window bits, free window if different */\n\n\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n /* update state and reset the rest of it */\n\n\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) {\n return Z_STREAM_ERROR;\n } //strm.msg = Z_NULL; /* in case we return an error */\n\n\n state = new InflateState(); //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n\n strm.state = state;\n state.window = null\n /*Z_NULL*/\n ;\n ret = inflateReset2(strm, windowBits);\n\n if (ret !== Z_OK) {\n strm.state = null\n /*Z_NULL*/\n ;\n }\n\n return ret;\n}\n\nfunction inflateInit(strm) {\n return inflateInit2(strm, DEF_WBITS);\n}\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\n\n\nvar virgin = true;\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n lenfix = new utils.Buf32(512);\n distfix = new utils.Buf32(32);\n /* literal/length table */\n\n sym = 0;\n\n while (sym < 144) {\n state.lens[sym++] = 8;\n }\n\n while (sym < 256) {\n state.lens[sym++] = 9;\n }\n\n while (sym < 280) {\n state.lens[sym++] = 7;\n }\n\n while (sym < 288) {\n state.lens[sym++] = 8;\n }\n\n (0, _inftrees[\"default\"])(LENS, state.lens, 0, 288, lenfix, 0, state.work, {\n bits: 9\n });\n /* distance table */\n\n sym = 0;\n\n while (sym < 32) {\n state.lens[sym++] = 5;\n }\n\n (0, _inftrees[\"default\"])(DISTS, state.lens, 0, 32, distfix, 0, state.work, {\n bits: 5\n });\n /* do this just once */\n\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\n\n\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n /* if it hasn't been done already, allocate space for the window */\n\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n state.window = new utils.Buf8(state.wsize);\n }\n /* copy state->wsize or less output bytes into the circular window */\n\n\n if (copy >= state.wsize) {\n utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n } else {\n dist = state.wsize - state.wnext;\n\n if (dist > copy) {\n dist = copy;\n } //zmemcpy(state->window + state->wnext, end - copy, dist);\n\n\n utils.arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n utils.arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n } else {\n state.wnext += dist;\n\n if (state.wnext === state.wsize) {\n state.wnext = 0;\n }\n\n if (state.whave < state.wsize) {\n state.whave += dist;\n }\n }\n }\n\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n\n var next;\n /* next input INDEX */\n\n var put;\n /* next output INDEX */\n\n var have, left;\n /* available input and output */\n\n var hold;\n /* bit buffer */\n\n var bits;\n /* bits in bit buffer */\n\n var _in, _out;\n /* save starting available input and output */\n\n\n var copy;\n /* number of stored or match bytes to copy */\n\n var from;\n /* where to copy match bytes from */\n\n var from_source;\n var here = 0;\n /* current decoding table entry */\n\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n\n var len;\n /* length to copy for repeats, bits to drop */\n\n var ret;\n /* return code */\n\n var hbuf = new utils.Buf8(4);\n /* buffer for gzip header crc calculation */\n\n var opts;\n var n; // temporary var for NEED_BITS\n\n var order =\n /* permutation of code lengths */\n [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n\n if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n\n if (state.mode === TYPE) {\n state.mode = TYPEDO;\n }\n /* skip check */\n //--- LOAD() ---\n\n\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits; //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n } //=== NEEDBITS(16);\n\n\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (state.wrap & 2 && hold === 0x8b1f) {\n /* gzip header */\n state.check = 0\n /*crc32(0L, Z_NULL, 0)*/\n ; //=== CRC2(state.check, hold);\n\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = (0, _crc[\"default\"])(state.check, hbuf, 2, 0); //===//\n //=== INITBITS();\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = FLAGS;\n break;\n }\n\n state.flags = 0;\n /* expect zlib header */\n\n if (state.head) {\n state.head.done = false;\n }\n\n if (!(state.wrap & 1) ||\n /* check if zlib header allowed */\n (((hold & 0xff\n /*BITS(8)*/\n ) << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n\n if ((hold & 0x0f\n /*BITS(4)*/\n ) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n } //--- DROPBITS(4) ---//\n\n\n hold >>>= 4;\n bits -= 4; //---//\n\n len = (hold & 0x0f\n /*BITS(4)*/\n ) + 8;\n\n if (state.wbits === 0) {\n state.wbits = len;\n } else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n state.dmax = 1 << len; //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n\n strm.adler = state.check = 1\n /*adler32(0L, Z_NULL, 0)*/\n ;\n state.mode = hold & 0x200 ? DICTID : TYPE; //=== INITBITS();\n\n hold = 0;\n bits = 0; //===//\n\n break;\n\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.flags = hold;\n\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n\n if (state.head) {\n state.head.text = hold >> 8 & 1;\n }\n\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = (0, _crc[\"default\"])(state.check, hbuf, 2, 0); //===//\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = TIME;\n\n /* falls through */\n\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (state.head) {\n state.head.time = hold;\n }\n\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n hbuf[2] = hold >>> 16 & 0xff;\n hbuf[3] = hold >>> 24 & 0xff;\n state.check = (0, _crc[\"default\"])(state.check, hbuf, 4, 0); //===\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = OS;\n\n /* falls through */\n\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (state.head) {\n state.head.xflags = hold & 0xff;\n state.head.os = hold >> 8;\n }\n\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = (0, _crc[\"default\"])(state.check, hbuf, 2, 0); //===//\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = EXLEN;\n\n /* falls through */\n\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.length = hold;\n\n if (state.head) {\n state.head.extra_len = hold;\n }\n\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = (0, _crc[\"default\"])(state.check, hbuf, 2, 0); //===//\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n } else if (state.head) {\n state.head.extra = null\n /*Z_NULL*/\n ;\n }\n\n state.mode = EXTRA;\n\n /* falls through */\n\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n\n if (copy > have) {\n copy = have;\n }\n\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n\n if (!state.head.extra) {\n // Use untyped array for more conveniend processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n\n utils.arraySet(state.head.extra, input, next, // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len); //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n\n if (state.flags & 0x0200) {\n state.check = (0, _crc[\"default\"])(state.check, input, copy, next);\n }\n\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n\n if (state.length) {\n break inf_leave;\n }\n }\n\n state.length = 0;\n state.mode = NAME;\n\n /* falls through */\n\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) {\n break inf_leave;\n }\n\n copy = 0;\n\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n\n if (state.head && len && state.length < 65536\n /*state.head.name_max*/\n ) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = (0, _crc[\"default\"])(state.check, input, copy, next);\n }\n\n have -= copy;\n next += copy;\n\n if (len) {\n break inf_leave;\n }\n } else if (state.head) {\n state.head.name = null;\n }\n\n state.length = 0;\n state.mode = COMMENT;\n\n /* falls through */\n\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) {\n break inf_leave;\n }\n\n copy = 0;\n\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n\n if (state.head && len && state.length < 65536\n /*state.head.comm_max*/\n ) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = (0, _crc[\"default\"])(state.check, input, copy, next);\n }\n\n have -= copy;\n next += copy;\n\n if (len) {\n break inf_leave;\n }\n } else if (state.head) {\n state.head.comment = null;\n }\n\n state.mode = HCRC;\n\n /* falls through */\n\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n }\n\n if (state.head) {\n state.head.hcrc = state.flags >> 9 & 1;\n state.head.done = true;\n }\n\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n strm.adler = state.check = zswap32(hold); //=== INITBITS();\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = DICT;\n\n /* falls through */\n\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits; //---\n\n return Z_NEED_DICT;\n }\n\n strm.adler = state.check = 1\n /*adler32(0L, Z_NULL, 0)*/\n ;\n state.mode = TYPE;\n\n /* falls through */\n\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) {\n break inf_leave;\n }\n\n /* falls through */\n\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7; //---//\n\n state.mode = CHECK;\n break;\n } //=== NEEDBITS(3); */\n\n\n while (bits < 3) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.last = hold & 0x01\n /*BITS(1)*/\n ; //--- DROPBITS(1) ---//\n\n hold >>>= 1;\n bits -= 1; //---//\n\n switch (hold & 0x03\n /*BITS(2)*/\n ) {\n case 0:\n /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n\n case 1:\n /* fixed block */\n fixedtables(state); //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n\n state.mode = LEN_;\n /* decode codes */\n\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2; //---//\n\n break inf_leave;\n }\n\n break;\n\n case 2:\n /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n } //--- DROPBITS(2) ---//\n\n\n hold >>>= 2;\n bits -= 2; //---//\n\n break;\n\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7; //---//\n //=== NEEDBITS(32); */\n\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if ((hold & 0xffff) !== (hold >>> 16 ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n\n state.length = hold & 0xffff; //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = COPY_;\n\n if (flush === Z_TREES) {\n break inf_leave;\n }\n\n /* falls through */\n\n case COPY_:\n state.mode = COPY;\n\n /* falls through */\n\n case COPY:\n copy = state.length;\n\n if (copy) {\n if (copy > have) {\n copy = have;\n }\n\n if (copy > left) {\n copy = left;\n }\n\n if (copy === 0) {\n break inf_leave;\n } //--- zmemcpy(put, next, copy); ---\n\n\n utils.arraySet(output, input, next, copy, put); //---//\n\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n } //Tracev((stderr, \"inflate: stored end\\n\"));\n\n\n state.mode = TYPE;\n break;\n\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.nlen = (hold & 0x1f\n /*BITS(5)*/\n ) + 257; //--- DROPBITS(5) ---//\n\n hold >>>= 5;\n bits -= 5; //---//\n\n state.ndist = (hold & 0x1f\n /*BITS(5)*/\n ) + 1; //--- DROPBITS(5) ---//\n\n hold >>>= 5;\n bits -= 5; //---//\n\n state.ncode = (hold & 0x0f\n /*BITS(4)*/\n ) + 4; //--- DROPBITS(4) ---//\n\n hold >>>= 4;\n bits -= 4; //---//\n //#ifndef PKZIP_BUG_WORKAROUND\n\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n } //#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n\n\n state.have = 0;\n state.mode = LENLENS;\n\n /* falls through */\n\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.lens[order[state.have++]] = hold & 0x07; //BITS(3);\n //--- DROPBITS(3) ---//\n\n hold >>>= 3;\n bits -= 3; //---//\n }\n\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n } // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n\n\n state.lencode = state.lendyn;\n state.lenbits = 7;\n opts = {\n bits: state.lenbits\n };\n ret = (0, _inftrees[\"default\"])(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n } //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n\n\n state.have = 0;\n state.mode = CODELENS;\n\n /* falls through */\n\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & (1 << state.lenbits) - 1];\n /*BITS(state.lenbits)*/\n\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n }\n\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n state.lens[state.have++] = here_val;\n } else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03); //BITS(2);\n //--- DROPBITS(2) ---//\n\n hold >>>= 2;\n bits -= 2; //---//\n } else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n len = 0;\n copy = 3 + (hold & 0x07); //BITS(3);\n //--- DROPBITS(3) ---//\n\n hold >>>= 3;\n bits -= 3; //---//\n } else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n len = 0;\n copy = 11 + (hold & 0x7f); //BITS(7);\n //--- DROPBITS(7) ---//\n\n hold >>>= 7;\n bits -= 7; //---//\n }\n\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n /* handle error breaks in while */\n\n\n if (state.mode === BAD) {\n break;\n }\n /* check for end-of-block code (better have one) */\n\n\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n\n\n state.lenbits = 9;\n opts = {\n bits: state.lenbits\n };\n ret = (0, _inftrees[\"default\"])(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n\n state.lenbits = opts.bits; // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6; //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n\n state.distcode = state.distdyn;\n opts = {\n bits: state.distbits\n };\n ret = (0, _inftrees[\"default\"])(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n\n state.distbits = opts.bits; // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n } //Tracev((stderr, 'inflate: codes ok\\n'));\n\n\n state.mode = LEN_;\n\n if (flush === Z_TREES) {\n break inf_leave;\n }\n\n /* falls through */\n\n case LEN_:\n state.mode = LEN;\n\n /* falls through */\n\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits; //---\n\n (0, _inffast[\"default\"])(strm, _out); //--- LOAD() ---\n\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits; //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n\n break;\n }\n\n state.back = 0;\n\n for (;;) {\n here = state.lencode[hold & (1 << state.lenbits) - 1];\n /*BITS(state.lenbits)*/\n\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n }\n\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n\n for (;;) {\n here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1\n /*BITS(last.bits + last.op)*/\n ) >> last_bits)];\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (last_bits + here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n } //--- DROPBITS(last.bits) ---//\n\n\n hold >>>= last_bits;\n bits -= last_bits; //---//\n\n state.back += last_bits;\n } //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n state.back += here_bits;\n state.length = here_val;\n\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n\n state.extra = here_op & 15;\n state.mode = LENEXT;\n\n /* falls through */\n\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.length += hold & (1 << state.extra) - 1\n /*BITS(state.extra)*/\n ; //--- DROPBITS(state.extra) ---//\n\n hold >>>= state.extra;\n bits -= state.extra; //---//\n\n state.back += state.extra;\n } //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n\n\n state.was = state.length;\n state.mode = DIST;\n\n /* falls through */\n\n case DIST:\n for (;;) {\n here = state.distcode[hold & (1 << state.distbits) - 1];\n /*BITS(state.distbits)*/\n\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n }\n\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n\n for (;;) {\n here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1\n /*BITS(last.bits + last.op)*/\n ) >> last_bits)];\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (last_bits + here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n } //--- DROPBITS(last.bits) ---//\n\n\n hold >>>= last_bits;\n bits -= last_bits; //---//\n\n state.back += last_bits;\n } //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n state.back += here_bits;\n\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n\n state.offset = here_val;\n state.extra = here_op & 15;\n state.mode = DISTEXT;\n\n /* falls through */\n\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.offset += hold & (1 << state.extra) - 1\n /*BITS(state.extra)*/\n ; //--- DROPBITS(state.extra) ---//\n\n hold >>>= state.extra;\n bits -= state.extra; //---//\n\n state.back += state.extra;\n } //#ifdef INFLATE_STRICT\n\n\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n } //#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n\n\n state.mode = MATCH;\n\n /* falls through */\n\n case MATCH:\n if (left === 0) {\n break inf_leave;\n }\n\n copy = _out - left;\n\n if (state.offset > copy) {\n /* copy from window */\n copy = state.offset - copy;\n\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n } // (!) This block is disabled in zlib defailts,\n // don't enable it for binary compatibility\n //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n // Trace((stderr, \"inflate.c too far\\n\"));\n // copy -= state.whave;\n // if (copy > state.length) { copy = state.length; }\n // if (copy > left) { copy = left; }\n // left -= copy;\n // state.length -= copy;\n // do {\n // output[put++] = 0;\n // } while (--copy);\n // if (state.length === 0) { state.mode = LEN; }\n // break;\n //#endif\n\n }\n\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n } else {\n from = state.wnext - copy;\n }\n\n if (copy > state.length) {\n copy = state.length;\n }\n\n from_source = state.window;\n } else {\n /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n\n if (copy > left) {\n copy = left;\n }\n\n left -= copy;\n state.length -= copy;\n\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n\n if (state.length === 0) {\n state.mode = LEN;\n }\n\n break;\n\n case LIT:\n if (left === 0) {\n break inf_leave;\n }\n\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--; // Use '|' insdead of '+' to make sure that result is signed\n\n hold |= input[next++] << bits;\n bits += 8;\n } //===//\n\n\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n state.flags ? (0, _crc[\"default\"])(state.check, output, _out, put - _out) : (0, _adler[\"default\"])(state.check, output, _out, put - _out);\n }\n\n _out = left; // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n\n state.mode = LENGTH;\n\n /* falls through */\n\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n\n state.mode = DONE;\n\n /* falls through */\n\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n\n case MEM:\n return Z_MEM_ERROR;\n\n case SYNC:\n /* falls through */\n\n default:\n return Z_STREAM_ERROR;\n }\n } // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n //--- RESTORE() ---\n\n\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits; //---\n\n if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH)) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n\n if (state.wrap && _out) {\n strm.adler = state.check =\n /*UPDATE(state.check, strm.next_out - _out, _out);*/\n state.flags ? (0, _crc[\"default\"])(state.check, output, _out, strm.next_out - _out) : (0, _adler[\"default\"])(state.check, output, _out, strm.next_out - _out);\n }\n\n strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n\n if ((_in === 0 && _out === 0 || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n\n return ret;\n}\n\nfunction inflateEnd(strm) {\n if (!strm || !strm.state\n /*|| strm->zfree == (free_func)0*/\n ) {\n return Z_STREAM_ERROR;\n }\n\n var state = strm.state;\n\n if (state.window) {\n state.window = null;\n }\n\n strm.state = null;\n return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n /* check state */\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n\n if ((state.wrap & 2) === 0) {\n return Z_STREAM_ERROR;\n }\n /* save header structure */\n\n\n state.head = head;\n head.done = false;\n return Z_OK;\n}\n\nfunction inflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n var state;\n var dictid;\n var ret;\n /* check state */\n\n if (!strm\n /* == Z_NULL */\n || !strm.state\n /* == Z_NULL */\n ) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n /* check for correct dictionary identifier */\n\n\n if (state.mode === DICT) {\n dictid = 1;\n /* adler32(0, null, 0)*/\n\n /* dictid = adler32(dictid, dictionary, dictLength); */\n\n dictid = (0, _adler[\"default\"])(dictid, dictionary, dictLength, 0);\n\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n\n\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n\n state.havedict = 1; // Tracev((stderr, \"inflate: dictionary set\\n\"));\n\n return Z_OK;\n}\n\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n\nexports.inflateInfo = inflateInfo;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = inflate_table;\n\nvar utils = _interopRequireWildcard(require(\"../utils/common.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592; //var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\nvar lbase = [\n/* Length codes 257..285 base */\n3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0];\nvar lext = [\n/* Length codes 257..285 extra */\n16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78];\nvar dbase = [\n/* Distance codes 0..29 base */\n1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0];\nvar dext = [\n/* Distance codes 0..29 extra */\n16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64];\n\nfunction inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) {\n var bits = opts.bits; //here = opts.here; /* table entry for duplication */\n\n var len = 0;\n /* a code's length in bits */\n\n var sym = 0;\n /* index of code symbols */\n\n var min = 0,\n max = 0;\n /* minimum and maximum code lengths */\n\n var root = 0;\n /* number of index bits for root table */\n\n var curr = 0;\n /* number of index bits for current table */\n\n var drop = 0;\n /* code bits to drop for sub-table */\n\n var left = 0;\n /* number of prefix codes available */\n\n var used = 0;\n /* code entries in table used */\n\n var huff = 0;\n /* Huffman code */\n\n var incr;\n /* for incrementing code, index */\n\n var fill;\n /* index for replicating entries */\n\n var low;\n /* low bits for current root entry */\n\n var mask;\n /* mask for low root bits */\n\n var next;\n /* next available space in table */\n\n var base = null;\n /* base value table to use */\n\n var base_index = 0; // var shoextra; /* extra bits table to use */\n\n var end;\n /* use base and extra for symbol > end */\n\n var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n\n var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n\n var extra = null;\n var extra_index = 0;\n var here_bits, here_op, here_val;\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n /* bound code lengths, force root to be within code lengths */\n\n\n root = bits;\n\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) {\n break;\n }\n }\n\n if (root > max) {\n root = max;\n }\n\n if (max === 0) {\n /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = 1 << 24 | 64 << 16 | 0; //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n\n table[table_index++] = 1 << 24 | 64 << 16 | 0;\n opts.bits = 1;\n return 0;\n /* no symbols, but wait for decoding to report error */\n }\n\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) {\n break;\n }\n }\n\n if (root < min) {\n root = min;\n }\n /* check for an over-subscribed or incomplete set of lengths */\n\n\n left = 1;\n\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n\n if (left < 0) {\n return -1;\n }\n /* over-subscribed */\n\n }\n\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1;\n /* incomplete set */\n }\n /* generate offsets into symbol table for each length for sorting */\n\n\n offs[1] = 0;\n\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n /* sort symbols by length, by symbol order within each length */\n\n\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n\n\n if (type === CODES) {\n base = extra = work;\n /* dummy value--not used */\n\n end = 19;\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n } else {\n /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n /* initialize opts for loop */\n\n\n huff = 0;\n /* starting code */\n\n sym = 0;\n /* starting code symbol */\n\n len = min;\n /* starting code length */\n\n next = table_index;\n /* current table to fill in */\n\n curr = root;\n /* current table index bits */\n\n drop = 0;\n /* current bits to drop from code for index */\n\n low = -1;\n /* trigger new sub-table when len > root */\n\n used = 1 << root;\n /* use root table entries */\n\n mask = used - 1;\n /* mask for comparing low */\n\n /* check available table space */\n\n if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) {\n return 1;\n }\n /* process all codes and make table entries */\n\n\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n } else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n } else {\n here_op = 32 + 64;\n /* end of block */\n\n here_val = 0;\n }\n /* replicate for those indices with low len bits equal to huff */\n\n\n incr = 1 << len - drop;\n fill = 1 << curr;\n min = fill;\n /* save offset to next table */\n\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0;\n } while (fill !== 0);\n /* backwards increment the len-bit code huff */\n\n\n incr = 1 << len - 1;\n\n while (huff & incr) {\n incr >>= 1;\n }\n\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n /* go to next symbol, update count, len */\n\n\n sym++;\n\n if (--count[len] === 0) {\n if (len === max) {\n break;\n }\n\n len = lens[lens_index + work[sym]];\n }\n /* create new sub-table if needed */\n\n\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n /* increment past last table */\n\n\n next += min;\n /* here min is 1 << curr */\n\n /* determine length of next table */\n\n curr = len - drop;\n left = 1 << curr;\n\n while (curr + drop < max) {\n left -= count[curr + drop];\n\n if (left <= 0) {\n break;\n }\n\n curr++;\n left <<= 1;\n }\n /* check for enough space */\n\n\n used += 1 << curr;\n\n if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) {\n return 1;\n }\n /* point entry in root table to sub-table */\n\n\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n\n table[low] = root << 24 | curr << 16 | next - table_index | 0;\n }\n }\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n\n\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = len - drop << 24 | 64 << 16 | 0;\n }\n /* set return parameters */\n //opts.table_index += used;\n\n\n opts.bits = root;\n return 0;\n}\n\n;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _default = {\n 2: 'need dictionary',\n\n /* Z_NEED_DICT 2 */\n 1: 'stream end',\n\n /* Z_STREAM_END 1 */\n 0: '',\n\n /* Z_OK 0 */\n '-1': 'file error',\n\n /* Z_ERRNO (-1) */\n '-2': 'stream error',\n\n /* Z_STREAM_ERROR (-2) */\n '-3': 'data error',\n\n /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory',\n\n /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error',\n\n /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version'\n /* Z_VERSION_ERROR (-6) */\n\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports._tr_align = _tr_align;\nexports._tr_flush_block = _tr_flush_block;\nexports._tr_init = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_tally = _tr_tally;\n\nvar utils = _interopRequireWildcard(require(\"../utils/common.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/* Public constants ==========================================================*/\n\n/* ===========================================================================*/\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED = 4; //var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n\nvar Z_BINARY = 0;\nvar Z_TEXT = 1; //var Z_ASCII = 1; // = Z_TEXT\n\nvar Z_UNKNOWN = 2;\n/*============================================================================*/\n\nfunction zero(buf) {\n var len = buf.length;\n\n while (--len >= 0) {\n buf[len] = 0;\n }\n} // From zutil.h\n\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n// From deflate.h\n\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\n\nvar extra_lbits =\n/* extra bits for each length code */\n[0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0];\nvar extra_dbits =\n/* extra bits for each distance code */\n[0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13];\nvar extra_blbits =\n/* extra bits for each bit length code */\n[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7];\nvar bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512;\n/* see definition of array dist_code below */\n// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1\n\nvar static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\n\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\n\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n this.static_tree = static_tree;\n /* static tree or NULL */\n\n this.extra_bits = extra_bits;\n /* extra bits for each code or NULL */\n\n this.extra_base = extra_base;\n /* base index for extra_bits */\n\n this.elems = elems;\n /* max number of elements in the tree */\n\n this.max_length = max_length;\n /* max bit length for the codes */\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n\n this.has_stree = static_tree && static_tree.length;\n}\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree;\n /* the dynamic tree */\n\n this.max_code = 0;\n /* largest code with non zero frequency */\n\n this.stat_desc = stat_desc;\n /* the corresponding static tree */\n}\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\n\n\nfunction put_short(s, w) {\n // put_byte(s, (uch)((w) & 0xff));\n // put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = w & 0xff;\n s.pending_buf[s.pending++] = w >>> 8 & 0xff;\n}\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\n\n\nfunction send_bits(s, value, length) {\n if (s.bi_valid > Buf_size - length) {\n s.bi_buf |= value << s.bi_valid & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> Buf_size - s.bi_valid;\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= value << s.bi_valid & 0xffff;\n s.bi_valid += length;\n }\n}\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2]\n /*.Code*/\n , tree[c * 2 + 1]\n /*.Len*/\n );\n}\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\n\n\nfunction bi_reverse(code, len) {\n var res = 0;\n\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n\n return res >>> 1;\n}\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\n\n\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\n\n\nfunction gen_bitlen(s, desc) // deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h;\n /* heap index */\n\n var n, m;\n /* iterate over the tree elements */\n\n var bits;\n /* bit length */\n\n var xbits;\n /* extra bits */\n\n var f;\n /* frequency */\n\n var overflow = 0;\n /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n\n\n tree[s.heap[s.heap_max] * 2 + 1]\n /*.Len*/\n = 0;\n /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]\n /*.Dad*/\n * 2 + 1]\n /*.Len*/\n + 1;\n\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n\n tree[n * 2 + 1]\n /*.Len*/\n = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) {\n continue;\n }\n /* not a leaf node */\n\n\n s.bl_count[bits]++;\n xbits = 0;\n\n if (n >= base) {\n xbits = extra[n - base];\n }\n\n f = tree[n * 2]\n /*.Freq*/\n ;\n s.opt_len += f * (bits + xbits);\n\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]\n /*.Len*/\n + xbits);\n }\n }\n\n if (overflow === 0) {\n return;\n } // Trace((stderr,\"\\nbit length overflow\\n\"));\n\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n\n\n do {\n bits = max_length - 1;\n\n while (s.bl_count[bits] === 0) {\n bits--;\n }\n\n s.bl_count[bits]--;\n /* move one leaf down the tree */\n\n s.bl_count[bits + 1] += 2;\n /* move one overflow item as its brother */\n\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n\n overflow -= 2;\n } while (overflow > 0);\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n\n\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n\n while (n !== 0) {\n m = s.heap[--h];\n\n if (m > max_code) {\n continue;\n }\n\n if (tree[m * 2 + 1]\n /*.Len*/\n !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]\n /*.Len*/\n ) * tree[m * 2]\n /*.Freq*/\n ;\n tree[m * 2 + 1]\n /*.Len*/\n = bits;\n }\n\n n--;\n }\n }\n}\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\n\n\nfunction gen_codes(tree, max_code, bl_count) // ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS + 1);\n /* next code value for each bit length */\n\n var code = 0;\n /* running code value */\n\n var bits;\n /* bit index */\n\n var n;\n /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = code + bl_count[bits - 1] << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n\n length = 0;\n\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n\n for (n = 0; n < 1 << extra_lbits[code]; n++) {\n _length_code[length++] = code;\n }\n } //Assert (length == 256, \"tr_static_init: length != 256\");\n\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n\n\n _length_code[length - 1] = code;\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n\n dist = 0;\n\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n\n for (n = 0; n < 1 << extra_dbits[code]; n++) {\n _dist_code[dist++] = code;\n }\n } //Assert (dist == 256, \"tr_static_init: dist != 256\");\n\n\n dist >>= 7;\n /* from now on, all distances are divided by 128 */\n\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n\n for (n = 0; n < 1 << extra_dbits[code] - 7; n++) {\n _dist_code[256 + dist++] = code;\n }\n } //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n\n while (n <= 143) {\n static_ltree[n * 2 + 1]\n /*.Len*/\n = 8;\n n++;\n bl_count[8]++;\n }\n\n while (n <= 255) {\n static_ltree[n * 2 + 1]\n /*.Len*/\n = 9;\n n++;\n bl_count[9]++;\n }\n\n while (n <= 279) {\n static_ltree[n * 2 + 1]\n /*.Len*/\n = 7;\n n++;\n bl_count[7]++;\n }\n\n while (n <= 287) {\n static_ltree[n * 2 + 1]\n /*.Len*/\n = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n\n\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n /* The static distance tree is trivial: */\n\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]\n /*.Len*/\n = 5;\n static_dtree[n * 2]\n /*.Code*/\n = bi_reverse(n, 5);\n } // Now data ready and we can init static trees\n\n\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); //static_init_done = true;\n}\n/* ===========================================================================\n * Initialize a new block.\n */\n\n\nfunction init_block(s) {\n var n;\n /* iterates over tree elements */\n\n /* Initialize the trees. */\n\n for (n = 0; n < L_CODES; n++) {\n s.dyn_ltree[n * 2]\n /*.Freq*/\n = 0;\n }\n\n for (n = 0; n < D_CODES; n++) {\n s.dyn_dtree[n * 2]\n /*.Freq*/\n = 0;\n }\n\n for (n = 0; n < BL_CODES; n++) {\n s.bl_tree[n * 2]\n /*.Freq*/\n = 0;\n }\n\n s.dyn_ltree[END_BLOCK * 2]\n /*.Freq*/\n = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\n\n\nfunction bi_windup(s) {\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\n\n\nfunction copy_block(s, buf, len, header) //DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s);\n /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n } // while (len--) {\n // put_byte(s, *buf++);\n // }\n\n\n utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\n\n\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n\n var _m2 = m * 2;\n\n return tree[_n2]\n /*.Freq*/\n < tree[_m2]\n /*.Freq*/\n || tree[_n2]\n /*.Freq*/\n === tree[_m2]\n /*.Freq*/\n && depth[n] <= depth[m];\n}\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\n\n\nfunction pqdownheap(s, tree, k) // deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1;\n /* left son of k */\n\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n\n\n if (smaller(tree, v, s.heap[j], s.depth)) {\n break;\n }\n /* Exchange v with the smallest son */\n\n\n s.heap[k] = s.heap[j];\n k = j;\n /* And continue down the tree, setting j to the left son of k */\n\n j <<= 1;\n }\n\n s.heap[k] = v;\n} // inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\n\n\nfunction compress_block(s, ltree, dtree) // deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist;\n /* distance of matched string */\n\n var lc;\n /* match length or unmatched char (if dist == 0) */\n\n var lx = 0;\n /* running index in l_buf */\n\n var code;\n /* the code to send */\n\n var extra;\n /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1];\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree);\n /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree);\n /* send the length code */\n\n extra = extra_lbits[code];\n\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra);\n /* send the extra length bits */\n }\n\n dist--;\n /* dist is now the match distance - 1 */\n\n code = d_code(dist); //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree);\n /* send the distance code */\n\n extra = extra_dbits[code];\n\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra);\n /* send the extra distance bits */\n }\n }\n /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\n\n\nfunction build_tree(s, desc) // deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m;\n /* iterate over heap elements */\n\n var max_code = -1;\n /* largest code with non zero frequency */\n\n var node;\n /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]\n /*.Freq*/\n !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n } else {\n tree[n * 2 + 1]\n /*.Len*/\n = 0;\n }\n }\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n\n\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0;\n tree[node * 2]\n /*.Freq*/\n = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]\n /*.Len*/\n ;\n }\n /* node is 0 or 1 so it does not have extra bits */\n\n }\n\n desc.max_code = max_code;\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n\n for (n = s.heap_len >> 1\n /*int /2*/\n ; n >= 1; n--) {\n pqdownheap(s, tree, n);\n }\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n\n\n node = elems;\n /* next internal node of the tree */\n\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n\n /*** pqremove ***/\n n = s.heap[1\n /*SMALLEST*/\n ];\n s.heap[1\n /*SMALLEST*/\n ] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1\n /*SMALLEST*/\n );\n /***/\n\n m = s.heap[1\n /*SMALLEST*/\n ];\n /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n;\n /* keep the nodes sorted by frequency */\n\n s.heap[--s.heap_max] = m;\n /* Create a new node father of n and m */\n\n tree[node * 2]\n /*.Freq*/\n = tree[n * 2]\n /*.Freq*/\n + tree[m * 2]\n /*.Freq*/\n ;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]\n /*.Dad*/\n = tree[m * 2 + 1]\n /*.Dad*/\n = node;\n /* and insert the new node in the heap */\n\n s.heap[1\n /*SMALLEST*/\n ] = node++;\n pqdownheap(s, tree, 1\n /*SMALLEST*/\n );\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1\n /*SMALLEST*/\n ];\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n\n gen_bitlen(s, desc);\n /* The field len is now set, we can generate the bit codes */\n\n gen_codes(tree, max_code, s.bl_count);\n}\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\n\n\nfunction scan_tree(s, tree, max_code) // deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n;\n /* iterates over all tree elements */\n\n var prevlen = -1;\n /* last emitted length */\n\n var curlen;\n /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]\n /*.Len*/\n ;\n /* length of next code */\n\n var count = 0;\n /* repeat count of the current code */\n\n var max_count = 7;\n /* max repeat count */\n\n var min_count = 4;\n /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n tree[(max_code + 1) * 2 + 1]\n /*.Len*/\n = 0xffff;\n /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]\n /*.Len*/\n ;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]\n /*.Freq*/\n += count;\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n s.bl_tree[curlen * 2] /*.Freq*/++;\n }\n\n s.bl_tree[REP_3_6 * 2] /*.Freq*/++;\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2] /*.Freq*/++;\n } else {\n s.bl_tree[REPZ_11_138 * 2] /*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\n\n\nfunction send_tree(s, tree, max_code) // deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n;\n /* iterates over all tree elements */\n\n var prevlen = -1;\n /* last emitted length */\n\n var curlen;\n /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]\n /*.Len*/\n ;\n /* length of next code */\n\n var count = 0;\n /* repeat count of the current code */\n\n var max_count = 7;\n /* max repeat count */\n\n var min_count = 4;\n /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */\n\n /* guard already set */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]\n /*.Len*/\n ;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n } else if (count < min_count) {\n do {\n send_code(s, curlen, s.bl_tree);\n } while (--count !== 0);\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n } //Assert(count >= 3 && count <= 6, \" 3_6?\");\n\n\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\n\n\nfunction build_bl_tree(s) {\n var max_blindex;\n /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n /* Build the bit length tree: */\n\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]\n /*.Len*/\n !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n\n\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\n\n\nfunction send_all_trees(s, lcodes, dcodes, blcodes) // deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank;\n /* index in bl_order */\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n\n send_bits(s, lcodes - 257, 5);\n /* not +255 as stated in appnote.txt */\n\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4);\n /* not -3 as stated in appnote.txt */\n\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]\n /*.Len*/\n , 3);\n } //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n\n send_tree(s, s.dyn_ltree, lcodes - 1);\n /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1);\n /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\n\n\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n /* Check for non-textual (\"black-listed\") bytes. */\n\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if (black_mask & 1 && s.dyn_ltree[n * 2]\n /*.Freq*/\n !== 0) {\n return Z_BINARY;\n }\n }\n /* Check for textual (\"white-listed\") bytes. */\n\n\n if (s.dyn_ltree[9 * 2]\n /*.Freq*/\n !== 0 || s.dyn_ltree[10 * 2]\n /*.Freq*/\n !== 0 || s.dyn_ltree[13 * 2]\n /*.Freq*/\n !== 0) {\n return Z_TEXT;\n }\n\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]\n /*.Freq*/\n !== 0) {\n return Z_TEXT;\n }\n }\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n\n\n return Z_BINARY;\n}\n\nvar static_init_done = false;\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\n\nfunction _tr_init(s) {\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n s.bi_buf = 0;\n s.bi_valid = 0;\n /* Initialize the first block of the first file: */\n\n init_block(s);\n}\n/* ===========================================================================\n * Send a stored block\n */\n\n\nfunction _tr_stored_block(s, buf, stored_len, last) //DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);\n /* send block type */\n\n copy_block(s, buf, stored_len, true);\n /* with header */\n}\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\n\n\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\n\n\nfunction _tr_flush_block(s, buf, stored_len, last) //DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb;\n /* opt_len and static_len in bytes */\n\n var max_blindex = 0;\n /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n\n if (s.level > 0) {\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n /* Construct the literal and distance trees */\n\n\n build_tree(s, s.l_desc); // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc); // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n\n max_blindex = build_bl_tree(s);\n /* Determine the best encoding. Compute the block lengths in bytes. */\n\n opt_lenb = s.opt_len + 3 + 7 >>> 3;\n static_lenb = s.static_len + 3 + 7 >>> 3; // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) {\n opt_lenb = static_lenb;\n }\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5;\n /* force a stored block */\n }\n\n if (stored_len + 4 <= opt_lenb && buf !== -1) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n } // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n\n\n init_block(s);\n\n if (last) {\n bi_windup(s);\n } // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n\n}\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\n\n\nfunction _tr_tally(s, dist, lc) // deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2] /*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n\n dist--;\n /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2] /*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2] /*.Freq*/++;\n } // (!) This block is disabled in zlib defailts,\n // don't enable it for binary compatibility\n //#ifdef TRUNCATE_BLOCK\n // /* Try to guess if it is profitable to stop the current block here */\n // if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n // /* Compute an upper bound for the compressed length */\n // out_length = s.last_lit*8;\n // in_length = s.strstart - s.block_start;\n //\n // for (dcode = 0; dcode < D_CODES; dcode++) {\n // out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n // }\n // out_length >>>= 3;\n // //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n // // s->last_lit, in_length, out_length,\n // // 100L - out_length*100L/in_length));\n // if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n // return true;\n // }\n // }\n //#endif\n\n\n return s.last_lit === s.lit_bufsize - 1;\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = ZStream;\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n\n this.next_in = 0;\n /* number of bytes available at input */\n\n this.avail_in = 0;\n /* total number of input bytes read so far */\n\n this.total_in = 0;\n /* next output byte should be put there */\n\n this.output = null; // JS specific, because we have no pointers\n\n this.next_out = 0;\n /* remaining free space at output */\n\n this.avail_out = 0;\n /* total number of bytes output so far */\n\n this.total_out = 0;\n /* last error message, NULL if no error */\n\n this.msg = ''\n /*Z_NULL*/\n ;\n /* not visible by applications */\n\n this.state = null;\n /* best guess about the data type: binary or text */\n\n this.data_type = 2\n /*Z_UNKNOWN*/\n ;\n /* adler32 value of the uncompressed data */\n\n this.adler = 0;\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar Log = _interopRequireWildcard(require(\"./util/logging.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// this has performance issues in some versions Chromium, and\n// doesn't gain a tremendous amount of performance increase in Firefox\n// at the moment. It may be valuable to turn it on in the future.\nvar MAX_RQ_GROW_SIZE = 40 * 1024 * 1024; // 40 MiB\n// Constants pulled from RTCDataChannelState enum\n// https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel/readyState#RTCDataChannelState_enum\n\nvar DataChannel = {\n CONNECTING: \"connecting\",\n OPEN: \"open\",\n CLOSING: \"closing\",\n CLOSED: \"closed\"\n};\nvar ReadyStates = {\n CONNECTING: [WebSocket.CONNECTING, DataChannel.CONNECTING],\n OPEN: [WebSocket.OPEN, DataChannel.OPEN],\n CLOSING: [WebSocket.CLOSING, DataChannel.CLOSING],\n CLOSED: [WebSocket.CLOSED, DataChannel.CLOSED]\n}; // Properties a raw channel must have, WebSocket and RTCDataChannel are two examples\n\nvar rawChannelProps = [\"send\", \"close\", \"binaryType\", \"onerror\", \"onmessage\", \"onopen\", \"protocol\", \"readyState\"];\n\nvar Websock = /*#__PURE__*/function () {\n function Websock() {\n _classCallCheck(this, Websock);\n\n this._websocket = null; // WebSocket or RTCDataChannel object\n\n this._rQi = 0; // Receive queue index\n\n this._rQlen = 0; // Next write position in the receive queue\n\n this._rQbufferSize = 1024 * 1024 * 4; // Receive queue buffer size (4 MiB)\n // called in init: this._rQ = new Uint8Array(this._rQbufferSize);\n\n this._rQ = null; // Receive queue\n\n this._sQbufferSize = 1024 * 10; // 10 KiB\n // called in init: this._sQ = new Uint8Array(this._sQbufferSize);\n\n this._sQlen = 0;\n this._sQ = null; // Send queue\n\n this._eventHandlers = {\n message: function message() {},\n open: function open() {},\n close: function close() {},\n error: function error() {}\n };\n } // Getters and Setters\n\n\n _createClass(Websock, [{\n key: \"readyState\",\n get: function get() {\n var subState;\n\n if (this._websocket === null) {\n return \"unused\";\n }\n\n subState = this._websocket.readyState;\n\n if (ReadyStates.CONNECTING.includes(subState)) {\n return \"connecting\";\n } else if (ReadyStates.OPEN.includes(subState)) {\n return \"open\";\n } else if (ReadyStates.CLOSING.includes(subState)) {\n return \"closing\";\n } else if (ReadyStates.CLOSED.includes(subState)) {\n return \"closed\";\n }\n\n return \"unknown\";\n }\n }, {\n key: \"sQ\",\n get: function get() {\n return this._sQ;\n }\n }, {\n key: \"rQ\",\n get: function get() {\n return this._rQ;\n }\n }, {\n key: \"rQi\",\n get: function get() {\n return this._rQi;\n },\n set: function set(val) {\n this._rQi = val;\n } // Receive Queue\n\n }, {\n key: \"rQlen\",\n get: function get() {\n return this._rQlen - this._rQi;\n }\n }, {\n key: \"rQpeek8\",\n value: function rQpeek8() {\n return this._rQ[this._rQi];\n }\n }, {\n key: \"rQskipBytes\",\n value: function rQskipBytes(bytes) {\n this._rQi += bytes;\n }\n }, {\n key: \"rQshift8\",\n value: function rQshift8() {\n return this._rQshift(1);\n }\n }, {\n key: \"rQshift16\",\n value: function rQshift16() {\n return this._rQshift(2);\n }\n }, {\n key: \"rQshift32\",\n value: function rQshift32() {\n return this._rQshift(4);\n } // TODO(directxman12): test performance with these vs a DataView\n\n }, {\n key: \"_rQshift\",\n value: function _rQshift(bytes) {\n var res = 0;\n\n for (var _byte = bytes - 1; _byte >= 0; _byte--) {\n res += this._rQ[this._rQi++] << _byte * 8;\n }\n\n return res;\n }\n }, {\n key: \"rQshiftStr\",\n value: function rQshiftStr(len) {\n if (typeof len === 'undefined') {\n len = this.rQlen;\n }\n\n var str = \"\"; // Handle large arrays in steps to avoid long strings on the stack\n\n for (var i = 0; i < len; i += 4096) {\n var part = this.rQshiftBytes(Math.min(4096, len - i));\n str += String.fromCharCode.apply(null, part);\n }\n\n return str;\n }\n }, {\n key: \"rQshiftBytes\",\n value: function rQshiftBytes(len) {\n if (typeof len === 'undefined') {\n len = this.rQlen;\n }\n\n this._rQi += len;\n return new Uint8Array(this._rQ.buffer, this._rQi - len, len);\n }\n }, {\n key: \"rQshiftTo\",\n value: function rQshiftTo(target, len) {\n if (len === undefined) {\n len = this.rQlen;\n } // TODO: make this just use set with views when using a ArrayBuffer to store the rQ\n\n\n target.set(new Uint8Array(this._rQ.buffer, this._rQi, len));\n this._rQi += len;\n }\n }, {\n key: \"rQslice\",\n value: function rQslice(start) {\n var end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rQlen;\n return new Uint8Array(this._rQ.buffer, this._rQi + start, end - start);\n } // Check to see if we must wait for 'num' bytes (default to FBU.bytes)\n // to be available in the receive queue. Return true if we need to\n // wait (and possibly print a debug message), otherwise false.\n\n }, {\n key: \"rQwait\",\n value: function rQwait(msg, num, goback) {\n if (this.rQlen < num) {\n if (goback) {\n if (this._rQi < goback) {\n throw new Error(\"rQwait cannot backup \" + goback + \" bytes\");\n }\n\n this._rQi -= goback;\n }\n\n return true; // true means need more data\n }\n\n return false;\n } // Send Queue\n\n }, {\n key: \"flush\",\n value: function flush() {\n if (this._sQlen > 0 && this.readyState === 'open') {\n this._websocket.send(this._encodeMessage());\n\n this._sQlen = 0;\n }\n }\n }, {\n key: \"send\",\n value: function send(arr) {\n this._sQ.set(arr, this._sQlen);\n\n this._sQlen += arr.length;\n this.flush();\n }\n }, {\n key: \"sendString\",\n value: function sendString(str) {\n this.send(str.split('').map(function (chr) {\n return chr.charCodeAt(0);\n }));\n } // Event Handlers\n\n }, {\n key: \"off\",\n value: function off(evt) {\n this._eventHandlers[evt] = function () {};\n }\n }, {\n key: \"on\",\n value: function on(evt, handler) {\n this._eventHandlers[evt] = handler;\n }\n }, {\n key: \"_allocateBuffers\",\n value: function _allocateBuffers() {\n this._rQ = new Uint8Array(this._rQbufferSize);\n this._sQ = new Uint8Array(this._sQbufferSize);\n }\n }, {\n key: \"init\",\n value: function init() {\n this._allocateBuffers();\n\n this._rQi = 0;\n this._websocket = null;\n }\n }, {\n key: \"open\",\n value: function open(uri, protocols) {\n this.attach(new WebSocket(uri, protocols));\n }\n }, {\n key: \"attach\",\n value: function attach(rawChannel) {\n var _this = this;\n\n this.init(); // Must get object and class methods to be compatible with the tests.\n\n var channelProps = [].concat(_toConsumableArray(Object.keys(rawChannel)), _toConsumableArray(Object.getOwnPropertyNames(Object.getPrototypeOf(rawChannel))));\n\n for (var i = 0; i < rawChannelProps.length; i++) {\n var prop = rawChannelProps[i];\n\n if (channelProps.indexOf(prop) < 0) {\n throw new Error('Raw channel missing property: ' + prop);\n }\n }\n\n this._websocket = rawChannel;\n this._websocket.binaryType = \"arraybuffer\";\n this._websocket.onmessage = this._recvMessage.bind(this);\n\n this._websocket.onopen = function () {\n Log.Debug('>> WebSock.onopen');\n\n if (_this._websocket.protocol) {\n Log.Info(\"Server choose sub-protocol: \" + _this._websocket.protocol);\n }\n\n _this._eventHandlers.open();\n\n Log.Debug(\"<< WebSock.onopen\");\n };\n\n this._websocket.onclose = function (e) {\n Log.Debug(\">> WebSock.onclose\");\n\n _this._eventHandlers.close(e);\n\n Log.Debug(\"<< WebSock.onclose\");\n };\n\n this._websocket.onerror = function (e) {\n Log.Debug(\">> WebSock.onerror: \" + e);\n\n _this._eventHandlers.error(e);\n\n Log.Debug(\"<< WebSock.onerror: \" + e);\n };\n }\n }, {\n key: \"close\",\n value: function close() {\n if (this._websocket) {\n if (this.readyState === 'connecting' || this.readyState === 'open') {\n Log.Info(\"Closing WebSocket connection\");\n\n this._websocket.close();\n }\n\n this._websocket.onmessage = function () {};\n }\n } // private methods\n\n }, {\n key: \"_encodeMessage\",\n value: function _encodeMessage() {\n // Put in a binary arraybuffer\n // according to the spec, you can send ArrayBufferViews with the send method\n return new Uint8Array(this._sQ.buffer, 0, this._sQlen);\n } // We want to move all the unread data to the start of the queue,\n // e.g. compacting.\n // The function also expands the receive que if needed, and for\n // performance reasons we combine these two actions to avoid\n // unneccessary copying.\n\n }, {\n key: \"_expandCompactRQ\",\n value: function _expandCompactRQ(minFit) {\n // if we're using less than 1/8th of the buffer even with the incoming bytes, compact in place\n // instead of resizing\n var requiredBufferSize = (this._rQlen - this._rQi + minFit) * 8;\n var resizeNeeded = this._rQbufferSize < requiredBufferSize;\n\n if (resizeNeeded) {\n // Make sure we always *at least* double the buffer size, and have at least space for 8x\n // the current amount of data\n this._rQbufferSize = Math.max(this._rQbufferSize * 2, requiredBufferSize);\n } // we don't want to grow unboundedly\n\n\n if (this._rQbufferSize > MAX_RQ_GROW_SIZE) {\n this._rQbufferSize = MAX_RQ_GROW_SIZE;\n\n if (this._rQbufferSize - this.rQlen < minFit) {\n throw new Error(\"Receive Queue buffer exceeded \" + MAX_RQ_GROW_SIZE + \" bytes, and the new message could not fit\");\n }\n }\n\n if (resizeNeeded) {\n var oldRQbuffer = this._rQ.buffer;\n this._rQ = new Uint8Array(this._rQbufferSize);\n\n this._rQ.set(new Uint8Array(oldRQbuffer, this._rQi, this._rQlen - this._rQi));\n } else {\n this._rQ.copyWithin(0, this._rQi, this._rQlen);\n }\n\n this._rQlen = this._rQlen - this._rQi;\n this._rQi = 0;\n } // push arraybuffer values onto the end of the receive que\n\n }, {\n key: \"_DecodeMessage\",\n value: function _DecodeMessage(data) {\n var u8 = new Uint8Array(data);\n\n if (u8.length > this._rQbufferSize - this._rQlen) {\n this._expandCompactRQ(u8.length);\n }\n\n this._rQ.set(u8, this._rQlen);\n\n this._rQlen += u8.length;\n }\n }, {\n key: \"_recvMessage\",\n value: function _recvMessage(e) {\n this._DecodeMessage(e.data);\n\n if (this.rQlen > 0) {\n this._eventHandlers.message();\n\n if (this._rQlen == this._rQi) {\n // All data has now been processed, this means we\n // can reset the receive queue.\n this._rQlen = 0;\n this._rQi = 0;\n }\n } else {\n Log.Debug(\"Ignoring empty message\");\n }\n }\n }]);\n\n return Websock;\n}();\n\nexports[\"default\"] = Websock;","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n // Remove event specific arrays for event types that no\r\n // one is subscribed for to avoid memory leak.\r\n if (callbacks.length === 0) {\r\n delete this._callbacks['$' + event];\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n\r\n var args = new Array(arguments.length - 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n for (var i = 1; i < arguments.length; i++) {\r\n args[i - 1] = arguments[i];\r\n }\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\n","var objectKeys = require('object-keys');\nvar isArguments = require('is-arguments');\nvar is = require('object-is');\nvar isRegex = require('is-regex');\nvar flags = require('regexp.prototype.flags');\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n if (typeof a !== typeof b) { return false; }\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n if (typeof a !== typeof b) { return false; }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) { // happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; }\n }\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) { return false; }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","/*!\nCopyright (C) 2013-2015 by Andrea Giammarchi - @WebReflection\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n(function(window){'use strict';\n /* jshint loopfunc: true, noempty: false*/\n // http://www.w3.org/TR/dom/#element\n\n function createDocumentFragment() {\n return document.createDocumentFragment();\n }\n\n function createElement(nodeName) {\n return document.createElement(nodeName);\n }\n\n function enoughArguments(length, name) {\n if (!length) throw new Error(\n 'Failed to construct ' +\n name +\n ': 1 argument required, but only 0 present.'\n );\n }\n\n function mutationMacro(nodes) {\n if (nodes.length === 1) {\n return textNodeIfPrimitive(nodes[0]);\n }\n for (var\n fragment = createDocumentFragment(),\n list = slice.call(nodes),\n i = 0; i < nodes.length; i++\n ) {\n fragment.appendChild(textNodeIfPrimitive(list[i]));\n }\n return fragment;\n }\n\n function textNodeIfPrimitive(node) {\n return typeof node === 'object' ? node : document.createTextNode(node);\n }\n\n for(var\n head,\n property,\n TemporaryPrototype,\n TemporaryTokenList,\n wrapVerifyToken,\n document = window.document,\n hOP = Object.prototype.hasOwnProperty,\n defineProperty = Object.defineProperty || function (object, property, descriptor) {\n if (hOP.call(descriptor, 'value')) {\n object[property] = descriptor.value;\n } else {\n if (hOP.call(descriptor, 'get'))\n object.__defineGetter__(property, descriptor.get);\n if (hOP.call(descriptor, 'set'))\n object.__defineSetter__(property, descriptor.set);\n }\n return object;\n },\n indexOf = [].indexOf || function indexOf(value){\n var length = this.length;\n while(length--) {\n if (this[length] === value) {\n break;\n }\n }\n return length;\n },\n // http://www.w3.org/TR/domcore/#domtokenlist\n verifyToken = function (token) {\n if (!token) {\n throw 'SyntaxError';\n } else if (spaces.test(token)) {\n throw 'InvalidCharacterError';\n }\n return token;\n },\n DOMTokenList = function (node) {\n var\n noClassName = typeof node.className === 'undefined',\n className = noClassName ?\n (node.getAttribute('class') || '') : node.className,\n isSVG = noClassName || typeof className === 'object',\n value = (isSVG ?\n (noClassName ? className : className.baseVal) :\n className\n ).replace(trim, '')\n ;\n if (value.length) {\n properties.push.apply(\n this,\n value.split(spaces)\n );\n }\n this._isSVG = isSVG;\n this._ = node;\n },\n classListDescriptor = {\n get: function get() {\n return new DOMTokenList(this);\n },\n set: function(){}\n },\n trim = /^\\s+|\\s+$/g,\n spaces = /\\s+/,\n SPACE = '\\x20',\n CLASS_LIST = 'classList',\n toggle = function toggle(token, force) {\n if (this.contains(token)) {\n if (!force) {\n // force is not true (either false or omitted)\n this.remove(token);\n }\n } else if(force === undefined || force) {\n force = true;\n this.add(token);\n }\n return !!force;\n },\n DocumentFragmentPrototype = window.DocumentFragment && DocumentFragment.prototype,\n Node = window.Node,\n NodePrototype = (Node || Element).prototype,\n CharacterData = window.CharacterData || Node,\n CharacterDataPrototype = CharacterData && CharacterData.prototype,\n DocumentType = window.DocumentType,\n DocumentTypePrototype = DocumentType && DocumentType.prototype,\n ElementPrototype = (window.Element || Node || window.HTMLElement).prototype,\n HTMLSelectElement = window.HTMLSelectElement || createElement('select').constructor,\n selectRemove = HTMLSelectElement.prototype.remove,\n SVGElement = window.SVGElement,\n properties = [\n 'matches', (\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.khtmlMatchesSelector ||\n ElementPrototype.mozMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n ElementPrototype.oMatchesSelector ||\n function matches(selector) {\n var parentNode = this.parentNode;\n return !!parentNode && -1 < indexOf.call(\n parentNode.querySelectorAll(selector),\n this\n );\n }\n ),\n 'closest', function closest(selector) {\n var parentNode = this, matches;\n while (\n // document has no .matches\n (matches = parentNode && parentNode.matches) &&\n !parentNode.matches(selector)\n ) {\n parentNode = parentNode.parentNode;\n }\n return matches ? parentNode : null;\n },\n 'prepend', function prepend() {\n var firstChild = this.firstChild,\n node = mutationMacro(arguments);\n if (firstChild) {\n this.insertBefore(node, firstChild);\n } else {\n this.appendChild(node);\n }\n },\n 'append', function append() {\n this.appendChild(mutationMacro(arguments));\n },\n 'before', function before() {\n var parentNode = this.parentNode;\n if (parentNode) {\n parentNode.insertBefore(\n mutationMacro(arguments), this\n );\n }\n },\n 'after', function after() {\n var parentNode = this.parentNode,\n nextSibling = this.nextSibling,\n node = mutationMacro(arguments);\n if (parentNode) {\n if (nextSibling) {\n parentNode.insertBefore(node, nextSibling);\n } else {\n parentNode.appendChild(node);\n }\n }\n },\n // https://dom.spec.whatwg.org/#dom-element-toggleattribute\n 'toggleAttribute', function toggleAttribute(name, force) {\n var had = this.hasAttribute(name);\n if (1 < arguments.length) {\n if (had && !force)\n this.removeAttribute(name);\n else if (force && !had)\n this.setAttribute(name, \"\");\n }\n else if (had)\n this.removeAttribute(name);\n else\n this.setAttribute(name, \"\");\n return this.hasAttribute(name);\n },\n // WARNING - DEPRECATED - use .replaceWith() instead\n 'replace', function replace() {\n this.replaceWith.apply(this, arguments);\n },\n 'replaceWith', function replaceWith() {\n var parentNode = this.parentNode;\n if (parentNode) {\n parentNode.replaceChild(\n mutationMacro(arguments),\n this\n );\n }\n },\n 'remove', function remove() {\n var parentNode = this.parentNode;\n if (parentNode) {\n parentNode.removeChild(this);\n }\n }\n ],\n slice = properties.slice,\n i = properties.length; i; i -= 2\n ) {\n property = properties[i - 2];\n if (!(property in ElementPrototype)) {\n ElementPrototype[property] = properties[i - 1];\n }\n // avoid unnecessary re-patch when the script is included\n // gazillion times without any reason whatsoever\n // https://github.com/WebReflection/dom4/pull/48\n if (property === 'remove' && !selectRemove._dom4) {\n // see https://github.com/WebReflection/dom4/issues/19\n (HTMLSelectElement.prototype[property] = function () {\n return 0 < arguments.length ?\n selectRemove.apply(this, arguments) :\n ElementPrototype.remove.call(this);\n })._dom4 = true;\n }\n // see https://github.com/WebReflection/dom4/issues/18\n if (/^(?:before|after|replace|replaceWith|remove)$/.test(property)) {\n if (CharacterData && !(property in CharacterDataPrototype)) {\n CharacterDataPrototype[property] = properties[i - 1];\n }\n if (DocumentType && !(property in DocumentTypePrototype)) {\n DocumentTypePrototype[property] = properties[i - 1];\n }\n }\n // see https://github.com/WebReflection/dom4/pull/26\n if (/^(?:append|prepend)$/.test(property)) {\n if (DocumentFragmentPrototype) {\n if (!(property in DocumentFragmentPrototype)) {\n DocumentFragmentPrototype[property] = properties[i - 1];\n }\n } else {\n try {\n createDocumentFragment().constructor.prototype[property] = properties[i - 1];\n } catch(o_O) {}\n }\n }\n }\n\n // most likely an IE9 only issue\n // see https://github.com/WebReflection/dom4/issues/6\n if (!createElement('a').matches('a')) {\n ElementPrototype[property] = function(matches){\n return function (selector) {\n return matches.call(\n this.parentNode ?\n this :\n createDocumentFragment().appendChild(this),\n selector\n );\n };\n }(ElementPrototype[property]);\n }\n\n // used to fix both old webkit and SVG\n DOMTokenList.prototype = {\n length: 0,\n add: function add() {\n for(var j = 0, token; j < arguments.length; j++) {\n token = arguments[j];\n if(!this.contains(token)) {\n properties.push.call(this, property);\n }\n }\n if (this._isSVG) {\n this._.setAttribute('class', '' + this);\n } else {\n this._.className = '' + this;\n }\n },\n contains: (function(indexOf){\n return function contains(token) {\n i = indexOf.call(this, property = verifyToken(token));\n return -1 < i;\n };\n }([].indexOf || function (token) {\n i = this.length;\n while(i-- && this[i] !== token){}\n return i;\n })),\n item: function item(i) {\n return this[i] || null;\n },\n remove: function remove() {\n for(var j = 0, token; j < arguments.length; j++) {\n token = arguments[j];\n if(this.contains(token)) {\n properties.splice.call(this, i, 1);\n }\n }\n if (this._isSVG) {\n this._.setAttribute('class', '' + this);\n } else {\n this._.className = '' + this;\n }\n },\n toggle: toggle,\n toString: function toString() {\n return properties.join.call(this, SPACE);\n }\n };\n\n if (SVGElement && !(CLASS_LIST in SVGElement.prototype)) {\n defineProperty(SVGElement.prototype, CLASS_LIST, classListDescriptor);\n }\n\n // http://www.w3.org/TR/dom/#domtokenlist\n // iOS 5.1 has completely screwed this property\n // classList in ElementPrototype is false\n // but it's actually there as getter\n if (!(CLASS_LIST in document.documentElement)) {\n defineProperty(ElementPrototype, CLASS_LIST, classListDescriptor);\n } else {\n // iOS 5.1 and Nokia ASHA do not support multiple add or remove\n // trying to detect and fix that in here\n TemporaryTokenList = createElement('div')[CLASS_LIST];\n TemporaryTokenList.add('a', 'b', 'a');\n if ('a\\x20b' != TemporaryTokenList) {\n // no other way to reach original methods in iOS 5.1\n TemporaryPrototype = TemporaryTokenList.constructor.prototype;\n if (!('add' in TemporaryPrototype)) {\n // ASHA double fails in here\n TemporaryPrototype = window.TemporaryTokenList.prototype;\n }\n wrapVerifyToken = function (original) {\n return function () {\n var i = 0;\n while (i < arguments.length) {\n original.call(this, arguments[i++]);\n }\n };\n };\n TemporaryPrototype.add = wrapVerifyToken(TemporaryPrototype.add);\n TemporaryPrototype.remove = wrapVerifyToken(TemporaryPrototype.remove);\n // toggle is broken too ^_^ ... let's fix it\n TemporaryPrototype.toggle = toggle;\n }\n }\n\n if (!('contains' in NodePrototype)) {\n defineProperty(NodePrototype, 'contains', {\n value: function (el) {\n while (el && el !== this) el = el.parentNode;\n return this === el;\n }\n });\n }\n\n if (!('head' in document)) {\n defineProperty(document, 'head', {\n get: function () {\n return head || (\n head = document.getElementsByTagName('head')[0]\n );\n }\n });\n }\n\n // requestAnimationFrame partial polyfill\n (function () {\n for (var\n raf,\n rAF = window.requestAnimationFrame,\n cAF = window.cancelAnimationFrame,\n prefixes = ['o', 'ms', 'moz', 'webkit'],\n i = prefixes.length;\n !cAF && i--;\n ) {\n rAF = rAF || window[prefixes[i] + 'RequestAnimationFrame'];\n cAF = window[prefixes[i] + 'CancelAnimationFrame'] ||\n window[prefixes[i] + 'CancelRequestAnimationFrame'];\n }\n if (!cAF) {\n // some FF apparently implemented rAF but no cAF \n if (rAF) {\n raf = rAF;\n rAF = function (callback) {\n var goOn = true;\n raf(function () {\n if (goOn) callback.apply(this, arguments);\n });\n return function () {\n goOn = false;\n };\n };\n cAF = function (id) {\n id();\n };\n } else {\n rAF = function (callback) {\n return setTimeout(callback, 15, 15);\n };\n cAF = function (id) {\n clearTimeout(id);\n };\n }\n }\n window.requestAnimationFrame = rAF;\n window.cancelAnimationFrame = cAF;\n }());\n\n // http://www.w3.org/TR/dom/#customevent\n try{new window.CustomEvent('?');}catch(o_O){\n window.CustomEvent = function(\n eventName,\n defaultInitDict\n ){\n\n // the infamous substitute\n function CustomEvent(type, eventInitDict) {\n /*jshint eqnull:true */\n var event = document.createEvent(eventName);\n if (typeof type != 'string') {\n throw new Error('An event name must be provided');\n }\n if (eventName == 'Event') {\n event.initCustomEvent = initCustomEvent;\n }\n if (eventInitDict == null) {\n eventInitDict = defaultInitDict;\n }\n event.initCustomEvent(\n type,\n eventInitDict.bubbles,\n eventInitDict.cancelable,\n eventInitDict.detail\n );\n return event;\n }\n\n // attached at runtime\n function initCustomEvent(\n type, bubbles, cancelable, detail\n ) {\n /*jshint validthis:true*/\n this.initEvent(type, bubbles, cancelable);\n this.detail = detail;\n }\n\n // that's it\n return CustomEvent;\n }(\n // is this IE9 or IE10 ?\n // where CustomEvent is there\n // but not usable as construtor ?\n window.CustomEvent ?\n // use the CustomEvent interface in such case\n 'CustomEvent' : 'Event',\n // otherwise the common compatible one\n {\n bubbles: false,\n cancelable: false,\n detail: null\n }\n );\n }\n\n // window.Event as constructor\n try { new Event('_'); } catch (o_O) {\n /* jshint -W022 */\n o_O = (function ($Event) {\n function Event(type, init) {\n enoughArguments(arguments.length, 'Event');\n var out = document.createEvent('Event');\n if (!init) init = {};\n out.initEvent(\n type,\n !!init.bubbles,\n !!init.cancelable\n );\n return out;\n }\n Event.prototype = $Event.prototype;\n return Event;\n }(window.Event || function Event() {}));\n defineProperty(window, 'Event', {value: o_O});\n // Android 4 gotcha\n if (Event !== o_O) Event = o_O;\n }\n\n // window.KeyboardEvent as constructor\n try { new KeyboardEvent('_', {}); } catch (o_O) {\n /* jshint -W022 */\n o_O = (function ($KeyboardEvent) {\n // code inspired by https://gist.github.com/termi/4654819\n var\n initType = 0,\n defaults = {\n char: '',\n key: '',\n location: 0,\n ctrlKey: false,\n shiftKey: false,\n altKey: false,\n metaKey: false,\n altGraphKey: false,\n repeat: false,\n locale: navigator.language,\n detail: 0,\n bubbles: false,\n cancelable: false,\n keyCode: 0,\n charCode: 0,\n which: 0\n },\n eventType\n ;\n try {\n var e = document.createEvent('KeyboardEvent');\n e.initKeyboardEvent(\n 'keyup', false, false, window, '+', 3,\n true, false, true, false, false\n );\n initType = (\n (e.keyIdentifier || e.key) == '+' &&\n (e.keyLocation || e.location) == 3\n ) && (\n e.ctrlKey ? e.altKey ? 1 : 3 : e.shiftKey ? 2 : 4\n ) || 9;\n } catch(o_O) {}\n eventType = 0 < initType ? 'KeyboardEvent' : 'Event';\n\n function getModifier(init) {\n for (var\n out = [],\n keys = [\n 'ctrlKey',\n 'Control',\n 'shiftKey',\n 'Shift',\n 'altKey',\n 'Alt',\n 'metaKey',\n 'Meta',\n 'altGraphKey',\n 'AltGraph'\n ],\n i = 0; i < keys.length; i += 2\n ) {\n if (init[keys[i]])\n out.push(keys[i + 1]);\n }\n return out.join(' ');\n }\n\n function withDefaults(target, source) {\n for (var key in source) {\n if (\n source.hasOwnProperty(key) &&\n !source.hasOwnProperty.call(target, key)\n ) target[key] = source[key];\n }\n return target;\n }\n\n function withInitValues(key, out, init) {\n try {\n out[key] = init[key];\n } catch(o_O) {}\n }\n\n function KeyboardEvent(type, init) {\n enoughArguments(arguments.length, 'KeyboardEvent');\n init = withDefaults(init || {}, defaults);\n var\n out = document.createEvent(eventType),\n ctrlKey = init.ctrlKey,\n shiftKey = init.shiftKey,\n altKey = init.altKey,\n metaKey = init.metaKey,\n altGraphKey = init.altGraphKey,\n modifiers = initType > 3 ? getModifier(init) : null,\n key = String(init.key),\n chr = String(init.char),\n location = init.location,\n keyCode = init.keyCode || (\n (init.keyCode = key) &&\n key.charCodeAt(0)\n ) || 0,\n charCode = init.charCode || (\n (init.charCode = chr) &&\n chr.charCodeAt(0)\n ) || 0,\n bubbles = init.bubbles,\n cancelable = init.cancelable,\n repeat = init.repeat,\n locale = init.locale,\n view = init.view || window,\n args\n ;\n if (!init.which) init.which = init.keyCode;\n if ('initKeyEvent' in out) {\n out.initKeyEvent(\n type, bubbles, cancelable, view,\n ctrlKey, altKey, shiftKey, metaKey, keyCode, charCode\n );\n } else if (0 < initType && 'initKeyboardEvent' in out) {\n args = [type, bubbles, cancelable, view];\n switch (initType) {\n case 1:\n args.push(key, location, ctrlKey, shiftKey, altKey, metaKey, altGraphKey);\n break;\n case 2:\n args.push(ctrlKey, altKey, shiftKey, metaKey, keyCode, charCode);\n break;\n case 3:\n args.push(key, location, ctrlKey, altKey, shiftKey, metaKey, altGraphKey);\n break;\n case 4:\n args.push(key, location, modifiers, repeat, locale);\n break;\n default:\n args.push(char, key, location, modifiers, repeat, locale);\n }\n out.initKeyboardEvent.apply(out, args);\n } else {\n out.initEvent(type, bubbles, cancelable);\n }\n for (key in out) {\n if (defaults.hasOwnProperty(key) && out[key] !== init[key]) {\n withInitValues(key, out, init);\n }\n }\n return out;\n }\n KeyboardEvent.prototype = $KeyboardEvent.prototype;\n return KeyboardEvent;\n }(window.KeyboardEvent || function KeyboardEvent() {}));\n defineProperty(window, 'KeyboardEvent', {value: o_O});\n // Android 4 gotcha\n if (KeyboardEvent !== o_O) KeyboardEvent = o_O;\n }\n\n // window.MouseEvent as constructor\n try { new MouseEvent('_', {}); } catch (o_O) {\n /* jshint -W022 */\n o_O = (function ($MouseEvent) {\n function MouseEvent(type, init) {\n enoughArguments(arguments.length, 'MouseEvent');\n var out = document.createEvent('MouseEvent');\n if (!init) init = {};\n out.initMouseEvent(\n type,\n !!init.bubbles,\n !!init.cancelable,\n init.view || window,\n init.detail || 1,\n init.screenX || 0,\n init.screenY || 0,\n init.clientX || 0,\n init.clientY || 0,\n !!init.ctrlKey,\n !!init.altKey,\n !!init.shiftKey,\n !!init.metaKey,\n init.button || 0,\n init.relatedTarget || null\n );\n return out;\n }\n MouseEvent.prototype = $MouseEvent.prototype;\n return MouseEvent;\n }(window.MouseEvent || function MouseEvent() {}));\n defineProperty(window, 'MouseEvent', {value: o_O});\n // Android 4 gotcha\n if (MouseEvent !== o_O) MouseEvent = o_O;\n }\n\n if (!document.querySelectorAll('*').forEach) {\n (function () {\n function patch(what) {\n var querySelectorAll = what.querySelectorAll;\n what.querySelectorAll = function qSA(css) {\n var result = querySelectorAll.call(this, css);\n result.forEach = Array.prototype.forEach;\n return result;\n };\n }\n patch(document);\n patch(Element.prototype);\n }());\n }\n\n try {\n // https://drafts.csswg.org/selectors-4/#the-scope-pseudo\n document.querySelector(':scope *');\n } catch(o_O) {\n (function () {\n var dataScope = 'data-scope-' + (Math.random() * 1e9 >>> 0);\n var proto = Element.prototype;\n var querySelector = proto.querySelector;\n var querySelectorAll = proto.querySelectorAll;\n proto.querySelector = function qS(css) {\n return find(this, querySelector, css);\n };\n proto.querySelectorAll = function qSA(css) {\n return find(this, querySelectorAll, css);\n };\n function find(node, method, css) {\n if (node.type != document.ELEMENT_NODE) return method.call(node, css);\n node.setAttribute(dataScope, null);\n var result = method.call(\n node,\n String(css).replace(\n /(^|,\\s*)(:scope([ >]|$))/g,\n function ($0, $1, $2, $3) {\n return $1 + '[' + dataScope + ']' + ($3 || ' ');\n }\n )\n );\n node.removeAttribute(dataScope);\n return result;\n }\n }());\n }\n}(window));\n(function (global){'use strict';\n\n // a WeakMap fallback for DOM nodes only used as key\n var DOMMap = global.WeakMap || (function () {\n\n var\n counter = 0,\n dispatched = false,\n drop = false,\n value\n ;\n\n function dispatch(key, ce, shouldDrop) {\n drop = shouldDrop;\n dispatched = false;\n value = undefined;\n key.dispatchEvent(ce);\n }\n\n function Handler(value) {\n this.value = value;\n }\n\n Handler.prototype.handleEvent = function handleEvent(e) {\n dispatched = true;\n if (drop) {\n e.currentTarget.removeEventListener(e.type, this, false);\n } else {\n value = this.value;\n }\n };\n\n function DOMMap() {\n counter++; // make id clashing highly improbable\n this.__ce__ = new Event(('@DOMMap:' + counter) + Math.random());\n }\n\n DOMMap.prototype = {\n 'constructor': DOMMap,\n 'delete': function del(key) {\n return dispatch(key, this.__ce__, true), dispatched;\n },\n 'get': function get(key) {\n dispatch(key, this.__ce__, false);\n var v = value;\n value = undefined;\n return v;\n },\n 'has': function has(key) {\n return dispatch(key, this.__ce__, false), dispatched;\n },\n 'set': function set(key, value) {\n dispatch(key, this.__ce__, true);\n key.addEventListener(this.__ce__.type, new Handler(value), false);\n return this;\n },\n };\n\n return DOMMap;\n\n }());\n\n function Dict() {}\n Dict.prototype = (Object.create || Object)(null);\n\n // https://dom.spec.whatwg.org/#interface-eventtarget\n\n function createEventListener(type, callback, options) {\n function eventListener(e) {\n if (eventListener.once) {\n e.currentTarget.removeEventListener(\n e.type,\n callback,\n eventListener\n );\n eventListener.removed = true;\n }\n if (eventListener.passive) {\n e.preventDefault = createEventListener.preventDefault;\n }\n if (typeof eventListener.callback === 'function') {\n /* jshint validthis: true */\n eventListener.callback.call(this, e);\n } else if (eventListener.callback) {\n eventListener.callback.handleEvent(e);\n }\n if (eventListener.passive) {\n delete e.preventDefault;\n }\n }\n eventListener.type = type;\n eventListener.callback = callback;\n eventListener.capture = !!options.capture;\n eventListener.passive = !!options.passive;\n eventListener.once = !!options.once;\n // currently pointless but specs say to use it, so ...\n eventListener.removed = false;\n return eventListener;\n }\n\n createEventListener.preventDefault = function preventDefault() {};\n\n var\n Event = global.CustomEvent,\n dE = global.dispatchEvent,\n aEL = global.addEventListener,\n rEL = global.removeEventListener,\n counter = 0,\n increment = function () { counter++; },\n indexOf = [].indexOf || function indexOf(value){\n var length = this.length;\n while(length--) {\n if (this[length] === value) {\n break;\n }\n }\n return length;\n },\n getListenerKey = function (options) {\n return ''.concat(\n options.capture ? '1' : '0',\n options.passive ? '1' : '0',\n options.once ? '1' : '0'\n );\n },\n augment\n ;\n\n try {\n aEL('_', increment, {once: true});\n dE(new Event('_'));\n dE(new Event('_'));\n rEL('_', increment, {once: true});\n } catch(o_O) {}\n\n if (counter !== 1) {\n (function () {\n var dm = new DOMMap();\n function createAEL(aEL) {\n return function addEventListener(type, handler, options) {\n if (options && typeof options !== 'boolean') {\n var\n info = dm.get(this),\n key = getListenerKey(options),\n i, tmp, wrap\n ;\n if (!info) dm.set(this, (info = new Dict()));\n if (!(type in info)) info[type] = {\n handler: [],\n wrap: []\n };\n tmp = info[type];\n i = indexOf.call(tmp.handler, handler);\n if (i < 0) {\n i = tmp.handler.push(handler) - 1;\n tmp.wrap[i] = (wrap = new Dict());\n } else {\n wrap = tmp.wrap[i];\n }\n if (!(key in wrap)) {\n wrap[key] = createEventListener(type, handler, options);\n aEL.call(this, type, wrap[key], wrap[key].capture);\n }\n } else {\n aEL.call(this, type, handler, options);\n }\n };\n }\n function createREL(rEL) {\n return function removeEventListener(type, handler, options) {\n if (options && typeof options !== 'boolean') {\n var\n info = dm.get(this),\n key, i, tmp, wrap\n ;\n if (info && (type in info)) {\n tmp = info[type];\n i = indexOf.call(tmp.handler, handler);\n if (-1 < i) {\n key = getListenerKey(options);\n wrap = tmp.wrap[i];\n if (key in wrap) {\n rEL.call(this, type, wrap[key], wrap[key].capture);\n delete wrap[key];\n // return if there are other wraps\n for (key in wrap) return;\n // otherwise remove all the things\n tmp.handler.splice(i, 1);\n tmp.wrap.splice(i, 1);\n // if there are no other handlers\n if (tmp.handler.length === 0)\n // drop the info[type] entirely\n delete info[type];\n }\n }\n }\n } else {\n rEL.call(this, type, handler, options);\n }\n };\n }\n\n augment = function (Constructor) {\n if (!Constructor) return;\n var proto = Constructor.prototype;\n proto.addEventListener = createAEL(proto.addEventListener);\n proto.removeEventListener = createREL(proto.removeEventListener);\n };\n\n if (global.EventTarget) {\n augment(EventTarget);\n } else {\n augment(global.Text);\n augment(global.Element || global.HTMLElement);\n augment(global.HTMLDocument);\n augment(global.Window || {prototype:global});\n augment(global.XMLHttpRequest);\n }\n\n }());\n }\n\n}(self));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","module.exports = stringify\nstringify.default = stringify\nstringify.stable = deterministicStringify\nstringify.stableStringify = deterministicStringify\n\nvar LIMIT_REPLACE_NODE = '[...]'\nvar CIRCULAR_REPLACE_NODE = '[Circular]'\n\nvar arr = []\nvar replacerStack = []\n\nfunction defaultOptions () {\n return {\n depthLimit: Number.MAX_SAFE_INTEGER,\n edgesLimit: Number.MAX_SAFE_INTEGER\n }\n}\n\n// Regular stringify\nfunction stringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n decirc(obj, '', 0, [], undefined, 0, options)\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(obj, replacer, spacer)\n } else {\n res = JSON.stringify(obj, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction setReplace (replace, val, k, parent) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k)\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, { value: replace })\n arr.push([parent, k, val, propertyDescriptor])\n } else {\n replacerStack.push([val, k, replace])\n }\n } else {\n parent[k] = replace\n arr.push([parent, k, val])\n }\n}\n\nfunction decirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n decirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n var keys = Object.keys(val)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n decirc(val[key], key, i, stack, val, depth, options)\n }\n }\n stack.pop()\n }\n}\n\n// Stable-stringify\nfunction compareFunction (a, b) {\n if (a < b) {\n return -1\n }\n if (a > b) {\n return 1\n }\n return 0\n}\n\nfunction deterministicStringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n var tmp = deterministicDecirc(obj, '', 0, [], undefined, 0, options) || obj\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer)\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n // Ensure that we restore the object as it was.\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction deterministicDecirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n try {\n if (typeof val.toJSON === 'function') {\n return\n }\n } catch (_) {\n return\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {}\n var keys = Object.keys(val).sort(compareFunction)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n deterministicDecirc(val[key], key, i, stack, val, depth, options)\n tmp[key] = val[key]\n }\n if (typeof parent !== 'undefined') {\n arr.push([parent, k, val])\n parent[k] = tmp\n } else {\n return tmp\n }\n }\n stack.pop()\n }\n}\n\n// wraps replacer function to handle values we couldn't replace\n// and mark them as replaced value\nfunction replaceGetterValues (replacer) {\n replacer =\n typeof replacer !== 'undefined'\n ? replacer\n : function (k, v) {\n return v\n }\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i]\n if (part[1] === key && part[0] === val) {\n val = part[2]\n replacerStack.splice(i, 1)\n break\n }\n }\n }\n return replacer.call(this, key, val)\n }\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\nvar validateFormat = process.env.NODE_ENV !== \"production\" ? function (format) {\n if (format === undefined) {\n throw new Error('invariant(...): Second argument must be a string.');\n }\n} : function (format) {};\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments to provide\n * information about what broke and what you were expecting.\n *\n * The invariant message will be stripped in production, but the invariant will\n * remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n validateFormat(format);\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return String(args[argIndex++]);\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // Skip invariant's own stack frame.\n\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\r\n * Copyright (c) 2014-present, Facebook, Inc.\r\n * All rights reserved.\r\n *\r\n * This source code is licensed under the BSD-style license found in the\r\n * LICENSE file in the root directory of this source tree. An additional grant\r\n * of patent rights can be found in the PATENTS file in the same directory.\r\n */\r\n\r\nmodule.exports.Dispatcher = require('./lib/Dispatcher');\r\n","/**\r\n * Copyright (c) 2014-present, Facebook, Inc.\r\n * All rights reserved.\r\n *\r\n * This source code is licensed under the BSD-style license found in the\r\n * LICENSE file in the root directory of this source tree. An additional grant\r\n * of patent rights can be found in the PATENTS file in the same directory.\r\n *\r\n * @providesModule Dispatcher\r\n * \r\n * @preventMunge\r\n */\n'use strict';\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar _prefix = 'ID_';\n/**\r\n * Dispatcher is used to broadcast payloads to registered callbacks. This is\r\n * different from generic pub-sub systems in two ways:\r\n *\r\n * 1) Callbacks are not subscribed to particular events. Every payload is\r\n * dispatched to every registered callback.\r\n * 2) Callbacks can be deferred in whole or part until other callbacks have\r\n * been executed.\r\n *\r\n * For example, consider this hypothetical flight destination form, which\r\n * selects a default city when a country is selected:\r\n *\r\n * var flightDispatcher = new Dispatcher();\r\n *\r\n * // Keeps track of which country is selected\r\n * var CountryStore = {country: null};\r\n *\r\n * // Keeps track of which city is selected\r\n * var CityStore = {city: null};\r\n *\r\n * // Keeps track of the base flight price of the selected city\r\n * var FlightPriceStore = {price: null}\r\n *\r\n * When a user changes the selected city, we dispatch the payload:\r\n *\r\n * flightDispatcher.dispatch({\r\n * actionType: 'city-update',\r\n * selectedCity: 'paris'\r\n * });\r\n *\r\n * This payload is digested by `CityStore`:\r\n *\r\n * flightDispatcher.register(function(payload) {\r\n * if (payload.actionType === 'city-update') {\r\n * CityStore.city = payload.selectedCity;\r\n * }\r\n * });\r\n *\r\n * When the user selects a country, we dispatch the payload:\r\n *\r\n * flightDispatcher.dispatch({\r\n * actionType: 'country-update',\r\n * selectedCountry: 'australia'\r\n * });\r\n *\r\n * This payload is digested by both stores:\r\n *\r\n * CountryStore.dispatchToken = flightDispatcher.register(function(payload) {\r\n * if (payload.actionType === 'country-update') {\r\n * CountryStore.country = payload.selectedCountry;\r\n * }\r\n * });\r\n *\r\n * When the callback to update `CountryStore` is registered, we save a reference\r\n * to the returned token. Using this token with `waitFor()`, we can guarantee\r\n * that `CountryStore` is updated before the callback that updates `CityStore`\r\n * needs to query its data.\r\n *\r\n * CityStore.dispatchToken = flightDispatcher.register(function(payload) {\r\n * if (payload.actionType === 'country-update') {\r\n * // `CountryStore.country` may not be updated.\r\n * flightDispatcher.waitFor([CountryStore.dispatchToken]);\r\n * // `CountryStore.country` is now guaranteed to be updated.\r\n *\r\n * // Select the default city for the new country\r\n * CityStore.city = getDefaultCityForCountry(CountryStore.country);\r\n * }\r\n * });\r\n *\r\n * The usage of `waitFor()` can be chained, for example:\r\n *\r\n * FlightPriceStore.dispatchToken =\r\n * flightDispatcher.register(function(payload) {\r\n * switch (payload.actionType) {\r\n * case 'country-update':\r\n * case 'city-update':\r\n * flightDispatcher.waitFor([CityStore.dispatchToken]);\r\n * FlightPriceStore.price =\r\n * getFlightPriceStore(CountryStore.country, CityStore.city);\r\n * break;\r\n * }\r\n * });\r\n *\r\n * The `country-update` payload will be guaranteed to invoke the stores'\r\n * registered callbacks in order: `CountryStore`, `CityStore`, then\r\n * `FlightPriceStore`.\r\n */\n\nvar Dispatcher = /*#__PURE__*/function () {\n function Dispatcher() {\n _defineProperty(this, \"_callbacks\", void 0);\n\n _defineProperty(this, \"_isDispatching\", void 0);\n\n _defineProperty(this, \"_isHandled\", void 0);\n\n _defineProperty(this, \"_isPending\", void 0);\n\n _defineProperty(this, \"_lastID\", void 0);\n\n _defineProperty(this, \"_pendingPayload\", void 0);\n\n this._callbacks = {};\n this._isDispatching = false;\n this._isHandled = {};\n this._isPending = {};\n this._lastID = 1;\n }\n /**\r\n * Registers a callback to be invoked with every dispatched payload. Returns\r\n * a token that can be used with `waitFor()`.\r\n */\n\n\n var _proto = Dispatcher.prototype;\n\n _proto.register = function register(callback) {\n var id = _prefix + this._lastID++;\n this._callbacks[id] = callback;\n return id;\n }\n /**\r\n * Removes a callback based on its token.\r\n */\n ;\n\n _proto.unregister = function unregister(id) {\n !this._callbacks[id] ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Dispatcher.unregister(...): `%s` does not map to a registered callback.', id) : invariant(false) : void 0;\n delete this._callbacks[id];\n }\n /**\r\n * Waits for the callbacks specified to be invoked before continuing execution\r\n * of the current callback. This method should only be used by a callback in\r\n * response to a dispatched payload.\r\n */\n ;\n\n _proto.waitFor = function waitFor(ids) {\n !this._isDispatching ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Dispatcher.waitFor(...): Must be invoked while dispatching.') : invariant(false) : void 0;\n\n for (var ii = 0; ii < ids.length; ii++) {\n var id = ids[ii];\n\n if (this._isPending[id]) {\n !this._isHandled[id] ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Dispatcher.waitFor(...): Circular dependency detected while ' + 'waiting for `%s`.', id) : invariant(false) : void 0;\n continue;\n }\n\n !this._callbacks[id] ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Dispatcher.waitFor(...): `%s` does not map to a registered callback.', id) : invariant(false) : void 0;\n\n this._invokeCallback(id);\n }\n }\n /**\r\n * Dispatches a payload to all registered callbacks.\r\n */\n ;\n\n _proto.dispatch = function dispatch(payload) {\n !!this._isDispatching ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch.') : invariant(false) : void 0;\n\n this._startDispatching(payload);\n\n try {\n for (var id in this._callbacks) {\n if (this._isPending[id]) {\n continue;\n }\n\n this._invokeCallback(id);\n }\n } finally {\n this._stopDispatching();\n }\n }\n /**\r\n * Is this Dispatcher currently dispatching.\r\n */\n ;\n\n _proto.isDispatching = function isDispatching() {\n return this._isDispatching;\n }\n /**\r\n * Call the callback stored with the given id. Also do some internal\r\n * bookkeeping.\r\n *\r\n * @internal\r\n */\n ;\n\n _proto._invokeCallback = function _invokeCallback(id) {\n this._isPending[id] = true;\n\n this._callbacks[id](this._pendingPayload);\n\n this._isHandled[id] = true;\n }\n /**\r\n * Set up bookkeeping needed when dispatching.\r\n *\r\n * @internal\r\n */\n ;\n\n _proto._startDispatching = function _startDispatching(payload) {\n for (var id in this._callbacks) {\n this._isPending[id] = false;\n this._isHandled[id] = false;\n }\n\n this._pendingPayload = payload;\n this._isDispatching = true;\n }\n /**\r\n * Clear bookkeeping used for dispatching.\r\n *\r\n * @internal\r\n */\n ;\n\n _proto._stopDispatching = function _stopDispatching() {\n delete this._pendingPayload;\n this._isDispatching = false;\n };\n\n return Dispatcher;\n}();\n\nmodule.exports = Dispatcher;","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n return global[key] = (global[key] || 0) + 1;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","// THIS FILE IS GENERATED - DO NOT EDIT!\n/*!mobile-detect v1.4.5 2021-03-13*/\n/*global module:false, define:false*/\n/*jshint latedef:false*/\n/*!@license Copyright 2013, Heinrich Goebl, License: MIT, see https://github.com/hgoebl/mobile-detect.js*/\n(function (define, undefined) {\ndefine(function () {\n 'use strict';\n\n var impl = {};\n\n impl.mobileDetectRules = {\n \"phones\": {\n \"iPhone\": \"\\\\biPhone\\\\b|\\\\biPod\\\\b\",\n \"BlackBerry\": \"BlackBerry|\\\\bBB10\\\\b|rim[0-9]+|\\\\b(BBA100|BBB100|BBD100|BBE100|BBF100|STH100)\\\\b-[0-9]+\",\n \"Pixel\": \"; \\\\bPixel\\\\b\",\n \"HTC\": \"HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\\\bEVO\\\\b|T-Mobile G1|Z520m|Android [0-9.]+; Pixel\",\n \"Nexus\": \"Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 5X|Nexus 6\",\n \"Dell\": \"Dell[;]? (Streak|Aero|Venue|Venue Pro|Flash|Smoke|Mini 3iX)|XCD28|XCD35|\\\\b001DL\\\\b|\\\\b101DL\\\\b|\\\\bGS01\\\\b\",\n \"Motorola\": \"Motorola|DROIDX|DROID BIONIC|\\\\bDroid\\\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\\\\bMoto E\\\\b|XT1068|XT1092|XT1052\",\n \"Samsung\": \"\\\\bSamsung\\\\b|SM-G950F|SM-G955F|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F|SM-G920F|SM-G920V|SM-G930F|SM-N910C|SM-A310F|GT-I9190|SM-J500FN|SM-G903F|SM-J330F|SM-G610F|SM-G981B|SM-G892A|SM-A530F\",\n \"LG\": \"\\\\bLG\\\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323|M257)|LM-G710\",\n \"Sony\": \"SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533|SOV34|601SO|F8332\",\n \"Asus\": \"Asus.*Galaxy|PadFone.*Mobile\",\n \"Xiaomi\": \"^(?!.*\\\\bx11\\\\b).*xiaomi.*$|POCOPHONE F1|MI 8|Redmi Note 9S|Redmi Note 5A Prime|N2G47H|M2001J2G|M2001J2I|M1805E10A|M2004J11G|M1902F1G|M2002J9G|M2004J19G|M2003J6A1G\",\n \"NokiaLumia\": \"Lumia [0-9]{3,4}\",\n \"Micromax\": \"Micromax.*\\\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\\\b\",\n \"Palm\": \"PalmSource|Palm\",\n \"Vertu\": \"Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature\",\n \"Pantech\": \"PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790\",\n \"Fly\": \"IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250\",\n \"Wiko\": \"KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM\",\n \"iMobile\": \"i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)\",\n \"SimValley\": \"\\\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\\\b\",\n \"Wolfgang\": \"AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q\",\n \"Alcatel\": \"Alcatel\",\n \"Nintendo\": \"Nintendo (3DS|Switch)\",\n \"Amoi\": \"Amoi\",\n \"INQ\": \"INQ\",\n \"OnePlus\": \"ONEPLUS\",\n \"GenericPhone\": \"Tapatalk|PDA;|SAGEM|\\\\bmmp\\\\b|pocket|\\\\bpsp\\\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\\\bwap\\\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser\"\n },\n \"tablets\": {\n \"iPad\": \"iPad|iPad.*Mobile\",\n \"NexusTablet\": \"Android.*Nexus[\\\\s]+(7|9|10)\",\n \"GoogleTablet\": \"Android.*Pixel C\",\n \"SamsungTablet\": \"SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-T116BU|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y?|SM-T280|SM-T817A|SM-T820|SM-W700|SM-P580|SM-T587|SM-P350|SM-P555M|SM-P355M|SM-T113NU|SM-T815Y|SM-T585|SM-T285|SM-T825|SM-W708|SM-T835|SM-T830|SM-T837V|SM-T720|SM-T510|SM-T387V|SM-P610|SM-T290|SM-T515|SM-T590|SM-T595|SM-T725|SM-T817P|SM-P585N0|SM-T395|SM-T295|SM-T865|SM-P610N|SM-P615|SM-T970|SM-T380|SM-T5950|SM-T905|SM-T231|SM-T500|SM-T860\",\n \"Kindle\": \"Kindle|Silk.*Accelerated|Android.*\\\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI|KFFOWI|KFGIWI|KFMEWI)\\\\b|Android.*Silk\\/[0-9.]+ like Chrome\\/[0-9.]+ (?!Mobile)\",\n \"SurfaceTablet\": \"Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)\",\n \"HPTablet\": \"HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10\",\n \"AsusTablet\": \"^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\\\bK00F\\\\b|\\\\bK00C\\\\b|\\\\bK00E\\\\b|\\\\bK00L\\\\b|TX201LA|ME176C|ME102A|\\\\bM80TA\\\\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\\\\bME70C\\\\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z|\\\\bP027\\\\b|\\\\bP024\\\\b|\\\\bP00C\\\\b\",\n \"BlackBerryTablet\": \"PlayBook|RIM Tablet\",\n \"HTCtablet\": \"HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410\",\n \"MotorolaTablet\": \"xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617\",\n \"NookTablet\": \"Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2\",\n \"AcerTablet\": \"Android.*; \\\\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\\\\b|W3-810|\\\\bA3-A10\\\\b|\\\\bA3-A11\\\\b|\\\\bA3-A20\\\\b|\\\\bA3-A30|A3-A40\",\n \"ToshibaTablet\": \"Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO\",\n \"LGTablet\": \"\\\\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\\\\b\",\n \"FujitsuTablet\": \"Android.*\\\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\\\b\",\n \"PrestigioTablet\": \"PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002\",\n \"LenovoTablet\": \"Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-850M|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)|TB-X103F|TB-X304X|TB-X304F|TB-X304L|TB-X505F|TB-X505L|TB-X505X|TB-X605F|TB-X605L|TB-8703F|TB-8703X|TB-8703N|TB-8704N|TB-8704F|TB-8704X|TB-8704V|TB-7304F|TB-7304I|TB-7304X|Tab2A7-10F|Tab2A7-20F|TB2-X30L|YT3-X50L|YT3-X50F|YT3-X50M|YT-X705F|YT-X703F|YT-X703L|YT-X705L|YT-X705X|TB2-X30F|TB2-X30L|TB2-X30M|A2107A-F|A2107A-H|TB3-730F|TB3-730M|TB3-730X|TB-7504F|TB-7504X|TB-X704F|TB-X104F|TB3-X70F|TB-X705F|TB-8504F|TB3-X70L|TB3-710F|TB-X704L\",\n \"DellTablet\": \"Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7\",\n \"YarvikTablet\": \"Android.*\\\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\\\b\",\n \"MedionTablet\": \"Android.*\\\\bOYO\\\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB\",\n \"ArnovaTablet\": \"97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2\",\n \"IntensoTablet\": \"INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004\",\n \"IRUTablet\": \"M702pro\",\n \"MegafonTablet\": \"MegaFon V9|\\\\bZTE V9\\\\b|Android.*\\\\bMT7A\\\\b\",\n \"EbodaTablet\": \"E-Boda (Supreme|Impresspeed|Izzycomm|Essential)\",\n \"AllViewTablet\": \"Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)\",\n \"ArchosTablet\": \"\\\\b(101G9|80G9|A101IT)\\\\b|Qilive 97R|Archos5|\\\\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|c|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\\\\b\",\n \"AinolTablet\": \"NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark\",\n \"NokiaLumiaTablet\": \"Lumia 2520\",\n \"SonyTablet\": \"Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP641|SGP612|SOT31|SGP771|SGP611|SGP612|SGP712\",\n \"PhilipsTablet\": \"\\\\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\\\\b\",\n \"CubeTablet\": \"Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT\",\n \"CobyTablet\": \"MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010\",\n \"MIDTablet\": \"M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10\",\n \"MSITablet\": \"MSI \\\\b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\\\\b\",\n \"SMiTTablet\": \"Android.*(\\\\bMID\\\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)\",\n \"RockChipTablet\": \"Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A\",\n \"FlyTablet\": \"IQ310|Fly Vision\",\n \"bqTablet\": \"Android.*(bq)?.*\\\\b(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris ([E|M]10|M8))\\\\b|Maxwell.*Lite|Maxwell.*Plus\",\n \"HuaweiTablet\": \"MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim|M2-A01L|BAH-L09|BAH-W09|AGS-L09|CMR-AL19\",\n \"NecTablet\": \"\\\\bN-06D|\\\\bN-08D\",\n \"PantechTablet\": \"Pantech.*P4100\",\n \"BronchoTablet\": \"Broncho.*(N701|N708|N802|a710)\",\n \"VersusTablet\": \"TOUCHPAD.*[78910]|\\\\bTOUCHTAB\\\\b\",\n \"ZyncTablet\": \"z1000|Z99 2G|z930|z990|z909|Z919|z900\",\n \"PositivoTablet\": \"TB07STA|TB10STA|TB07FTA|TB10FTA\",\n \"NabiTablet\": \"Android.*\\\\bNabi\",\n \"KoboTablet\": \"Kobo Touch|\\\\bK080\\\\b|\\\\bVox\\\\b Build|\\\\bArc\\\\b Build\",\n \"DanewTablet\": \"DSlide.*\\\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\\\b\",\n \"TexetTablet\": \"NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE\",\n \"PlaystationTablet\": \"Playstation.*(Portable|Vita)\",\n \"TrekstorTablet\": \"ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab\",\n \"PyleAudioTablet\": \"\\\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\\\b\",\n \"AdvanTablet\": \"Android.* \\\\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\\\b \",\n \"DanyTechTablet\": \"Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1\",\n \"GalapadTablet\": \"Android [0-9.]+; [a-z-]+; \\\\bG1\\\\b\",\n \"MicromaxTablet\": \"Funbook|Micromax.*\\\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\\\b\",\n \"KarbonnTablet\": \"Android.*\\\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\\\b\",\n \"AllFineTablet\": \"Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide\",\n \"PROSCANTablet\": \"\\\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\\\b\",\n \"YONESTablet\": \"BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026\",\n \"ChangJiaTablet\": \"TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503\",\n \"GUTablet\": \"TX-A1301|TX-M9002|Q702|kf026\",\n \"PointOfViewTablet\": \"TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10\",\n \"OvermaxTablet\": \"OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)|Qualcore 1027\",\n \"HCLTablet\": \"HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync\",\n \"DPSTablet\": \"DPS Dream 9|DPS Dual 7\",\n \"VistureTablet\": \"V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10\",\n \"CrestaTablet\": \"CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989\",\n \"MediatekTablet\": \"\\\\bMT8125|MT8389|MT8135|MT8377\\\\b\",\n \"ConcordeTablet\": \"Concorde([ ]+)?Tab|ConCorde ReadMan\",\n \"GoCleverTablet\": \"GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042\",\n \"ModecomTablet\": \"FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003\",\n \"VoninoTablet\": \"\\\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\\\bQ8\\\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\\\b\",\n \"ECSTablet\": \"V07OT2|TM105A|S10OT1|TR10CS1\",\n \"StorexTablet\": \"eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab\",\n \"VodafoneTablet\": \"SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497|VFD 1400\",\n \"EssentielBTablet\": \"Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2\",\n \"RossMoorTablet\": \"RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711\",\n \"iMobileTablet\": \"i-mobile i-note\",\n \"TolinoTablet\": \"tolino tab [0-9.]+|tolino shine\",\n \"AudioSonicTablet\": \"\\\\bC-22Q|T7-QC|T-17B|T-17P\\\\b\",\n \"AMPETablet\": \"Android.* A78 \",\n \"SkkTablet\": \"Android.* (SKYPAD|PHOENIX|CYCLOPS)\",\n \"TecnoTablet\": \"TECNO P9|TECNO DP8D\",\n \"JXDTablet\": \"Android.* \\\\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\\\b\",\n \"iJoyTablet\": \"Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)\",\n \"FX2Tablet\": \"FX2 PAD7|FX2 PAD10\",\n \"XoroTablet\": \"KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151\",\n \"ViewsonicTablet\": \"ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a\",\n \"VerizonTablet\": \"QTAQZ3|QTAIR7|QTAQTZ3|QTASUN1|QTASUN2|QTAXIA1\",\n \"OdysTablet\": \"LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\\\\bXELIO\\\\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10\",\n \"CaptivaTablet\": \"CAPTIVA PAD\",\n \"IconbitTablet\": \"NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S\",\n \"TeclastTablet\": \"T98 4G|\\\\bP80\\\\b|\\\\bX90HD\\\\b|X98 Air|X98 Air 3G|\\\\bX89\\\\b|P80 3G|\\\\bX80h\\\\b|P98 Air|\\\\bX89HD\\\\b|P98 3G|\\\\bP90HD\\\\b|P89 3G|X98 3G|\\\\bP70h\\\\b|P79HD 3G|G18d 3G|\\\\bP79HD\\\\b|\\\\bP89s\\\\b|\\\\bA88\\\\b|\\\\bP10HD\\\\b|\\\\bP19HD\\\\b|G18 3G|\\\\bP78HD\\\\b|\\\\bA78\\\\b|\\\\bP75\\\\b|G17s 3G|G17h 3G|\\\\bP85t\\\\b|\\\\bP90\\\\b|\\\\bP11\\\\b|\\\\bP98t\\\\b|\\\\bP98HD\\\\b|\\\\bG18d\\\\b|\\\\bP85s\\\\b|\\\\bP11HD\\\\b|\\\\bP88s\\\\b|\\\\bA80HD\\\\b|\\\\bA80se\\\\b|\\\\bA10h\\\\b|\\\\bP89\\\\b|\\\\bP78s\\\\b|\\\\bG18\\\\b|\\\\bP85\\\\b|\\\\bA70h\\\\b|\\\\bA70\\\\b|\\\\bG17\\\\b|\\\\bP18\\\\b|\\\\bA80s\\\\b|\\\\bA11s\\\\b|\\\\bP88HD\\\\b|\\\\bA80h\\\\b|\\\\bP76s\\\\b|\\\\bP76h\\\\b|\\\\bP98\\\\b|\\\\bA10HD\\\\b|\\\\bP78\\\\b|\\\\bP88\\\\b|\\\\bA11\\\\b|\\\\bA10t\\\\b|\\\\bP76a\\\\b|\\\\bP76t\\\\b|\\\\bP76e\\\\b|\\\\bP85HD\\\\b|\\\\bP85a\\\\b|\\\\bP86\\\\b|\\\\bP75HD\\\\b|\\\\bP76v\\\\b|\\\\bA12\\\\b|\\\\bP75a\\\\b|\\\\bA15\\\\b|\\\\bP76Ti\\\\b|\\\\bP81HD\\\\b|\\\\bA10\\\\b|\\\\bT760VE\\\\b|\\\\bT720HD\\\\b|\\\\bP76\\\\b|\\\\bP73\\\\b|\\\\bP71\\\\b|\\\\bP72\\\\b|\\\\bT720SE\\\\b|\\\\bC520Ti\\\\b|\\\\bT760\\\\b|\\\\bT720VE\\\\b|T720-3GE|T720-WiFi\",\n \"OndaTablet\": \"\\\\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\\\\b[\\\\s]+|V10 \\\\b4G\\\\b\",\n \"JaytechTablet\": \"TPC-PA762\",\n \"BlaupunktTablet\": \"Endeavour 800NG|Endeavour 1010\",\n \"DigmaTablet\": \"\\\\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\\\\b\",\n \"EvolioTablet\": \"ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\\\\bEvotab\\\\b|\\\\bNeura\\\\b\",\n \"LavaTablet\": \"QPAD E704|\\\\bIvoryS\\\\b|E-TAB IVORY|\\\\bE-TAB\\\\b\",\n \"AocTablet\": \"MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712\",\n \"MpmanTablet\": \"MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\\\\bMPG7\\\\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010\",\n \"CelkonTablet\": \"CT695|CT888|CT[\\\\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\\\\bCT-1\\\\b\",\n \"WolderTablet\": \"miTab \\\\b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\\\\b\",\n \"MediacomTablet\": \"M-MPI10C3G|M-SP10EG|M-SP10EGP|M-SP10HXAH|M-SP7HXAH|M-SP10HXBH|M-SP8HXAH|M-SP8MXA\",\n \"MiTablet\": \"\\\\bMI PAD\\\\b|\\\\bHM NOTE 1W\\\\b\",\n \"NibiruTablet\": \"Nibiru M1|Nibiru Jupiter One\",\n \"NexoTablet\": \"NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI\",\n \"LeaderTablet\": \"TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100\",\n \"UbislateTablet\": \"UbiSlate[\\\\s]?7C\",\n \"PocketBookTablet\": \"Pocketbook\",\n \"KocasoTablet\": \"\\\\b(TB-1207)\\\\b\",\n \"HisenseTablet\": \"\\\\b(F5281|E2371)\\\\b\",\n \"Hudl\": \"Hudl HT7S3|Hudl 2\",\n \"TelstraTablet\": \"T-Hub2\",\n \"GenericTablet\": \"Android.*\\\\b97D\\\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\\\bA7EB\\\\b|CatNova8|A1_07|CT704|CT1002|\\\\bM721\\\\b|rk30sdk|\\\\bEVOTAB\\\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\\\\bM6pro\\\\b|CT1020W|arc 10HD|\\\\bTP750\\\\b|\\\\bQTAQZ3\\\\b|WVT101|TM1088|KT107\"\n },\n \"oss\": {\n \"AndroidOS\": \"Android\",\n \"BlackBerryOS\": \"blackberry|\\\\bBB10\\\\b|rim tablet os\",\n \"PalmOS\": \"PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino\",\n \"SymbianOS\": \"Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\\\bS60\\\\b\",\n \"WindowsMobileOS\": \"Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Windows Mobile|Windows Phone [0-9.]+|WCE;\",\n \"WindowsPhoneOS\": \"Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;\",\n \"iOS\": \"\\\\biPhone.*Mobile|\\\\biPod|\\\\biPad|AppleCoreMedia\",\n \"iPadOS\": \"CPU OS 13\",\n \"SailfishOS\": \"Sailfish\",\n \"MeeGoOS\": \"MeeGo\",\n \"MaemoOS\": \"Maemo\",\n \"JavaOS\": \"J2ME\\/|\\\\bMIDP\\\\b|\\\\bCLDC\\\\b\",\n \"webOS\": \"webOS|hpwOS\",\n \"badaOS\": \"\\\\bBada\\\\b\",\n \"BREWOS\": \"BREW\"\n },\n \"uas\": {\n \"Chrome\": \"\\\\bCrMo\\\\b|CriOS|Android.*Chrome\\/[.0-9]* (Mobile)?\",\n \"Dolfin\": \"\\\\bDolfin\\\\b\",\n \"Opera\": \"Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\\/[0-9.]+$|Coast\\/[0-9.]+\",\n \"Skyfire\": \"Skyfire\",\n \"Edge\": \"\\\\bEdgiOS\\\\b|Mobile Safari\\/[.0-9]* Edge\",\n \"IE\": \"IEMobile|MSIEMobile\",\n \"Firefox\": \"fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS\",\n \"Bolt\": \"bolt\",\n \"TeaShark\": \"teashark\",\n \"Blazer\": \"Blazer\",\n \"Safari\": \"Version((?!\\\\bEdgiOS\\\\b).)*Mobile.*Safari|Safari.*Mobile|MobileSafari\",\n \"WeChat\": \"\\\\bMicroMessenger\\\\b\",\n \"UCBrowser\": \"UC.*Browser|UCWEB\",\n \"baiduboxapp\": \"baiduboxapp\",\n \"baidubrowser\": \"baidubrowser\",\n \"DiigoBrowser\": \"DiigoBrowser\",\n \"Mercury\": \"\\\\bMercury\\\\b\",\n \"ObigoBrowser\": \"Obigo\",\n \"NetFront\": \"NF-Browser\",\n \"GenericBrowser\": \"NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger\",\n \"PaleMoon\": \"Android.*PaleMoon|Mobile.*PaleMoon\"\n },\n \"props\": {\n \"Mobile\": \"Mobile\\/[VER]\",\n \"Build\": \"Build\\/[VER]\",\n \"Version\": \"Version\\/[VER]\",\n \"VendorID\": \"VendorID\\/[VER]\",\n \"iPad\": \"iPad.*CPU[a-z ]+[VER]\",\n \"iPhone\": \"iPhone.*CPU[a-z ]+[VER]\",\n \"iPod\": \"iPod.*CPU[a-z ]+[VER]\",\n \"Kindle\": \"Kindle\\/[VER]\",\n \"Chrome\": [\n \"Chrome\\/[VER]\",\n \"CriOS\\/[VER]\",\n \"CrMo\\/[VER]\"\n ],\n \"Coast\": [\n \"Coast\\/[VER]\"\n ],\n \"Dolfin\": \"Dolfin\\/[VER]\",\n \"Firefox\": [\n \"Firefox\\/[VER]\",\n \"FxiOS\\/[VER]\"\n ],\n \"Fennec\": \"Fennec\\/[VER]\",\n \"Edge\": \"Edge\\/[VER]\",\n \"IE\": [\n \"IEMobile\\/[VER];\",\n \"IEMobile [VER]\",\n \"MSIE [VER];\",\n \"Trident\\/[0-9.]+;.*rv:[VER]\"\n ],\n \"NetFront\": \"NetFront\\/[VER]\",\n \"NokiaBrowser\": \"NokiaBrowser\\/[VER]\",\n \"Opera\": [\n \" OPR\\/[VER]\",\n \"Opera Mini\\/[VER]\",\n \"Version\\/[VER]\"\n ],\n \"Opera Mini\": \"Opera Mini\\/[VER]\",\n \"Opera Mobi\": \"Version\\/[VER]\",\n \"UCBrowser\": [\n \"UCWEB[VER]\",\n \"UC.*Browser\\/[VER]\"\n ],\n \"MQQBrowser\": \"MQQBrowser\\/[VER]\",\n \"MicroMessenger\": \"MicroMessenger\\/[VER]\",\n \"baiduboxapp\": \"baiduboxapp\\/[VER]\",\n \"baidubrowser\": \"baidubrowser\\/[VER]\",\n \"SamsungBrowser\": \"SamsungBrowser\\/[VER]\",\n \"Iron\": \"Iron\\/[VER]\",\n \"Safari\": [\n \"Version\\/[VER]\",\n \"Safari\\/[VER]\"\n ],\n \"Skyfire\": \"Skyfire\\/[VER]\",\n \"Tizen\": \"Tizen\\/[VER]\",\n \"Webkit\": \"webkit[ \\/][VER]\",\n \"PaleMoon\": \"PaleMoon\\/[VER]\",\n \"SailfishBrowser\": \"SailfishBrowser\\/[VER]\",\n \"Gecko\": \"Gecko\\/[VER]\",\n \"Trident\": \"Trident\\/[VER]\",\n \"Presto\": \"Presto\\/[VER]\",\n \"Goanna\": \"Goanna\\/[VER]\",\n \"iOS\": \" \\\\bi?OS\\\\b [VER][ ;]{1}\",\n \"Android\": \"Android [VER]\",\n \"Sailfish\": \"Sailfish [VER]\",\n \"BlackBerry\": [\n \"BlackBerry[\\\\w]+\\/[VER]\",\n \"BlackBerry.*Version\\/[VER]\",\n \"Version\\/[VER]\"\n ],\n \"BREW\": \"BREW [VER]\",\n \"Java\": \"Java\\/[VER]\",\n \"Windows Phone OS\": [\n \"Windows Phone OS [VER]\",\n \"Windows Phone [VER]\"\n ],\n \"Windows Phone\": \"Windows Phone [VER]\",\n \"Windows CE\": \"Windows CE\\/[VER]\",\n \"Windows NT\": \"Windows NT [VER]\",\n \"Symbian\": [\n \"SymbianOS\\/[VER]\",\n \"Symbian\\/[VER]\"\n ],\n \"webOS\": [\n \"webOS\\/[VER]\",\n \"hpwOS\\/[VER];\"\n ]\n },\n \"utils\": {\n \"Bot\": \"Googlebot|facebookexternalhit|Google-AMPHTML|s~amp-validator|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom|contentkingapp|AspiegelBot\",\n \"MobileBot\": \"Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker\\/M1A1-R2D2\",\n \"DesktopMode\": \"WPDesktop\",\n \"TV\": \"SonyDTV|HbbTV\",\n \"WebKit\": \"(webkit)[ \\/]([\\\\w.]+)\",\n \"Console\": \"\\\\b(Nintendo|Nintendo WiiU|Nintendo 3DS|Nintendo Switch|PLAYSTATION|Xbox)\\\\b\",\n \"Watch\": \"SM-V700\"\n }\n};\n\n // following patterns come from http://detectmobilebrowsers.com/\n impl.detectMobileBrowsers = {\n fullPattern: /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,\n shortPattern: /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i,\n tabletPattern: /android|ipad|playbook|silk/i\n };\n\n var hasOwnProp = Object.prototype.hasOwnProperty,\n isArray;\n\n impl.FALLBACK_PHONE = 'UnknownPhone';\n impl.FALLBACK_TABLET = 'UnknownTablet';\n impl.FALLBACK_MOBILE = 'UnknownMobile';\n\n isArray = ('isArray' in Array) ?\n Array.isArray : function (value) { return Object.prototype.toString.call(value) === '[object Array]'; };\n\n function equalIC(a, b) {\n return a != null && b != null && a.toLowerCase() === b.toLowerCase();\n }\n\n function containsIC(array, value) {\n var valueLC, i, len = array.length;\n if (!len || !value) {\n return false;\n }\n valueLC = value.toLowerCase();\n for (i = 0; i < len; ++i) {\n if (valueLC === array[i].toLowerCase()) {\n return true;\n }\n }\n return false;\n }\n\n function convertPropsToRegExp(object) {\n for (var key in object) {\n if (hasOwnProp.call(object, key)) {\n object[key] = new RegExp(object[key], 'i');\n }\n }\n }\n\n function prepareUserAgent(userAgent) {\n return (userAgent || '').substr(0, 500); // mitigate vulnerable to ReDoS\n }\n\n (function init() {\n var key, values, value, i, len, verPos, mobileDetectRules = impl.mobileDetectRules;\n for (key in mobileDetectRules.props) {\n if (hasOwnProp.call(mobileDetectRules.props, key)) {\n values = mobileDetectRules.props[key];\n if (!isArray(values)) {\n values = [values];\n }\n len = values.length;\n for (i = 0; i < len; ++i) {\n value = values[i];\n verPos = value.indexOf('[VER]');\n if (verPos >= 0) {\n value = value.substring(0, verPos) + '([\\\\w._\\\\+]+)' + value.substring(verPos + 5);\n }\n values[i] = new RegExp(value, 'i');\n }\n mobileDetectRules.props[key] = values;\n }\n }\n convertPropsToRegExp(mobileDetectRules.oss);\n convertPropsToRegExp(mobileDetectRules.phones);\n convertPropsToRegExp(mobileDetectRules.tablets);\n convertPropsToRegExp(mobileDetectRules.uas);\n convertPropsToRegExp(mobileDetectRules.utils);\n\n // copy some patterns to oss0 which are tested first (see issue#15)\n mobileDetectRules.oss0 = {\n WindowsPhoneOS: mobileDetectRules.oss.WindowsPhoneOS,\n WindowsMobileOS: mobileDetectRules.oss.WindowsMobileOS\n };\n }());\n\n /**\n * Test userAgent string against a set of rules and find the first matched key.\n * @param {Object} rules (key is String, value is RegExp)\n * @param {String} userAgent the navigator.userAgent (or HTTP-Header 'User-Agent').\n * @returns {String|null} the matched key if found, otherwise null\n * @private\n */\n impl.findMatch = function(rules, userAgent) {\n for (var key in rules) {\n if (hasOwnProp.call(rules, key)) {\n if (rules[key].test(userAgent)) {\n return key;\n }\n }\n }\n return null;\n };\n\n /**\n * Test userAgent string against a set of rules and return an array of matched keys.\n * @param {Object} rules (key is String, value is RegExp)\n * @param {String} userAgent the navigator.userAgent (or HTTP-Header 'User-Agent').\n * @returns {Array} an array of matched keys, may be empty when there is no match, but not null\n * @private\n */\n impl.findMatches = function(rules, userAgent) {\n var result = [];\n for (var key in rules) {\n if (hasOwnProp.call(rules, key)) {\n if (rules[key].test(userAgent)) {\n result.push(key);\n }\n }\n }\n return result;\n };\n\n /**\n * Check the version of the given property in the User-Agent.\n *\n * @param {String} propertyName\n * @param {String} userAgent\n * @return {String} version or null if version not found\n * @private\n */\n impl.getVersionStr = function (propertyName, userAgent) {\n var props = impl.mobileDetectRules.props, patterns, i, len, match;\n if (hasOwnProp.call(props, propertyName)) {\n patterns = props[propertyName];\n len = patterns.length;\n for (i = 0; i < len; ++i) {\n match = patterns[i].exec(userAgent);\n if (match !== null) {\n return match[1];\n }\n }\n }\n return null;\n };\n\n /**\n * Check the version of the given property in the User-Agent.\n * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)\n *\n * @param {String} propertyName\n * @param {String} userAgent\n * @return {Number} version or NaN if version not found\n * @private\n */\n impl.getVersion = function (propertyName, userAgent) {\n var version = impl.getVersionStr(propertyName, userAgent);\n return version ? impl.prepareVersionNo(version) : NaN;\n };\n\n /**\n * Prepare the version number.\n *\n * @param {String} version\n * @return {Number} the version number as a floating number\n * @private\n */\n impl.prepareVersionNo = function (version) {\n var numbers;\n\n numbers = version.split(/[a-z._ \\/\\-]/i);\n if (numbers.length === 1) {\n version = numbers[0];\n }\n if (numbers.length > 1) {\n version = numbers[0] + '.';\n numbers.shift();\n version += numbers.join('');\n }\n return Number(version);\n };\n\n impl.isMobileFallback = function (userAgent) {\n return impl.detectMobileBrowsers.fullPattern.test(userAgent) ||\n impl.detectMobileBrowsers.shortPattern.test(userAgent.substr(0,4));\n };\n\n impl.isTabletFallback = function (userAgent) {\n return impl.detectMobileBrowsers.tabletPattern.test(userAgent);\n };\n\n impl.prepareDetectionCache = function (cache, userAgent, maxPhoneWidth) {\n if (cache.mobile !== undefined) {\n return;\n }\n var phone, tablet, phoneSized;\n\n // first check for stronger tablet rules, then phone (see issue#5)\n tablet = impl.findMatch(impl.mobileDetectRules.tablets, userAgent);\n if (tablet) {\n cache.mobile = cache.tablet = tablet;\n cache.phone = null;\n return; // unambiguously identified as tablet\n }\n\n phone = impl.findMatch(impl.mobileDetectRules.phones, userAgent);\n if (phone) {\n cache.mobile = cache.phone = phone;\n cache.tablet = null;\n return; // unambiguously identified as phone\n }\n\n // our rules haven't found a match -> try more general fallback rules\n if (impl.isMobileFallback(userAgent)) {\n phoneSized = MobileDetect.isPhoneSized(maxPhoneWidth);\n if (phoneSized === undefined) {\n cache.mobile = impl.FALLBACK_MOBILE;\n cache.tablet = cache.phone = null;\n } else if (phoneSized) {\n cache.mobile = cache.phone = impl.FALLBACK_PHONE;\n cache.tablet = null;\n } else {\n cache.mobile = cache.tablet = impl.FALLBACK_TABLET;\n cache.phone = null;\n }\n } else if (impl.isTabletFallback(userAgent)) {\n cache.mobile = cache.tablet = impl.FALLBACK_TABLET;\n cache.phone = null;\n } else {\n // not mobile at all!\n cache.mobile = cache.tablet = cache.phone = null;\n }\n };\n\n // t is a reference to a MobileDetect instance\n impl.mobileGrade = function (t) {\n // impl note:\n // To keep in sync w/ Mobile_Detect.php easily, the following code is tightly aligned to the PHP version.\n // When changes are made in Mobile_Detect.php, copy this method and replace:\n // $this-> / t.\n // self::MOBILE_GRADE_(.) / '$1'\n // , self::VERSION_TYPE_FLOAT / (nothing)\n // isIOS() / os('iOS')\n // [reg] / (nothing) <-- jsdelivr complaining about unescaped unicode character U+00AE\n var $isMobile = t.mobile() !== null;\n\n if (\n // Apple iOS 3.2-5.1 - Tested on the original iPad (4.3 / 5.0), iPad 2 (4.3), iPad 3 (5.1), original iPhone (3.1), iPhone 3 (3.2), 3GS (4.3), 4 (4.3 / 5.0), and 4S (5.1)\n t.os('iOS') && t.version('iPad')>=4.3 ||\n t.os('iOS') && t.version('iPhone')>=3.1 ||\n t.os('iOS') && t.version('iPod')>=3.1 ||\n\n // Android 2.1-2.3 - Tested on the HTC Incredible (2.2), original Droid (2.2), HTC Aria (2.1), Google Nexus S (2.3). Functional on 1.5 & 1.6 but performance may be sluggish, tested on Google G1 (1.5)\n // Android 3.1 (Honeycomb) - Tested on the Samsung Galaxy Tab 10.1 and Motorola XOOM\n // Android 4.0 (ICS) - Tested on a Galaxy Nexus. Note: transition performance can be poor on upgraded devices\n // Android 4.1 (Jelly Bean) - Tested on a Galaxy Nexus and Galaxy 7\n ( t.version('Android')>2.1 && t.is('Webkit') ) ||\n\n // Windows Phone 7-7.5 - Tested on the HTC Surround (7.0) HTC Trophy (7.5), LG-E900 (7.5), Nokia Lumia 800\n t.version('Windows Phone OS')>=7.0 ||\n\n // Blackberry 7 - Tested on BlackBerry Torch 9810\n // Blackberry 6.0 - Tested on the Torch 9800 and Style 9670\n t.is('BlackBerry') && t.version('BlackBerry')>=6.0 ||\n // Blackberry Playbook (1.0-2.0) - Tested on PlayBook\n t.match('Playbook.*Tablet') ||\n\n // Palm WebOS (1.4-2.0) - Tested on the Palm Pixi (1.4), Pre (1.4), Pre 2 (2.0)\n ( t.version('webOS')>=1.4 && t.match('Palm|Pre|Pixi') ) ||\n // Palm WebOS 3.0 - Tested on HP TouchPad\n t.match('hp.*TouchPad') ||\n\n // Firefox Mobile (12 Beta) - Tested on Android 2.3 device\n ( t.is('Firefox') && t.version('Firefox')>=12 ) ||\n\n // Chrome for Android - Tested on Android 4.0, 4.1 device\n ( t.is('Chrome') && t.is('AndroidOS') && t.version('Android')>=4.0 ) ||\n\n // Skyfire 4.1 - Tested on Android 2.3 device\n ( t.is('Skyfire') && t.version('Skyfire')>=4.1 && t.is('AndroidOS') && t.version('Android')>=2.3 ) ||\n\n // Opera Mobile 11.5-12: Tested on Android 2.3\n ( t.is('Opera') && t.version('Opera Mobi')>11 && t.is('AndroidOS') ) ||\n\n // Meego 1.2 - Tested on Nokia 950 and N9\n t.is('MeeGoOS') ||\n\n // Tizen (pre-release) - Tested on early hardware\n t.is('Tizen') ||\n\n // Samsung Bada 2.0 - Tested on a Samsung Wave 3, Dolphin browser\n // @todo: more tests here!\n t.is('Dolfin') && t.version('Bada')>=2.0 ||\n\n // UC Browser - Tested on Android 2.3 device\n ( (t.is('UC Browser') || t.is('Dolfin')) && t.version('Android')>=2.3 ) ||\n\n // Kindle 3 and Fire - Tested on the built-in WebKit browser for each\n ( t.match('Kindle Fire') ||\n t.is('Kindle') && t.version('Kindle')>=3.0 ) ||\n\n // Nook Color 1.4.1 - Tested on original Nook Color, not Nook Tablet\n t.is('AndroidOS') && t.is('NookTablet') ||\n\n // Chrome Desktop 11-21 - Tested on OS X 10.7 and Windows 7\n t.version('Chrome')>=11 && !$isMobile ||\n\n // Safari Desktop 4-5 - Tested on OS X 10.7 and Windows 7\n t.version('Safari')>=5.0 && !$isMobile ||\n\n // Firefox Desktop 4-13 - Tested on OS X 10.7 and Windows 7\n t.version('Firefox')>=4.0 && !$isMobile ||\n\n // Internet Explorer 7-9 - Tested on Windows XP, Vista and 7\n t.version('MSIE')>=7.0 && !$isMobile ||\n\n // Opera Desktop 10-12 - Tested on OS X 10.7 and Windows 7\n // @reference: http://my.opera.com/community/openweb/idopera/\n t.version('Opera')>=10 && !$isMobile\n\n ){\n return 'A';\n }\n\n if (\n t.os('iOS') && t.version('iPad')<4.3 ||\n t.os('iOS') && t.version('iPhone')<3.1 ||\n t.os('iOS') && t.version('iPod')<3.1 ||\n\n // Blackberry 5.0: Tested on the Storm 2 9550, Bold 9770\n t.is('Blackberry') && t.version('BlackBerry')>=5 && t.version('BlackBerry')<6 ||\n\n //Opera Mini (5.0-6.5) - Tested on iOS 3.2/4.3 and Android 2.3\n ( t.version('Opera Mini')>=5.0 && t.version('Opera Mini')<=6.5 &&\n (t.version('Android')>=2.3 || t.is('iOS')) ) ||\n\n // Nokia Symbian^3 - Tested on Nokia N8 (Symbian^3), C7 (Symbian^3), also works on N97 (Symbian^1)\n t.match('NokiaN8|NokiaC7|N97.*Series60|Symbian/3') ||\n\n // @todo: report this (tested on Nokia N71)\n t.version('Opera Mobi')>=11 && t.is('SymbianOS')\n ){\n return 'B';\n }\n\n if (\n // Blackberry 4.x - Tested on the Curve 8330\n t.version('BlackBerry')<5.0 ||\n // Windows Mobile - Tested on the HTC Leo (WinMo 5.2)\n t.match('MSIEMobile|Windows CE.*Mobile') || t.version('Windows Mobile')<=5.2\n\n ){\n return 'C';\n }\n\n //All older smartphone platforms and featurephones - Any device that doesn't support media queries\n //will receive the basic, C grade experience.\n return 'C';\n };\n\n impl.detectOS = function (ua) {\n return impl.findMatch(impl.mobileDetectRules.oss0, ua) ||\n impl.findMatch(impl.mobileDetectRules.oss, ua);\n };\n\n impl.getDeviceSmallerSide = function () {\n return window.screen.width < window.screen.height ?\n window.screen.width :\n window.screen.height;\n };\n\n /**\n * Constructor for MobileDetect object.\n *
\n * Such an object will keep a reference to the given user-agent string and cache most of the detect queries.
\n *
\n * Find information how to download and install:\n * github.com/hgoebl/mobile-detect.js/\n *
\n *\n * @example
\n     *     var md = new MobileDetect(window.navigator.userAgent);\n     *     if (md.mobile()) {\n     *         location.href = (md.mobileGrade() === 'A') ? '/mobile/' : '/lynx/';\n     *     }\n     * 
\n *\n * @param {string} userAgent typically taken from window.navigator.userAgent or http_header['User-Agent']\n * @param {number} [maxPhoneWidth=600] only for browsers specify a value for the maximum\n * width of smallest device side (in logical \"CSS\" pixels) until a device detected as mobile will be handled\n * as phone.\n * This is only used in cases where the device cannot be classified as phone or tablet.
\n * See Declaring Tablet Layouts\n * for Android.
\n * If you provide a value < 0, then this \"fuzzy\" check is disabled.\n * @constructor\n * @global\n */\n function MobileDetect(userAgent, maxPhoneWidth) {\n this.ua = prepareUserAgent(userAgent);\n this._cache = {};\n //600dp is typical 7\" tablet minimum width\n this.maxPhoneWidth = maxPhoneWidth || 600;\n }\n\n MobileDetect.prototype = {\n constructor: MobileDetect,\n\n /**\n * Returns the detected phone or tablet type or null if it is not a mobile device.\n *
\n * For a list of possible return values see {@link MobileDetect#phone} and {@link MobileDetect#tablet}.
\n *
\n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n * the patterns of detectmobilebrowsers.com. If this test\n * is positive, a value of UnknownPhone, UnknownTablet or\n * UnknownMobile is returned.
\n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
\n *
\n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\n * and UnknownMobile, so you will get UnknownMobile here.
\n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\n *
\n * In most cases you will use the return value just as a boolean.\n *\n * @returns {String} the key for the phone family or tablet family, e.g. \"Nexus\".\n * @function MobileDetect#mobile\n */\n mobile: function () {\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n return this._cache.mobile;\n },\n\n /**\n * Returns the detected phone type/family string or null.\n *
\n * The returned tablet (family or producer) is one of following keys:
\n *
iPhone, BlackBerry, Pixel, HTC, Nexus, Dell, Motorola, Samsung, LG, Sony, Asus,\n * Xiaomi, NokiaLumia, Micromax, Palm, Vertu, Pantech, Fly, Wiko, iMobile,\n * SimValley, Wolfgang, Alcatel, Nintendo, Amoi, INQ, OnePlus, GenericPhone
\n *
\n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n * the patterns of detectmobilebrowsers.com. If this test\n * is positive, a value of UnknownPhone or UnknownMobile is returned.
\n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
\n *
\n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\n * and UnknownMobile, so you will get null here, while {@link MobileDetect#mobile}\n * will return UnknownMobile.
\n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\n *
\n * In most cases you will use the return value just as a boolean.\n *\n * @returns {String} the key of the phone family or producer, e.g. \"iPhone\"\n * @function MobileDetect#phone\n */\n phone: function () {\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n return this._cache.phone;\n },\n\n /**\n * Returns the detected tablet type/family string or null.\n *
\n * The returned tablet (family or producer) is one of following keys:
\n *
iPad, NexusTablet, GoogleTablet, SamsungTablet, Kindle, SurfaceTablet,\n * HPTablet, AsusTablet, BlackBerryTablet, HTCtablet, MotorolaTablet, NookTablet,\n * AcerTablet, ToshibaTablet, LGTablet, FujitsuTablet, PrestigioTablet,\n * LenovoTablet, DellTablet, YarvikTablet, MedionTablet, ArnovaTablet,\n * IntensoTablet, IRUTablet, MegafonTablet, EbodaTablet, AllViewTablet,\n * ArchosTablet, AinolTablet, NokiaLumiaTablet, SonyTablet, PhilipsTablet,\n * CubeTablet, CobyTablet, MIDTablet, MSITablet, SMiTTablet, RockChipTablet,\n * FlyTablet, bqTablet, HuaweiTablet, NecTablet, PantechTablet, BronchoTablet,\n * VersusTablet, ZyncTablet, PositivoTablet, NabiTablet, KoboTablet, DanewTablet,\n * TexetTablet, PlaystationTablet, TrekstorTablet, PyleAudioTablet, AdvanTablet,\n * DanyTechTablet, GalapadTablet, MicromaxTablet, KarbonnTablet, AllFineTablet,\n * PROSCANTablet, YONESTablet, ChangJiaTablet, GUTablet, PointOfViewTablet,\n * OvermaxTablet, HCLTablet, DPSTablet, VistureTablet, CrestaTablet,\n * MediatekTablet, ConcordeTablet, GoCleverTablet, ModecomTablet, VoninoTablet,\n * ECSTablet, StorexTablet, VodafoneTablet, EssentielBTablet, RossMoorTablet,\n * iMobileTablet, TolinoTablet, AudioSonicTablet, AMPETablet, SkkTablet,\n * TecnoTablet, JXDTablet, iJoyTablet, FX2Tablet, XoroTablet, ViewsonicTablet,\n * VerizonTablet, OdysTablet, CaptivaTablet, IconbitTablet, TeclastTablet,\n * OndaTablet, JaytechTablet, BlaupunktTablet, DigmaTablet, EvolioTablet,\n * LavaTablet, AocTablet, MpmanTablet, CelkonTablet, WolderTablet, MediacomTablet,\n * MiTablet, NibiruTablet, NexoTablet, LeaderTablet, UbislateTablet,\n * PocketBookTablet, KocasoTablet, HisenseTablet, Hudl, TelstraTablet,\n * GenericTablet
\n *
\n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n * the patterns of detectmobilebrowsers.com. If this test\n * is positive, a value of UnknownTablet or UnknownMobile is returned.
\n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
\n *
\n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\n * and UnknownMobile, so you will get null here, while {@link MobileDetect#mobile}\n * will return UnknownMobile.
\n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\n *
\n * In most cases you will use the return value just as a boolean.\n *\n * @returns {String} the key of the tablet family or producer, e.g. \"SamsungTablet\"\n * @function MobileDetect#tablet\n */\n tablet: function () {\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n return this._cache.tablet;\n },\n\n /**\n * Returns the (first) detected user-agent string or null.\n *
\n * The returned user-agent is one of following keys:
\n *
Chrome, Dolfin, Opera, Skyfire, Edge, IE, Firefox, Bolt, TeaShark, Blazer,\n * Safari, WeChat, UCBrowser, baiduboxapp, baidubrowser, DiigoBrowser, Mercury,\n * ObigoBrowser, NetFront, GenericBrowser, PaleMoon
\n *
\n * In most cases calling {@link MobileDetect#userAgent} will be sufficient. But there are rare\n * cases where a mobile device pretends to be more than one particular browser. You can get the\n * list of all matches with {@link MobileDetect#userAgents} or check for a particular value by\n * providing one of the defined keys as first argument to {@link MobileDetect#is}.\n *\n * @returns {String} the key for the detected user-agent or null\n * @function MobileDetect#userAgent\n */\n userAgent: function () {\n if (this._cache.userAgent === undefined) {\n this._cache.userAgent = impl.findMatch(impl.mobileDetectRules.uas, this.ua);\n }\n return this._cache.userAgent;\n },\n\n /**\n * Returns all detected user-agent strings.\n *
\n * The array is empty or contains one or more of following keys:
\n *
Chrome, Dolfin, Opera, Skyfire, Edge, IE, Firefox, Bolt, TeaShark, Blazer,\n * Safari, WeChat, UCBrowser, baiduboxapp, baidubrowser, DiigoBrowser, Mercury,\n * ObigoBrowser, NetFront, GenericBrowser, PaleMoon
\n *
\n * In most cases calling {@link MobileDetect#userAgent} will be sufficient. But there are rare\n * cases where a mobile device pretends to be more than one particular browser. You can get the\n * list of all matches with {@link MobileDetect#userAgents} or check for a particular value by\n * providing one of the defined keys as first argument to {@link MobileDetect#is}.\n *\n * @returns {Array} the array of detected user-agent keys or []\n * @function MobileDetect#userAgents\n */\n userAgents: function () {\n if (this._cache.userAgents === undefined) {\n this._cache.userAgents = impl.findMatches(impl.mobileDetectRules.uas, this.ua);\n }\n return this._cache.userAgents;\n },\n\n /**\n * Returns the detected operating system string or null.\n *
\n * The operating system is one of following keys:
\n *
AndroidOS, BlackBerryOS, PalmOS, SymbianOS, WindowsMobileOS, WindowsPhoneOS,\n * iOS, iPadOS, SailfishOS, MeeGoOS, MaemoOS, JavaOS, webOS, badaOS, BREWOS
\n *\n * @returns {String} the key for the detected operating system.\n * @function MobileDetect#os\n */\n os: function () {\n if (this._cache.os === undefined) {\n this._cache.os = impl.detectOS(this.ua);\n }\n return this._cache.os;\n },\n\n /**\n * Get the version (as Number) of the given property in the User-Agent.\n *
\n * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)\n *\n * @param {String} key a key defining a thing which has a version.
\n * You can use one of following keys:
\n *
Mobile, Build, Version, VendorID, iPad, iPhone, iPod, Kindle, Chrome, Coast,\n * Dolfin, Firefox, Fennec, Edge, IE, NetFront, NokiaBrowser, Opera, Opera Mini,\n * Opera Mobi, UCBrowser, MQQBrowser, MicroMessenger, baiduboxapp, baidubrowser,\n * SamsungBrowser, Iron, Safari, Skyfire, Tizen, Webkit, PaleMoon,\n * SailfishBrowser, Gecko, Trident, Presto, Goanna, iOS, Android, Sailfish,\n * BlackBerry, BREW, Java, Windows Phone OS, Windows Phone, Windows CE, Windows\n * NT, Symbian, webOS
\n *\n * @returns {Number} the version as float or NaN if User-Agent doesn't contain this version.\n * Be careful when comparing this value with '==' operator!\n * @function MobileDetect#version\n */\n version: function (key) {\n return impl.getVersion(key, this.ua);\n },\n\n /**\n * Get the version (as String) of the given property in the User-Agent.\n *
\n *\n * @param {String} key a key defining a thing which has a version.
\n * You can use one of following keys:
\n *
Mobile, Build, Version, VendorID, iPad, iPhone, iPod, Kindle, Chrome, Coast,\n * Dolfin, Firefox, Fennec, Edge, IE, NetFront, NokiaBrowser, Opera, Opera Mini,\n * Opera Mobi, UCBrowser, MQQBrowser, MicroMessenger, baiduboxapp, baidubrowser,\n * SamsungBrowser, Iron, Safari, Skyfire, Tizen, Webkit, PaleMoon,\n * SailfishBrowser, Gecko, Trident, Presto, Goanna, iOS, Android, Sailfish,\n * BlackBerry, BREW, Java, Windows Phone OS, Windows Phone, Windows CE, Windows\n * NT, Symbian, webOS
\n *\n * @returns {String} the \"raw\" version as String or null if User-Agent doesn't contain this version.\n *\n * @function MobileDetect#versionStr\n */\n versionStr: function (key) {\n return impl.getVersionStr(key, this.ua);\n },\n\n /**\n * Global test key against userAgent, os, phone, tablet and some other properties of userAgent string.\n *\n * @param {String} key the key (case-insensitive) of a userAgent, an operating system, phone or\n * tablet family.
\n * For a complete list of possible values, see {@link MobileDetect#userAgent},\n * {@link MobileDetect#os}, {@link MobileDetect#phone}, {@link MobileDetect#tablet}.
\n * Additionally you have following keys:
\n *
Bot, MobileBot, DesktopMode, TV, WebKit, Console, Watch
\n *\n * @returns {boolean} true when the given key is one of the defined keys of userAgent, os, phone,\n * tablet or one of the listed additional keys, otherwise false\n * @function MobileDetect#is\n */\n is: function (key) {\n return containsIC(this.userAgents(), key) ||\n equalIC(key, this.os()) ||\n equalIC(key, this.phone()) ||\n equalIC(key, this.tablet()) ||\n containsIC(impl.findMatches(impl.mobileDetectRules.utils, this.ua), key);\n },\n\n /**\n * Do a quick test against navigator::userAgent.\n *\n * @param {String|RegExp} pattern the pattern, either as String or RegExp\n * (a string will be converted to a case-insensitive RegExp).\n * @returns {boolean} true when the pattern matches, otherwise false\n * @function MobileDetect#match\n */\n match: function (pattern) {\n if (!(pattern instanceof RegExp)) {\n pattern = new RegExp(pattern, 'i');\n }\n return pattern.test(this.ua);\n },\n\n /**\n * Checks whether the mobile device can be considered as phone regarding screen.width.\n *
\n * Obviously this method makes sense in browser environments only (not for Node.js)!\n * @param {number} [maxPhoneWidth] the maximum logical pixels (aka. CSS-pixels) to be considered as phone.
\n * The argument is optional and if not present or falsy, the value of the constructor is taken.\n * @returns {boolean|undefined} undefined if screen size wasn't detectable, else true\n * when screen.width is less or equal to maxPhoneWidth, otherwise false.
\n * Will always return undefined server-side.\n */\n isPhoneSized: function (maxPhoneWidth) {\n return MobileDetect.isPhoneSized(maxPhoneWidth || this.maxPhoneWidth);\n },\n\n /**\n * Returns the mobile grade ('A', 'B', 'C').\n *\n * @returns {String} one of the mobile grades ('A', 'B', 'C').\n * @function MobileDetect#mobileGrade\n */\n mobileGrade: function () {\n if (this._cache.grade === undefined) {\n this._cache.grade = impl.mobileGrade(this);\n }\n return this._cache.grade;\n }\n };\n\n // environment-dependent\n if (typeof window !== 'undefined' && window.screen) {\n MobileDetect.isPhoneSized = function (maxPhoneWidth) {\n return maxPhoneWidth < 0 ? undefined : impl.getDeviceSmallerSide() <= maxPhoneWidth;\n };\n } else {\n MobileDetect.isPhoneSized = function () {};\n }\n\n // should not be replaced by a completely new object - just overwrite existing methods\n MobileDetect._impl = impl;\n \n MobileDetect.version = '1.4.5 2021-03-13';\n\n return MobileDetect;\n}); // end of call of define()\n})((function (undefined) {\n if (typeof module !== 'undefined' && module.exports) {\n return function (factory) { module.exports = factory(); };\n } else if (typeof define === 'function' && define.amd) {\n return define;\n } else if (typeof window !== 'undefined') {\n return function (factory) { window.MobileDetect = factory(); };\n } else {\n // please file a bug if you get this error!\n throw new Error('unknown environment');\n }\n})());","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar inspectCustom = require('./util.inspect').custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if ('cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar split = String.prototype.split;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n if (generateArrayPrefix === 'comma' && encodeValuesOnly) {\n var valuesArray = split.call(String(obj), ',');\n var valuesJoined = '';\n for (var i = 0; i < valuesArray.length; ++i) {\n valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));\n }\n return [formatter(keyValue) + '=' + valuesJoined];\n }\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e tag inside default button\n textStyle: _propTypes2.default.object,\n\n // Prevents any events from opening the popup\n // Adds the disabled prop to the button and adjusts the styling as well\n disabled: _propTypes2.default.bool,\n\n // Named component to wrap button (eg. div)\n ComponentClass: _propTypes2.default.string,\n\n // Show a loading indicator\n showLoadingDialog: _propTypes2.default.func,\n // Hide the loading indicator\n hideLoadingDialog: _propTypes2.default.func,\n\n // Run this method when the scrupt fails to load. Will run if the internet\n // connection is offline when attemting to load the script.\n onScriptError: _propTypes2.default.func,\n\n // Runs when the script tag is created, but before it is added to the DOM\n onScriptTagCreated: _propTypes2.default.func,\n\n // By default, any time the React component is updated, it will call\n // StripeCheckout.configure, which may result in additional XHR calls to the\n // stripe API. If you know the first configuration is all you need, you\n // can set this to false. Subsequent updates will affect the StripeCheckout.open\n // (e.g. different prices)\n reconfigureOnUpdate: _propTypes2.default.bool,\n\n // =====================================================\n // Required by stripe\n // see Stripe docs for more info:\n // https://stripe.com/docs/checkout#integration-custom\n // =====================================================\n\n // Your publishable key (test or live).\n // can't use \"key\" as a prop in react, so have to change the keyname\n stripeKey: _propTypes2.default.string.isRequired,\n\n // The callback to invoke when the Checkout process is complete.\n // function(token)\n // token is the token object created.\n // token.id can be used to create a charge or customer.\n // token.email contains the email address entered by the user.\n token: _propTypes2.default.func.isRequired,\n\n // ==========================\n // Highly Recommended Options\n // ==========================\n\n // Name of the company or website.\n name: _propTypes2.default.string,\n\n // A description of the product or service being purchased.\n description: _propTypes2.default.string,\n\n // A relative URL pointing to a square image of your brand or product. The\n // recommended minimum size is 128x128px. The recommended image types are\n // .gif, .jpeg, and .png.\n image: _propTypes2.default.string,\n\n // The amount (in cents) that's shown to the user. Note that you will still\n // have to explicitly include it when you create a charge using the API.\n amount: _propTypes2.default.number,\n\n // Specify auto to display Checkout in the user's preferred language, if\n // available. English will be used by default.\n //\n // https://stripe.com/docs/checkout#supported-languages\n // for more info.\n locale: _propTypes2.default.oneOf(['auto', // (Default) Automatically chosen by checkout\n 'zh', // Simplified Chinese\n 'da', // Danish\n 'nl', // Dutch\n 'en', // English\n 'fr', // French\n 'de', // German\n 'it', // Italian\n 'ja', // Japanease\n 'no', // Norwegian\n 'es', // Spanish\n 'sv']),\n\n // ==============\n // Optional Props\n // ==============\n\n // The currency of the amount (3-letter ISO code). The default is USD.\n currency: _propTypes2.default.oneOf(['AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN', 'BAM', 'BBD', // eslint-disable-line comma-spacing\n 'BDT', 'BGN', 'BIF', 'BMD', 'BND', 'BOB', 'BRL', 'BSD', 'BWP', 'BZD', 'CAD', 'CDF', // eslint-disable-line comma-spacing\n 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EEK', // eslint-disable-line comma-spacing\n 'EGP', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GIP', 'GMD', 'GNF', 'GTQ', 'GYD', // eslint-disable-line comma-spacing\n 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'INR', 'ISK', 'JMD', 'JPY', 'KES', // eslint-disable-line comma-spacing\n 'KGS', 'KHR', 'KMF', 'KRW', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LTL', // eslint-disable-line comma-spacing\n 'LVL', 'MAD', 'MDL', 'MGA', 'MKD', 'MNT', 'MOP', 'MRO', 'MUR', 'MVR', 'MWK', 'MXN', // eslint-disable-line comma-spacing\n 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'PAB', 'PEN', 'PGK', 'PHP', // eslint-disable-line comma-spacing\n 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SEK', // eslint-disable-line comma-spacing\n 'SGD', 'SHP', 'SLL', 'SOS', 'SRD', 'STD', 'SVC', 'SZL', 'THB', 'TJS', 'TOP', 'TRY', // eslint-disable-line comma-spacing\n 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'USD', 'UYU', 'UZS', 'VND', 'VUV', 'WST', 'XAF', // eslint-disable-line comma-spacing\n 'XCD', 'XOF', 'XPF', 'YER', 'ZAR', 'ZMW']),\n\n // The label of the payment button in the Checkout form (e.g. “Subscribe”,\n // “Pay {{amount}}”, etc.). If you include {{amount}}, it will be replaced\n // by the provided amount. Otherwise, the amount will be appended to the\n // end of your label.\n panelLabel: _propTypes2.default.string,\n\n // Specify whether Checkout should validate the billing ZIP code (true or\n // false)\n zipCode: _propTypes2.default.bool,\n\n // Specify whether Checkout should collect the user's billing address\n // (true or false). The default is false.\n billingAddress: _propTypes2.default.bool,\n\n // Specify whether Checkout should collect the user's shipping address\n // (true or false). The default is false.\n shippingAddress: _propTypes2.default.bool,\n\n // Specify whether Checkout should validate the billing ZIP code (true or\n // false). The default is false.\n email: _propTypes2.default.string,\n\n // Specify whether to include the option to \"Remember Me\" for future\n // purchases (true or false). The default is true.\n allowRememberMe: _propTypes2.default.bool,\n\n // Specify whether to accept Bitcoin in Checkout. The default is false.\n bitcoin: _propTypes2.default.bool,\n\n // Specify whether to accept Alipay ('auto', true, or false). The default\n // is false.\n alipay: _propTypes2.default.oneOf(['auto', true, false]),\n\n // Specify if you need reusable access to the customer's Alipay account\n // (true or false). The default is false.\n alipayReusable: _propTypes2.default.bool,\n\n // function() The callback to invoke when Checkout is opened (not supported\n // in IE6 and IE7).\n opened: _propTypes2.default.func,\n\n // function() The callback to invoke when Checkout is closed (not supported\n // in IE6 and IE7).\n closed: _propTypes2.default.func\n};\nReactStripeCheckout._isMounted = false;\nexports.default = ReactStripeCheckout;\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","function Agent() {\n this._defaults = [];\n}\n\n[\n 'use',\n 'on',\n 'once',\n 'set',\n 'query',\n 'type',\n 'accept',\n 'auth',\n 'withCredentials',\n 'sortQuery',\n 'retry',\n 'ok',\n 'redirects',\n 'timeout',\n 'buffer',\n 'serialize',\n 'parse',\n 'ca',\n 'key',\n 'pfx',\n 'cert',\n 'disableTLSCerts'\n].forEach((fn) => {\n // Default setting for all requests from this agent\n Agent.prototype[fn] = function (...args) {\n this._defaults.push({ fn, args });\n return this;\n };\n});\n\nAgent.prototype._setDefaults = function (req) {\n this._defaults.forEach((def) => {\n req[def.fn](...def.args);\n });\n};\n\nmodule.exports = Agent;\n","/**\n * Root reference for iframes.\n */\n\nlet root;\nif (typeof window !== 'undefined') {\n // Browser window\n root = window;\n} else if (typeof self === 'undefined') {\n // Other environments\n console.warn(\n 'Using browser-only version of superagent in non-browser environment'\n );\n root = this;\n} else {\n // Web Worker\n root = self;\n}\n\nconst Emitter = require('component-emitter');\nconst safeStringify = require('fast-safe-stringify');\nconst qs = require('qs');\nconst RequestBase = require('./request-base');\nconst isObject = require('./is-object');\nconst ResponseBase = require('./response-base');\nconst Agent = require('./agent-base');\n\n/**\n * Noop.\n */\n\nfunction noop() {}\n\n/**\n * Expose `request`.\n */\n\nmodule.exports = function (method, url) {\n // callback\n if (typeof url === 'function') {\n return new exports.Request('GET', method).end(url);\n }\n\n // url first\n if (arguments.length === 1) {\n return new exports.Request('GET', method);\n }\n\n return new exports.Request(method, url);\n};\n\nexports = module.exports;\n\nconst request = exports;\n\nexports.Request = Request;\n\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = () => {\n if (\n root.XMLHttpRequest &&\n (!root.location ||\n root.location.protocol !== 'file:' ||\n !root.ActiveXObject)\n ) {\n return new XMLHttpRequest();\n }\n\n try {\n return new ActiveXObject('Microsoft.XMLHTTP');\n } catch {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.6.0');\n } catch {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.3.0');\n } catch {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP');\n } catch {}\n\n throw new Error('Browser-only version of superagent could not find XHR');\n};\n\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\nconst trim = ''.trim ? (s) => s.trim() : (s) => s.replace(/(^\\s*|\\s*$)/g, '');\n\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n const pairs = [];\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key))\n pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n\n return pairs.join('&');\n}\n\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (val === undefined) return;\n if (val === null) {\n pairs.push(encodeURI(key));\n return;\n }\n\n if (Array.isArray(val)) {\n val.forEach((v) => {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n } else if (isObject(val)) {\n for (const subkey in val) {\n if (Object.prototype.hasOwnProperty.call(val, subkey))\n pushEncodedKeyValuePair(pairs, `${key}[${subkey}]`, val[subkey]);\n }\n } else {\n pairs.push(encodeURI(key) + '=' + encodeURIComponent(val));\n }\n}\n\n/**\n * Expose serialization method.\n */\n\nrequest.serializeObject = serialize;\n\n/**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n const obj = {};\n const pairs = str.split('&');\n let pair;\n let pos;\n\n for (let i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n pos = pair.indexOf('=');\n if (pos === -1) {\n obj[decodeURIComponent(pair)] = '';\n } else {\n obj[decodeURIComponent(pair.slice(0, pos))] = decodeURIComponent(\n pair.slice(pos + 1)\n );\n }\n }\n\n return obj;\n}\n\n/**\n * Expose parser.\n */\n\nrequest.parseString = parseString;\n\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'text/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n form: 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\nrequest.serialize = {\n 'application/x-www-form-urlencoded': qs.stringify,\n 'application/json': safeStringify\n};\n\n/**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse\n};\n\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n const lines = str.split(/\\r?\\n/);\n const fields = {};\n let index;\n let line;\n let field;\n let val;\n\n for (let i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n if (index === -1) {\n // could be empty line, just skip it\n continue;\n }\n\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\nfunction isJSON(mime) {\n // should match /json or +json\n // but not /json-seq\n return /[/+]json($|[^-\\w])/i.test(mime);\n}\n\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\nfunction Response(req) {\n this.req = req;\n this.xhr = this.req.xhr;\n // responseText is accessible only if responseType is '' or 'text' and on older browsers\n this.text =\n (this.req.method !== 'HEAD' &&\n (this.xhr.responseType === '' || this.xhr.responseType === 'text')) ||\n typeof this.xhr.responseType === 'undefined'\n ? this.xhr.responseText\n : null;\n this.statusText = this.req.xhr.statusText;\n let { status } = this.xhr;\n // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n if (status === 1223) {\n status = 204;\n }\n\n this._setStatusProperties(status);\n this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n this.header = this.headers;\n // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n this._setHeaderProperties(this.header);\n\n if (this.text === null && req._responseType) {\n this.body = this.xhr.response;\n } else {\n this.body =\n this.req.method === 'HEAD'\n ? null\n : this._parseBody(this.text ? this.text : this.xhr.response);\n }\n}\n\n// eslint-disable-next-line new-cap\nResponseBase(Response.prototype);\n\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype._parseBody = function (str) {\n let parse = request.parse[this.type];\n if (this.req._parser) {\n return this.req._parser(this, str);\n }\n\n if (!parse && isJSON(this.type)) {\n parse = request.parse['application/json'];\n }\n\n return parse && str && (str.length > 0 || str instanceof Object)\n ? parse(str)\n : null;\n};\n\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\nResponse.prototype.toError = function () {\n const { req } = this;\n const { method } = req;\n const { url } = req;\n\n const msg = `cannot ${method} ${url} (${this.status})`;\n const err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n\n return err;\n};\n\n/**\n * Expose `Response`.\n */\n\nrequest.Response = Response;\n\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n const self = this;\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {}; // preserves header name case\n this._header = {}; // coerces header names to lowercase\n this.on('end', () => {\n let err = null;\n let res = null;\n\n try {\n res = new Response(self);\n } catch (err_) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = err_;\n // issue #675: return the raw response if the response parsing fails\n if (self.xhr) {\n // ie9 doesn't have 'response' property\n err.rawResponse =\n typeof self.xhr.responseType === 'undefined'\n ? self.xhr.responseText\n : self.xhr.response;\n // issue #876: return the http status code if the response parsing fails\n err.status = self.xhr.status ? self.xhr.status : null;\n err.statusCode = err.status; // backwards-compat only\n } else {\n err.rawResponse = null;\n err.status = null;\n }\n\n return self.callback(err);\n }\n\n self.emit('response', res);\n\n let new_err;\n try {\n if (!self._isResponseOK(res)) {\n new_err = new Error(\n res.statusText || res.text || 'Unsuccessful HTTP response'\n );\n }\n } catch (err_) {\n new_err = err_; // ok() callback can throw\n }\n\n // #1000 don't catch errors from the callback to avoid double calling it\n if (new_err) {\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n self.callback(new_err, res);\n } else {\n self.callback(null, res);\n }\n });\n}\n\n/**\n * Mixin `Emitter` and `RequestBase`.\n */\n\n// eslint-disable-next-line new-cap\nEmitter(Request.prototype);\n// eslint-disable-next-line new-cap\nRequestBase(Request.prototype);\n\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function (type) {\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.accept = function (type) {\n this.set('Accept', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} [pass] optional in case of using 'bearer' as type\n * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.auth = function (user, pass, options) {\n if (arguments.length === 1) pass = '';\n if (typeof pass === 'object' && pass !== null) {\n // pass is optional and can be replaced with options\n options = pass;\n pass = '';\n }\n\n if (!options) {\n options = {\n type: typeof btoa === 'function' ? 'basic' : 'auto'\n };\n }\n\n const encoder = (string) => {\n if (typeof btoa === 'function') {\n return btoa(string);\n }\n\n throw new Error('Cannot use basic auth, btoa is not a function');\n };\n\n return this._auth(user, pass, options, encoder);\n};\n\n/**\n * Add query-string `val`.\n *\n * Examples:\n *\n * request.get('/shoes')\n * .query('size=10')\n * .query({ color: 'blue' })\n *\n * @param {Object|String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.query = function (val) {\n if (typeof val !== 'string') val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `options` (or filename).\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String|Object} options\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.attach = function (field, file, options) {\n if (file) {\n if (this._data) {\n throw new Error(\"superagent can't mix .send() and .attach()\");\n }\n\n this._getFormData().append(field, file, options || file.name);\n }\n\n return this;\n};\n\nRequest.prototype._getFormData = function () {\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n\n return this._formData;\n};\n\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\nRequest.prototype.callback = function (err, res) {\n if (this._shouldRetry(err, res)) {\n return this._retry();\n }\n\n const fn = this._callback;\n this.clearTimeout();\n\n if (err) {\n if (this._maxRetries) err.retries = this._retries - 1;\n this.emit('error', err);\n }\n\n fn(err, res);\n};\n\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\nRequest.prototype.crossDomainError = function () {\n const err = new Error(\n 'Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.'\n );\n err.crossDomain = true;\n\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n\n this.callback(err);\n};\n\n// This only warns, because the request is still likely to work\nRequest.prototype.agent = function () {\n console.warn('This is not supported in browser version of superagent');\n return this;\n};\n\nRequest.prototype.ca = Request.prototype.agent;\nRequest.prototype.buffer = Request.prototype.ca;\n\n// This throws, because it can't send/receive data as expected\nRequest.prototype.write = () => {\n throw new Error(\n 'Streaming is not supported in browser version of superagent'\n );\n};\n\nRequest.prototype.pipe = Request.prototype.write;\n\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * @param {Object} obj host object\n * @return {Boolean} is a host object\n * @api private\n */\nRequest.prototype._isHost = function (obj) {\n // Native objects stringify to [object File], [object Blob], [object FormData], etc.\n return (\n obj &&\n typeof obj === 'object' &&\n !Array.isArray(obj) &&\n Object.prototype.toString.call(obj) !== '[object Object]'\n );\n};\n\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.end = function (fn) {\n if (this._endCalled) {\n console.warn(\n 'Warning: .end() was called twice. This is not supported in superagent'\n );\n }\n\n this._endCalled = true;\n\n // store callback\n this._callback = fn || noop;\n\n // querystring\n this._finalizeQueryString();\n\n this._end();\n};\n\nRequest.prototype._setUploadTimeout = function () {\n const self = this;\n\n // upload timeout it's wokrs only if deadline timeout is off\n if (this._uploadTimeout && !this._uploadTimeoutTimer) {\n this._uploadTimeoutTimer = setTimeout(() => {\n self._timeoutError(\n 'Upload timeout of ',\n self._uploadTimeout,\n 'ETIMEDOUT'\n );\n }, this._uploadTimeout);\n }\n};\n\n// eslint-disable-next-line complexity\nRequest.prototype._end = function () {\n if (this._aborted)\n return this.callback(\n new Error('The request has been aborted even before .end() was called')\n );\n\n const self = this;\n this.xhr = request.getXHR();\n const { xhr } = this;\n let data = this._formData || this._data;\n\n this._setTimeouts();\n\n // state change\n xhr.onreadystatechange = () => {\n const { readyState } = xhr;\n if (readyState >= 2 && self._responseTimeoutTimer) {\n clearTimeout(self._responseTimeoutTimer);\n }\n\n if (readyState !== 4) {\n return;\n }\n\n // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n let status;\n try {\n status = xhr.status;\n } catch {\n status = 0;\n }\n\n if (!status) {\n if (self.timedout || self._aborted) return;\n return self.crossDomainError();\n }\n\n self.emit('end');\n };\n\n // progress\n const handleProgress = (direction, e) => {\n if (e.total > 0) {\n e.percent = (e.loaded / e.total) * 100;\n\n if (e.percent === 100) {\n clearTimeout(self._uploadTimeoutTimer);\n }\n }\n\n e.direction = direction;\n self.emit('progress', e);\n };\n\n if (this.hasListeners('progress')) {\n try {\n xhr.addEventListener('progress', handleProgress.bind(null, 'download'));\n if (xhr.upload) {\n xhr.upload.addEventListener(\n 'progress',\n handleProgress.bind(null, 'upload')\n );\n }\n } catch {\n // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n }\n\n if (xhr.upload) {\n this._setUploadTimeout();\n }\n\n // initiate request\n try {\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n } catch (err) {\n // see #1149\n return this.callback(err);\n }\n\n // CORS\n if (this._withCredentials) xhr.withCredentials = true;\n\n // body\n if (\n !this._formData &&\n this.method !== 'GET' &&\n this.method !== 'HEAD' &&\n typeof data !== 'string' &&\n !this._isHost(data)\n ) {\n // serialize stuff\n const contentType = this._header['content-type'];\n let serialize =\n this._serializer ||\n request.serialize[contentType ? contentType.split(';')[0] : ''];\n if (!serialize && isJSON(contentType)) {\n serialize = request.serialize['application/json'];\n }\n\n if (serialize) data = serialize(data);\n }\n\n // set header fields\n for (const field in this.header) {\n if (this.header[field] === null) continue;\n\n if (Object.prototype.hasOwnProperty.call(this.header, field))\n xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n }\n\n // send stuff\n this.emit('request', this);\n\n // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n xhr.send(typeof data === 'undefined' ? null : data);\n};\n\nrequest.agent = () => new Agent();\n\n['GET', 'POST', 'OPTIONS', 'PATCH', 'PUT', 'DELETE'].forEach((method) => {\n Agent.prototype[method.toLowerCase()] = function (url, fn) {\n const req = new request.Request(method, url);\n this._setDefaults(req);\n if (fn) {\n req.end(fn);\n }\n\n return req;\n };\n});\n\nAgent.prototype.del = Agent.prototype.delete;\n\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.get = (url, data, fn) => {\n const req = request('GET', url);\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.head = (url, data, fn) => {\n const req = request('HEAD', url);\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.options = (url, data, fn) => {\n const req = request('OPTIONS', url);\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * DELETE `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nfunction del(url, data, fn) {\n const req = request('DELETE', url);\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n}\n\nrequest.del = del;\nrequest.delete = del;\n\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.patch = (url, data, fn) => {\n const req = request('PATCH', url);\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.post = (url, data, fn) => {\n const req = request('POST', url);\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.put = (url, data, fn) => {\n const req = request('PUT', url);\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n","/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\n\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n\nmodule.exports = isObject;\n","/**\n * Module of mixed-in functions shared between node and client code\n */\nconst isObject = require('./is-object');\n\n/**\n * Expose `RequestBase`.\n */\n\nmodule.exports = RequestBase;\n\n/**\n * Initialize a new `RequestBase`.\n *\n * @api public\n */\n\nfunction RequestBase(object) {\n if (object) return mixin(object);\n}\n\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(object) {\n for (const key in RequestBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(RequestBase.prototype, key))\n object[key] = RequestBase.prototype[key];\n }\n\n return object;\n}\n\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.clearTimeout = function () {\n clearTimeout(this._timer);\n clearTimeout(this._responseTimeoutTimer);\n clearTimeout(this._uploadTimeoutTimer);\n delete this._timer;\n delete this._responseTimeoutTimer;\n delete this._uploadTimeoutTimer;\n return this;\n};\n\n/**\n * Override default response body parser\n *\n * This function will be called to convert incoming data into request.body\n *\n * @param {Function}\n * @api public\n */\n\nRequestBase.prototype.parse = function (fn) {\n this._parser = fn;\n return this;\n};\n\n/**\n * Set format of binary response body.\n * In browser valid formats are 'blob' and 'arraybuffer',\n * which return Blob and ArrayBuffer, respectively.\n *\n * In Node all values result in Buffer.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.responseType = function (value) {\n this._responseType = value;\n return this;\n};\n\n/**\n * Override default request body serializer\n *\n * This function will be called to convert data set via .send or .attach into payload to send\n *\n * @param {Function}\n * @api public\n */\n\nRequestBase.prototype.serialize = function (fn) {\n this._serializer = fn;\n return this;\n};\n\n/**\n * Set timeouts.\n *\n * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time.\n * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections.\n * - upload is the time since last bit of data was sent or received. This timeout works only if deadline timeout is off\n *\n * Value of 0 or false means no timeout.\n *\n * @param {Number|Object} ms or {response, deadline}\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.timeout = function (options) {\n if (!options || typeof options !== 'object') {\n this._timeout = options;\n this._responseTimeout = 0;\n this._uploadTimeout = 0;\n return this;\n }\n\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option)) {\n switch (option) {\n case 'deadline':\n this._timeout = options.deadline;\n break;\n case 'response':\n this._responseTimeout = options.response;\n break;\n case 'upload':\n this._uploadTimeout = options.upload;\n break;\n default:\n console.warn('Unknown timeout option', option);\n }\n }\n }\n\n return this;\n};\n\n/**\n * Set number of retry attempts on error.\n *\n * Failed requests will be retried 'count' times if timeout or err.code >= 500.\n *\n * @param {Number} count\n * @param {Function} [fn]\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.retry = function (count, fn) {\n // Default to 1 if no count passed or true\n if (arguments.length === 0 || count === true) count = 1;\n if (count <= 0) count = 0;\n this._maxRetries = count;\n this._retries = 0;\n this._retryCallback = fn;\n return this;\n};\n\n//\n// NOTE: we do not include ESOCKETTIMEDOUT because that is from `request` package\n// \n//\n// NOTE: we do not include EADDRINFO because it was removed from libuv in 2014\n// \n// \n//\n//\n// TODO: expose these as configurable defaults\n//\nconst ERROR_CODES = new Set([\n 'ETIMEDOUT',\n 'ECONNRESET',\n 'EADDRINUSE',\n 'ECONNREFUSED',\n 'EPIPE',\n 'ENOTFOUND',\n 'ENETUNREACH',\n 'EAI_AGAIN'\n]);\n\nconst STATUS_CODES = new Set([\n 408,\n 413,\n 429,\n 500,\n 502,\n 503,\n 504,\n 521,\n 522,\n 524\n]);\n\n// TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n// const METHODS = new Set(['GET', 'PUT', 'HEAD', 'DELETE', 'OPTIONS', 'TRACE']);\n\n/**\n * Determine if a request should be retried.\n * (Inspired by https://github.com/sindresorhus/got#retry)\n *\n * @param {Error} err an error\n * @param {Response} [res] response\n * @returns {Boolean} if segment should be retried\n */\nRequestBase.prototype._shouldRetry = function (err, res) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) {\n return false;\n }\n\n if (this._retryCallback) {\n try {\n const override = this._retryCallback(err, res);\n if (override === true) return true;\n if (override === false) return false;\n // undefined falls back to defaults\n } catch (err_) {\n console.error(err_);\n }\n }\n\n // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n /*\n if (\n this.req &&\n this.req.method &&\n !METHODS.has(this.req.method.toUpperCase())\n )\n return false;\n */\n if (res && res.status && STATUS_CODES.has(res.status)) return true;\n if (err) {\n if (err.code && ERROR_CODES.has(err.code)) return true;\n // Superagent timeout\n if (err.timeout && err.code === 'ECONNABORTED') return true;\n if (err.crossDomain) return true;\n }\n\n return false;\n};\n\n/**\n * Retry request\n *\n * @return {Request} for chaining\n * @api private\n */\n\nRequestBase.prototype._retry = function () {\n this.clearTimeout();\n\n // node\n if (this.req) {\n this.req = null;\n this.req = this.request();\n }\n\n this._aborted = false;\n this.timedout = false;\n this.timedoutError = null;\n\n return this._end();\n};\n\n/**\n * Promise support\n *\n * @param {Function} resolve\n * @param {Function} [reject]\n * @return {Request}\n */\n\nRequestBase.prototype.then = function (resolve, reject) {\n if (!this._fullfilledPromise) {\n const self = this;\n if (this._endCalled) {\n console.warn(\n 'Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises'\n );\n }\n\n this._fullfilledPromise = new Promise((resolve, reject) => {\n self.on('abort', () => {\n if (this._maxRetries && this._maxRetries > this._retries) {\n return;\n }\n\n if (this.timedout && this.timedoutError) {\n reject(this.timedoutError);\n return;\n }\n\n const err = new Error('Aborted');\n err.code = 'ABORTED';\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n reject(err);\n });\n self.end((err, res) => {\n if (err) reject(err);\n else resolve(res);\n });\n });\n }\n\n return this._fullfilledPromise.then(resolve, reject);\n};\n\nRequestBase.prototype.catch = function (cb) {\n return this.then(undefined, cb);\n};\n\n/**\n * Allow for extension\n */\n\nRequestBase.prototype.use = function (fn) {\n fn(this);\n return this;\n};\n\nRequestBase.prototype.ok = function (cb) {\n if (typeof cb !== 'function') throw new Error('Callback required');\n this._okCallback = cb;\n return this;\n};\n\nRequestBase.prototype._isResponseOK = function (res) {\n if (!res) {\n return false;\n }\n\n if (this._okCallback) {\n return this._okCallback(res);\n }\n\n return res.status >= 200 && res.status < 300;\n};\n\n/**\n * Get request header `field`.\n * Case-insensitive.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\nRequestBase.prototype.get = function (field) {\n return this._header[field.toLowerCase()];\n};\n\n/**\n * Get case-insensitive header `field` value.\n * This is a deprecated internal API. Use `.get(field)` instead.\n *\n * (getHeader is no longer used internally by the superagent code base)\n *\n * @param {String} field\n * @return {String}\n * @api private\n * @deprecated\n */\n\nRequestBase.prototype.getHeader = RequestBase.prototype.get;\n\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n * Case-insensitive.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.set = function (field, value) {\n if (isObject(field)) {\n for (const key in field) {\n if (Object.prototype.hasOwnProperty.call(field, key))\n this.set(key, field[key]);\n }\n\n return this;\n }\n\n this._header[field.toLowerCase()] = value;\n this.header[field] = value;\n return this;\n};\n\n/**\n * Remove header `field`.\n * Case-insensitive.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field field name\n */\nRequestBase.prototype.unset = function (field) {\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n\n/**\n * Write the field `name` and `val`, or multiple fields with one object\n * for \"multipart/form-data\" request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n *\n * request.post('/upload')\n * .field({ foo: 'bar', baz: 'qux' })\n * .end(callback);\n * ```\n *\n * @param {String|Object} name name of field\n * @param {String|Blob|File|Buffer|fs.ReadStream} val value of field\n * @return {Request} for chaining\n * @api public\n */\nRequestBase.prototype.field = function (name, value) {\n // name should be either a string or an object.\n if (name === null || undefined === name) {\n throw new Error('.field(name, val) name can not be empty');\n }\n\n if (this._data) {\n throw new Error(\n \".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\"\n );\n }\n\n if (isObject(name)) {\n for (const key in name) {\n if (Object.prototype.hasOwnProperty.call(name, key))\n this.field(key, name[key]);\n }\n\n return this;\n }\n\n if (Array.isArray(value)) {\n for (const i in value) {\n if (Object.prototype.hasOwnProperty.call(value, i))\n this.field(name, value[i]);\n }\n\n return this;\n }\n\n // val should be defined now\n if (value === null || undefined === value) {\n throw new Error('.field(name, val) val can not be empty');\n }\n\n if (typeof value === 'boolean') {\n value = String(value);\n }\n\n this._getFormData().append(name, value);\n return this;\n};\n\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request} request\n * @api public\n */\nRequestBase.prototype.abort = function () {\n if (this._aborted) {\n return this;\n }\n\n this._aborted = true;\n if (this.xhr) this.xhr.abort(); // browser\n if (this.req) this.req.abort(); // node\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\nRequestBase.prototype._auth = function (user, pass, options, base64Encoder) {\n switch (options.type) {\n case 'basic':\n this.set('Authorization', `Basic ${base64Encoder(`${user}:${pass}`)}`);\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n\n case 'bearer': // usage would be .auth(accessToken, { type: 'bearer' })\n this.set('Authorization', `Bearer ${user}`);\n break;\n default:\n break;\n }\n\n return this;\n};\n\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\nRequestBase.prototype.withCredentials = function (on) {\n // This is browser-only functionality. Node side is no-op.\n if (on === undefined) on = true;\n this._withCredentials = on;\n return this;\n};\n\n/**\n * Set the max redirects to `n`. Does nothing in browser XHR implementation.\n *\n * @param {Number} n\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.redirects = function (n) {\n this._maxRedirects = n;\n return this;\n};\n\n/**\n * Maximum size of buffered response body, in bytes. Counts uncompressed size.\n * Default 200MB.\n *\n * @param {Number} n number of bytes\n * @return {Request} for chaining\n */\nRequestBase.prototype.maxResponseSize = function (n) {\n if (typeof n !== 'number') {\n throw new TypeError('Invalid argument');\n }\n\n this._maxResponseSize = n;\n return this;\n};\n\n/**\n * Convert to a plain javascript object (not JSON string) of scalar properties.\n * Note as this method is designed to return a useful non-this value,\n * it cannot be chained.\n *\n * @return {Object} describing method, url, and data of this request\n * @api public\n */\n\nRequestBase.prototype.toJSON = function () {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header\n };\n};\n\n/**\n * Send `data` as the request body, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n\n// eslint-disable-next-line complexity\nRequestBase.prototype.send = function (data) {\n const isObject_ = isObject(data);\n let type = this._header['content-type'];\n\n if (this._formData) {\n throw new Error(\n \".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\"\n );\n }\n\n if (isObject_ && !this._data) {\n if (Array.isArray(data)) {\n this._data = [];\n } else if (!this._isHost(data)) {\n this._data = {};\n }\n } else if (data && this._data && this._isHost(this._data)) {\n throw new Error(\"Can't merge these send calls\");\n }\n\n // merge\n if (isObject_ && isObject(this._data)) {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key))\n this._data[key] = data[key];\n }\n } else if (typeof data === 'string') {\n // default to x-www-form-urlencoded\n if (!type) this.type('form');\n type = this._header['content-type'];\n if (type) type = type.toLowerCase().trim();\n if (type === 'application/x-www-form-urlencoded') {\n this._data = this._data ? `${this._data}&${data}` : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!isObject_ || this._isHost(data)) {\n return this;\n }\n\n // default to json\n if (!type) this.type('json');\n return this;\n};\n\n/**\n * Sort `querystring` by the sort function\n *\n *\n * Examples:\n *\n * // default order\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery()\n * .end(callback)\n *\n * // customized sort function\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery(function(a, b){\n * return a.length - b.length;\n * })\n * .end(callback)\n *\n *\n * @param {Function} sort\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.sortQuery = function (sort) {\n // _sort default to true but otherwise can be a function or boolean\n this._sort = typeof sort === 'undefined' ? true : sort;\n return this;\n};\n\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\nRequestBase.prototype._finalizeQueryString = function () {\n const query = this._query.join('&');\n if (query) {\n this.url += (this.url.includes('?') ? '&' : '?') + query;\n }\n\n this._query.length = 0; // Makes the call idempotent\n\n if (this._sort) {\n const index = this.url.indexOf('?');\n if (index >= 0) {\n const queryArray = this.url.slice(index + 1).split('&');\n if (typeof this._sort === 'function') {\n queryArray.sort(this._sort);\n } else {\n queryArray.sort();\n }\n\n this.url = this.url.slice(0, index) + '?' + queryArray.join('&');\n }\n }\n};\n\n// For backwards compat only\nRequestBase.prototype._appendQueryString = () => {\n console.warn('Unsupported');\n};\n\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\nRequestBase.prototype._timeoutError = function (reason, timeout, errno) {\n if (this._aborted) {\n return;\n }\n\n const err = new Error(`${reason + timeout}ms exceeded`);\n err.timeout = timeout;\n err.code = 'ECONNABORTED';\n err.errno = errno;\n this.timedout = true;\n this.timedoutError = err;\n this.abort();\n this.callback(err);\n};\n\nRequestBase.prototype._setTimeouts = function () {\n const self = this;\n\n // deadline\n if (this._timeout && !this._timer) {\n this._timer = setTimeout(() => {\n self._timeoutError('Timeout of ', self._timeout, 'ETIME');\n }, this._timeout);\n }\n\n // response timeout\n if (this._responseTimeout && !this._responseTimeoutTimer) {\n this._responseTimeoutTimer = setTimeout(() => {\n self._timeoutError(\n 'Response timeout of ',\n self._responseTimeout,\n 'ETIMEDOUT'\n );\n }, this._responseTimeout);\n }\n};\n","/**\n * Module dependencies.\n */\n\nconst utils = require('./utils');\n\n/**\n * Expose `ResponseBase`.\n */\n\nmodule.exports = ResponseBase;\n\n/**\n * Initialize a new `ResponseBase`.\n *\n * @api public\n */\n\nfunction ResponseBase(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (const key in ResponseBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(ResponseBase.prototype, key))\n obj[key] = ResponseBase.prototype[key];\n }\n\n return obj;\n}\n\n/**\n * Get case-insensitive `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\nResponseBase.prototype.get = function (field) {\n return this.header[field.toLowerCase()];\n};\n\n/**\n * Set header related properties:\n *\n * - `.type` the content type without params\n *\n * A response of \"Content-Type: text/plain; charset=utf-8\"\n * will provide you with a `.type` of \"text/plain\".\n *\n * @param {Object} header\n * @api private\n */\n\nResponseBase.prototype._setHeaderProperties = function (header) {\n // TODO: moar!\n // TODO: make this a util\n\n // content-type\n const ct = header['content-type'] || '';\n this.type = utils.type(ct);\n\n // params\n const params = utils.params(ct);\n for (const key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key))\n this[key] = params[key];\n }\n\n this.links = {};\n\n // links\n try {\n if (header.link) {\n this.links = utils.parseLinks(header.link);\n }\n } catch {\n // ignore\n }\n};\n\n/**\n * Set flags such as `.ok` based on `status`.\n *\n * For example a 2xx response will give you a `.ok` of __true__\n * whereas 5xx will be __false__ and `.error` will be __true__. The\n * `.clientError` and `.serverError` are also available to be more\n * specific, and `.statusType` is the class of error ranging from 1..5\n * sometimes useful for mapping respond colors etc.\n *\n * \"sugar\" properties are also defined for common cases. Currently providing:\n *\n * - .noContent\n * - .badRequest\n * - .unauthorized\n * - .notAcceptable\n * - .notFound\n *\n * @param {Number} status\n * @api private\n */\n\nResponseBase.prototype._setStatusProperties = function (status) {\n const type = (status / 100) | 0;\n\n // status / class\n this.statusCode = status;\n this.status = this.statusCode;\n this.statusType = type;\n\n // basics\n this.info = type === 1;\n this.ok = type === 2;\n this.redirect = type === 3;\n this.clientError = type === 4;\n this.serverError = type === 5;\n this.error = type === 4 || type === 5 ? this.toError() : false;\n\n // sugar\n this.created = status === 201;\n this.accepted = status === 202;\n this.noContent = status === 204;\n this.badRequest = status === 400;\n this.unauthorized = status === 401;\n this.notAcceptable = status === 406;\n this.forbidden = status === 403;\n this.notFound = status === 404;\n this.unprocessableEntity = status === 422;\n};\n","/**\n * Return the mime type for the given `str`.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nexports.type = (str) => str.split(/ *; */).shift();\n\n/**\n * Return header field parameters.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nexports.params = (val) => {\n const obj = {};\n for (const str of val.split(/ *; */)) {\n const parts = str.split(/ *= */);\n const key = parts.shift();\n const val = parts.shift();\n\n if (key && val) obj[key] = val;\n }\n\n return obj;\n};\n\n/**\n * Parse Link header fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nexports.parseLinks = (val) => {\n const obj = {};\n for (const str of val.split(/ *, */)) {\n const parts = str.split(/ *; */);\n const url = parts[0].slice(1, -1);\n const rel = parts[1].split(/ *= */)[1].slice(1, -1);\n obj[rel] = url;\n }\n\n return obj;\n};\n\n/**\n * Strip content related fields from `header`.\n *\n * @param {Object} header\n * @return {Object} header\n * @api private\n */\n\nexports.cleanHeader = (header, changesOrigin) => {\n delete header['content-type'];\n delete header['content-length'];\n delete header['transfer-encoding'];\n delete header.host;\n // secuirty\n if (changesOrigin) {\n delete header.authorization;\n delete header.cookie;\n }\n\n return header;\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Alignment along the horizontal axis. */\nexport const Alignment = {\n CENTER: \"center\" as \"center\",\n LEFT: \"left\" as \"left\",\n RIGHT: \"right\" as \"right\",\n};\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type Alignment = typeof Alignment[keyof typeof Alignment];\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// tslint:disable:object-literal-sort-keys\nexport const Elevation = {\n ZERO: 0 as 0,\n ONE: 1 as 1,\n TWO: 2 as 2,\n THREE: 3 as 3,\n FOUR: 4 as 4,\n};\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type Elevation = typeof Elevation[keyof typeof Elevation];\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// tslint:disable:object-literal-sort-keys\n\n/**\n * The four basic intents.\n */\nexport const Intent = {\n NONE: \"none\" as \"none\",\n PRIMARY: \"primary\" as \"primary\",\n SUCCESS: \"success\" as \"success\",\n WARNING: \"warning\" as \"warning\",\n DANGER: \"danger\" as \"danger\",\n};\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type Intent = typeof Intent[keyof typeof Intent];\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const Position = {\n BOTTOM: \"bottom\" as \"bottom\",\n BOTTOM_LEFT: \"bottom-left\" as \"bottom-left\",\n BOTTOM_RIGHT: \"bottom-right\" as \"bottom-right\",\n LEFT: \"left\" as \"left\",\n LEFT_BOTTOM: \"left-bottom\" as \"left-bottom\",\n LEFT_TOP: \"left-top\" as \"left-top\",\n RIGHT: \"right\" as \"right\",\n RIGHT_BOTTOM: \"right-bottom\" as \"right-bottom\",\n RIGHT_TOP: \"right-top\" as \"right-top\",\n TOP: \"top\" as \"top\",\n TOP_LEFT: \"top-left\" as \"top-left\",\n TOP_RIGHT: \"top-right\" as \"top-right\",\n};\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type Position = typeof Position[keyof typeof Position];\n\nexport function isPositionHorizontal(position: Position) {\n /* istanbul ignore next */\n return (\n position === Position.TOP ||\n position === Position.TOP_LEFT ||\n position === Position.TOP_RIGHT ||\n position === Position.BOTTOM ||\n position === Position.BOTTOM_LEFT ||\n position === Position.BOTTOM_RIGHT\n );\n}\n\nexport function isPositionVertical(position: Position) {\n /* istanbul ignore next */\n return (\n position === Position.LEFT ||\n position === Position.LEFT_TOP ||\n position === Position.LEFT_BOTTOM ||\n position === Position.RIGHT ||\n position === Position.RIGHT_TOP ||\n position === Position.RIGHT_BOTTOM\n );\n}\n\nexport function getPositionIgnoreAngles(position: Position) {\n if (position === Position.TOP || position === Position.TOP_LEFT || position === Position.TOP_RIGHT) {\n return Position.TOP;\n } else if (\n position === Position.BOTTOM ||\n position === Position.BOTTOM_LEFT ||\n position === Position.BOTTOM_RIGHT\n ) {\n return Position.BOTTOM;\n } else if (position === Position.LEFT || position === Position.LEFT_TOP || position === Position.LEFT_BOTTOM) {\n return Position.LEFT;\n } else {\n return Position.RIGHT;\n }\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Alignment } from \"./alignment\";\nimport { Elevation } from \"./elevation\";\nimport { Intent } from \"./intent\";\nimport { Position } from \"./position\";\n\nconst NS = process.env.BLUEPRINT_NAMESPACE || process.env.REACT_APP_BLUEPRINT_NAMESPACE || \"bp3\";\n\n// modifiers\nexport const ACTIVE = `${NS}-active`;\nexport const ALIGN_LEFT = `${NS}-align-left`;\nexport const ALIGN_RIGHT = `${NS}-align-right`;\nexport const DARK = `${NS}-dark`;\nexport const DISABLED = `${NS}-disabled`;\nexport const FILL = `${NS}-fill`;\nexport const FIXED = `${NS}-fixed`;\nexport const FIXED_TOP = `${NS}-fixed-top`;\nexport const INLINE = `${NS}-inline`;\nexport const INTERACTIVE = `${NS}-interactive`;\nexport const LARGE = `${NS}-large`;\nexport const LOADING = `${NS}-loading`;\nexport const MINIMAL = `${NS}-minimal`;\nexport const OUTLINED = `${NS}-outlined`;\nexport const MULTILINE = `${NS}-multiline`;\nexport const ROUND = `${NS}-round`;\nexport const SMALL = `${NS}-small`;\nexport const VERTICAL = `${NS}-vertical`;\nexport const POSITION_TOP = positionClass(Position.TOP);\nexport const POSITION_BOTTOM = positionClass(Position.BOTTOM);\nexport const POSITION_LEFT = positionClass(Position.LEFT);\nexport const POSITION_RIGHT = positionClass(Position.RIGHT);\n\nexport const ELEVATION_0 = elevationClass(Elevation.ZERO);\nexport const ELEVATION_1 = elevationClass(Elevation.ONE);\nexport const ELEVATION_2 = elevationClass(Elevation.TWO);\nexport const ELEVATION_3 = elevationClass(Elevation.THREE);\nexport const ELEVATION_4 = elevationClass(Elevation.FOUR);\n\nexport const INTENT_PRIMARY = intentClass(Intent.PRIMARY)!;\nexport const INTENT_SUCCESS = intentClass(Intent.SUCCESS)!;\nexport const INTENT_WARNING = intentClass(Intent.WARNING)!;\nexport const INTENT_DANGER = intentClass(Intent.DANGER)!;\n\nexport const FOCUS_DISABLED = `${NS}-focus-disabled`;\n\n// text utilities\nexport const UI_TEXT = `${NS}-ui-text`;\nexport const RUNNING_TEXT = `${NS}-running-text`;\nexport const MONOSPACE_TEXT = `${NS}-monospace-text`;\nexport const TEXT_LARGE = `${NS}-text-large`;\nexport const TEXT_SMALL = `${NS}-text-small`;\nexport const TEXT_MUTED = `${NS}-text-muted`;\nexport const TEXT_DISABLED = `${NS}-text-disabled`;\nexport const TEXT_OVERFLOW_ELLIPSIS = `${NS}-text-overflow-ellipsis`;\n\n// textual elements\nexport const BLOCKQUOTE = `${NS}-blockquote`;\nexport const CODE = `${NS}-code`;\nexport const CODE_BLOCK = `${NS}-code-block`;\nexport const HEADING = `${NS}-heading`;\nexport const LIST = `${NS}-list`;\nexport const LIST_UNSTYLED = `${NS}-list-unstyled`;\nexport const RTL = `${NS}-rtl`;\n\n// layout utilities\n/** @see https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block */\nexport const FIXED_POSITIONING_CONTAINING_BLOCK = `${NS}-fixed-positioning-containing-block`;\n\n// components\nexport const ALERT = `${NS}-alert`;\nexport const ALERT_BODY = `${ALERT}-body`;\nexport const ALERT_CONTENTS = `${ALERT}-contents`;\nexport const ALERT_FOOTER = `${ALERT}-footer`;\n\nexport const BREADCRUMB = `${NS}-breadcrumb`;\nexport const BREADCRUMB_CURRENT = `${BREADCRUMB}-current`;\nexport const BREADCRUMBS = `${BREADCRUMB}s`;\nexport const BREADCRUMBS_COLLAPSED = `${BREADCRUMB}s-collapsed`;\n\nexport const BUTTON = `${NS}-button`;\nexport const BUTTON_GROUP = `${BUTTON}-group`;\nexport const BUTTON_SPINNER = `${BUTTON}-spinner`;\nexport const BUTTON_TEXT = `${BUTTON}-text`;\n\nexport const CALLOUT = `${NS}-callout`;\nexport const CALLOUT_ICON = `${CALLOUT}-icon`;\n\nexport const CARD = `${NS}-card`;\n\nexport const COLLAPSE = `${NS}-collapse`;\nexport const COLLAPSE_BODY = `${COLLAPSE}-body`;\n\nexport const COLLAPSIBLE_LIST = `${NS}-collapse-list`;\n\nexport const CONTEXT_MENU = `${NS}-context-menu`;\nexport const CONTEXT_MENU_POPOVER_TARGET = `${CONTEXT_MENU}-popover-target`;\n\nexport const CONTROL_GROUP = `${NS}-control-group`;\n\nexport const DIALOG = `${NS}-dialog`;\nexport const DIALOG_CONTAINER = `${DIALOG}-container`;\nexport const DIALOG_BODY = `${DIALOG}-body`;\nexport const DIALOG_CLOSE_BUTTON = `${DIALOG}-close-button`;\nexport const DIALOG_FOOTER = `${DIALOG}-footer`;\nexport const DIALOG_FOOTER_ACTIONS = `${DIALOG}-footer-actions`;\nexport const DIALOG_HEADER = `${DIALOG}-header`;\n\nexport const DIALOG_STEP = `${NS}-dialog-step`;\nexport const DIALOG_STEP_CONTAINER = `${DIALOG_STEP}-container`;\nexport const DIALOG_STEP_TITLE = `${DIALOG_STEP}-title`;\nexport const DIALOG_STEP_ICON = `${DIALOG_STEP}-icon`;\nexport const DIALOG_STEP_VIEWED = `${DIALOG_STEP}-viewed`;\n\nexport const DIVIDER = `${NS}-divider`;\n\nexport const DRAWER = `${NS}-drawer`;\nexport const DRAWER_BODY = `${DRAWER}-body`;\nexport const DRAWER_FOOTER = `${DRAWER}-footer`;\nexport const DRAWER_HEADER = `${DRAWER}-header`;\n\nexport const EDITABLE_TEXT = `${NS}-editable-text`;\nexport const EDITABLE_TEXT_CONTENT = `${EDITABLE_TEXT}-content`;\nexport const EDITABLE_TEXT_EDITING = `${EDITABLE_TEXT}-editing`;\nexport const EDITABLE_TEXT_INPUT = `${EDITABLE_TEXT}-input`;\nexport const EDITABLE_TEXT_PLACEHOLDER = `${EDITABLE_TEXT}-placeholder`;\n\nexport const FLEX_EXPANDER = `${NS}-flex-expander`;\n\nexport const HTML_SELECT = `${NS}-html-select`;\n/** @deprecated prefer `` component */\nexport const SELECT = `${NS}-select`;\n\nexport const HTML_TABLE = `${NS}-html-table`;\nexport const HTML_TABLE_BORDERED = `${HTML_TABLE}-bordered`;\nexport const HTML_TABLE_CONDENSED = `${HTML_TABLE}-condensed`;\nexport const HTML_TABLE_STRIPED = `${HTML_TABLE}-striped`;\n\nexport const INPUT = `${NS}-input`;\nexport const INPUT_GHOST = `${INPUT}-ghost`;\nexport const INPUT_GROUP = `${INPUT}-group`;\nexport const INPUT_LEFT_CONTAINER = `${INPUT}-left-container`;\nexport const INPUT_ACTION = `${INPUT}-action`;\n\nexport const CONTROL = `${NS}-control`;\nexport const CONTROL_INDICATOR = `${CONTROL}-indicator`;\nexport const CONTROL_INDICATOR_CHILD = `${CONTROL_INDICATOR}-child`;\nexport const CHECKBOX = `${NS}-checkbox`;\nexport const RADIO = `${NS}-radio`;\nexport const SWITCH = `${NS}-switch`;\nexport const SWITCH_INNER_TEXT = `${SWITCH}-inner-text`;\nexport const FILE_INPUT = `${NS}-file-input`;\nexport const FILE_INPUT_HAS_SELECTION = `${NS}-file-input-has-selection`;\nexport const FILE_UPLOAD_INPUT = `${NS}-file-upload-input`;\nexport const FILE_UPLOAD_INPUT_CUSTOM_TEXT = `${NS}-file-upload-input-custom-text`;\n\nexport const KEY = `${NS}-key`;\nexport const KEY_COMBO = `${KEY}-combo`;\nexport const MODIFIER_KEY = `${NS}-modifier-key`;\n\nexport const HOTKEY = `${NS}-hotkey`;\nexport const HOTKEY_LABEL = `${HOTKEY}-label`;\nexport const HOTKEY_COLUMN = `${HOTKEY}-column`;\nexport const HOTKEY_DIALOG = `${HOTKEY}-dialog`;\n\nexport const LABEL = `${NS}-label`;\nexport const FORM_GROUP = `${NS}-form-group`;\nexport const FORM_CONTENT = `${NS}-form-content`;\nexport const FORM_HELPER_TEXT = `${NS}-form-helper-text`;\n\nexport const MENU = `${NS}-menu`;\nexport const MENU_ITEM = `${MENU}-item`;\nexport const MENU_ITEM_LABEL = `${MENU_ITEM}-label`;\nexport const MENU_SUBMENU = `${NS}-submenu`;\nexport const MENU_DIVIDER = `${MENU}-divider`;\nexport const MENU_HEADER = `${MENU}-header`;\n\nexport const MULTISTEP_DIALOG = `${NS}-multistep-dialog`;\nexport const MULTISTEP_DIALOG_PANELS = `${MULTISTEP_DIALOG}-panels`;\nexport const MULTISTEP_DIALOG_LEFT_PANEL = `${MULTISTEP_DIALOG}-left-panel`;\nexport const MULTISTEP_DIALOG_RIGHT_PANEL = `${MULTISTEP_DIALOG}-right-panel`;\nexport const MULTISTEP_DIALOG_FOOTER = `${MULTISTEP_DIALOG}-footer`;\n\nexport const NAVBAR = `${NS}-navbar`;\nexport const NAVBAR_GROUP = `${NAVBAR}-group`;\nexport const NAVBAR_HEADING = `${NAVBAR}-heading`;\nexport const NAVBAR_DIVIDER = `${NAVBAR}-divider`;\n\nexport const NON_IDEAL_STATE = `${NS}-non-ideal-state`;\nexport const NON_IDEAL_STATE_VISUAL = `${NON_IDEAL_STATE}-visual`;\n\nexport const NUMERIC_INPUT = `${NS}-numeric-input`;\n\nexport const OVERFLOW_LIST = `${NS}-overflow-list`;\nexport const OVERFLOW_LIST_SPACER = `${OVERFLOW_LIST}-spacer`;\n\nexport const OVERLAY = `${NS}-overlay`;\nexport const OVERLAY_BACKDROP = `${OVERLAY}-backdrop`;\nexport const OVERLAY_CONTAINER = `${OVERLAY}-container`;\nexport const OVERLAY_CONTENT = `${OVERLAY}-content`;\nexport const OVERLAY_INLINE = `${OVERLAY}-inline`;\nexport const OVERLAY_OPEN = `${OVERLAY}-open`;\nexport const OVERLAY_SCROLL_CONTAINER = `${OVERLAY}-scroll-container`;\n\nexport const PANEL_STACK = `${NS}-panel-stack`;\nexport const PANEL_STACK_HEADER = `${PANEL_STACK}-header`;\nexport const PANEL_STACK_HEADER_BACK = `${PANEL_STACK}-header-back`;\nexport const PANEL_STACK_VIEW = `${PANEL_STACK}-view`;\n\nexport const PANEL_STACK2 = `${NS}-panel-stack2`;\nexport const PANEL_STACK2_HEADER = `${PANEL_STACK}-header`;\nexport const PANEL_STACK2_HEADER_BACK = `${PANEL_STACK}-header-back`;\nexport const PANEL_STACK2_VIEW = `${PANEL_STACK}-view`;\n\nexport const POPOVER = `${NS}-popover`;\nexport const POPOVER_ARROW = `${POPOVER}-arrow`;\nexport const POPOVER_BACKDROP = `${POPOVER}-backdrop`;\nexport const POPOVER_CAPTURING_DISMISS = `${POPOVER}-capturing-dismiss`;\nexport const POPOVER_CONTENT = `${POPOVER}-content`;\nexport const POPOVER_CONTENT_SIZING = `${POPOVER_CONTENT}-sizing`;\nexport const POPOVER_DISMISS = `${POPOVER}-dismiss`;\nexport const POPOVER_DISMISS_OVERRIDE = `${POPOVER_DISMISS}-override`;\nexport const POPOVER_OPEN = `${POPOVER}-open`;\nexport const POPOVER_TARGET = `${POPOVER}-target`;\nexport const POPOVER_WRAPPER = `${POPOVER}-wrapper`;\nexport const TRANSITION_CONTAINER = `${NS}-transition-container`;\n\nexport const PROGRESS_BAR = `${NS}-progress-bar`;\nexport const PROGRESS_METER = `${NS}-progress-meter`;\nexport const PROGRESS_NO_STRIPES = `${NS}-no-stripes`;\nexport const PROGRESS_NO_ANIMATION = `${NS}-no-animation`;\n\nexport const PORTAL = `${NS}-portal`;\n\nexport const SKELETON = `${NS}-skeleton`;\n\nexport const SLIDER = `${NS}-slider`;\nexport const SLIDER_AXIS = `${SLIDER}-axis`;\nexport const SLIDER_HANDLE = `${SLIDER}-handle`;\nexport const SLIDER_LABEL = `${SLIDER}-label`;\nexport const SLIDER_TRACK = `${SLIDER}-track`;\nexport const SLIDER_PROGRESS = `${SLIDER}-progress`;\nexport const START = `${NS}-start`;\nexport const END = `${NS}-end`;\n\nexport const SPINNER = `${NS}-spinner`;\nexport const SPINNER_ANIMATION = `${SPINNER}-animation`;\nexport const SPINNER_HEAD = `${SPINNER}-head`;\nexport const SPINNER_NO_SPIN = `${NS}-no-spin`;\nexport const SPINNER_TRACK = `${SPINNER}-track`;\n\nexport const TAB = `${NS}-tab`;\nexport const TAB_INDICATOR = `${TAB}-indicator`;\nexport const TAB_INDICATOR_WRAPPER = `${TAB_INDICATOR}-wrapper`;\nexport const TAB_LIST = `${TAB}-list`;\nexport const TAB_PANEL = `${TAB}-panel`;\nexport const TABS = `${TAB}s`;\n\nexport const TAG = `${NS}-tag`;\nexport const TAG_REMOVE = `${TAG}-remove`;\n\nexport const TAG_INPUT = `${NS}-tag-input`;\nexport const TAG_INPUT_ICON = `${TAG_INPUT}-icon`;\nexport const TAG_INPUT_VALUES = `${TAG_INPUT}-values`;\n\nexport const TOAST = `${NS}-toast`;\nexport const TOAST_CONTAINER = `${TOAST}-container`;\nexport const TOAST_MESSAGE = `${TOAST}-message`;\n\nexport const TOOLTIP = `${NS}-tooltip`;\nexport const TOOLTIP_INDICATOR = `${TOOLTIP}-indicator`;\n\nexport const TREE = `${NS}-tree`;\nexport const TREE_NODE = `${NS}-tree-node`;\nexport const TREE_NODE_CARET = `${TREE_NODE}-caret`;\nexport const TREE_NODE_CARET_CLOSED = `${TREE_NODE_CARET}-closed`;\nexport const TREE_NODE_CARET_NONE = `${TREE_NODE_CARET}-none`;\nexport const TREE_NODE_CARET_OPEN = `${TREE_NODE_CARET}-open`;\nexport const TREE_NODE_CONTENT = `${TREE_NODE}-content`;\nexport const TREE_NODE_EXPANDED = `${TREE_NODE}-expanded`;\nexport const TREE_NODE_ICON = `${TREE_NODE}-icon`;\nexport const TREE_NODE_LABEL = `${TREE_NODE}-label`;\nexport const TREE_NODE_LIST = `${TREE_NODE}-list`;\nexport const TREE_NODE_SECONDARY_LABEL = `${TREE_NODE}-secondary-label`;\nexport const TREE_NODE_SELECTED = `${TREE_NODE}-selected`;\nexport const TREE_ROOT = `${NS}-tree-root`;\n\nexport const ICON = `${NS}-icon`;\n/** @deprecated use components and iconName prop APIs instead */\nexport const ICON_STANDARD = `${ICON}-standard`;\n/** @deprecated use components and iconName prop APIs instead */\nexport const ICON_LARGE = `${ICON}-large`;\n\n/**\n * Returns the namespace prefix for all Blueprint CSS classes.\n * Customize this namespace at build time with the `process.env.BLUEPRINT_NAMESPACE` environment variable.\n */\nexport function getClassNamespace() {\n return NS;\n}\n\n/** Return CSS class for alignment. */\nexport function alignmentClass(alignment: Alignment | undefined) {\n switch (alignment) {\n case Alignment.LEFT:\n return ALIGN_LEFT;\n case Alignment.RIGHT:\n return ALIGN_RIGHT;\n default:\n return undefined;\n }\n}\n\nexport function elevationClass(elevation: Elevation): string;\nexport function elevationClass(elevation: undefined): undefined;\nexport function elevationClass(elevation: Elevation | undefined): string | undefined;\nexport function elevationClass(elevation: Elevation | undefined) {\n if (elevation === undefined) {\n return undefined;\n }\n return `${NS}-elevation-${elevation}`;\n}\n\n/**\n * Returns CSS class for icon name.\n *\n * @deprecated These CSS classes rely on Blueprint's icon fonts, which are a legacy feature and will be\n * removed the next major version (4.x). Use the `` React component and `iconName` string enum prop\n * APIs instead – they render SVGs, which do not suffer from the blurriness of icon fonts and have\n * equivalent browser support.\n */\nexport function iconClass(iconName: string): string;\nexport function iconClass(iconName: undefined): undefined;\nexport function iconClass(iconName: string | undefined): string | undefined;\nexport function iconClass(iconName: string | undefined) {\n if (iconName == null) {\n return undefined;\n }\n return iconName.indexOf(`${NS}-icon-`) === 0 ? iconName : `${NS}-icon-${iconName}`;\n}\n\n/** Return CSS class for intent. */\nexport function intentClass(intent: Intent): string;\nexport function intentClass(intent: typeof Intent.NONE | undefined): undefined;\nexport function intentClass(intent: Intent | undefined): Intent | undefined;\nexport function intentClass(intent: Intent | undefined) {\n if (intent == null || intent === Intent.NONE) {\n return undefined;\n }\n return `${NS}-intent-${intent.toLowerCase()}`;\n}\n\nexport function positionClass(position: Position): string;\nexport function positionClass(position: undefined): undefined;\nexport function positionClass(position: Position | undefined): string | undefined;\nexport function positionClass(position: Position | undefined) {\n if (position === undefined) {\n return undefined;\n }\n return `${NS}-position-${position}`;\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst TAB_KEY_CODE = 9;\n\n/* istanbul ignore next */\n\n/**\n * A nifty little class that maintains event handlers to add a class to the container element\n * when entering \"mouse mode\" (on a `mousedown` event) and remove it when entering \"keyboard mode\"\n * (on a `tab` key `keydown` event).\n */\nexport class InteractionModeEngine {\n private isRunning = false;\n\n constructor(private container: Element, private className: string) {}\n\n /** Returns whether the engine is currently running. */\n public isActive() {\n return this.isRunning;\n }\n\n /** Enable behavior which applies the given className when in mouse mode. */\n public start() {\n this.container.addEventListener(\"mousedown\", this.handleMouseDown);\n this.isRunning = true;\n }\n\n /** Disable interaction mode behavior and remove className from container. */\n public stop() {\n this.reset();\n this.isRunning = false;\n }\n\n private reset() {\n this.container.classList.remove(this.className);\n // HACKHACK: see https://github.com/palantir/blueprint/issues/4342\n this.container.removeEventListener(\"keydown\", this.handleKeyDown as EventListener);\n this.container.removeEventListener(\"mousedown\", this.handleMouseDown);\n }\n\n private handleKeyDown = (e: KeyboardEvent) => {\n // HACKHACK: https://github.com/palantir/blueprint/issues/4165\n // eslint-disable-next-line deprecation/deprecation\n if (e.which === TAB_KEY_CODE) {\n this.reset();\n this.container.addEventListener(\"mousedown\", this.handleMouseDown);\n }\n };\n\n private handleMouseDown = () => {\n this.reset();\n this.container.classList.add(this.className);\n // HACKHACK: see https://github.com/palantir/blueprint/issues/4342\n this.container.addEventListener(\"keydown\", this.handleKeyDown as EventListener);\n };\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FOCUS_DISABLED } from \"../common/classes\";\nimport { InteractionModeEngine } from \"../common/interactionMode\";\n\n/* istanbul ignore next */\nconst fakeFocusEngine = {\n isActive: () => true,\n start: () => true,\n stop: () => true,\n};\n\nconst focusEngine =\n typeof document !== \"undefined\"\n ? new InteractionModeEngine(document.documentElement, FOCUS_DISABLED)\n : fakeFocusEngine;\n\nexport const FocusStyleManager = {\n alwaysShowFocus: () => focusEngine.stop(),\n isActive: () => focusEngine.isActive(),\n onlyShowFocusOnTabs: () => focusEngine.start(),\n};\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as React from \"react\";\n\nimport { IconName } from \"@blueprintjs/icons\";\n\nimport { Intent } from \"./intent\";\nimport { IRef } from \"./refs\";\n\nexport const DISPLAYNAME_PREFIX = \"Blueprint3\";\n\n/**\n * Alias for all valid HTML props for `
` element.\n * Does not include React's `ref` or `key`.\n */\nexport type HTMLDivProps = React.HTMLAttributes;\n\n/**\n * Alias for all valid HTML props for `` element.\n * Does not include React's `ref` or `key`.\n */\nexport type HTMLInputProps = React.InputHTMLAttributes;\n\n/**\n * Alias for a `JSX.Element` or a value that renders nothing.\n *\n * In React, `boolean`, `null`, and `undefined` do not produce any output.\n */\nexport type MaybeElement = JSX.Element | false | null | undefined;\n\n/**\n * A shared base interface for all Blueprint component props.\n *\n * @deprecated use Props\n */\nexport interface IProps {\n /** A space-delimited list of class names to pass along to a child element. */\n className?: string;\n}\n// eslint-disable-next-line deprecation/deprecation\nexport type Props = IProps;\n\n/** @deprecated use IntentProps */\nexport interface IIntentProps {\n /** Visual intent color to apply to element. */\n intent?: Intent;\n}\n// eslint-disable-next-line deprecation/deprecation\nexport type IntentProps = IIntentProps;\n\n/**\n * Interface for a clickable action, such as a button or menu item.\n * These props can be spready directly to a `
\n );\n };\n\n private renderTarget = (referenceProps: ReferenceChildrenProps) => {\n const { fill, openOnTargetFocus, targetClassName, targetProps = {} } = this.props;\n const { isOpen } = this.state;\n const isControlled = this.isControlled();\n const isHoverInteractionKind = this.isHoverInteractionKind();\n let { targetTagName } = this.props;\n if (fill) {\n targetTagName = \"div\";\n }\n\n const finalTargetProps: React.HTMLProps = isHoverInteractionKind\n ? {\n // HOVER handlers\n onBlur: this.handleTargetBlur,\n onFocus: this.handleTargetFocus,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n }\n : {\n // CLICK needs only one handler\n onClick: this.handleTargetClick,\n };\n finalTargetProps.className = classNames(\n Classes.POPOVER_TARGET,\n { [Classes.POPOVER_OPEN]: isOpen },\n targetProps.className,\n targetClassName,\n );\n finalTargetProps.ref = referenceProps.ref;\n\n const rawTarget = Utils.ensureElement(this.understandChildren().target);\n\n if (rawTarget === undefined) {\n return null;\n }\n\n const rawTabIndex = rawTarget.props.tabIndex;\n // ensure target is focusable if relevant prop enabled\n const tabIndex = rawTabIndex == null && openOnTargetFocus && isHoverInteractionKind ? 0 : rawTabIndex;\n const clonedTarget: JSX.Element = React.cloneElement(rawTarget, {\n className: classNames(rawTarget.props.className, {\n // this class is mainly useful for button targets; we should only apply it for uncontrolled popovers\n // when they are opened by a user interaction\n [Classes.ACTIVE]: isOpen && !isControlled && !isHoverInteractionKind,\n }),\n // force disable single Tooltip child when popover is open (BLUEPRINT-552)\n /* eslint-disable-next-line deprecation/deprecation */\n disabled: isOpen && Utils.isElementOfType(rawTarget, Tooltip) ? true : rawTarget.props.disabled,\n tabIndex,\n });\n const target = React.createElement(\n targetTagName!,\n {\n ...targetProps,\n ...finalTargetProps,\n },\n clonedTarget,\n );\n\n return {target};\n };\n\n // content and target can be specified as props or as children. this method\n // normalizes the two approaches, preferring child over prop.\n private understandChildren() {\n const { children, content: contentProp, target: targetProp } = this.props;\n // #validateProps asserts that 1 <= children.length <= 2 so content is optional\n const [targetChild, contentChild] = React.Children.toArray(children);\n return {\n content: contentChild == null ? contentProp : contentChild,\n target: targetChild == null ? targetProp : targetChild,\n };\n }\n\n private isControlled = () => this.props.isOpen !== undefined;\n\n private getIsOpen(props: IPopoverProps) {\n // disabled popovers should never be allowed to open.\n if (props.disabled) {\n return false;\n } else if (props.isOpen != null) {\n return props.isOpen;\n } else {\n return props.defaultIsOpen!;\n }\n }\n\n private getPopperModifiers(): PopperModifiers {\n const { boundary, modifiers } = this.props;\n const { flip = {}, preventOverflow = {} } = modifiers!;\n return {\n ...modifiers,\n arrowOffset: {\n enabled: this.isArrowEnabled(),\n fn: arrowOffsetModifier,\n order: 510,\n },\n flip: { boundariesElement: boundary, ...flip },\n preventOverflow: { boundariesElement: boundary, ...preventOverflow },\n updatePopoverState: {\n enabled: true,\n fn: this.updatePopoverState,\n order: 900,\n },\n };\n }\n\n private handleTargetFocus = (e: React.FocusEvent) => {\n if (this.props.openOnTargetFocus && this.isHoverInteractionKind()) {\n if (e.relatedTarget == null && !this.lostFocusOnSamePage) {\n // ignore this focus event -- the target was already focused but the page itself\n // lost focus (e.g. due to switching tabs).\n return;\n }\n this.handleMouseEnter((e as unknown) as React.MouseEvent);\n }\n this.props.targetProps?.onFocus?.(e);\n };\n\n private handleTargetBlur = (e: React.FocusEvent) => {\n if (this.props.openOnTargetFocus && this.isHoverInteractionKind()) {\n // if the next element to receive focus is within the popover, we'll want to leave the\n // popover open. e.relatedTarget ought to tell us the next element to receive focus, but if the user just\n // clicked on an element which is not focusable (either by default or with a tabIndex attribute),\n // it won't be set. So, we filter those out here and assume that a click handler somewhere else will\n // close the popover if necessary.\n if (e.relatedTarget != null && !this.isElementInPopover(e.relatedTarget as HTMLElement)) {\n this.handleMouseLeave((e as unknown) as React.MouseEvent);\n }\n }\n this.lostFocusOnSamePage = e.relatedTarget != null;\n this.props.targetProps?.onBlur?.(e);\n };\n\n private handleMouseEnter = (e: React.MouseEvent) => {\n this.isMouseInTargetOrPopover = true;\n\n // if we're entering the popover, and the mode is set to be HOVER_TARGET_ONLY, we want to manually\n // trigger the mouse leave event, as hovering over the popover shouldn't count.\n if (\n !this.props.usePortal &&\n this.isElementInPopover(e.target as Element) &&\n this.props.interactionKind === PopoverInteractionKind.HOVER_TARGET_ONLY &&\n !this.props.openOnTargetFocus\n ) {\n this.handleMouseLeave(e);\n } else if (!this.props.disabled) {\n // only begin opening popover when it is enabled\n this.setOpenState(true, e, this.props.hoverOpenDelay);\n }\n this.props.targetProps?.onMouseEnter?.(e);\n };\n\n private handleMouseLeave = (e: React.MouseEvent) => {\n this.isMouseInTargetOrPopover = false;\n\n // wait until the event queue is flushed, because we want to leave the\n // popover open if the mouse entered the popover immediately after\n // leaving the target (or vice versa).\n this.setTimeout(() => {\n if (this.isMouseInTargetOrPopover) {\n return;\n }\n // user-configurable closing delay is helpful when moving mouse from target to popover\n this.setOpenState(false, e, this.props.hoverCloseDelay);\n });\n this.props.targetProps?.onMouseLeave?.(e);\n };\n\n private handlePopoverClick = (e: React.MouseEvent) => {\n const eventTarget = e.target as HTMLElement;\n const eventPopover = eventTarget.closest(`.${Classes.POPOVER}`);\n const isEventFromSelf = eventPopover === this.popoverRef.current;\n const isEventPopoverCapturing = eventPopover?.classList.contains(Classes.POPOVER_CAPTURING_DISMISS);\n // an OVERRIDE inside a DISMISS does not dismiss, and a DISMISS inside an OVERRIDE will dismiss.\n const dismissElement = eventTarget.closest(`.${Classes.POPOVER_DISMISS}, .${Classes.POPOVER_DISMISS_OVERRIDE}`);\n const shouldDismiss = dismissElement != null && dismissElement.classList.contains(Classes.POPOVER_DISMISS);\n const isDisabled = eventTarget.closest(`:disabled, .${Classes.DISABLED}`) != null;\n if (shouldDismiss && !isDisabled && (!isEventPopoverCapturing || isEventFromSelf)) {\n this.setOpenState(false, e);\n }\n };\n\n private handleOverlayClose = (e?: React.SyntheticEvent) => {\n if (this.targetElement === null || e === undefined) {\n return;\n }\n\n const eventTarget = e.target as HTMLElement;\n // if click was in target, target event listener will handle things, so don't close\n if (!Utils.elementIsOrContains(this.targetElement, eventTarget) || e.nativeEvent instanceof KeyboardEvent) {\n this.setOpenState(false, e);\n }\n };\n\n private handleTargetClick = (e: React.MouseEvent) => {\n // ensure click did not originate from within inline popover before closing\n if (!this.props.disabled && !this.isElementInPopover(e.target as HTMLElement)) {\n if (this.props.isOpen == null) {\n this.setState(prevState => ({ isOpen: !prevState.isOpen }));\n } else {\n this.setOpenState(!this.props.isOpen, e);\n }\n }\n this.props.targetProps?.onClick?.(e);\n };\n\n // a wrapper around setState({isOpen}) that will call props.onInteraction instead when in controlled mode.\n // starts a timeout to delay changing the state if a non-zero duration is provided.\n private setOpenState(isOpen: boolean, e?: React.SyntheticEvent, timeout?: number) {\n // cancel any existing timeout because we have new state\n this.cancelOpenTimeout?.();\n if (timeout !== undefined && timeout > 0) {\n this.cancelOpenTimeout = this.setTimeout(() => this.setOpenState(isOpen, e), timeout);\n } else {\n if (this.props.isOpen == null) {\n this.setState({ isOpen });\n } else {\n this.props.onInteraction?.(isOpen, e);\n }\n if (!isOpen) {\n // non-null assertion because the only time `e` is undefined is when in controlled mode\n // or the rare special case in uncontrolled mode when the `disabled` flag is toggled true\n this.props.onClose?.(e!);\n }\n }\n }\n\n private isArrowEnabled() {\n const { minimal, modifiers } = this.props;\n // omitting `arrow` from `modifiers` uses Popper default, which does show an arrow.\n return !minimal && (modifiers?.arrow == null || modifiers.arrow.enabled);\n }\n\n private isElementInPopover(element: Element) {\n return this.popoverElement?.contains(element);\n }\n\n private isHoverInteractionKind() {\n return (\n this.props.interactionKind === PopoverInteractionKind.HOVER ||\n this.props.interactionKind === PopoverInteractionKind.HOVER_TARGET_ONLY\n );\n }\n\n /** Popper modifier that updates React state (for style properties) based on latest data. */\n private updatePopoverState: ModifierFn = data => {\n // always set string; let shouldComponentUpdate determine if update is necessary\n this.setState({ transformOrigin: getTransformOrigin(data) });\n return data;\n };\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\n\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { DISPLAYNAME_PREFIX, Props } from \"../../common/props\";\n\n// eslint-disable-next-line deprecation/deprecation\nexport type TextProps = ITextProps;\n/** @deprecated use TextProps */\nexport interface ITextProps extends Props {\n /**\n * Indicates that this component should be truncated with an ellipsis if it overflows its container.\n * The `title` attribute will also be added when content overflows to show the full text of the children on hover.\n *\n * @default false\n */\n ellipsize?: boolean;\n\n /**\n * HTML tag name to use for rendered element.\n *\n * @default \"div\"\n */\n tagName?: keyof JSX.IntrinsicElements;\n\n /**\n * HTML title of the element\n */\n title?: string;\n}\n\nexport interface ITextState {\n textContent: string;\n isContentOverflowing: boolean;\n}\n\n@polyfill\nexport class Text extends AbstractPureComponent2 {\n public static displayName = `${DISPLAYNAME_PREFIX}.Text`;\n\n public static defaultProps: Partial = {\n ellipsize: false,\n tagName: \"div\",\n };\n\n public state: ITextState = {\n isContentOverflowing: false,\n textContent: \"\",\n };\n\n private textRef: HTMLElement | null = null;\n\n public componentDidMount() {\n this.update();\n }\n\n public componentDidUpdate() {\n this.update();\n }\n\n public render() {\n const classes = classNames(\n {\n [Classes.TEXT_OVERFLOW_ELLIPSIS]: this.props.ellipsize,\n },\n this.props.className,\n );\n const { children, tagName, title } = this.props;\n\n return React.createElement(\n tagName!,\n {\n className: classes,\n ref: (ref: HTMLElement | null) => (this.textRef = ref),\n title: title ?? (this.state.isContentOverflowing ? this.state.textContent : undefined),\n },\n children,\n );\n }\n\n private update() {\n if (this.textRef?.textContent == null) {\n return;\n }\n const newState = {\n isContentOverflowing: this.props.ellipsize! && this.textRef.scrollWidth > this.textRef.clientWidth,\n textContent: this.textRef.textContent,\n };\n this.setState(newState);\n }\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport { Modifiers } from \"popper.js\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\n\nimport { AbstractPureComponent2, Classes, Position } from \"../../common\";\nimport { DISPLAYNAME_PREFIX, ActionProps, LinkProps } from \"../../common/props\";\nimport { Icon } from \"../icon/icon\";\nimport { IPopoverProps, Popover, PopoverInteractionKind } from \"../popover/popover\";\nimport { Text } from \"../text/text\";\n// this cyclic import can be removed in v4.0 (https://github.com/palantir/blueprint/issues/3829)\n// eslint-disable-next-line import/no-cycle\nimport { Menu } from \"./menu\";\n\n// eslint-disable-next-line deprecation/deprecation\nexport type MenuItemProps = IMenuItemProps;\n/** @deprecated use MenuItemProps */\nexport interface IMenuItemProps extends ActionProps, LinkProps {\n // override from IActionProps to make it required\n /** Item text, required for usability. */\n text: React.ReactNode;\n\n /** Whether this menu item should appear with an active state. */\n active?: boolean;\n\n /**\n * Children of this component will be rendered in a __submenu__ that appears when hovering or\n * clicking on this menu item.\n *\n * Use `text` prop for the content of the menu item itself.\n */\n children?: React.ReactNode;\n\n /**\n * Whether this menu item is non-interactive. Enabling this prop will ignore `href`, `tabIndex`,\n * and mouse event handlers (in particular click, down, enter, leave).\n */\n disabled?: boolean;\n\n /**\n * Right-aligned label text content, useful for displaying hotkeys.\n *\n * This prop actually supports JSX elements, but TypeScript will throw an error because\n * `HTMLAttributes` only allows strings. Use `labelElement` to supply a JSX element in TypeScript.\n */\n label?: string;\n\n /**\n * A space-delimited list of class names to pass along to the right-aligned label wrapper element.\n */\n labelClassName?: string;\n\n /**\n * Right-aligned label content, useful for displaying hotkeys.\n */\n labelElement?: React.ReactNode;\n\n /**\n * Whether the text should be allowed to wrap to multiple lines.\n * If `false`, text will be truncated with an ellipsis when it reaches `max-width`.\n *\n * @default false\n */\n multiline?: boolean;\n\n /**\n * Props to spread to `Popover`. Note that `content` and `minimal` cannot be\n * changed and `usePortal` defaults to `false` so all submenus will live in\n * the same container.\n */\n popoverProps?: Partial;\n\n /**\n * Whether an enabled item without a submenu should automatically close its parent popover when clicked.\n *\n * @default true\n */\n shouldDismissPopover?: boolean;\n\n /**\n * Name of the HTML tag that wraps the MenuItem.\n *\n * @default \"a\"\n */\n tagName?: keyof JSX.IntrinsicElements;\n\n /**\n * A space-delimited list of class names to pass along to the text wrapper element.\n */\n textClassName?: string;\n\n /**\n * HTML title to be passed to the component\n */\n htmlTitle?: string;\n}\n\n@polyfill\nexport class MenuItem extends AbstractPureComponent2> {\n public static defaultProps: MenuItemProps = {\n disabled: false,\n multiline: false,\n popoverProps: {},\n shouldDismissPopover: true,\n text: \"\",\n };\n\n public static displayName = `${DISPLAYNAME_PREFIX}.MenuItem`;\n\n public render() {\n const {\n active,\n className,\n children,\n disabled,\n icon,\n intent,\n labelClassName,\n labelElement,\n multiline,\n popoverProps,\n shouldDismissPopover,\n text,\n textClassName,\n tagName = \"a\",\n htmlTitle,\n ...htmlProps\n } = this.props;\n const hasSubmenu = children != null;\n\n const intentClass = Classes.intentClass(intent);\n const anchorClasses = classNames(\n Classes.MENU_ITEM,\n intentClass,\n {\n [Classes.ACTIVE]: active,\n [Classes.INTENT_PRIMARY]: active && intentClass == null,\n [Classes.DISABLED]: disabled,\n // prevent popover from closing when clicking on submenu trigger or disabled item\n [Classes.POPOVER_DISMISS]: shouldDismissPopover && !disabled && !hasSubmenu,\n },\n className,\n );\n\n const target = React.createElement(\n tagName,\n {\n ...htmlProps,\n ...(disabled ? DISABLED_PROPS : {}),\n className: anchorClasses,\n },\n ,\n \n {text}\n ,\n this.maybeRenderLabel(labelElement),\n hasSubmenu ? : undefined,\n );\n\n const liClasses = classNames({ [Classes.MENU_SUBMENU]: hasSubmenu });\n return
  • {this.maybeRenderPopover(target, children)}
  • ;\n }\n\n private maybeRenderLabel(labelElement?: React.ReactNode) {\n const { label, labelClassName } = this.props;\n if (label == null && labelElement == null) {\n return null;\n }\n return (\n \n {label}\n {labelElement}\n \n );\n }\n\n private maybeRenderPopover(target: JSX.Element, children?: React.ReactNode) {\n if (children == null) {\n return target;\n }\n const { disabled, popoverProps } = this.props;\n return (\n /* eslint-disable-next-line deprecation/deprecation */\n {children}}\n minimal={true}\n popoverClassName={classNames(Classes.MENU_SUBMENU, popoverProps?.popoverClassName)}\n target={target}\n />\n );\n }\n}\n\nconst SUBMENU_POPOVER_MODIFIERS: Modifiers = {\n // 20px padding - scrollbar width + a bit\n flip: { boundariesElement: \"viewport\", padding: 20 },\n // shift popover up 5px so MenuItems align\n offset: { offset: -5 },\n preventOverflow: { boundariesElement: \"viewport\", padding: 20 },\n};\n\n// props to ignore when disabled\nconst DISABLED_PROPS: React.AnchorHTMLAttributes = {\n href: undefined,\n onClick: undefined,\n onMouseDown: undefined,\n onMouseEnter: undefined,\n onMouseLeave: undefined,\n tabIndex: -1,\n};\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\n\nimport { AbstractPureComponent2, Classes, IRef } from \"../../common\";\nimport { DISPLAYNAME_PREFIX, Props } from \"../../common/props\";\nimport { MenuDivider } from \"./menuDivider\";\n// this cyclic import can be removed in v4.0 (https://github.com/palantir/blueprint/issues/3829)\n// eslint-disable-next-line import/no-cycle\nimport { MenuItem } from \"./menuItem\";\n\n// eslint-disable-next-line deprecation/deprecation\nexport type MenuProps = IMenuProps;\n/** @deprecated use MenuProps */\nexport interface IMenuProps extends Props, React.HTMLAttributes {\n /** Whether the menu items in this menu should use a large appearance. */\n large?: boolean;\n\n /** Ref handler that receives the HTML `
      ` element backing this component. */\n ulRef?: IRef;\n}\n\n@polyfill\nexport class Menu extends AbstractPureComponent2 {\n public static displayName = `${DISPLAYNAME_PREFIX}.Menu`;\n\n /** @deprecated use MenuDivider */\n public static Divider = MenuDivider;\n\n /** @deprecated use MenuItem*/\n public static Item = MenuItem;\n\n public render() {\n const { className, children, large, ulRef, ...htmlProps } = this.props;\n const classes = classNames(Classes.MENU, { [Classes.LARGE]: large }, className);\n return (\n
        \n {children}\n
      \n );\n }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\n\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { DISPLAYNAME_PREFIX, ActionProps, IntentProps, LinkProps, Props, MaybeElement } from \"../../common/props\";\nimport { ButtonGroup } from \"../button/buttonGroup\";\nimport { AnchorButton, Button } from \"../button/buttons\";\nimport { Icon, IconName } from \"../icon/icon\";\n\nexport type ToastProps = IToastProps;\nexport interface IToastProps extends Props, IntentProps {\n /**\n * Action rendered as a minimal `AnchorButton`. The toast is dismissed automatically when the\n * user clicks the action button. Note that the `intent` prop is ignored (the action button\n * cannot have its own intent color that might conflict with the toast's intent). Omit this\n * prop to omit the action button.\n */\n action?: ActionProps & LinkProps;\n\n /** Name of a Blueprint UI icon (or an icon element) to render before the message. */\n icon?: IconName | MaybeElement;\n\n /** Message to display in the body of the toast. */\n message: React.ReactNode;\n\n /**\n * Callback invoked when the toast is dismissed, either by the user or by the timeout.\n * The value of the argument indicates whether the toast was closed because the timeout expired.\n */\n onDismiss?: (didTimeoutExpire: boolean) => void;\n\n /**\n * Milliseconds to wait before automatically dismissing toast.\n * Providing a value less than or equal to 0 will disable the timeout (this is discouraged).\n *\n * @default 5000\n */\n timeout?: number;\n}\n\n@polyfill\nexport class Toast extends AbstractPureComponent2 {\n public static defaultProps: IToastProps = {\n className: \"\",\n message: \"\",\n timeout: 5000,\n };\n\n public static displayName = `${DISPLAYNAME_PREFIX}.Toast`;\n\n public render(): JSX.Element {\n const { className, icon, intent, message } = this.props;\n return (\n \n \n {message}\n \n {this.maybeRenderActionButton()}\n
    \n );\n }\n\n public componentDidMount() {\n this.startTimeout();\n }\n\n public componentDidUpdate(prevProps: IToastProps) {\n if (prevProps.timeout !== this.props.timeout) {\n if (this.props.timeout! > 0) {\n this.startTimeout();\n } else {\n this.clearTimeouts();\n }\n }\n }\n\n public componentWillUnmount() {\n this.clearTimeouts();\n }\n\n private maybeRenderActionButton() {\n const { action } = this.props;\n if (action == null) {\n return undefined;\n } else {\n return ;\n }\n }\n\n private handleActionClick = (e: React.MouseEvent) => {\n this.props.action?.onClick?.(e);\n this.triggerDismiss(false);\n };\n\n private handleCloseClick = () => this.triggerDismiss(false);\n\n private triggerDismiss(didTimeoutExpire: boolean) {\n this.clearTimeouts();\n this.props.onDismiss?.(didTimeoutExpire);\n }\n\n private startTimeout = () => {\n this.clearTimeouts();\n if (this.props.timeout! > 0) {\n this.setTimeout(() => this.triggerDismiss(true), this.props.timeout);\n }\n };\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { polyfill } from \"react-lifecycles-compat\";\n\nimport { AbstractPureComponent2, Classes, Position } from \"../../common\";\nimport { TOASTER_CREATE_NULL, TOASTER_MAX_TOASTS_INVALID, TOASTER_WARN_INLINE } from \"../../common/errors\";\nimport { ESCAPE } from \"../../common/keys\";\nimport { DISPLAYNAME_PREFIX, Props } from \"../../common/props\";\nimport { isNodeEnv } from \"../../common/utils\";\nimport { Overlay } from \"../overlay/overlay\";\nimport { IToastProps, Toast } from \"./toast\";\n\nexport type IToastOptions = IToastProps & { key: string };\nexport type ToasterPosition =\n | typeof Position.TOP\n | typeof Position.TOP_LEFT\n | typeof Position.TOP_RIGHT\n | typeof Position.BOTTOM\n | typeof Position.BOTTOM_LEFT\n | typeof Position.BOTTOM_RIGHT;\n\n/** Instance methods available on a `` component instance. */\nexport interface IToaster {\n /**\n * Shows a new toast to the user, or updates an existing toast corresponding to the provided key (optional).\n *\n * Returns the unique key of the toast.\n */\n show(props: IToastProps, key?: string): string;\n\n /** Dismiss the given toast instantly. */\n dismiss(key: string): void;\n\n /** Dismiss all toasts instantly. */\n clear(): void;\n\n /** Returns the props for all current toasts. */\n getToasts(): IToastOptions[];\n}\n\n/**\n * Props supported by the `` component.\n * These props can be passed as an argument to the static `Toaster.create(props?, container?)` method.\n */\nexport interface IToasterProps extends Props {\n /**\n * Whether a toast should acquire application focus when it first opens.\n * This is disabled by default so that toasts do not interrupt the user's flow.\n * Note that `enforceFocus` is always disabled for `Toaster`s.\n *\n * @default false\n */\n autoFocus?: boolean;\n\n /**\n * Whether pressing the `esc` key should clear all active toasts.\n *\n * @default true\n */\n canEscapeKeyClear?: boolean;\n\n /**\n * Whether the toaster should be rendered into a new element attached to `document.body`.\n * If `false`, then positioning will be relative to the parent element.\n *\n * This prop is ignored by `Toaster.create()` as that method always appends a new element\n * to the container.\n *\n * @default true\n */\n usePortal?: boolean;\n\n /**\n * Position of `Toaster` within its container.\n *\n * @default Position.TOP\n */\n position?: ToasterPosition;\n\n /**\n * The maximum number of active toasts that can be displayed at once.\n *\n * When the limit is about to be exceeded, the oldest active toast is removed.\n *\n * @default undefined\n */\n maxToasts?: number;\n}\n\nexport interface IToasterState {\n toasts: IToastOptions[];\n}\n\n@polyfill\nexport class Toaster extends AbstractPureComponent2 implements IToaster {\n public static displayName = `${DISPLAYNAME_PREFIX}.Toaster`;\n\n public static defaultProps: IToasterProps = {\n autoFocus: false,\n canEscapeKeyClear: true,\n position: Position.TOP,\n usePortal: true,\n };\n\n /**\n * Create a new `Toaster` instance that can be shared around your application.\n * The `Toaster` will be rendered into a new element appended to the given container.\n */\n public static create(props?: IToasterProps, container = document.body): IToaster {\n if (props != null && props.usePortal != null && !isNodeEnv(\"production\")) {\n console.warn(TOASTER_WARN_INLINE);\n }\n const containerElement = document.createElement(\"div\");\n container.appendChild(containerElement);\n const toaster = ReactDOM.render(\n ,\n containerElement,\n ) as Toaster;\n if (toaster == null) {\n throw new Error(TOASTER_CREATE_NULL);\n }\n return toaster;\n }\n\n public state: IToasterState = {\n toasts: [],\n };\n\n // auto-incrementing identifier for un-keyed toasts\n private toastId = 0;\n\n public show(props: IToastProps, key?: string) {\n if (this.props.maxToasts) {\n // check if active number of toasts are at the maxToasts limit\n this.dismissIfAtLimit();\n }\n const options = this.createToastOptions(props, key);\n if (key === undefined || this.isNewToastKey(key)) {\n this.setState(prevState => ({\n toasts: [options, ...prevState.toasts],\n }));\n } else {\n this.setState(prevState => ({\n toasts: prevState.toasts.map(t => (t.key === key ? options : t)),\n }));\n }\n return options.key;\n }\n\n public dismiss(key: string, timeoutExpired = false) {\n this.setState(({ toasts }) => ({\n toasts: toasts.filter(t => {\n const matchesKey = t.key === key;\n if (matchesKey) {\n t.onDismiss?.(timeoutExpired);\n }\n return !matchesKey;\n }),\n }));\n }\n\n public clear() {\n this.state.toasts.forEach(t => t.onDismiss?.(false));\n this.setState({ toasts: [] });\n }\n\n public getToasts() {\n return this.state.toasts;\n }\n\n public render() {\n const classes = classNames(Classes.TOAST_CONTAINER, this.getPositionClasses(), this.props.className);\n return (\n 0 || this.props.children != null}\n onClose={this.handleClose}\n // $pt-transition-duration * 3 + $pt-transition-duration / 2\n transitionDuration={350}\n transitionName={Classes.TOAST}\n usePortal={this.props.usePortal}\n >\n {this.state.toasts.map(this.renderToast, this)}\n {this.props.children}\n \n );\n }\n\n protected validateProps({ maxToasts }: IToasterProps) {\n // maximum number of toasts should not be a number less than 1\n if (maxToasts !== undefined && maxToasts < 1) {\n throw new Error(TOASTER_MAX_TOASTS_INVALID);\n }\n }\n\n private isNewToastKey(key: string) {\n return this.state.toasts.every(toast => toast.key !== key);\n }\n\n private dismissIfAtLimit() {\n if (this.state.toasts.length === this.props.maxToasts) {\n // dismiss the oldest toast to stay within the maxToasts limit\n this.dismiss(this.state.toasts[this.state.toasts.length - 1].key!);\n }\n }\n\n private renderToast = (toast: IToastOptions) => {\n return ;\n };\n\n private createToastOptions(props: IToastProps, key = `toast-${this.toastId++}`) {\n // clone the object before adding the key prop to avoid leaking the mutation\n return { ...props, key };\n }\n\n private getPositionClasses() {\n const positions = this.props.position!.split(\"-\");\n // NOTE that there is no -center class because that's the default style\n return [\n ...positions.map(p => `${Classes.TOAST_CONTAINER}-${p.toLowerCase()}`),\n `${Classes.TOAST_CONTAINER}-${this.props.usePortal ? \"in-portal\" : \"inline\"}`,\n ];\n }\n\n private getDismissHandler = (toast: IToastOptions) => (timeoutExpired: boolean) => {\n this.dismiss(toast.key, timeoutExpired);\n };\n\n private handleClose = (e: React.SyntheticEvent) => {\n // NOTE that `e` isn't always a KeyboardEvent but that's the only type we care about\n // HACKHACK: https://github.com/palantir/blueprint/issues/4165\n /* eslint-disable-next-line deprecation/deprecation */\n if ((e as React.KeyboardEvent).which === ESCAPE) {\n this.clear();\n }\n };\n}\n\nexport const OverlayToaster = Toaster;\nexport type OverlayToasterProps = IToasterProps;\n","/// \nimport * as SuperAgent from 'superagent';\nimport * as Blueprint from '@blueprintjs/core';\n\nlet toaster: Blueprint.IToaster;\n\nexport function success(message: string, timeout?: number): string {\n\tif (timeout === undefined) {\n\t\ttimeout = 5000;\n\t}\n\n\treturn toaster.show({\n\t\tintent: Blueprint.Intent.SUCCESS,\n\t\tmessage: message,\n\t\ttimeout: timeout,\n\t});\n}\n\nexport function info(message: string, timeout?: number): string {\n\tif (timeout === undefined) {\n\t\ttimeout = 5000;\n\t}\n\n\treturn toaster.show({\n\t\tintent: Blueprint.Intent.PRIMARY,\n\t\tmessage: message,\n\t\ttimeout: timeout,\n\t});\n}\n\nexport function warning(message: string, timeout?: number): string {\n\tif (timeout === undefined) {\n\t\ttimeout = 5000;\n\t}\n\n\treturn toaster.show({\n\t\tintent: Blueprint.Intent.WARNING,\n\t\tmessage: message,\n\t\ttimeout: timeout,\n\t});\n}\n\nexport function error(message: string, timeout?: number): string {\n\tif (timeout === undefined) {\n\t\ttimeout = 5000;\n\t}\n\n\treturn toaster.show({\n\t\tintent: Blueprint.Intent.DANGER,\n\t\tmessage: message,\n\t\ttimeout: timeout,\n\t});\n}\n\nexport function errorRes(res: SuperAgent.Response, message: string,\n\t\t\t\t\t\t\t\t\t\t\t\t timeout?: number): string {\n\tif (timeout === undefined) {\n\t\ttimeout = 5000;\n\t}\n\n\ttry {\n\t\tmessage = res.body.error_msg || message;\n\t} catch(err) {\n\t}\n\n\treturn toaster.show({\n\t\tintent: Blueprint.Intent.DANGER,\n\t\tmessage: message,\n\t\ttimeout: timeout,\n\t});\n}\n\nexport function dismiss(key: string) {\n\ttoaster.dismiss(key);\n}\n\nexport function init() {\n\tif (toaster) {\n\t\treturn;\n\t}\n\n\tif (Blueprint.Toaster) {\n\t\ttoaster = Blueprint.Toaster.create({\n\t\t\tposition: Blueprint.Position.BOTTOM,\n\t\t}, document.getElementById('toaster'));\n\t} else {\n\t\tconsole.error('Failed to load toaster')\n\t}\n}\n","/// \nimport * as SuperAgent from 'superagent';\nimport * as Alert from './Alert';\nimport * as Csrf from './Csrf';\n\nexport let oracle = false;\n\nexport function save(): Promise {\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/license')\n\t\t\t.send({\n\t\t\t\toracle: oracle,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save license state');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function setOracle(state: boolean): void {\n\toracle = state;\n}\n","/// \nimport * as SuperAgent from 'superagent';\nimport * as License from './License';\nimport * as Theme from './Theme';\n\nexport let token = '';\n\nexport function load(): Promise {\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/csrf')\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\ttoken = res.body.token;\n\n\t\t\t\tLicense.setOracle(!!res.body.oracle_license);\n\n\t\t\t\tif (res.body.theme === 'light') {\n\t\t\t\t\tTheme.light();\n\t\t\t\t} else {\n\t\t\t\t\tTheme.dark();\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n","/// \nimport * as SuperAgent from 'superagent';\nimport * as Alert from './Alert';\nimport * as Csrf from './Csrf';\n\nexport interface Callback {\n\t(): void;\n}\n\nlet callbacks: Set = new Set();\nexport let theme = 'dark';\n\nexport function save(): Promise {\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/theme')\n\t\t\t.send({\n\t\t\t\ttheme: theme,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save theme');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function light(): void {\n\ttheme = 'light';\n\tdocument.body.className = '';\n\tcallbacks.forEach((callback: Callback): void => {\n\t\tcallback();\n\t});\n}\n\nexport function dark(): void {\n\ttheme = 'dark';\n\tdocument.body.className = 'bp3-dark';\n\tcallbacks.forEach((callback: Callback): void => {\n\t\tcallback();\n\t});\n}\n\nexport function toggle(): void {\n\tif (theme === 'light') {\n\t\tdark();\n\t} else {\n\t\tlight();\n\t}\n}\n\nexport function editorTheme(): string {\n\tif (theme === \"light\") {\n\t\treturn \"eclipse\";\n\t} else {\n\t\treturn \"dracula\";\n\t}\n}\n\nexport function addChangeListener(callback: Callback): void {\n\tcallbacks.add(callback);\n}\n\nexport function removeChangeListener(callback: () => void): void {\n\tcallbacks.delete(callback);\n}\n","/// \nimport * as MobileDetect from 'mobile-detect';\n\nlet md = new MobileDetect(window.navigator.userAgent);\n\nexport const user: boolean = !!(window as any).user;\n\nexport const mobile = !!md.mobile();\nexport const mobileOs = md.os();\n\nexport const loadDelay = 700;\n\nexport const u2fErrorCodes: {[index: number]: string} = {\n\t0: 'ok',\n\t1: 'other',\n\t2: 'bad request',\n\t3: 'configuration unsupported',\n\t4: 'device ineligible',\n\t5: 'timed out',\n};\n\nexport const sessionTypes: {[key: string]: string} = {\n\tadmin: 'Admin',\n\tproxy: 'Service',\n\tuser: 'User',\n};\n\nexport const operatingSystems: {[key: string]: string} = {\n\tlinux: 'Linux',\n\tmacos_1010: 'macOS 10.10',\n\tmacos_1011: 'macOS 10.11',\n\tmacos_1012: 'macOS 10.12',\n\tmacos_1013: 'macOS 10.13',\n\tmacos_1014: 'macOS 10.14',\n\tmacos_1015: 'macOS 10.15',\n\tmacos11: 'macOS 11',\n\tmacos12: 'macOS 12',\n\tmacos13: 'macOS 13',\n\tmacos14: 'macOS 14',\n\twindows_xp: 'Windows XP',\n\twindows_7: 'Windows 7',\n\twindows_vista: 'Windows Vista',\n\twindows_8: 'Windows 8',\n\twindows_10: 'Windows 10',\n\twindows_11: 'Windows 11',\n\tchrome_os: 'Chrome OS',\n\tios_8: 'iOS 8',\n\tios_9: 'iOS 9',\n\tios_10: 'iOS 10',\n\tios_11: 'iOS 11',\n\tios_12: 'iOS 12',\n\tios_13: 'iOS 13',\n\tios_14: 'iOS 14',\n\tios_15: 'iOS 15',\n\tios_16: 'iOS 16',\n\tios_17: 'iOS 17',\n\tios_18: 'iOS 18',\n\tandroid_4: 'Android KitKat 4.4',\n\tandroid_5: 'Android Lollipop 5',\n\tandroid_6: 'Android Marshmallow 6',\n\tandroid_7: 'Android Nougat 7',\n\tandroid_8: 'Android Oreo 8',\n\tandroid_9: 'Android Pie 9',\n\tandroid_10: 'Android 10',\n\tandroid_11: 'Android 11',\n\tandroid_12: 'Android 12',\n\tandroid_13: 'Android 13',\n\tandroid_14: 'Android 14',\n\tblackberry_10: 'Blackerry 10',\n\twindows_phone: 'Windows Phone',\n\tfirefox_os: 'Firefox OS',\n\tkindle: 'Kindle',\n};\n\nexport const browsers: {[key: string]: string} = {\n\tchrome: 'Chrome',\n\tchrome_mobile: 'Chrome Mobile',\n\tsafari: 'Safari',\n\tsafari_mobile: 'Safari Mobile',\n\tfirefox: 'Firefox',\n\tfirefox_mobile: 'Firefox Mobile',\n\tedge: 'Microsoft Edge',\n\tinternet_explorer: 'Internet Explorer',\n\tinternet_explorer_mobile: 'Internet Explorer Mobile',\n\topera: 'Opera',\n\topera_mobile: 'Opera Mobile',\n};\n\nexport const locations: {[key: string]: string} = {\n\tUS: 'United States',\n\tUS_AL: 'Alabama, US',\n\tUS_AK: 'Alaska, US',\n\tUS_AZ: 'Arizona, US',\n\tUS_AR: 'Arkansas, US',\n\tUS_CA: 'California, US',\n\tUS_CO: 'Colorado, US',\n\tUS_CT: 'Connecticut, US',\n\tUS_DE: 'Delaware, US',\n\tUS_FL: 'Florida, US',\n\tUS_GA: 'Georgia, US',\n\tUS_HI: 'Hawaii, US',\n\tUS_ID: 'Idaho, US',\n\tUS_IL: 'Illinois, US',\n\tUS_IN: 'Indiana, US',\n\tUS_IA: 'Iowa, US',\n\tUS_KS: 'Kansas, US',\n\tUS_KY: 'Kentucky, US',\n\tUS_LA: 'Louisiana, US',\n\tUS_ME: 'Maine, US',\n\tUS_MD: 'Maryland, US',\n\tUS_MA: 'Massachusetts, US',\n\tUS_MI: 'Michigan, US',\n\tUS_MN: 'Minnesota, US',\n\tUS_MS: 'Mississippi, US',\n\tUS_MO: 'Missouri, US',\n\tUS_MT: 'Montana, US',\n\tUS_NE: 'Nebraska, US',\n\tUS_NV: 'Nevada, US',\n\tUS_NH: 'New Hampshire, US',\n\tUS_NJ: 'New Jersey, US',\n\tUS_NM: 'New Mexico, US',\n\tUS_NY: 'New York, US',\n\tUS_NC: 'North Carolina, US',\n\tUS_ND: 'North Dakota, US',\n\tUS_OH: 'Ohio, US',\n\tUS_OK: 'Oklahoma, US',\n\tUS_OR: 'Oregon, US',\n\tUS_PA: 'Pennsylvania, US',\n\tUS_RI: 'Rhode Island, US',\n\tUS_SC: 'South Carolina, US',\n\tUS_SD: 'South Dakota, US',\n\tUS_TN: 'Tennessee, US',\n\tUS_TX: 'Texas, US',\n\tUS_UT: 'Utah, US',\n\tUS_VT: 'Vermont, US',\n\tUS_VA: 'Virginia, US',\n\tUS_WA: 'Washington, US',\n\tUS_DC: 'Washington DC, US',\n\tUS_WV: 'West Virginia, US',\n\tUS_WI: 'Wisconsin, US',\n\tUS_WY: 'Wyoming, US',\n\tAF: 'Afghanistan',\n\tAX: 'Åland Islands',\n\tAL: 'Albania',\n\tDZ: 'Algeria',\n\tAS: 'American Samoa',\n\tAD: 'Andorra',\n\tAO: 'Angola',\n\tAI: 'Anguilla',\n\tAQ: 'Antarctica',\n\tAG: 'Antigua and Barbuda',\n\tAR: 'Argentina',\n\tAM: 'Armenia',\n\tAW: 'Aruba',\n\tAU: 'Australia',\n\tAT: 'Austria',\n\tAZ: 'Azerbaijan',\n\tBS: 'Bahamas',\n\tBH: 'Bahrain',\n\tBD: 'Bangladesh',\n\tBB: 'Barbados',\n\tBY: 'Belarus',\n\tBE: 'Belgium',\n\tBZ: 'Belize',\n\tBJ: 'Benin',\n\tBM: 'Bermuda',\n\tBT: 'Bhutan',\n\tBO: 'Bolivia',\n\tBQ: 'Bonaire',\n\tBA: 'Bosnia and Herzegovina',\n\tBW: 'Botswana',\n\tBV: 'Bouvet Island',\n\tBR: 'Brazil',\n\tIO: 'British Indian Ocean Territory',\n\tBN: 'Brunei Darussalam',\n\tBG: 'Bulgaria',\n\tBF: 'Burkina Faso',\n\tBI: 'Burundi',\n\tCV: 'Cabo Verde',\n\tKH: 'Cambodia',\n\tCM: 'Cameroon',\n\tCA: 'Canada',\n\tKY: 'Cayman Islands',\n\tCF: 'Central African Republic',\n\tTD: 'Chad',\n\tCL: 'Chile',\n\tCN: 'China',\n\tCX: 'Christmas Island',\n\tCC: 'Cocos Islands',\n\tCO: 'Colombia',\n\tKM: 'Comoros',\n\tCG: 'Congo',\n\tCD: 'Congo Democratic Republic',\n\tCK: 'Cook Islands',\n\tCR: 'Costa Rica',\n\tCI: 'Côte dIvoire',\n\tHR: 'Croatia',\n\tCU: 'Cuba',\n\tCW: 'Curaçao',\n\tCY: 'Cyprus',\n\tCZ: 'Czechia',\n\tDK: 'Denmark',\n\tDJ: 'Djibouti',\n\tDM: 'Dominica',\n\tDO: 'Dominican Republic',\n\tEC: 'Ecuador',\n\tEG: 'Egypt',\n\tSV: 'El Salvador',\n\tGQ: 'Equatorial Guinea',\n\tER: 'Eritrea',\n\tEE: 'Estonia',\n\tET: 'Ethiopia',\n\tFK: 'Falkland Islands',\n\tFO: 'Faroe Islands',\n\tFJ: 'Fiji',\n\tFI: 'Finland',\n\tFR: 'France',\n\tGF: 'French Guiana',\n\tPF: 'French Polynesia',\n\tTF: 'French Southern Territories',\n\tGA: 'Gabon',\n\tGM: 'Gambia',\n\tGE: 'Georgia',\n\tDE: 'Germany',\n\tGH: 'Ghana',\n\tGI: 'Gibraltar',\n\tGR: 'Greece',\n\tGL: 'Greenland',\n\tGD: 'Grenada',\n\tGP: 'Guadeloupe',\n\tGU: 'Guam',\n\tGT: 'Guatemala',\n\tGG: 'Guernsey',\n\tGN: 'Guinea',\n\tGW: 'Guinea-Bissau',\n\tGY: 'Guyana',\n\tHT: 'Haiti',\n\tHM: 'Heard Island and McDonald Islands',\n\tVA: 'Holy See',\n\tHN: 'Honduras',\n\tHK: 'Hong Kong',\n\tHU: 'Hungary',\n\tIS: 'Iceland',\n\tIN: 'India',\n\tID: 'Indonesia',\n\tIR: 'Iran',\n\tIQ: 'Iraq',\n\tIE: 'Ireland',\n\tIM: 'Isle of Man',\n\tIL: 'Israel',\n\tIT: 'Italy',\n\tJM: 'Jamaica',\n\tJP: 'Japan',\n\tJE: 'Jersey',\n\tJO: 'Jordan',\n\tKZ: 'Kazakhstan',\n\tKE: 'Kenya',\n\tKI: 'Kiribati',\n\tKP: 'North Korea',\n\tKR: 'South Korea',\n\tKW: 'Kuwait',\n\tKG: 'Kyrgyzstan',\n\tLA: 'Lao Peoples',\n\tLV: 'Latvia',\n\tLB: 'Lebanon',\n\tLS: 'Lesotho',\n\tLR: 'Liberia',\n\tLY: 'Libya',\n\tLI: 'Liechtenstein',\n\tLT: 'Lithuania',\n\tLU: 'Luxembourg',\n\tMO: 'Macao',\n\tMK: 'Macedonia',\n\tMG: 'Madagascar',\n\tMW: 'Malawi',\n\tMY: 'Malaysia',\n\tMV: 'Maldives',\n\tML: 'Mali',\n\tMT: 'Malta',\n\tMH: 'Marshall Islands',\n\tMQ: 'Martinique',\n\tMR: 'Mauritania',\n\tMU: 'Mauritius',\n\tYT: 'Mayotte',\n\tMX: 'Mexico',\n\tFM: 'Micronesia',\n\tMD: 'Moldova',\n\tMC: 'Monaco',\n\tMN: 'Mongolia',\n\tME: 'Montenegro',\n\tMS: 'Montserrat',\n\tMA: 'Morocco',\n\tMZ: 'Mozambique',\n\tMM: 'Myanmar',\n\tNA: 'Namibia',\n\tNR: 'Nauru',\n\tNP: 'Nepal',\n\tNL: 'Netherlands',\n\tNC: 'New Caledonia',\n\tNZ: 'New Zealand',\n\tNI: 'Nicaragua',\n\tNE: 'Niger',\n\tNG: 'Nigeria',\n\tNU: 'Niue',\n\tNF: 'Norfolk Island',\n\tMP: 'Northern Mariana Islands',\n\tNO: 'Norway',\n\tOM: 'Oman',\n\tPK: 'Pakistan',\n\tPW: 'Palau',\n\tPS: 'Palestine, State of',\n\tPA: 'Panama',\n\tPG: 'Papua New Guinea',\n\tPY: 'Paraguay',\n\tPE: 'Peru',\n\tPH: 'Philippines',\n\tPN: 'Pitcairn',\n\tPL: 'Poland',\n\tPT: 'Portugal',\n\tPR: 'Puerto Rico',\n\tQA: 'Qatar',\n\tRE: 'Réunion',\n\tRO: 'Romania',\n\tRU: 'Russian Federation',\n\tRW: 'Rwanda',\n\tBL: 'Saint Barthélemy',\n\tSH: 'Saint Helena',\n\tKN: 'Saint Kitts and Nevis',\n\tLC: 'Saint Lucia',\n\tMF: 'Saint Martin',\n\tPM: 'Saint Pierre and Miquelon',\n\tVC: 'Saint Vincent and the Grenadines',\n\tWS: 'Samoa',\n\tSM: 'San Marino',\n\tST: 'Sao Tome and Principe',\n\tSA: 'Saudi Arabia',\n\tSN: 'Senegal',\n\tRS: 'Serbia',\n\tSC: 'Seychelles',\n\tSL: 'Sierra Leone',\n\tSG: 'Singapore',\n\tSX: 'Sint Maarten',\n\tSK: 'Slovakia',\n\tSI: 'Slovenia',\n\tSB: 'Solomon Islands',\n\tSO: 'Somalia',\n\tZA: 'South Africa',\n\tGS: 'South Georgia and the South Sandwich Islands',\n\tSS: 'South Sudan',\n\tES: 'Spain',\n\tLK: 'Sri Lanka',\n\tSD: 'Sudan',\n\tSR: 'Suriname',\n\tSJ: 'Svalbard and Jan Mayen',\n\tSZ: 'Swaziland',\n\tSE: 'Sweden',\n\tCH: 'Switzerland',\n\tSY: 'Syrian Arab Republic',\n\tTW: 'Taiwan',\n\tTJ: 'Tajikistan',\n\tTZ: 'Tanzania',\n\tTH: 'Thailand',\n\tTL: 'Timor-Leste',\n\tTG: 'Togo',\n\tTK: 'Tokelau',\n\tTO: 'Tonga',\n\tTT: 'Trinidad and Tobago',\n\tTN: 'Tunisia',\n\tTR: 'Turkey',\n\tTM: 'Turkmenistan',\n\tTC: 'Turks and Caicos Islands',\n\tTV: 'Tuvalu',\n\tUG: 'Uganda',\n\tUA: 'Ukraine',\n\tAE: 'United Arab Emirates',\n\tGB: 'United Kingdom',\n\tUM: 'United States Minor Outlying Islands',\n\tUY: 'Uruguay',\n\tUZ: 'Uzbekistan',\n\tVU: 'Vanuatu',\n\tVE: 'Venezuela',\n\tVN: 'Viet Nam',\n\tVG: 'British Virgin Islands',\n\tVI: 'US Virgin Islands',\n\tWF: 'Wallis and Futuna',\n\tEH: 'Western Sahara',\n\tYE: 'Yemen',\n\tZM: 'Zambia',\n\tZW: 'Zimbabwe',\n};\n","/// \nimport * as Flux from 'flux';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass Dispatcher extends Flux.Dispatcher {}\nexport default new Dispatcher();\n","/// \nimport * as Events from 'events';\n\nexport default class EventEmitter extends Events.EventEmitter {\n\temitDefer(event: string | symbol, ...args: any[]): void {\n\t\tsetTimeout((): void => {\n\t\t\tthis.emit(event, ...args);\n\t\t});\n\t}\n}\n","/// \nexport const SYNC = 'subscription.sync';\nexport const CHANGE = 'subscription.change';\n\nexport interface Subscription {\n\tactive?: boolean;\n\tstatus?: string;\n\tplan?: string;\n\tquantity?: number;\n\tamount?: number;\n\tperiod_end?: string;\n\ttrial_end?: string;\n\tcancel_at_period_end?: boolean;\n\tbalance?: number;\n\turl_key?: string;\n}\n\nexport type SubscriptionRo = Readonly;\n\nexport interface SubscriptionDispatch {\n\ttype: string;\n\tdata?: Subscription;\n}\n","/// \nexport const CHANGE = 'change';\nexport const RESET = 'reset';\nexport const RELOAD = 'reload';\n\nexport interface Dispatch {\n\ttype: string;\n\tdata?: any;\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as SubscriptionTypes from '../types/SubscriptionTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass SubscriptionStore extends EventEmitter {\n\t_subscription: SubscriptionTypes.SubscriptionRo;\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\tget subscription(): SubscriptionTypes.SubscriptionRo {\n\t\treturn this._subscription;\n\t}\n\n\tget subscriptionM(): SubscriptionTypes.Subscription {\n\t\tif (this._subscription) {\n\t\t\treturn {\n\t\t\t\t...this._subscription,\n\t\t\t};\n\t\t}\n\t\treturn undefined;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(subscription: SubscriptionTypes.Subscription): void {\n\t\tthis._subscription = Object.freeze(subscription);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: SubscriptionTypes.SubscriptionDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase SubscriptionTypes.SYNC:\n\t\t\t\tthis._sync(action.data);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new SubscriptionStore();\n","/// \nexport const SYNC = 'organization.sync';\nexport const CHANGE = 'organization.change';\nexport const CURRENT = 'organization.current';\n\nexport interface Organization {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\troles?: string[];\n}\n\nexport type Organizations = Organization[];\n\nexport type OrganizationRo = Readonly;\nexport type OrganizationsRo = ReadonlyArray;\n\nexport interface OrganizationDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\torganization?: Organization;\n\t\torganizations?: Organizations;\n\t\tcurrent?: string;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as Constants from '../Constants';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass OrganizationsStore extends EventEmitter {\n\t_current: string;\n\t_organizations: OrganizationTypes.OrganizationsRo = Object.freeze([]);\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(current: string): void {\n\t\tthis._current = current;\n\t\tthis.emitChange();\n\t}\n\n\tget current(): string {\n\t\treturn this._current;\n\t}\n\n\tget organizations(): OrganizationTypes.OrganizationsRo {\n\t\treturn this._organizations;\n\t}\n\n\tget organizationsM(): OrganizationTypes.Organizations {\n\t\tlet organizations: OrganizationTypes.Organizations = [];\n\t\tthis._organizations.forEach((\n\t\t\t\torganization: OrganizationTypes.OrganizationRo): void => {\n\t\t\torganizations.push({\n\t\t\t\t...organization,\n\t\t\t});\n\t\t});\n\t\treturn organizations;\n\t}\n\n\torganization(id: string): OrganizationTypes.OrganizationRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._organizations[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(organizations: OrganizationTypes.Organization[]): void {\n\t\tif (Constants.user && !this._current) {\n\t\t\tif (organizations.length) {\n\t\t\t\tthis._current = organizations[0].id;\n\t\t\t} else {\n\t\t\t\tthis._current = null;\n\t\t\t}\n\t\t}\n\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < organizations.length; i++) {\n\t\t\torganizations[i] = Object.freeze(organizations[i]);\n\t\t\tthis._map[organizations[i].id] = i;\n\t\t}\n\n\t\tthis._organizations = Object.freeze(organizations);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: OrganizationTypes.OrganizationDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset(action.data.current);\n\t\t\t\tbreak;\n\n\t\t\tcase GlobalTypes.RELOAD:\n\t\t\t\twindow.location.hash = '#/reload';\n\t\t\t\tbreak;\n\n\t\t\tcase OrganizationTypes.SYNC:\n\t\t\t\tthis._sync(action.data.organizations);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new OrganizationsStore();\n","/// \nexport const ADD = 'loading.add';\nexport const DONE = 'loading.done';\n\nexport interface LoadingDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as LoadingTypes from '../types/LoadingTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass LoadingStore extends EventEmitter {\n\t_loaders: Set = new Set();\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\tget loading(): boolean {\n\t\treturn !!this._loaders.size;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_add(id: string): void {\n\t\tthis._loaders.add(id);\n\t\tthis.emitChange();\n\t}\n\n\t_done(id: string): void {\n\t\tthis._loaders.delete(id);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: LoadingTypes.LoadingDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase LoadingTypes.ADD:\n\t\t\t\tthis._add(action.data.id);\n\t\t\t\tbreak;\n\n\t\t\tcase LoadingTypes.DONE:\n\t\t\t\tthis._done(action.data.id);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new LoadingStore();\n","/// \nimport * as React from 'react';\nimport LoadingStore from '../stores/LoadingStore';\n\ninterface Props {\n\tstyle?: React.CSSProperties;\n\tsize?: string;\n\tintent?: string;\n}\n\ninterface State {\n\tloading: boolean;\n}\n\nconst css = {\n\tprogress: {\n\t\twidth: '100%',\n\t\theight: '4px',\n\t\tborderRadius: 0,\n\t} as React.CSSProperties,\n\tprogressBar: {\n\t\twidth: '50%',\n\t\tborderRadius: 0,\n\t} as React.CSSProperties,\n};\n\nexport default class LoadingBar extends React.Component {\n\tconstructor(props: Props, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tloading: LoadingStore.loading,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tLoadingStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tLoadingStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\tloading: LoadingStore.loading,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet progress: JSX.Element;\n\n\t\tif (!this.state.loading) {\n\t\t\tprogress =
    ;\n\t\t} else {\n\t\t\tlet className = 'bp3-progress-bar bp3-no-stripes bp3-no-animation ';\n\t\t\tif (this.props.intent) {\n\t\t\t\tclassName += ' bp3-intent-' + this.props.intent;\n\t\t\t}\n\n\t\t\tprogress =
    \n\t\t\t\t\n\t\t\t
    ;\n\t\t}\n\n\t\treturn
    \n\t\t\t{progress}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as Flux from 'flux';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass EventDispatcher extends Flux.Dispatcher {}\nexport default new EventDispatcher();\n","/// \nexport function uuid(): string {\n\treturn (+new Date() + Math.floor(Math.random() * 999999)).toString(36);\n}\n\nexport function objectIdNil(objId: string): boolean {\n\treturn !objId || objId == '000000000000000000000000';\n}\n\nexport function zeroPad(num: number, width: number): string {\n\tif (num < Math.pow(10, width)) {\n\t\treturn ('0'.repeat(width - 1) + num).slice(-width);\n\t}\n\treturn num.toString();\n}\n\nexport function capitalize(str: string): string {\n\treturn str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function formatAmount(amount: number): string {\n\tif (!amount) {\n\t\treturn '-';\n\t}\n\treturn '$' + (amount / 100).toFixed(2);\n}\n\nexport function formatDate(dateStr: string): string {\n\tif (!dateStr || dateStr === '0001-01-01T00:00:00Z') {\n\t\treturn '';\n\t}\n\n\tlet date = new Date(dateStr);\n\tlet str = '';\n\n\tlet hours = date.getHours();\n\tlet period = 'AM';\n\n\tif (hours > 12) {\n\t\tperiod = 'PM';\n\t\thours -= 12;\n\t} else if (hours === 0) {\n\t\thours = 12;\n\t}\n\n\tlet day;\n\tswitch (date.getDay()) {\n\t\tcase 0:\n\t\t\tday = 'Sun';\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tday = 'Mon';\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tday = 'Tue';\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tday = 'Wed';\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tday = 'Thu';\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tday = 'Fri';\n\t\t\tbreak;\n\t\tcase 6:\n\t\t\tday = 'Sat';\n\t\t\tbreak;\n\t}\n\n\tlet month;\n\tswitch (date.getMonth()) {\n\t\tcase 0:\n\t\t\tmonth = 'Jan';\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tmonth = 'Feb';\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tmonth = 'Mar';\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tmonth = 'Apr';\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tmonth = 'May';\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tmonth = 'Jun';\n\t\t\tbreak;\n\t\tcase 6:\n\t\t\tmonth = 'Jul';\n\t\t\tbreak;\n\t\tcase 7:\n\t\t\tmonth = 'Aug';\n\t\t\tbreak;\n\t\tcase 8:\n\t\t\tmonth = 'Sep';\n\t\t\tbreak;\n\t\tcase 9:\n\t\t\tmonth = 'Oct';\n\t\t\tbreak;\n\t\tcase 10:\n\t\t\tmonth = 'Nov';\n\t\t\tbreak;\n\t\tcase 11:\n\t\t\tmonth = 'Dec';\n\t\t\tbreak;\n\t}\n\n\tstr += day + ' ';\n\tstr += date.getDate() + ' ';\n\tstr += month + ' ';\n\tstr += date.getFullYear() + ', ';\n\tstr += hours + ':';\n\tstr += zeroPad(date.getMinutes(), 2) + ':';\n\tstr += zeroPad(date.getSeconds(), 2) + ' ';\n\tstr += period;\n\n\treturn str;\n}\n\nexport function formatDateShort(dateStr: string): string {\n\tif (!dateStr || dateStr === '0001-01-01T00:00:00Z') {\n\t\treturn '';\n\t}\n\n\tlet date = new Date(dateStr);\n\tlet curDate = new Date();\n\n\tlet month;\n\tswitch (date.getMonth()) {\n\t\tcase 0:\n\t\t\tmonth = 'Jan';\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tmonth = 'Feb';\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tmonth = 'Mar';\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tmonth = 'Apr';\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tmonth = 'May';\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tmonth = 'Jun';\n\t\t\tbreak;\n\t\tcase 6:\n\t\t\tmonth = 'Jul';\n\t\t\tbreak;\n\t\tcase 7:\n\t\t\tmonth = 'Aug';\n\t\t\tbreak;\n\t\tcase 8:\n\t\t\tmonth = 'Sep';\n\t\t\tbreak;\n\t\tcase 9:\n\t\t\tmonth = 'Oct';\n\t\t\tbreak;\n\t\tcase 10:\n\t\t\tmonth = 'Nov';\n\t\t\tbreak;\n\t\tcase 11:\n\t\t\tmonth = 'Dec';\n\t\t\tbreak;\n\t}\n\n\tlet str = month + ' ' + date.getDate();\n\n\tif (date.getFullYear() !== curDate.getFullYear()) {\n\t\tstr += ' ' + date.getFullYear();\n\t}\n\n\treturn str;\n}\n\nexport function formatDateShortTime(dateStr: string): string {\n\tif (!dateStr || dateStr === '0001-01-01T00:00:00Z') {\n\t\treturn '';\n\t}\n\n\tlet date = new Date(dateStr);\n\tlet curDate = new Date();\n\n\tlet month;\n\tswitch (date.getMonth()) {\n\t\tcase 0:\n\t\t\tmonth = 'Jan';\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tmonth = 'Feb';\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tmonth = 'Mar';\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tmonth = 'Apr';\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tmonth = 'May';\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tmonth = 'Jun';\n\t\t\tbreak;\n\t\tcase 6:\n\t\t\tmonth = 'Jul';\n\t\t\tbreak;\n\t\tcase 7:\n\t\t\tmonth = 'Aug';\n\t\t\tbreak;\n\t\tcase 8:\n\t\t\tmonth = 'Sep';\n\t\t\tbreak;\n\t\tcase 9:\n\t\t\tmonth = 'Oct';\n\t\t\tbreak;\n\t\tcase 10:\n\t\t\tmonth = 'Nov';\n\t\t\tbreak;\n\t\tcase 11:\n\t\t\tmonth = 'Dec';\n\t\t\tbreak;\n\t}\n\n\tlet str = month + ' ' + date.getDate();\n\n\tif (date.getFullYear() !== curDate.getFullYear()) {\n\t\tstr += ' ' + date.getFullYear();\n\t} else if (date.getMonth() === curDate.getMonth() &&\n\t\t\tdate.getDate() === curDate.getDate()) {\n\t\tlet hours = date.getHours();\n\t\tlet period = 'AM';\n\n\t\tif (hours > 12) {\n\t\t\tperiod = 'PM';\n\t\t\thours -= 12;\n\t\t} else if (hours === 0) {\n\t\t\thours = 12;\n\t\t}\n\n\t\tstr = hours + ':';\n\t\tstr += zeroPad(date.getMinutes(), 2) + ':';\n\t\tstr += zeroPad(date.getSeconds(), 2) + ' ';\n\t\tstr += period;\n\t}\n\n\treturn str;\n}\n","/// \nimport Dispatcher from './dispatcher/Dispatcher';\nimport * as LoadingTypes from './types/LoadingTypes';\nimport * as MiscUtils from './utils/MiscUtils';\n\nexport default class Loader {\n\t_id: string;\n\n\tconstructor() {\n\t\tthis._id = MiscUtils.uuid();\n\t}\n\n\tloading(): Loader {\n\t\tDispatcher.dispatch({\n\t\t\ttype: LoadingTypes.ADD,\n\t\t\tdata: {\n\t\t\t\tid: this._id,\n\t\t\t},\n\t\t});\n\t\treturn this;\n\t}\n\n\tdone(): Loader {\n\t\tDispatcher.dispatch({\n\t\t\ttype: LoadingTypes.DONE,\n\t\t\tdata: {\n\t\t\t\tid: this._id,\n\t\t\t},\n\t\t});\n\t\treturn this;\n\t}\n}\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as SubscriptionTypes from '../types/SubscriptionTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as Constants from \"../Constants\";\n\nlet syncId: string;\n\nexport function sync(update: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/subscription' + (update ? '/update' : ''))\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to sync subscription');\n\t\t\t\t\treject(err);\n\n\t\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\t\ttype: SubscriptionTypes.SYNC,\n\t\t\t\t\t\tdata: {},\n\t\t\t\t\t});\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: SubscriptionTypes.SYNC,\n\t\t\t\t\tdata: res.body,\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function activate(license: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/subscription')\n\t\t\t.send({\n\t\t\t\tlicense: license,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to activate subscription');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: SubscriptionTypes.SYNC,\n\t\t\t\t\tdata: res.body,\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function checkout(plan: string, card: string,\n\t\temail: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('https://app.pritunl.com/subscription')\n\t\t\t.send({\n\t\t\t\tplan: plan,\n\t\t\t\tcard: card,\n\t\t\t\temail: email,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve('');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to checkout');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve(res.body.msg);\n\n\t\t\t\tsync(true);\n\t\t\t});\n\t});\n}\n\nexport function payment(key: string, plan: string, card: string,\n\t\temail: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('https://app.pritunl.com/subscription')\n\t\t\t.send({\n\t\t\t\tkey: key,\n\t\t\t\tplan: plan,\n\t\t\t\tcard: card,\n\t\t\t\temail: email,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to update payment');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\n\t\t\t\tsync(true);\n\t\t\t});\n\t});\n}\n\nexport function cancel(key: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('https://app.pritunl.com/subscription')\n\t\t\t.send({\n\t\t\t\tkey: key,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to cancel subscription');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\n\t\t\t\tsync(true);\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: SubscriptionTypes.SubscriptionDispatch) => {\n\tswitch (action.type) {\n\t\tcase SubscriptionTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\tsync(false);\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as Blueprint from '@blueprintjs/core';\nimport * as Constants from '../Constants';\nimport * as MiscUtils from '../utils/MiscUtils';\n\ninterface Props {\n\tstyle?: React.CSSProperties;\n\tgrouped?: boolean;\n\tclassName?: string;\n\tdialogClassName?: string;\n\thidden?: boolean;\n\tprogressClassName?: string;\n\tlabel?: string;\n\tdialogLabel?: string;\n\tconfirmMsg?: string;\n\tconfirmInput?: boolean;\n\titems?: string[];\n\tdisabled?: boolean;\n\tsafe?: boolean;\n\tonConfirm?: () => void;\n}\n\ninterface State {\n\tinput: string;\n\tdialog: boolean;\n\tconfirm: number;\n\tconfirming: string;\n}\n\nconst css = {\n\tbox: {\n\t\tdisplay: 'inline-flex',\n\t\tverticalAlign: 'middle',\n\t} as React.CSSProperties,\n\tactionProgress: {\n\t\tposition: 'absolute',\n\t\tbottom: 0,\n\t\tleft: 0,\n\t\tborderRadius: 0,\n\t\tborderBottomLeftRadius: '3px',\n\t\tborderBottomRightRadius: '3px',\n\t\twidth: '100%',\n\t\theight: '4px',\n\t} as React.CSSProperties,\n\tsquareActionProgress: {\n\t\tposition: 'absolute',\n\t\tbottom: 0,\n\t\tleft: 0,\n\t\tborderRadius: 0,\n\t\tborderBottomLeftRadius: '1px',\n\t\tborderBottomRightRadius: '3px',\n\t\twidth: '100%',\n\t\theight: '4px',\n\t} as React.CSSProperties,\n\tdialog: {\n\t\twidth: '340px',\n\t\tposition: 'absolute',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '220px',\n\t\tmargin: '18px 0 0 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n};\n\nexport default class ConfirmButton extends React.Component {\n\tconstructor(props: Props, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tinput: '',\n\t\t\tdialog: false,\n\t\t\tconfirm: 0,\n\t\t\tconfirming: null,\n\t\t};\n\t}\n\n\topenDialog = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdialog: true,\n\t\t});\n\t}\n\n\tcloseDialog = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdialog: false,\n\t\t\tinput: '',\n\t\t});\n\t}\n\n\tcloseDialogConfirm = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdialog: false,\n\t\t\tinput: '',\n\t\t});\n\t\tif (this.props.onConfirm) {\n\t\t\tthis.props.onConfirm();\n\t\t}\n\t}\n\n\tconfirm = (evt: React.MouseEvent<{}>): void => {\n\t\tlet confirmId = MiscUtils.uuid();\n\n\t\tif (evt.shiftKey) {\n\t\t\tif (this.props.onConfirm) {\n\t\t\t\tthis.props.onConfirm();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tconfirming: confirmId,\n\t\t});\n\n\t\tlet i = 10;\n\t\tlet id = setInterval(() => {\n\t\t\tif (i > 100) {\n\t\t\t\tclearInterval(id);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (this.state.confirming === confirmId) {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\tconfirm: 0,\n\t\t\t\t\t\t\tconfirming: null,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (this.props.onConfirm) {\n\t\t\t\t\t\t\tthis.props.onConfirm();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, 250);\n\t\t\t\treturn;\n\t\t\t} else if (!this.state.confirming) {\n\t\t\t\tclearInterval(id);\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tconfirm: 0,\n\t\t\t\t\tconfirming: null,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (i % 10 === 0) {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tconfirm: i / 10,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ti += 2;\n\t\t}, 8);\n\t}\n\n\tclearConfirm = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tconfirm: 0,\n\t\t\tconfirming: null,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet dialog = Constants.mobile || this.props.safe;\n\n\t\tlet style = {\n\t\t\t...this.props.style,\n\t\t};\n\t\tstyle.position = 'relative';\n\n\t\tlet className = this.props.className || '';\n\t\tif (!this.props.label) {\n\t\t\tclassName += ' bp3-button-empty';\n\t\t}\n\n\t\tlet dialogClassName = this.props.dialogClassName ||\n\t\t\tthis.props.className || '';\n\t\tif (!this.props.label && !this.props.dialogLabel) {\n\t\t\tdialogClassName += ' bp3-button-empty';\n\t\t}\n\n\t\tlet confirmInput: JSX.Element;\n\t\tif (this.props.confirmInput) {\n\t\t\tconfirmInput = \n\t\t\t\tEnter \"delete\" to confirm:\n\t\t\t\t {\n\t\t\t\t\t\tif (evt.key === \"Enter\" && this.state.input === 'delete') {\n\t\t\t\t\t\t\tthis.closeDialogConfirm();\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tonChange={(evt): void => {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\tinput: evt.target.value,\n\t\t\t\t\t\t});\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t;\n\t\t}\n\n\t\tif (dialog) {\n\t\t\tlet confirmMsg = this.props.confirmMsg ? this.props.confirmMsg :\n\t\t\t\t'Confirm ' + (this.props.label || '');\n\t\t\tlet itemsList: JSX.Element;\n\t\t\tif (this.props.items) {\n\t\t\t\tlet items: JSX.Element[] = [];\n\t\t\t\tfor (let item of this.props.items) {\n\t\t\t\t\titems.push(
  • {item}
  • );\n\t\t\t\t}\n\t\t\t\titemsList =
      {items}
    ;\n\t\t\t}\n\n\t\t\treturn
    \n\t\t\t\t\n\t\t\t\t\t{this.props.label}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{confirmMsg}\n\t\t\t\t\t\t{itemsList}\n\t\t\t\t\t\t{confirmInput}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t{this.props.dialogLabel || this.props.label}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t} else {\n\t\t\tlet confirmElem: JSX.Element;\n\n\t\t\tif (this.state.confirming) {\n\t\t\t\tlet confirmStyle = {\n\t\t\t\t\twidth: this.state.confirm * 10 + '%',\n\t\t\t\t\tbackgroundColor: style.color,\n\t\t\t\t\tborderRadius: 0,\n\t\t\t\t\tleft: 0,\n\t\t\t\t};\n\n\t\t\t\tlet progressStyle: React.CSSProperties;\n\t\t\t\tif (this.props.grouped) {\n\t\t\t\t\tprogressStyle = css.squareActionProgress;\n\t\t\t\t} else {\n\t\t\t\t\tprogressStyle = css.actionProgress;\n\t\t\t\t}\n\n\t\t\t\tconfirmElem = \n\t\t\t\t\t
    \n\t\t\t\t
    ;\n\t\t\t}\n\n\t\t\treturn \n\t\t\t\t{this.props.label}\n\t\t\t\t{confirmElem}\n\t\t\t;\n\t\t}\n\t}\n}\n","/// \nimport * as React from 'react';\nimport ReactStripeCheckout from 'react-stripe-checkout';\nimport * as SubscriptionActions from '../actions/SubscriptionActions';\nimport * as SubscriptionTypes from '../types/SubscriptionTypes';\nimport SubscriptionStore from '../stores/SubscriptionStore';\nimport * as Alert from '../Alert';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport ConfirmButton from './ConfirmButton';\n\ninterface State {\n\tsubscription: SubscriptionTypes.SubscriptionRo;\n\tupdate: boolean;\n\tmessage: string;\n\tlicense: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\tcard: {\n\t\tpadding: '10px',\n\t\tminWidth: '310px',\n\t\tmaxWidth: '350px',\n\t\twidth: 'calc(100% - 20px)',\n\t\tmargin: '30px auto',\n\t} as React.CSSProperties,\n\tcard2: {\n\t\tpadding: '5px',\n\t\tminWidth: '310px',\n\t\tmaxWidth: '380px',\n\t\twidth: 'calc(100% - 20px)',\n\t\tmargin: '30px auto',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\twidth: '180px',\n\t\tmargin: '20px auto',\n\t\tfontSize: '16px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '2px 0',\n\t} as React.CSSProperties,\n\tmessage: {\n\t\tmargin: '0 0 10px 0',\n\t} as React.CSSProperties,\n\tlicense: {\n\t\twidth: '100%',\n\t\theight: '130px',\n\t\tmargin: '0 0 10px 0',\n\t\tresize: 'none',\n\t\tfontFamily: '\"Lucida Console\", Monaco, monospace',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tbutton2: {\n\t\twidth: '160px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tbutton3: {\n\t\twidth: '195px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmargin: '0 auto',\n\t} as React.CSSProperties,\n};\n\nexport default class Subscription extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tsubscription: SubscriptionStore.subscription,\n\t\t\tupdate: false,\n\t\t\tmessage: '',\n\t\t\tlicense: '',\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tSubscriptionStore.addChangeListener(this.onChange);\n\t\tif (!this.state.subscription.active) {\n\t\t\tSubscriptionActions.sync(true);\n\t\t}\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tSubscriptionStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tsubscription: SubscriptionStore.subscription,\n\t\t});\n\t}\n\n\tupdate(): JSX.Element {\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{this.state.message}\n\t\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\tlicense: evt.target.value,\n\t\t\t\t\t\t});\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tupdate: false,\n\t\t\t\t\t\t\t\tlicense: '',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>Cancel\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tSubscriptionActions.activate(\n\t\t\t\t\t\t\t\tthis.state.license,\n\t\t\t\t\t\t\t).then((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\tupdate: false,\n\t\t\t\t\t\t\t\t\tlicense: '',\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>Update License\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    ;\n\t}\n\n\tactivate(): JSX.Element {\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{this.state.message}\n\t\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\tlicense: evt.target.value,\n\t\t\t\t\t\t});\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tSubscriptionActions.activate(\n\t\t\t\t\t\t\t\tthis.state.license,\n\t\t\t\t\t\t\t).then((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>Activate License\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tSubscriptionActions.checkout(\n\t\t\t\t\t\t\t\t'cloud',\n\t\t\t\t\t\t\t\ttoken.id,\n\t\t\t\t\t\t\t\ttoken.email,\n\t\t\t\t\t\t\t).then((message: string): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\tmessage: message,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonScriptError={(err): void => {\n\t\t\t\t\t\t\tAlert.error('Failed to load Stripe Checkout');\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tstripeKey=\"pk_live_plmoOl3lS3k5dMNQViZWGfVR\"\n\t\t\t\t\t>\n\t\t\t\t\t\tSubscribe\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t;\n\t}\n\n\treactivate(): JSX.Element {\n\t\tlet sub = this.state.subscription;\n\t\tlet canceling = sub.cancel_at_period_end || sub.status === 'canceled';\n\t\tlet status = sub.cancel_at_period_end ? 'canceled' : sub.status;\n\t\tlet periodEnd = MiscUtils.formatDateShort(sub.period_end);\n\t\tlet trialEnd = MiscUtils.formatDateShort(sub.trial_end);\n\n\t\tlet balance: string;\n\t\tlet balanceLabel: string;\n\t\tif (sub.balance < 0) {\n\t\t\tbalance = MiscUtils.formatAmount(sub.balance * -1);\n\t\t\tbalanceLabel = 'Credit';\n\t\t} else {\n\t\t\tbalance = MiscUtils.formatAmount(sub.balance);\n\t\t\tbalanceLabel = 'Balance';\n\t\t}\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{this.state.message}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Status:
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{MiscUtils.capitalize(status)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Plan:
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{MiscUtils.capitalize(sub.plan)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Amount:
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{MiscUtils.formatAmount(sub.amount)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Quantity:
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{sub.quantity}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t
    {balanceLabel}:
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{balance}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{canceling ? 'Ends' : 'Renew'}:\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{periodEnd}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t
    Trial Ends:
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{trialEnd}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tSubscriptionActions.cancel(\n\t\t\t\t\t\t\t\tthis.state.subscription.url_key,\n\t\t\t\t\t\t\t).then((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tSubscriptionActions.payment(\n\t\t\t\t\t\t\t\tthis.state.subscription.url_key,\n\t\t\t\t\t\t\t\t'cloud',\n\t\t\t\t\t\t\t\ttoken.id,\n\t\t\t\t\t\t\t\ttoken.email,\n\t\t\t\t\t\t\t).then((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonScriptError={(err): void => {\n\t\t\t\t\t\t\tAlert.error('Failed to load Stripe Checkout');\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tstripeKey=\"pk_live_plmoOl3lS3k5dMNQViZWGfVR\"\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{canceling ? 'Reactivate Subscription' : 'Update Payment'}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tSubscriptionActions.activate('').then((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tupdate: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>Update License\n\t\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.state.update) {\n\t\t\treturn this.update();\n\t\t} else if (this.state.subscription.status) {\n\t\t\treturn this.reactivate();\n\t\t} else {\n\t\t\treturn this.activate();\n\t\t}\n\t}\n}\n","/// \nexport const SYNC = 'user.sync';\nexport const TRAVERSE = 'user.traverse';\nexport const FILTER = 'user.filter';\nexport const LOAD = 'user.load';\nexport const UNLOAD = 'user.unload';\nexport const CHANGE = 'user.change';\n\nexport interface User {\n\tid?: string;\n\ttype?: string;\n\tusername?: string;\n\tpassword?: string;\n\tcomment?: string;\n\ttoken?: string;\n\tsecret?: string;\n\tlast_active?: string;\n\troles?: string[];\n\tadministrator?: string;\n\tgenerate_secret?: boolean;\n\tdisabled?: boolean;\n\tactive_until?: string;\n\tpermissions?: string[];\n}\n\nexport interface Filter {\n\tid?: string;\n\tusername?: string;\n\ttype?: string;\n\tadministrator?: boolean;\n\tdisabled?: boolean;\n\trole?: string;\n}\n\nexport type Users = User[];\n\nexport type UserRo = Readonly;\nexport type UsersRo = ReadonlyArray;\n\nexport interface UserDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tuser?: User;\n\t\tusers?: Users;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as UserTypes from '../types/UserTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass UsersStore extends EventEmitter {\n\t_users: UserTypes.UsersRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: UserTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._users = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis.emitChange();\n\t}\n\n\tget users(): UserTypes.UsersRo {\n\t\treturn this._users;\n\t}\n\n\tget usersM(): UserTypes.Users {\n\t\tlet users: UserTypes.Users = [];\n\t\tthis._users.forEach((user: UserTypes.UserRo): void => {\n\t\t\tusers.push({\n\t\t\t\t...user,\n\t\t\t});\n\t\t});\n\t\treturn users;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 50;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): UserTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tuser(id: string): UserTypes.UserRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._users[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: UserTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.type !== this._filter.type ||\n\t\t\t\t\tfilter.administrator !== this._filter.administrator ||\n\t\t\t\t\tfilter.disabled !== this._filter.disabled ||\n\t\t\t\t\tfilter.role !== this._filter.role\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(users: UserTypes.User[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < users.length; i++) {\n\t\t\tusers[i] = Object.freeze(users[i]);\n\t\t\tthis._map[users[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._users = Object.freeze(users);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: UserTypes.UserDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase UserTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase UserTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase UserTypes.SYNC:\n\t\t\t\tthis._sync(action.data.users, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new UsersStore();\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as UserTypes from '../types/UserTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass UserStore extends EventEmitter {\n\t_user: UserTypes.UserRo;\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._user = undefined;\n\t\tthis.emitChange();\n\t}\n\n\tget user(): UserTypes.UserRo {\n\t\treturn this._user;\n\t}\n\n\tget userM(): UserTypes.User {\n\t\tif (this._user) {\n\t\t\treturn {\n\t\t\t\t...this._user,\n\t\t\t};\n\t\t}\n\t\treturn undefined;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_load(user: UserTypes.User): void {\n\t\tthis._user = Object.freeze(user);\n\t\tthis.emitChange();\n\t}\n\n\t_unload(): void {\n\t\tthis._user = null;\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: UserTypes.UserDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase UserTypes.LOAD:\n\t\t\t\tthis._load(action.data.user);\n\t\t\t\tbreak;\n\n\t\t\tcase UserTypes.UNLOAD:\n\t\t\t\tthis._unload();\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new UserStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as UserTypes from '../types/UserTypes';\nimport UserStore from '../stores/UserStore';\nimport UsersStore from '../stores/UsersStore';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as Constants from \"../Constants\";\n\nlet syncId: string;\n\nexport function load(userId: string): Promise {\n\tif (!userId) {\n\t\tlet user: UserTypes.User = {\n\t\t\tid: null,\n\t\t\ttype: 'local',\n\t\t\troles: [],\n\t\t\tpermissions: [],\n\t\t};\n\n\t\tDispatcher.dispatch({\n\t\t\ttype: UserTypes.LOAD,\n\t\t\tdata: {\n\t\t\t\tuser: user,\n\t\t\t},\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/user/' + userId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load user');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: UserTypes.LOAD,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tuser: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function reload(): Promise {\n\treturn load(UserStore.user ? UserStore.user.id : null);\n}\n\nexport function unload(): void {\n\tDispatcher.dispatch({\n\t\ttype: UserTypes.UNLOAD,\n\t});\n}\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/user')\n\t\t\t.query({\n\t\t\t\t...UsersStore.filter,\n\t\t\t\tpage: UsersStore.page,\n\t\t\t\tpage_count: UsersStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load users');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: UserTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tusers: res.body.users,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: UserTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: UserTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: UserTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(user: UserTypes.User): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/user/' + user.id)\n\t\t\t.send(user)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save user');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: UserTypes.LOAD,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tuser: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(user: UserTypes.User): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/user')\n\t\t\t.send(user)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create user');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(userIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/user')\n\t\t\t.send(userIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete users');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: UserTypes.UserDispatch) => {\n\tswitch (action.type) {\n\t\tcase UserTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\tsync();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as AgentTypes from './AgentTypes';\n\nexport const SYNC = 'audit.sync';\nexport const TRAVERSE = 'audit.traverse';\nexport const CHANGE = 'audit.change';\n\nexport interface Audit {\n\tid?: string;\n\tuser?: string;\n\ttimestamp?: string;\n\ttype?: string;\n\tfields?: {[key: string]: string};\n\tagent?: AgentTypes.Agent;\n}\n\nexport type Audits = Audit[];\n\nexport type AuditRo = Readonly;\nexport type AuditsRo = ReadonlyArray;\n\nexport interface AuditDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tuserId?: string;\n\t\taudit?: Audit;\n\t\taudits?: Audits;\n\t\tpage?: number;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as AuditTypes from '../types/AuditTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass AuditsStore extends EventEmitter {\n\t_userId: string;\n\t_audits: AuditTypes.AuditsRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_count: number;\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._userId = undefined;\n\t\tthis._audits = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._count = undefined;\n\t\tthis.emitChange();\n\t}\n\n\tget userId(): string {\n\t\treturn this._userId;\n\t}\n\n\tget audits(): AuditTypes.AuditsRo {\n\t\treturn this._audits;\n\t}\n\n\tget auditsM(): AuditTypes.Audits {\n\t\tlet audits: AuditTypes.Audits = [];\n\t\tthis._audits.forEach((audit: AuditTypes.Audit): void => {\n\t\t\taudits.push({\n\t\t\t\t...audit,\n\t\t\t});\n\t\t});\n\t\treturn audits;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 10;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_sync(userId: string, audits: AuditTypes.Audit[], count: number): void {\n\t\tthis._userId = userId;\n\n\t\tfor (let i = 0; i < audits.length; i++) {\n\t\t\taudits[i] = Object.freeze(audits[i]);\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._audits = Object.freeze(audits);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: AuditTypes.AuditDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase AuditTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase AuditTypes.SYNC:\n\t\t\t\tthis._sync(action.data.userId, action.data.audits, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new AuditsStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport * as Constants from '../Constants';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as AuditTypes from '../types/AuditTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport AuditsStore from '../stores/AuditsStore';\n\nlet syncId: string;\n\nexport function load(userId: string): Promise {\n\tif (!userId) {\n\t\treturn Promise.resolve();\n\t}\n\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/audit/' + userId)\n\t\t\t.query({\n\t\t\t\tpage: AuditsStore.page,\n\t\t\t\tpage_count: AuditsStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load audits');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: AuditTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tuserId: userId,\n\t\t\t\t\t\taudits: res.body.audits,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function reload(): Promise {\n\treturn load(AuditsStore.userId);\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: AuditTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn reload();\n}\n\nEventDispatcher.register((action: AuditTypes.AuditDispatch) => {\n\tswitch (action.type) {\n\t\tcase AuditTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\treload();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as ReactRouter from 'react-router-dom';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as UserTypes from '../types/UserTypes';\n\ninterface Props {\n\tuser: UserTypes.UserRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t} as React.CSSProperties,\n\tlastActivity: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\tnameLink: {\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n};\n\nexport default class User extends React.Component {\n\trender(): JSX.Element {\n\t\tlet user = this.props.user;\n\t\tlet roles: JSX.Element[] = [];\n\n\t\tfor (let role of (user.roles || [])) {\n\t\t\troles.push(\n\t\t\t\t\n\t\t\t\t\t{role}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\t\tif (user.disabled) {\n\t\t\tcardStyle.opacity = 0.6;\n\t\t}\n\n\t\tlet userType: string;\n\t\tswitch (user.type) {\n\t\t\tcase 'local':\n\t\t\t\tuserType = 'Local';\n\t\t\t\tbreak;\n\t\t\tcase 'google':\n\t\t\t\tuserType = 'Google';\n\t\t\t\tbreak;\n\t\t\tcase 'onelogin':\n\t\t\t\tuserType = 'OneLogin';\n\t\t\t\tbreak;\n\t\t\tcase 'okta':\n\t\t\t\tuserType = 'Okta';\n\t\t\t\tbreak;\n\t\t\tcase 'authzero':\n\t\t\t\tuserType = 'Auth0';\n\t\t\t\tbreak;\n\t\t\tcase 'azure':\n\t\t\t\tuserType = 'Azure';\n\t\t\t\tbreak;\n\t\t\tcase 'jumpcloud':\n\t\t\t\tuserType = 'JumpCloud';\n\t\t\t\tbreak;\n\t\t\tcase 'api':\n\t\t\t\tuserType = 'API';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tuserType = user.type;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{user.username}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{userType}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{MiscUtils.formatDateShortTime(user.last_active) || 'Inactive'}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\tadmin\n\t\t\t\t\n\t\t\t\t{roles}\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\n\ntype OnChange = (val: string) => void;\n\ninterface Props {\n\tstyle: React.CSSProperties;\n\tplaceholder: string;\n\tvalue: string;\n\tonChange: OnChange;\n}\n\nexport default class SearchInput extends React.Component {\n\trender(): JSX.Element {\n\t\treturn
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.props.onChange(evt.target.value);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\n\ntype OnToggle = () => void;\n\ninterface Props {\n\tstyle?: React.CSSProperties;\n\tlabel: string;\n\tchecked: boolean;\n\tonToggle: OnToggle;\n}\n\nexport default class SwitchNull extends React.Component {\n\trender(): JSX.Element {\n\t\tlet style: React.CSSProperties = {\n\t\t\t...this.props.style,\n\t\t};\n\n\t\tif (this.props.checked === null || this.props.checked === undefined) {\n\t\t\tstyle.opacity = 0.5;\n\t\t}\n\n\t\treturn ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as UserTypes from '../types/UserTypes';\nimport SearchInput from './SearchInput';\nimport SwitchNull from './SwitchNull';\n\ninterface Props {\n\tfilter: UserTypes.Filter;\n\tonFilter: (filter: UserTypes.Filter) => void;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class UsersFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.username = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.username;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.role = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.role;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.type;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.type = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (filter.administrator === undefined) {\n\t\t\t\t\t\tfilter.administrator = true;\n\t\t\t\t\t} else if (filter.administrator === true) {\n\t\t\t\t\t\tfilter.administrator = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.administrator;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (filter.disabled === undefined) {\n\t\t\t\t\t\tfilter.disabled = true;\n\t\t\t\t\t} else if (filter.disabled === true) {\n\t\t\t\t\t\tfilter.disabled = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.disabled;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\n\ninterface Props {\n\twide?: boolean;\n}\n\nconst css = {\n\tpage: {\n\t\tmargin: '0 auto',\n\t\tpadding: '30px 20px',\n\t\tminWidth: '200px',\n\t\tmaxWidth: '1100px',\n\t} as React.CSSProperties,\n\tpageWide: {\n\t\tmargin: '0 auto',\n\t\tpadding: '30px 20px',\n\t\tminWidth: '200px',\n\t\tmaxWidth: '1250px',\n\t} as React.CSSProperties,\n};\n\nexport default class Page extends React.Component {\n\trender(): JSX.Element {\n\t\treturn
    \n\t\t\t{this.props.children}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\n\ninterface Props {\n\tlabel?: string;\n}\n\nconst css = {\n\theader: {\n\t\tfontSize: '24px',\n\t\tpaddingBottom: '8px',\n\t\tmarginBottom: '20px',\n\t\tborderBottomStyle: 'solid',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\tmargin: 0,\n\t} as React.CSSProperties,\n};\n\nexport default class PageHeader extends React.Component {\n\trender(): JSX.Element {\n\t\tlet label: JSX.Element;\n\t\tif (this.props.label) {\n\t\t\tlabel =

    {this.props.label}

    ;\n\t\t}\n\n\t\treturn
    \n\t\t\t{label}\n\t\t\t{this.props.children}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport UsersStore from '../stores/UsersStore';\nimport * as UserActions from '../actions/UserActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class UsersPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: UsersStore.page,\n\t\t\tpageCount: UsersStore.pageCount,\n\t\t\tpages: UsersStore.pages,\n\t\t\tcount: UsersStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tUsersStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tUsersStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: UsersStore.page,\n\t\t\tpageCount: UsersStore.pageCount,\n\t\t\tpages: UsersStore.pages,\n\t\t\tcount: UsersStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tUserActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tUserActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tUserActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tUserActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tUserActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as ReactRouter from 'react-router-dom';\nimport * as UserTypes from '../types/UserTypes';\nimport UsersStore from '../stores/UsersStore';\nimport * as UserActions from '../actions/UserActions';\nimport * as AuditActions from '../actions/AuditActions';\nimport User from './User';\nimport UsersFilter from './UsersFilter';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport UsersPage from './UsersPage';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tusers: UserTypes.UsersRo;\n\tfilter: UserTypes.Filter;\n\tselected: Selected;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\tusers: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\tusersBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Users extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tusers: UsersStore.users,\n\t\t\tfilter: UsersStore.filter,\n\t\t\tselected: {},\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\tfor (let key in this.state.selected) {\n\t\t\tif (this.state.selected[key]) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tUsersStore.addChangeListener(this.onChange);\n\t\tAuditActions.traverse(0);\n\t\tUserActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tUsersStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet users = UsersStore.users;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\n\t\tusers.forEach((user: UserTypes.User): void => {\n\t\t\tif (curSelected[user.id]) {\n\t\t\t\tselected[user.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tusers: users,\n\t\t\tfilter: UsersStore.filter,\n\t\t\tselected: selected,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tUserActions.remove(Object.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet usersDom: JSX.Element[] = [];\n\n\t\tthis.state.users.forEach((user: UserTypes.UserRo): void => {\n\t\t\tusersDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet users = this.state.users;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < users.length; i++) {\n\t\t\t\t\t\t\tlet usr = users[i];\n\n\t\t\t\t\t\t\tif (usr.id === user.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[users[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: user.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[user.id]) {\n\t\t\t\t\t\tdelete selected[user.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[user.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: user.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let userId of Object.keys(this.state.selected)) {\n\t\t\tlet user = UsersStore.user(userId);\n\t\t\tif (user) {\n\t\t\t\tselectedNames.push(user.username || userId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(userId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Users

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tUserActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tUserActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tNew\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tUserActions.filter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{usersDom}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as AgentTypes from './AgentTypes';\n\nexport const SYNC = 'session.sync';\nexport const CHANGE = 'session.change';\nexport const SHOW_REMOVED = 'session.show_removed';\n\nexport interface Session {\n\tid?: string;\n\ttype?: string;\n\tuser?: string;\n\ttimestamp?: string;\n\tlast_active?: string;\n\tremoved?: boolean;\n\tagent?: AgentTypes.Agent;\n}\n\nexport type Sessions = Session[];\n\nexport type SessionRo = Readonly;\nexport type SessionsRo = ReadonlyArray;\n\nexport interface SessionDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tuserId?: string;\n\t\tsession?: Session;\n\t\tsessions?: Sessions;\n\t\tshowRemoved?: boolean;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as SessionTypes from '../types/SessionTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass SessionsStore extends EventEmitter {\n\t_userId: string;\n\t_showRemoved: boolean;\n\t_sessions: SessionTypes.SessionsRo = Object.freeze([]);\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._userId = undefined;\n\t\tthis._showRemoved = undefined;\n\t\tthis._sessions = Object.freeze([]);\n\t\tthis.emitChange();\n\t}\n\n\tget userId(): string {\n\t\treturn this._userId;\n\t}\n\n\tget sessions(): SessionTypes.SessionsRo {\n\t\treturn this._sessions;\n\t}\n\n\tget sessionsM(): SessionTypes.Sessions {\n\t\tlet sessions: SessionTypes.Sessions = [];\n\t\tthis._sessions.forEach((session: SessionTypes.SessionRo): void => {\n\t\t\tsessions.push({\n\t\t\t\t...session,\n\t\t\t});\n\t\t});\n\t\treturn sessions;\n\t}\n\n\tget showRemoved(): boolean {\n\t\treturn this._showRemoved;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(userId: string, sessions: SessionTypes.Session[]): void {\n\t\tthis._userId = userId;\n\n\t\tfor (let i = 0; i < sessions.length; i++) {\n\t\t\tsessions[i] = Object.freeze(sessions[i]);\n\t\t}\n\n\t\tthis._sessions = Object.freeze(sessions);\n\t\tthis.emitChange();\n\t}\n\n\t_setShowRemoved(state: boolean): void {\n\t\tthis._showRemoved = state;\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: SessionTypes.SessionDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase SessionTypes.SYNC:\n\t\t\t\tthis._sync(action.data.userId, action.data.sessions);\n\t\t\t\tbreak;\n\t\t\tcase SessionTypes.SHOW_REMOVED:\n\t\t\t\tthis._setShowRemoved(action.data.showRemoved);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new SessionsStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport * as Constants from \"../Constants\";\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as SessionTypes from '../types/SessionTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport SessionsStore from '../stores/SessionsStore';\n\nlet syncId: string;\n\nexport function _load(userId: string): Promise {\n\tif (!userId) {\n\t\treturn Promise.resolve();\n\t}\n\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/session/' + userId)\n\t\t\t.query({\n\t\t\t\tshow_removed: SessionsStore.showRemoved,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load sessions');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: SessionTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tuserId: userId,\n\t\t\t\t\t\tsessions: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function load(userId: string): Promise {\n\tDispatcher.dispatch({\n\t\ttype: SessionTypes.SHOW_REMOVED,\n\t\tdata: {\n\t\t\tshowRemoved: false,\n\t\t},\n\t});\n\n\treturn _load(userId);\n}\n\nexport function reload(): Promise {\n\treturn _load(SessionsStore.userId);\n}\n\nexport function showRemoved(state: boolean): Promise {\n\tDispatcher.dispatch({\n\t\ttype: SessionTypes.SHOW_REMOVED,\n\t\tdata: {\n\t\t\tshowRemoved: state,\n\t\t},\n\t});\n\n\treturn reload();\n}\n\nexport function remove(sessionId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/session/' + sessionId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete session');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: SessionTypes.SessionDispatch) => {\n\tswitch (action.type) {\n\t\tcase SessionTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\treload();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\n\ninterface Props {\n\thidden: boolean;\n\ticonClass: string;\n\ttitle: string;\n\tdescription?: string;\n}\n\ninterface State {\n\tinitialized: boolean;\n}\n\nconst css = {\n\tstate: {\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n};\n\nexport default class NonState extends React.Component {\n\ttimeout: number;\n\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tinitialized: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tthis.timeout = window.setTimeout((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tinitialized: true,\n\t\t\t});\n\t\t}, Constants.loadDelay);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tif (this.timeout) {\n\t\t\twindow.clearTimeout(this.timeout);\n\t\t}\n\t}\n\n\trender(): JSX.Element {\n\t\tlet description: JSX.Element;\n\t\tif (this.props.description) {\n\t\t\tdescription =
    \n\t\t\t\t{this.props.description}\n\t\t\t
    ;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t

    {this.props.title}

    \n\t\t\t{description}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as AgentTypes from '../types/AgentTypes';\n\nexport function formatContinent(agent: AgentTypes.Agent): string {\n\treturn agent.continent && agent.continent_code ?\n\t\tagent.continent + ((agent.continent_code &&\n\t\tagent.continent_code !== 'XX') ? ' (' + agent.continent_code + ')' : '') :\n\t\tagent.continent || agent.continent_code || 'Unknown';\n}\n\nexport function formatLocation(agent: AgentTypes.Agent): string {\n\treturn ((agent.city && agent.city !== 'Unknown') ? agent.city + ', ' : '') +\n\t\t(agent.region || 'Unknown') +\n\t\t((agent.region_code && agent.region_code !== 'XX') ?\n\t\t\t' (' + agent.region_code + ')' : '');\n}\n\nexport function formatCountry(agent: AgentTypes.Agent): string {\n\treturn (agent.country || 'Unknown') +\n\t\t((agent.country_code && agent.country_code !== 'XX') ?\n\t\t\t' (' + agent.country_code + ')' : '');\n}\n\nexport function formatCoordinates(agent: AgentTypes.Agent): string {\n\treturn agent.latitude && agent.longitude ?\n\t\tagent.latitude + ', ' + agent.longitude : 'Unknown';\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from \"../Constants\";\n\ninterface Props {\n\tvalue: string;\n}\n\ninterface State {\n\thover: boolean;\n\tclick: boolean;\n\tcopied: boolean;\n}\n\nconst css = {\n\tcopy: {\n\t\tcursor: 'pointer',\n\t\tmarginLeft: '3px',\n\t} as React.CSSProperties,\n\tcopyHover: {\n\t\tcursor: 'pointer',\n\t\tmarginLeft: '3px',\n\t\topacity: 0.7,\n\t} as React.CSSProperties,\n\tcopyClicked: {\n\t\tcursor: 'pointer',\n\t\tmarginLeft: '3px',\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class CopyButton extends React.Component {\n\telem: HTMLSpanElement;\n\n\tconstructor(props: Props, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\thover: false,\n\t\t\tclick: false,\n\t\t\tcopied: false,\n\t\t};\n\t}\n\trender(): JSX.Element {\n\t\tlet style: React.CSSProperties;\n\t\tif (this.state.click && !this.state.copied) {\n\t\t\tstyle = css.copyClicked;\n\t\t} else if (this.state.hover && !this.state.copied) {\n\t\t\tstyle = css.copyHover;\n\t\t} else {\n\t\t\tstyle = css.copy;\n\t\t}\n\n\t\tlet className = 'bp3-icon-standard';\n\t\tif (this.state.copied) {\n\t\t\tclassName += ' bp3-icon-tick bp3-intent-success';\n\t\t} else {\n\t\t\tclassName += ' bp3-icon-clipboard';\n\t\t}\n\n\t\treturn this.elem = elem}\n\t\t\tclassName={className}\n\t\t\tstyle={style}\n\t\t\tonMouseEnter={() => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\thover: true,\n\t\t\t\t});\n\t\t\t}}\n\t\t\tonMouseLeave={() => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\thover: false,\n\t\t\t\t\tclick: false,\n\t\t\t\t});\n\t\t\t}}\n\t\t\tonMouseDown={() => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tclick: true,\n\t\t\t\t});\n\t\t\t}}\n\t\t\tonMouseUp={() => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tclick: false,\n\t\t\t\t});\n\t\t\t}}\n\t\t\tonClick={() => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tcopied: true,\n\t\t\t\t});\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tcopied: false,\n\t\t\t\t\t});\n\t\t\t\t}, 1200);\n\n\t\t\t\tlet elem = document.createElement('input');\n\t\t\t\telem.contentEditable = 'true';\n\t\t\t\telem.readOnly = true;\n\t\t\t\telem.style.position = 'absolute';\n\t\t\t\telem.style.width = '1px';\n\t\t\t\telem.style.height = '1px';\n\t\t\t\telem.style.padding = '0px';\n\t\t\t\telem.style.border = 'none';\n\t\t\t\telem.style.opacity = '0';\n\t\t\t\telem.value = this.props.value;\n\t\t\t\tthis.elem.parentElement.append(elem);\n\n\t\t\t\tif (Constants.mobileOs === 'iOS') {\n\t\t\t\t\tlet range = document.createRange();\n\t\t\t\t\trange.selectNodeContents(elem);\n\n\t\t\t\t\tlet selection = window.getSelection();\n\t\t\t\t\tselection.removeAllRanges();\n\t\t\t\t\tselection.addRange(range);\n\t\t\t\t\telem.setSelectionRange(0, 999999);\n\t\t\t\t} else {\n\t\t\t\t\telem.select();\n\t\t\t\t}\n\n\t\t\t\tdocument.execCommand('copy');\n\t\t\t\telem.remove();\n\t\t\t}}\n\t\t/>;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport CopyButton from './CopyButton';\n\nexport interface Field {\n\tvalueClass?: string;\n\tvalueClasses?: string[];\n\tlabel: string;\n\tvalue: string | number | string[];\n\tcopy?: boolean;\n}\n\nexport interface Bar {\n\tprogressClass?: string;\n\tlabel: string;\n\tvalue: number;\n\tcolor?: string;\n}\n\nexport interface Props {\n\tstyle?: React.CSSProperties;\n\thidden?: boolean;\n\tfields?: Field[];\n\tbars?: Bar[];\n}\n\nconst css = {\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '320px',\n\t} as React.CSSProperties,\n\tvalue: {\n\t\twordWrap: 'break-word',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tcopy: {\n\t\tcursor: 'pointer',\n\t\tmarginLeft: '3px',\n\t} as React.CSSProperties,\n\tcopyHover: {\n\t\tcursor: 'pointer',\n\t\tmarginLeft: '3px',\n\t\topacity: 0.7,\n\t} as React.CSSProperties,\n};\n\nexport default class PageInfo extends React.Component {\n\trender(): JSX.Element {\n\t\tlet fields: JSX.Element[] = [];\n\t\tlet bars: JSX.Element[] = [];\n\n\t\tfor (let field of this.props.fields || []) {\n\t\t\tif (field == null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet value: string | JSX.Element[];\n\t\t\tlet copyBtn: JSX.Element;\n\n\t\t\tif (typeof field.value === 'string') {\n\t\t\t\tvalue = field.value;\n\t\t\t\tif (field.copy) {\n\t\t\t\t\tcopyBtn = ;\n\t\t\t\t}\n\t\t\t} else if (typeof field.value === 'number') {\n\t\t\t\tvalue = field.value.toString();\n\t\t\t\tif (field.copy) {\n\t\t\t\t\tcopyBtn = ;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvalue = [];\n\t\t\t\tfor (let i = 0; i < field.value.length; i++) {\n\t\t\t\t\tlet copyItemBtn: JSX.Element;\n\n\t\t\t\t\tif (field.copy) {\n\t\t\t\t\t\tcopyItemBtn = ;\n\t\t\t\t\t}\n\n\t\t\t\t\tvalue.push(\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{field.value[i]}{copyItemBtn}\n\t\t\t\t\t\t
    \n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfields.push(\n\t\t\t\t
    \n\t\t\t\t\t{field.label}\n\t\t\t\t\t\n\t\t\t\t\t\t{value}{copyBtn}\n\t\t\t\t\t
    \n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tfor (let bar of this.props.bars || []) {\n\t\t\tlet style: React.CSSProperties = {\n\t\t\t\twidth: (bar.value || 0) + '%',\n\t\t\t};\n\n\t\t\tif (bar.color) {\n\t\t\t\tstyle.backgroundColor = bar.color;\n\t\t\t}\n\n\t\t\tbars.push(\n\t\t\t\t
    \n\t\t\t\t\t{bar.label}\n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet labelStyle: React.CSSProperties;\n\t\tif (this.props.style) {\n\t\t\tlabelStyle = {\n\t\t\t\t...css.label,\n\t\t\t\t...this.props.style,\n\t\t\t};\n\t\t} else {\n\t\t\tlabelStyle = css.label;\n\t\t}\n\n\t\treturn \n\t\t\t{fields}\n\t\t\t{bars}\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as SessionTypes from '../types/SessionTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as AgentUtils from '../utils/AgentUtils';\nimport * as Constants from '../Constants';\nimport * as SessionActions from '../actions/SessionActions';\nimport PageInfo from './PageInfo';\n\ninterface Props {\n\tsession: SessionTypes.SessionRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tinfo: {\n\t\tmarginBottom: '-5px',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '290px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n};\n\nexport default class Session extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tSessionActions.remove(this.props.session.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet session = this.props.session;\n\t\tlet agent = session.agent || {};\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\t\tif (session.removed) {\n\t\t\tcardStyle.opacity = 0.6;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as SessionTypes from '../types/SessionTypes';\nimport SessionsStore from '../stores/SessionsStore';\nimport * as SessionActions from '../actions/SessionActions';\nimport NonState from './NonState';\nimport Session from './Session';\nimport PageHeader from './PageHeader';\n\ninterface Props {\n\tuserId: string;\n}\n\ninterface State {\n\tsessions: SessionTypes.SessionsRo;\n\tshowEnded: boolean;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '15px 0 -5px 0',\n\t} as React.CSSProperties,\n};\n\nexport default class Sessions extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tsessions: SessionsStore.sessions,\n\t\t\tshowEnded: false,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tSessionsStore.addChangeListener(this.onChange);\n\t\tif (this.props.userId) {\n\t\t\tSessionActions.load(this.props.userId);\n\t\t}\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tSessionsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tsessions: SessionsStore.sessions,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tif (!this.props.userId) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet sessions: JSX.Element[] = [];\n\n\t\tthis.state.sessions.forEach((\n\t\t\t\tsession: SessionTypes.SessionRo): void => {\n\t\t\tif (session.removed && !this.state.showEnded) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsessions.push();\n\t\t});\n\n\t\treturn
    \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    User Sessions

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tshowEnded: !this.state.showEnded,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tSessionActions.showRemoved(!this.state.showEnded);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{(this.state.showEnded ? 'Hide' : 'Show') + ' ended sessions'}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{sessions}\n\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","export type Base64urlString = string;\n\nexport function base64urlToBuffer(\n baseurl64String: Base64urlString,\n): ArrayBuffer {\n // Base64url to Base64\n const padding = \"==\".slice(0, (4 - (baseurl64String.length % 4)) % 4);\n const base64String =\n baseurl64String.replace(/-/g, \"+\").replace(/_/g, \"/\") + padding;\n\n // Base64 to binary string\n const str = atob(base64String);\n\n // Binary string to buffer\n const buffer = new ArrayBuffer(str.length);\n const byteView = new Uint8Array(buffer);\n for (let i = 0; i < str.length; i++) {\n byteView[i] = str.charCodeAt(i);\n }\n return buffer;\n}\n\nexport function bufferToBase64url(buffer: ArrayBuffer): Base64urlString {\n // Buffer to binary string\n const byteView = new Uint8Array(buffer);\n let str = \"\";\n for (const charCode of byteView) {\n str += String.fromCharCode(charCode);\n }\n\n // Binary string to base64\n const base64String = btoa(str);\n\n // Base64 to base64url\n // We assume that the base64url string is well-formed.\n const base64urlString = base64String\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=/g, \"\");\n return base64urlString;\n}\n","// We export these values in order so that they can be used to deduplicate\n// schema definitions in minified JS code.\n\nimport { Schema, SchemaProperty } from \"./schema-format\";\n\n// TODO: Parcel isn't deduplicating these values.\nexport const copyValue = \"copy\";\nexport const convertValue = \"convert\";\n\nexport function convert(\n conversionFn: (v: From) => To,\n schema: Schema,\n input: any,\n): any {\n if (schema === copyValue) {\n return input;\n }\n if (schema === convertValue) {\n return conversionFn(input);\n }\n if (schema instanceof Array) {\n return input.map((v: any) => convert(conversionFn, schema[0], v));\n }\n if (schema instanceof Object) {\n const output: any = {};\n for (const [key, schemaField] of Object.entries(schema)) {\n if (schemaField.deriveFn) {\n const v = schemaField.deriveFn(input);\n if (v !== undefined) {\n input[key] = v;\n }\n }\n\n if (!(key in input)) {\n if (schemaField.required) {\n throw new Error(`Missing key: ${key}`);\n }\n continue;\n }\n // Fields can be null (rather than missing or `undefined`), e.g. the\n // `userHandle` field of the `AuthenticatorAssertionResponse`:\n // https://www.w3.org/TR/webauthn/#iface-authenticatorassertionresponse\n if (input[key] == null) {\n output[key] = null;\n continue;\n }\n output[key] = convert(\n conversionFn,\n schemaField.schema,\n input[key],\n );\n }\n return output;\n }\n}\n\nexport function derived(\n schema: Schema,\n deriveFn: (v: any) => any,\n): SchemaProperty {\n return {\n required: true,\n schema,\n deriveFn,\n };\n}\n\nexport function required(schema: Schema): SchemaProperty {\n return {\n required: true,\n schema,\n };\n}\n\nexport function optional(schema: Schema): SchemaProperty {\n return {\n required: false,\n schema,\n };\n}\n","import { Schema } from \"../schema-format\";\nimport {\n convertValue as convert,\n copyValue as copy,\n derived,\n optional,\n required,\n} from \"../convert\";\n\n// Shared by `create()` and `get()`.\n\nconst publicKeyCredentialDescriptorSchema: Schema = {\n type: required(copy),\n id: required(convert),\n transports: optional(copy),\n};\n\nconst simplifiedExtensionsSchema: Schema = {\n appid: optional(copy),\n appidExclude: optional(copy),\n credProps: optional(copy),\n};\n\nconst simplifiedClientExtensionResultsSchema = {\n appid: optional(copy),\n appidExclude: optional(copy),\n credProps: optional(copy),\n};\n\n// `navigator.create()` request\n\nexport const credentialCreationOptions: Schema = {\n publicKey: required({\n rp: required(copy),\n user: required({\n id: required(convert),\n name: required(copy),\n displayName: required(copy),\n }),\n\n challenge: required(convert),\n pubKeyCredParams: required(copy),\n\n timeout: optional(copy),\n excludeCredentials: optional([publicKeyCredentialDescriptorSchema]),\n authenticatorSelection: optional(copy),\n attestation: optional(copy),\n extensions: optional(simplifiedExtensionsSchema),\n }),\n signal: optional(copy),\n};\n\n// `navigator.create()` response\n\nexport const publicKeyCredentialWithAttestation: Schema = {\n type: required(copy),\n id: required(copy),\n rawId: required(convert),\n response: required({\n clientDataJSON: required(convert),\n attestationObject: required(convert),\n transports: derived(\n copy,\n (response: any) => response.getTransports?.() || [],\n ),\n }),\n clientExtensionResults: derived(\n simplifiedClientExtensionResultsSchema,\n (pkc: PublicKeyCredential) => pkc.getClientExtensionResults(),\n ),\n};\n\n// `navigator.get()` request\n\nexport const credentialRequestOptions: Schema = {\n mediation: optional(copy),\n publicKey: required({\n challenge: required(convert),\n timeout: optional(copy),\n rpId: optional(copy),\n allowCredentials: optional([publicKeyCredentialDescriptorSchema]),\n userVerification: optional(copy),\n extensions: optional(simplifiedExtensionsSchema),\n }),\n signal: optional(copy),\n};\n\n// `navigator.get()` response\n\nexport const publicKeyCredentialWithAssertion: Schema = {\n type: required(copy),\n id: required(copy),\n rawId: required(convert),\n response: required({\n clientDataJSON: required(convert),\n authenticatorData: required(convert),\n signature: required(convert),\n userHandle: required(convert),\n }),\n clientExtensionResults: derived(\n simplifiedClientExtensionResultsSchema,\n (pkc: PublicKeyCredential) => pkc.getClientExtensionResults(),\n ),\n};\n\nexport const schema: { [s: string]: Schema } = {\n credentialCreationOptions,\n publicKeyCredentialWithAttestation,\n credentialRequestOptions,\n publicKeyCredentialWithAssertion,\n};\n","import { base64urlToBuffer, bufferToBase64url } from \"../base64url\";\nimport { convert } from \"../convert\";\nimport {\n CredentialCreationOptionsJSON,\n CredentialRequestOptionsJSON,\n PublicKeyCredentialWithAssertionJSON,\n PublicKeyCredentialWithAttestationJSON,\n} from \"./json\";\nimport {\n credentialCreationOptions,\n credentialRequestOptions,\n publicKeyCredentialWithAssertion,\n publicKeyCredentialWithAttestation,\n} from \"./schema\";\n\nexport function createRequestFromJSON(\n requestJSON: CredentialCreationOptionsJSON,\n): CredentialCreationOptions {\n return convert(base64urlToBuffer, credentialCreationOptions, requestJSON);\n}\n\nexport function createResponseToJSON(\n credential: PublicKeyCredential,\n): PublicKeyCredentialWithAttestationJSON {\n return convert(\n bufferToBase64url,\n publicKeyCredentialWithAttestation,\n credential,\n );\n}\n\nexport async function create(\n requestJSON: CredentialCreationOptionsJSON,\n): Promise {\n const credential = (await navigator.credentials.create(\n createRequestFromJSON(requestJSON),\n )) as PublicKeyCredential;\n return createResponseToJSON(credential);\n}\n\nexport function getRequestFromJSON(\n requestJSON: CredentialRequestOptionsJSON,\n): CredentialRequestOptions {\n return convert(base64urlToBuffer, credentialRequestOptions, requestJSON);\n}\n\nexport function getResponseToJSON(\n credential: PublicKeyCredential,\n): PublicKeyCredentialWithAssertionJSON {\n return convert(\n bufferToBase64url,\n publicKeyCredentialWithAssertion,\n credential,\n );\n}\n\nexport async function get(\n requestJSON: CredentialRequestOptionsJSON,\n): Promise {\n const credential = (await navigator.credentials.get(\n getRequestFromJSON(requestJSON),\n )) as PublicKeyCredential;\n return getResponseToJSON(credential);\n}\n\ndeclare global {\n interface Window {\n PublicKeyCredential: PublicKeyCredential | undefined;\n }\n}\n","/// \nexport const SYNC = 'device.sync';\nexport const CHANGE = 'device.change';\n\nexport interface Device {\n\tid?: string;\n\tuser?: string;\n\tname?: string;\n\ttype?: string;\n\tmode?: string;\n\talert_levels?: number[];\n\ttimestamp?: string;\n\tdisabled?: boolean;\n\tactive_until?: string;\n\tnumber?: string;\n\tlast_active?: string;\n\twan_rp_id?: string;\n}\n\nexport type Devices = Device[];\n\nexport type DeviceRo = Readonly;\nexport type DevicesRo = ReadonlyArray;\n\nexport interface DeviceDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tuserId?: string;\n\t\tdevice?: Device;\n\t\tdevices?: Devices;\n\t\tshowRemoved?: boolean;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as DeviceTypes from '../types/DeviceTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass DevicesStore extends EventEmitter {\n\t_userId: string;\n\t_devices: DeviceTypes.DevicesRo = Object.freeze([]);\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\tget userId(): string {\n\t\treturn this._userId;\n\t}\n\n\tget devices(): DeviceTypes.DevicesRo {\n\t\treturn this._devices;\n\t}\n\n\tget devicesM(): DeviceTypes.Devices {\n\t\tlet devices: DeviceTypes.Devices = [];\n\t\tthis._devices.forEach((device: DeviceTypes.DeviceRo): void => {\n\t\t\tdevices.push({\n\t\t\t\t...device,\n\t\t\t});\n\t\t});\n\t\treturn devices;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(userId: string, devices: DeviceTypes.Device[]): void {\n\t\tthis._userId = userId;\n\n\t\tfor (let i = 0; i < devices.length; i++) {\n\t\t\tdevices[i] = Object.freeze(devices[i]);\n\t\t}\n\n\t\tthis._devices = Object.freeze(devices);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: DeviceTypes.DeviceDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase DeviceTypes.SYNC:\n\t\t\t\tthis._sync(action.data.userId, action.data.devices);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new DevicesStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as DeviceTypes from '../types/DeviceTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport DevicesStore from '../stores/DevicesStore';\nimport * as PolicyTypes from \"../types/PolicyTypes\";\n\nlet syncId: string;\n\nexport function load(userId: string): Promise {\n\tif (!userId) {\n\t\treturn Promise.resolve();\n\t}\n\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/device/' + userId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load devices');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: DeviceTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tuserId: userId,\n\t\t\t\t\t\tdevices: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function reload(): Promise {\n\treturn load(DevicesStore.userId);\n}\n\nexport function create(device: DeviceTypes.Device): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/device')\n\t\t\t.send(device)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create device');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function testAlert(deviceId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/device/' + deviceId + '/alert')\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to send test alert');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function commit(device: DeviceTypes.Device): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/device/' + device.id)\n\t\t\t.send(device)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save device');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(deviceId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/device/' + deviceId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete device');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: DeviceTypes.DeviceDispatch) => {\n\tswitch (action.type) {\n\t\tcase DeviceTypes.CHANGE:\n\t\t\treload();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as Blueprint from '@blueprintjs/core';\n\ninterface Props {\n\ttitle: string;\n\tcontent: string;\n\texamples?: string[];\n}\n\ninterface State {\n\tpopover: boolean;\n}\n\nconst css = {\n\tbox: {\n\t\tposition: 'relative',\n\t\tdisplay: 'inline',\n\t} as React.CSSProperties,\n\tcontent: {\n\t\tpadding: '20px',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tposition: 'absolute',\n\t\ttop: '-7px',\n\t\tleft: '-2px',\n\t\tpadding: '7px',\n\t\tbackground: 'none',\n\t\topacity: 0.3,\n\t} as React.CSSProperties,\n\tpopover: {\n\t\twidth: '230px',\n\t} as React.CSSProperties,\n\tpopoverTarget: {\n\t\ttop: '9px',\n\t\tleft: '18px',\n\t} as React.CSSProperties,\n\tdialog: {\n\t\tmaxWidth: '400px',\n\t\tmargin: '30px 20px',\n\t} as React.CSSProperties,\n\tinputFirst: {\n\t\twidth: '100%',\n\t\tmarginTop: '15px',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '100%',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n};\n\nlet dialog = true;\n\nexport default class Help extends React.Component {\n\tconstructor(props: Props, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpopover: false,\n\t\t};\n\t}\n\n\tautoSelect = (evt: React.MouseEvent): void => {\n\t\tevt.currentTarget.select();\n\t}\n\n\trender(): JSX.Element {\n\t\tlet examplesElem: JSX.Element[] = [];\n\t\tfor (let i = 0; i < (this.props.examples || []).length; i++) {\n\t\t\texamplesElem.push(\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\tlet helpElm: JSX.Element;\n\t\tif (this.state.popover) {\n\t\t\tif (dialog) {\n\t\t\t\thelpElm = {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\tpopover: false,\n\t\t\t\t\t\t});\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t
    \n\t\t\t\t\t\t{this.props.content}\n\t\t\t\t\t\t{examplesElem}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tpopover: !this.state.popover,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>Close\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t;\n\t\t\t} else {\n\t\t\t\thelpElm = \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    {this.props.title}
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{this.props.content}\n\t\t\t\t\t\t\t\t\t\t{examplesElem}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\n\t\t\t;\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tpopover: !this.state.popover,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{helpElm}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport Help from './Help';\n\ninterface Props {\n\thidden?: boolean;\n\tdisabled?: boolean;\n\tlabel: string;\n\thelp: string;\n\tchecked: boolean;\n\tonToggle: () => void;\n}\n\nconst css = {\n\tlabel: {\n\t\tdisplay: 'inline-block',\n\t} as React.CSSProperties,\n};\n\nexport default class PageSwitch extends React.Component {\n\trender(): JSX.Element {\n\t\treturn ;\n\t}\n}\n","/// \nimport * as React from 'react';\n\ninterface Props {\n\tstyle?: React.CSSProperties;\n\tmessage: string;\n\tchanged: boolean;\n\tdisabled: boolean;\n\twrap?: boolean;\n\thidden?: boolean;\n\tlight?: boolean;\n\tonCancel: () => void;\n\tonSave: () => void;\n}\n\nconst css = {\n\tmessage: {\n\t\tmarginTop: '6px',\n\t} as React.CSSProperties,\n\tmessageWrap: {\n\t\tmarginTop: '6px',\n\t\tmarginRight: '10px',\n\t} as React.CSSProperties,\n\tbox: {\n\t\tmarginTop: '15px',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmarginLeft: '10px',\n\t} as React.CSSProperties,\n\tbuttonWrap: {\n\t\tmarginLeft: '10px',\n\t\tmarginBottom: '10px',\n\t} as React.CSSProperties,\n\tbuttonWrapFirst: {\n\t\tmarginBottom: '10px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tflexShrink: 0,\n\t} as React.CSSProperties,\n};\n\nexport default class PageSave extends React.Component {\n\trender(): JSX.Element {\n\t\tlet style: React.CSSProperties = this.props.light ? null : css.box;\n\n\t\tif (this.props.style) {\n\t\t\tstyle = {\n\t\t\t\t...style,\n\t\t\t\t...this.props.style,\n\t\t\t};\n\t\t}\n\n\t\tlet containerClass = 'layout horizontal';\n\t\tlet buttonStyle: React.CSSProperties;\n\t\tlet buttonStyleFirst: React.CSSProperties;\n\t\tlet messageStyle: React.CSSProperties;\n\t\tif (this.props.wrap) {\n\t\t\tbuttonStyle = css.buttonWrap;\n\t\t\tbuttonStyleFirst = css.buttonWrapFirst;\n\t\t\tmessageStyle = css.messageWrap;\n\t\t} else {\n\t\t\tbuttonStyle = css.button;\n\t\t\tbuttonStyleFirst = css.button;\n\t\t\tmessageStyle = css.message;\n\t\t}\n\n\t\treturn \n\t\t\t{this.props.children}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\tCancel\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tSave\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport Help from './Help';\n\ninterface Props {\n\thidden?: boolean;\n\tdisabled?: boolean;\n\treadOnly?: boolean;\n\tautoSelect?: boolean;\n\tnarrow?: boolean;\n\tlabel: string;\n\thelp: string;\n\ttype: string;\n\tplaceholder: string;\n\tvalue: string | number;\n\tonChange?: (val: string) => void;\n}\n\nconst css = {\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tlabelNarrow: {\n\t\twidth: '100%',\n\t\tmaxWidth: '220px',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n};\n\nexport default class PageInput extends React.Component {\n\tautoSelect = (evt: React.MouseEvent): void => {\n\t\tevt.currentTarget.select();\n\t}\n\n\trender(): JSX.Element {\n\t\tlet value: any = this.props.value;\n\t\tvalue = isNaN(value) ? this.props.value || '' : this.props.value;\n\n\t\treturn \n\t\t\t{this.props.label}\n\t\t\t\n\t\t\t {\n\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\tthis.props.onChange(evt.target.value);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as DeviceTypes from '../types/DeviceTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as DeviceActions from '../actions/DeviceActions';\nimport * as PageInfos from './PageInfo';\nimport PageInfo from './PageInfo';\nimport ConfirmButton from './ConfirmButton';\nimport * as Alert from '../Alert';\nimport PageSwitch from \"./PageSwitch\";\nimport PageSave from \"./PageSave\";\nimport PageInput from \"./PageInput\";\n\ninterface Props {\n\tdevice: DeviceTypes.DeviceRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tdevice: DeviceTypes.Device;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tinfo: {\n\t\tmarginBottom: '-5px',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '250px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\tmarginBottom: '11px',\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\tcontrolButton: {\n\t\tmarginRight: '10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingTop: '10px',\n\t} as React.CSSProperties,\n};\n\nexport default class Device extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tdevice: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet device: any;\n\n\t\tif (this.state.changed) {\n\t\t\tdevice = {\n\t\t\t\t...this.state.device,\n\t\t\t};\n\t\t} else {\n\t\t\tdevice = {\n\t\t\t\t...this.props.device,\n\t\t\t};\n\t\t}\n\n\t\tdevice[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdevice: device,\n\t\t});\n\t}\n\n\ttoggleLevel(level: number) {\n\t\tlet device: any;\n\n\t\tif (this.state.changed) {\n\t\t\tdevice = {\n\t\t\t\t...this.state.device,\n\t\t\t};\n\t\t} else {\n\t\t\tdevice = {\n\t\t\t\t...this.props.device,\n\t\t\t};\n\t\t}\n\n\t\tlet levels: number[] = Object.assign([], (device.alert_levels || []));\n\t\tlet index = levels.indexOf(level);\n\n\t\tif (index !== -1) {\n\t\t\tlevels.splice(index, 1);\n\t\t} else {\n\t\t\tlevels.push(level);\n\t\t}\n\n\t\tdevice.alert_levels = levels;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdevice: device,\n\t\t});\n\t}\n\n\tonTestAlert = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDeviceActions.testAlert(this.props.device.id).then((): void => {\n\t\t\tAlert.success('Test alert sent');\n\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDeviceActions.commit(this.state.device).then((): void => {\n\t\t\tAlert.success('Device name updated');\n\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t\tchanged: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tdevice: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDeviceActions.remove(this.props.device.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet device: DeviceTypes.Device = this.state.device ||\n\t\t\tthis.props.device;\n\n\t\tlet isPhone: boolean = this.props.device.mode === 'phone';\n\n\t\tlet deviceType = 'Unknown';\n\t\tswitch (device.type) {\n\t\t\tcase 'webauthn':\n\t\t\t\tdeviceType = 'WebAuthn';\n\t\t\t\tbreak;\n\t\t\tcase 'u2f':\n\t\t\t\tdeviceType = 'U2F';\n\t\t\t\tbreak;\n\t\t\tcase 'call':\n\t\t\t\tdeviceType = 'Call';\n\t\t\t\tbreak;\n\t\t\tcase 'message':\n\t\t\t\tdeviceType = 'SMS';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet deviceMode = 'Unknown';\n\t\tswitch (device.mode) {\n\t\t\tcase 'secondary':\n\t\t\t\tdeviceMode = 'Secondary';\n\t\t\t\tbreak;\n\t\t\tcase 'phone':\n\t\t\t\tdeviceMode = 'Phone';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet deviceOther: PageInfos.Field;\n\t\tif (device.wan_rp_id) {\n\t\t\tdeviceOther = {\n\t\t\t\tlabel: 'WebAuthn Domain',\n\t\t\t\tvalue: device.wan_rp_id,\n\t\t\t};\n\t\t} else if (device.type === 'call' || device.type === 'message') {\n\t\t\tdeviceOther = {\n\t\t\t\tlabel: 'Phone Number',\n\t\t\t\tvalue: device.number,\n\t\t\t};\n\t\t}\n\n\t\tlet alertIcon = 'bp3-icon-phone';\n\t\tif (device.type === 'message') {\n\t\t\talertIcon = 'bp3-icon-mobile-phone';\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\t\tif (device.disabled) {\n\t\t\tcardStyle.opacity = 0.6;\n\t\t}\n\n\t\tlet fields1: PageInfos.Field[];\n\t\tlet fields2: PageInfos.Field[];\n\n\t\tif (isPhone) {\n\t\t\tfields1 = [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'ID',\n\t\t\t\t\tvalue: device.id || 'None',\n\t\t\t\t},\n\t\t\t];\n\t\t\tfields2 = [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Type',\n\t\t\t\t\tvalue: deviceType,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Mode',\n\t\t\t\t\tvalue: deviceMode,\n\t\t\t\t},\n\t\t\t\tdeviceOther,\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Registered',\n\t\t\t\t\tvalue: MiscUtils.formatDate(device.timestamp) || 'Unknown',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Last Active',\n\t\t\t\t\tvalue: MiscUtils.formatDate(device.last_active) || 'Unknown',\n\t\t\t\t},\n\t\t\t];\n\t\t} else {\n\t\t\tfields1 = [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'ID',\n\t\t\t\t\tvalue: device.id || 'None',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Type',\n\t\t\t\t\tvalue: deviceType,\n\t\t\t\t},\n\t\t\t\tdeviceOther,\n\t\t\t];\n\t\t\tfields2 = [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Mode',\n\t\t\t\t\tvalue: deviceMode,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Registered',\n\t\t\t\t\tvalue: MiscUtils.formatDate(device.timestamp) || 'Unknown',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Last Active',\n\t\t\t\t\tvalue: MiscUtils.formatDate(device.last_active) || 'Unknown',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tlet testButton: JSX.Element;\n\t\tif (isPhone) {\n\t\t\ttestButton = {\n\t\t\t\t\tthis.onTestAlert();\n\t\t\t\t}}\n\t\t\t/>;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleLevel(1);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleLevel(5);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleLevel(10);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tdevice: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t>\n\t\t\t\t{testButton}\n\t\t\t\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as SuperAgent from 'superagent';\nimport * as WebAuthn from '@github/webauthn-json';\nimport * as DeviceTypes from '../types/DeviceTypes';\nimport DevicesStore from '../stores/DevicesStore';\nimport * as DeviceActions from '../actions/DeviceActions';\nimport * as Constants from \"../Constants\";\nimport NonState from './NonState';\nimport Device from './Device';\nimport PageHeader from './PageHeader';\nimport Loader from \"../Loader\";\nimport * as Csrf from \"../Csrf\";\nimport * as Alert from \"../Alert\";\n\ninterface Props {\n\tuserId: string;\n}\n\ninterface State {\n\tdevices: DeviceTypes.DevicesRo;\n\tdeviceType: string;\n\tdeviceName: string;\n\tdevicePubKey: string;\n\tdevicePhoneNumber: string;\n\tshowEnded: boolean;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '15px 0 -5px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tmarginTop: '18px',\n\t} as React.CSSProperties,\n\tgroupBox: {\n\t} as React.CSSProperties,\n\tinputBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class Devices extends React.Component {\n\talertKey: string;\n\tu2fToken: string;\n\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdevices: DevicesStore.devices,\n\t\t\tdeviceName: '',\n\t\t\tdeviceType: '',\n\t\t\tdevicePubKey: '',\n\t\t\tdevicePhoneNumber: '',\n\t\t\tshowEnded: false,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tDevicesStore.addChangeListener(this.onChange);\n\t\tif (this.props.userId) {\n\t\t\tDeviceActions.load(this.props.userId);\n\t\t}\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tDevicesStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdevices: DevicesStore.devices,\n\t\t});\n\t}\n\n\twanRegister = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\n\t\tlet loader = new Loader().loading();\n\n\t\tSuperAgent\n\t\t\t.get('/device/' + DevicesStore.userId + '/webauthn/register')\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to request device registration');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.wanCreate(res.body.token, res.body.options);\n\t\t\t});\n\t}\n\n\twanCreate = (token: string, options: any): void => {\n\t\tWebAuthn.create(options).then((cred: any): void => {\n\t\t\tcred.name = this.state.deviceName;\n\t\t\tcred.token = token;\n\t\t\tthis.wanRespond(cred);\n\t\t}).catch((err: any): void => {\n\t\t\tAlert.errorRes(err, 'Failed to register device');\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\twanRespond = (cred: any): void => {\n\t\tlet loader = new Loader().loading();\n\n\t\tSuperAgent\n\t\t\t.post('/device/' + DevicesStore.userId + '/webauthn/register')\n\t\t\t.send(cred)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t\tdeviceName: '',\n\t\t\t\t});\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to register device');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tAlert.success('Successfully registered device');\n\t\t\t});\n\t}\n\n\taddDevice = (): void => {\n\t\tif (this.state.deviceType === 'phone_call' ||\n\t\t\tthis.state.deviceType === 'phone_message') {\n\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: true,\n\t\t\t});\n\n\t\t\tlet deviceTypes = this.state.deviceType.split('_');\n\t\t\tlet deviceMode = deviceTypes[0];\n\t\t\tlet deviceType = deviceTypes[1];\n\n\t\t\tDeviceActions.create({\n\t\t\t\tid: null,\n\t\t\t\tuser: this.props.userId,\n\t\t\t\tname: this.state.deviceName,\n\t\t\t\ttype: deviceType,\n\t\t\t\tmode: deviceMode,\n\t\t\t\tnumber: this.state.devicePhoneNumber,\n\t\t\t}).then((): void => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t\tdeviceName: '',\n\t\t\t\t\tdevicePubKey: '',\n\t\t\t\t\tdevicePhoneNumber: '',\n\t\t\t\t});\n\n\t\t\t\tAlert.success('Successfully registered device');\n\t\t\t}).catch((): void => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tthis.wanRegister();\n\t\t}\n\t}\n\n\trender(): JSX.Element {\n\t\tif (!this.props.userId) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet devices: JSX.Element[] = [];\n\n\t\tthis.state.devices.forEach((device: DeviceTypes.DeviceRo): void => {\n\t\t\tdevices.push();\n\t\t});\n\n\t\treturn
    \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    User Devices

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tdeviceType: evt.target.value,\n\t\t\t\t\t\t\t\t\t\t\tdevicePubKey: '',\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tdeviceName: evt.target.value,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonKeyPress={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tif (this.state.deviceType !== 'smart_card' &&\n\t\t\t\t\t\t\t\t\t\t\t\tevt.key === 'Enter') {\n\t\t\t\t\t\t\t\t\t\t\tthis.addDevice();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tdevicePhoneNumber: evt.target.value,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonKeyPress={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tif (evt.key === 'Enter') {\n\t\t\t\t\t\t\t\t\t\t\tthis.addDevice();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\tAdd Device\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{devices}\n\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AuditTypes from '../types/AuditTypes';\nimport * as Constants from '../Constants';\nimport * as AgentUtils from '../utils/AgentUtils';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport PageInfo from './PageInfo';\n\ninterface Props {\n\taudit: AuditTypes.AuditRo;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tinfo: {\n\t\tmarginBottom: '-5px',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '290px',\n\t} as React.CSSProperties,\n};\n\nexport default class Audit extends React.Component {\n\trender(): JSX.Element {\n\t\tlet audit = this.props.audit;\n\t\tlet agent = audit.agent || {};\n\n\t\tlet fields: string[] = [];\n\t\tfor (let key in audit.fields) {\n\t\t\tif (!audit.fields.hasOwnProperty(key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfields.push(key + ': ' + audit.fields[key]);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport AuditsStore from '../stores/AuditsStore';\nimport * as AuditActions from '../actions/AuditActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class AuditsPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: AuditsStore.page,\n\t\t\tpageCount: AuditsStore.pageCount,\n\t\t\tpages: AuditsStore.pages,\n\t\t\tcount: AuditsStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tAuditsStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tAuditsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: AuditsStore.page,\n\t\t\tpageCount: AuditsStore.pageCount,\n\t\t\tpages: AuditsStore.pages,\n\t\t\tcount: AuditsStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tAuditActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tAuditActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tAuditActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tAuditActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tAuditActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AuditTypes from '../types/AuditTypes';\nimport AuditsStore from '../stores/AuditsStore';\nimport * as AuditActions from '../actions/AuditActions';\nimport NonState from './NonState';\nimport Audit from './Audit';\nimport PageHeader from './PageHeader';\nimport AuditsPage from './AuditsPage';\n\ninterface Props {\n\tuserId: string;\n}\n\ninterface State {\n\taudits: AuditTypes.AuditsRo;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n};\n\nexport default class Audits extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\taudits: AuditsStore.audits,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tAuditsStore.addChangeListener(this.onChange);\n\t\tif (this.props.userId) {\n\t\t\tAuditActions.load(this.props.userId);\n\t\t}\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tAuditsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\taudits: AuditsStore.audits,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tif (!this.props.userId) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet audits: JSX.Element[] = [];\n\n\t\tthis.state.audits.forEach((\n\t\t\t\taudit: AuditTypes.AuditRo): void => {\n\t\t\taudits.push();\n\t\t});\n\n\t\treturn
    \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    User Audit Events

    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{audits}\n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\n\ninterface Props {\n\tclassName?: string;\n\thidden?: boolean;\n}\n\nconst css = {\n\tpanel: {\n\t\tflex: 1,\n\t\tminWidth: '250px',\n\t\tpadding: '0 10px',\n\t} as React.CSSProperties,\n};\n\nexport default class PagePanel extends React.Component {\n\trender(): JSX.Element {\n\t\treturn \n\t\t\t{this.props.children}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\n\nexport default class PageSplit extends React.Component<{}, {}> {\n\trender(): JSX.Element {\n\t\treturn
    \n\t\t\t{this.props.children}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport Help from './Help';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Props {\n\tbuttonClass?: string;\n\thidden?: boolean;\n\tdisabled?: boolean;\n\tbuttonConfirm?: boolean;\n\tbuttonDisabled?: boolean;\n\treadOnly?: boolean;\n\tautoSelect?: boolean;\n\tlabel?: string;\n\tlabelTop?: boolean;\n\tlistStyle?: boolean;\n\thelp?: string;\n\ttype: string;\n\tplaceholder?: string;\n\tvalue: string;\n\tonChange?: (val: string) => void;\n\tonSubmit: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\tmarginBottom: '15px',\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tgroupList: {\n\t\tmarginTop: '5px',\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tgroupTop: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tinputBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tbuttonTop: {\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n};\n\nexport default class PageInputButton extends React.Component {\n\tautoSelect = (evt: React.MouseEvent): void => {\n\t\tevt.currentTarget.select();\n\t}\n\n\trender(): JSX.Element {\n\t\tlet buttonClass = 'bp3-button';\n\t\tif (this.props.buttonClass) {\n\t\t\tbuttonClass += ' ' + this.props.buttonClass;\n\t\t}\n\n\t\tlet buttonLabel = '';\n\t\tlet buttonStyle: React.CSSProperties;\n\t\tif (this.props.labelTop) {\n\t\t\tbuttonStyle = css.buttonTop;\n\t\t} else {\n\t\t\tbuttonLabel = this.props.label || '';\n\t\t}\n\n\t\tlet button: JSX.Element;\n\t\tif (this.props.buttonConfirm) {\n\t\t\tbutton = ;\n\t\t} else {\n\t\t\tbutton = {buttonLabel};\n\t\t}\n\n\t\tif (this.props.labelTop) {\n\t\t\treturn \n\t\t\t\t{this.props.label}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\t\t\tthis.props.onChange(evt.target.value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonKeyPress={(evt): void => {\n\t\t\t\t\t\t\t\tif (evt.key === 'Enter') {\n\t\t\t\t\t\t\t\t\tthis.props.onSubmit();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{button}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t;\n\t\t} else {\n\t\t\treturn \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\t\tthis.props.onChange(evt.target.value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonKeyPress={(evt): void => {\n\t\t\t\t\t\t\tif (evt.key === 'Enter') {\n\t\t\t\t\t\t\t\tthis.props.onSubmit();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{button}\n\t\t\t\t
    \n\t\t\t
    ;\n\t\t}\n\t}\n}\n","/// \nimport * as React from 'react';\nimport Help from './Help';\n\ninterface Props {\n\thidden?: boolean;\n\tdisabled?: boolean;\n\tlabel: string;\n\thelp: string;\n\tvalue: string;\n\tonChange: (val: string) => void;\n}\n\nconst css = {\n\tlabel: {\n\t\tdisplay: 'inline-block',\n\t} as React.CSSProperties,\n};\n\nexport default class PageSelect extends React.Component {\n\trender(): JSX.Element {\n\t\treturn ;\n\t}\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Classes } from \"@blueprintjs/core\";\n\nconst NS = Classes.getClassNamespace();\n\nexport const DATEINPUT = `${NS}-dateinput`;\nexport const DATEINPUT_POPOVER = `${DATEINPUT}-popover`;\n\nexport const DATEPICKER = `${NS}-datepicker`;\nexport const DATEPICKER_CAPTION = `${DATEPICKER}-caption`;\nexport const DATEPICKER_CAPTION_CARET = `${DATEPICKER_CAPTION}-caret`;\nexport const DATEPICKER_CAPTION_MEASURE = `${DATEPICKER_CAPTION}-measure`;\nexport const DATEPICKER_CAPTION_SELECT = `${DATEPICKER_CAPTION}-select`;\nexport const DATEPICKER_DAY = \"DayPicker-Day\";\nexport const DATEPICKER_DAY_DISABLED = `${DATEPICKER_DAY}--disabled`;\nexport const DATEPICKER_DAY_OUTSIDE = `${DATEPICKER_DAY}--outside`;\nexport const DATEPICKER_DAY_SELECTED = `${DATEPICKER_DAY}--selected`;\nexport const DATEPICKER_DAY_IS_TODAY = `${DATEPICKER_DAY}--isToday`;\nexport const DATEPICKER_DAY_WRAPPER = `${DATEPICKER}-day-wrapper`;\nexport const DATEPICKER_FOOTER = `${DATEPICKER}-footer`;\nexport const DATEPICKER_MONTH_SELECT = `${DATEPICKER}-month-select`;\nexport const DATEPICKER_YEAR_SELECT = `${DATEPICKER}-year-select`;\nexport const DATEPICKER_NAVBAR = `${DATEPICKER}-navbar`;\nexport const DATEPICKER_NAVBUTTON = `DayPicker-NavButton`;\nexport const DATEPICKER_TIMEPICKER_WRAPPER = `${DATEPICKER}-timepicker-wrapper`;\n\nexport const DATERANGEPICKER = `${NS}-daterangepicker`;\nexport const DATERANGEPICKER_CONTIGUOUS = `${DATERANGEPICKER}-contiguous`;\nexport const DATERANGEPICKER_SINGLE_MONTH = `${DATERANGEPICKER}-single-month`;\nexport const DATERANGEPICKER_DAY_SELECTED_RANGE = `${DATEPICKER_DAY}--selected-range`;\nexport const DATERANGEPICKER_DAY_HOVERED_RANGE = `${DATEPICKER_DAY}--hovered-range`;\nexport const DATERANGEPICKER_SHORTCUTS = `${DATERANGEPICKER}-shortcuts`;\nexport const DATERANGEPICKER_TIMEPICKERS = `${DATERANGEPICKER}-timepickers`;\n\nexport const DATETIMEPICKER = `${NS}-datetimepicker`;\n\nexport const TIMEPICKER = `${NS}-timepicker`;\nexport const TIMEPICKER_ARROW_BUTTON = `${TIMEPICKER}-arrow-button`;\nexport const TIMEPICKER_ARROW_ROW = `${TIMEPICKER}-arrow-row`;\nexport const TIMEPICKER_DIVIDER_TEXT = `${TIMEPICKER}-divider-text`;\nexport const TIMEPICKER_HOUR = `${TIMEPICKER}-hour`;\nexport const TIMEPICKER_INPUT = `${TIMEPICKER}-input`;\nexport const TIMEPICKER_INPUT_ROW = `${TIMEPICKER}-input-row`;\nexport const TIMEPICKER_MILLISECOND = `${TIMEPICKER}-millisecond`;\nexport const TIMEPICKER_MINUTE = `${TIMEPICKER}-minute`;\nexport const TIMEPICKER_SECOND = `${TIMEPICKER}-second`;\nexport const TIMEPICKER_AMPM_SELECT = `${TIMEPICKER}-ampm-select`;\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DateRange } from \"./dateRange\";\nimport { Months } from \"./months\";\n\nexport function isDateValid(date: Date | false | null): date is Date {\n return date instanceof Date && !isNaN(date.valueOf());\n}\n\nexport function areEqual(date1: Date, date2: Date) {\n if (date1 == null && date2 == null) {\n return true;\n } else if (date1 == null || date2 == null) {\n return false;\n } else {\n return date1.getTime() === date2.getTime();\n }\n}\n\nexport function areRangesEqual(dateRange1: DateRange, dateRange2: DateRange) {\n if (dateRange1 == null && dateRange2 == null) {\n return true;\n } else if (dateRange1 == null || dateRange2 == null) {\n return false;\n } else {\n const [start1, end1] = dateRange1;\n const [start2, end2] = dateRange2;\n const areStartsEqual = (start1 == null && start2 == null) || areSameDay(start1, start2);\n const areEndsEqual = (end1 == null && end2 == null) || areSameDay(end1, end2);\n return areStartsEqual && areEndsEqual;\n }\n}\n\nexport function areSameDay(date1: Date, date2: Date) {\n return areSameMonth(date1, date2) && date1.getDate() === date2.getDate();\n}\n\nexport function areSameMonth(date1: Date, date2: Date) {\n return (\n date1 != null &&\n date2 != null &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n );\n}\n\nexport function areSameTime(date1: Date, date2: Date) {\n return (\n date1 != null &&\n date2 != null &&\n date1.getHours() === date2.getHours() &&\n date1.getMinutes() === date2.getMinutes() &&\n date1.getSeconds() === date2.getSeconds() &&\n date1.getMilliseconds() === date2.getMilliseconds()\n );\n}\n\nexport function clone(d: Date) {\n return new Date(d.getTime());\n}\n\nexport function isDayInRange(date: Date, dateRange: DateRange, exclusive = false) {\n if (date == null) {\n return false;\n }\n\n const day = clone(date);\n const start = clone(dateRange[0]);\n const end = clone(dateRange[1]);\n\n day.setHours(0, 0, 0, 0);\n start.setHours(0, 0, 0, 0);\n end.setHours(0, 0, 0, 0);\n\n return start <= day && day <= end && (!exclusive || (!areSameDay(start, day) && !areSameDay(day, end)));\n}\n\nexport function isDayRangeInRange(innerRange: DateRange, outerRange: DateRange) {\n return (\n (innerRange[0] == null || isDayInRange(innerRange[0], outerRange)) &&\n (innerRange[1] == null || isDayInRange(innerRange[1], outerRange))\n );\n}\n\nexport function isMonthInRange(date: Date, dateRange: DateRange) {\n if (date == null) {\n return false;\n }\n\n const day = clone(date);\n const start = clone(dateRange[0]);\n const end = clone(dateRange[1]);\n\n day.setDate(1);\n start.setDate(1);\n end.setDate(1);\n day.setHours(0, 0, 0, 0);\n start.setHours(0, 0, 0, 0);\n end.setHours(0, 0, 0, 0);\n\n return start <= day && day <= end;\n}\n\nexport const isTimeEqualOrGreaterThan = (time: Date, timeToCompare: Date) => time.getTime() >= timeToCompare.getTime();\nexport const isTimeEqualOrSmallerThan = (time: Date, timeToCompare: Date) => time.getTime() <= timeToCompare.getTime();\n\nexport function isTimeInRange(date: Date, minDate: Date, maxDate: Date): boolean {\n const time = getDateOnlyWithTime(date);\n const minTime = getDateOnlyWithTime(minDate);\n const maxTime = getDateOnlyWithTime(maxDate);\n\n const isTimeGreaterThanMinTime = isTimeEqualOrGreaterThan(time, minTime);\n const isTimeSmallerThanMaxTime = isTimeEqualOrSmallerThan(time, maxTime);\n\n if (isTimeEqualOrSmallerThan(maxTime, minTime)) {\n return isTimeGreaterThanMinTime || isTimeSmallerThanMaxTime;\n }\n\n return isTimeGreaterThanMinTime && isTimeSmallerThanMaxTime;\n}\n\nexport function getTimeInRange(time: Date, minTime: Date, maxTime: Date) {\n if (areSameTime(minTime, maxTime)) {\n return maxTime;\n } else if (isTimeInRange(time, minTime, maxTime)) {\n return time;\n } else if (isTimeSameOrAfter(time, maxTime)) {\n return maxTime;\n }\n\n return minTime;\n}\n\n/**\n * Returns true if the time part of `date` is later than or equal to the time\n * part of `dateToCompare`. The day, month, and year parts will not be compared.\n */\nexport function isTimeSameOrAfter(date: Date, dateToCompare: Date): boolean {\n const time = getDateOnlyWithTime(date);\n const timeToCompare = getDateOnlyWithTime(dateToCompare);\n\n return isTimeEqualOrGreaterThan(time, timeToCompare);\n}\n\n/**\n * @returns a Date at the exact time-wise midpoint between startDate and endDate\n */\nexport function getDateBetween(dateRange: DateRange) {\n const start = dateRange[0].getTime();\n const end = dateRange[1].getTime();\n const middle = start + (end - start) * 0.5;\n return new Date(middle);\n}\n\nexport function getDateTime(date: Date | null, time?: Date | null) {\n if (date == null) {\n return null;\n } else if (time == null) {\n // cannot use default argument because `null` is a common value in this package.\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0);\n } else {\n return new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n time.getHours(),\n time.getMinutes(),\n time.getSeconds(),\n time.getMilliseconds(),\n );\n }\n}\n\nexport function getDateOnlyWithTime(date: Date): Date {\n return new Date(0, 0, 0, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n}\n\nexport function getDatePreviousMonth(date: Date): Date {\n if (date.getMonth() === Months.JANUARY) {\n return new Date(date.getFullYear() - 1, Months.DECEMBER);\n } else {\n return new Date(date.getFullYear(), date.getMonth() - 1);\n }\n}\n\nexport function getDateNextMonth(date: Date): Date {\n if (date.getMonth() === Months.DECEMBER) {\n return new Date(date.getFullYear() + 1, Months.JANUARY);\n } else {\n return new Date(date.getFullYear(), date.getMonth() + 1);\n }\n}\n\nexport function convert24HourMeridiem(hour: number, toPm: boolean): number {\n if (hour < 0 || hour > 23) {\n throw new Error(`hour must be between [0,23] inclusive: got ${hour}`);\n }\n return toPm ? (hour % 12) + 12 : hour % 12;\n}\n\nexport function getIsPmFrom24Hour(hour: number): boolean {\n if (hour < 0 || hour > 23) {\n throw new Error(`hour must be between [0,23] inclusive: got ${hour}`);\n }\n return hour >= 12;\n}\n\nexport function get12HourFrom24Hour(hour: number): number {\n if (hour < 0 || hour > 23) {\n throw new Error(`hour must be between [0,23] inclusive: got ${hour}`);\n }\n const newHour = hour % 12;\n return newHour === 0 ? 12 : newHour;\n}\n\nexport function get24HourFrom12Hour(hour: number, isPm: boolean): number {\n if (hour < 1 || hour > 12) {\n throw new Error(`hour must be between [1,12] inclusive: got ${hour}`);\n }\n const newHour = hour === 12 ? 0 : hour;\n return isPm ? newHour + 12 : newHour;\n}\n\nexport function isToday(date: Date): boolean {\n return areSameDay(date, new Date());\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst ns = \"[Blueprint]\";\n\nexport const DATEPICKER_DEFAULT_VALUE_INVALID =\n ns + ` defaultValue must be within minDate and maxDate bounds.`;\nexport const DATEPICKER_INITIAL_MONTH_INVALID =\n ns + ` initialMonth must be within minDate and maxDate bounds.`;\nexport const DATEPICKER_MAX_DATE_INVALID = ns + ` maxDate must be later than minDate.`;\nexport const DATEPICKER_VALUE_INVALID = ns + ` value prop must be within minDate and maxDate bounds.`;\n\nexport const DATERANGEPICKER_DEFAULT_VALUE_INVALID = DATEPICKER_DEFAULT_VALUE_INVALID.replace(\n \"DatePicker\",\n \"DateRangePicker\",\n);\nexport const DATERANGEPICKER_INITIAL_MONTH_INVALID = DATEPICKER_INITIAL_MONTH_INVALID.replace(\n \"DatePicker\",\n \"DateRangePicker\",\n);\nexport const DATERANGEPICKER_MAX_DATE_INVALID = DATEPICKER_MAX_DATE_INVALID.replace(\"DatePicker\", \"DateRangePicker\");\nexport const DATERANGEPICKER_VALUE_INVALID = DATEPICKER_VALUE_INVALID.replace(\"DatePicker\", \"DateRangePicker\");\nexport const DATERANGEPICKER_PREFERRED_BOUNDARY_TO_MODIFY_INVALID =\n \" preferredBoundaryToModify must be a valid Boundary if defined.\";\n\nexport const DATERANGEINPUT_NULL_VALUE =\n ns +\n ` value cannot be null. Pass undefined to clear the value and operate in` +\n \" uncontrolled mode, or pass [null, null] to clear the value and continue operating in controlled mode.\";\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Measure width in pixels of a string displayed with styles provided by `className`.\n * Should only be used if measuring can't be done with existing DOM elements.\n */\nexport function measureTextWidth(text: string, className = \"\", containerElement = document.body) {\n if (containerElement == null) {\n return 0;\n }\n const span = document.createElement(\"span\");\n span.classList.add(className);\n span.textContent = text;\n\n containerElement.appendChild(span);\n const spanWidth = span.offsetWidth;\n span.remove();\n\n return spanWidth;\n}\n\nexport function padWithZeroes(str: string, minLength: number) {\n if (str.length < minLength) {\n return `${stringRepeat(\"0\", minLength - str.length)}${str}`;\n } else {\n return str;\n }\n}\n\nfunction stringRepeat(str: string, numTimes: number) {\n return new Array(numTimes + 1).join(str);\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as React from \"react\";\nimport { CaptionElementProps } from \"react-day-picker\";\nimport { polyfill } from \"react-lifecycles-compat\";\n\nimport { AbstractPureComponent2, Divider, HTMLSelect, Icon, OptionProps } from \"@blueprintjs/core\";\n\nimport * as Classes from \"./common/classes\";\nimport { clone } from \"./common/dateUtils\";\nimport { measureTextWidth } from \"./common/utils\";\n\nexport interface IDatePickerCaptionProps extends CaptionElementProps {\n maxDate: Date;\n minDate: Date;\n onMonthChange?: (month: number) => void;\n onYearChange?: (year: number) => void;\n /** Callback invoked when the month or year `\n\t\t\t\t\n\t\t\t\n\t\t\t{this.props.label}\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Blueprint from '@blueprintjs/core';\nimport Help from './Help';\n\ninterface Props {\n\thidden?: boolean;\n\tdisabled?: boolean;\n\tmin?: number;\n\tmax?: number;\n\tminorStepSize?: number;\n\tstepSize?: number;\n\tmajorStepSize?: number;\n\tselectAllOnFocus?: true;\n\tlabel: string;\n\thelp: string;\n\tvalue: number;\n\tonChange: (val: number) => void;\n}\n\nconst css = {\n\tlabel: {\n\t\tdisplay: 'inline-block',\n\t} as React.CSSProperties,\n};\n\nexport default class PageNumInput extends React.Component {\n\trender(): JSX.Element {\n\t\treturn ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as BlockTypes from '../types/BlockTypes';\n\ninterface Props {\n\tipv6?: boolean;\n\tinterfaces?: string[];\n\tblocks: BlockTypes.BlocksRo;\n\tblock: NodeTypes.BlockAttachment;\n\tonChange: (state: NodeTypes.BlockAttachment) => void;\n\tonAdd: () => void;\n\tonRemove: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tsourceGroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '219px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tcontrol: {\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tportBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tother: {\n\t\tflex: '0 1 auto',\n\t\twidth: '52px',\n\t\tborderRadius: '0 3px 3px 0',\n\t} as React.CSSProperties,\n};\n\nexport default class NodeBlock extends React.Component {\n\tclone(): NodeTypes.BlockAttachment {\n\t\treturn {\n\t\t\t...this.props.block,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tlet block = this.props.block;\n\n\t\tlet ifaceMatch = false;\n\t\tlet ifacesSelect: JSX.Element[] = [];\n\t\tfor (let iface of (this.props.interfaces || [])) {\n\t\t\tif (block.interface === iface) {\n\t\t\t\tifaceMatch = true;\n\t\t\t}\n\n\t\t\tifacesSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tif (!ifaceMatch) {\n\t\t\tifacesSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet blocksSelect: JSX.Element[] = [];\n\t\tfor (let blck of (this.props.blocks || [])) {\n\t\t\tif (!this.props.ipv6 && blck.type === 'ipv6') {\n\t\t\t\tcontinue;\n\t\t\t} else if (this.props.ipv6 && blck.type !== 'ipv6') {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tblocksSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tif (blocksSelect.length === 0) {\n\t\t\tblocksSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.interface = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ifacesSelect}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.block = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{blocksSelect}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onAdd();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as DatacenterTypes from \"../types/DatacenterTypes\";\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport * as NodeActions from '../actions/NodeActions';\nimport * as BlockTypes from '../types/BlockTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as PageInfos from './PageInfo';\nimport CertificatesStore from '../stores/CertificatesStore';\nimport NodeDeploy from './NodeDeploy';\nimport PageInput from './PageInput';\nimport PageSwitch from './PageSwitch';\nimport PageInputSwitch from './PageInputSwitch';\nimport PageSelect from './PageSelect';\nimport PageSelectButton from './PageSelectButton';\nimport PageInputButton from './PageInputButton';\nimport PageTextArea from './PageTextArea';\nimport PageNumInput from './PageNumInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport NodeBlock from './NodeBlock';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\n\ninterface Props {\n\tnode: NodeTypes.NodeRo;\n\tcertificates: CertificateTypes.CertificatesRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tzones: ZoneTypes.ZonesRo;\n\tblocks: BlockTypes.BlocksRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tdatacenter: string;\n\tzone: string;\n\tchanged: boolean;\n\tmessage: string;\n\tnode: NodeTypes.Node;\n\taddExternalIface: string;\n\taddInternalIface: string;\n\taddOracleSubnet: string;\n\taddCert: string;\n\taddNetworkRole: string;\n\taddDrive: string;\n\tforwardedChecked: boolean;\n\tforwardedProtoChecked: boolean;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\twordBreak: 'break-all',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\trestart: {\n\t\tmarginRight: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tminWidth: '90px',\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tminWidth: '120px',\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\tblocks: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n};\n\nexport default class NodeDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tdatacenter: '',\n\t\t\tzone: '',\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tnode: null,\n\t\t\taddExternalIface: null,\n\t\t\taddInternalIface: null,\n\t\t\taddOracleSubnet: null,\n\t\t\taddCert: null,\n\t\t\taddNetworkRole: null,\n\t\t\taddDrive: null,\n\t\t\tforwardedChecked: false,\n\t\t\tforwardedProtoChecked: false,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet node: any;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tnode[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\ttoggleFirewall(): void {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tnode.firewall = !node.firewall;\n\t\tif (!node.firewall) {\n\t\t\tnode.network_roles = [];\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\ttoggleType(typ: string): void {\n\t\tlet node: NodeTypes.Node = this.state.node || this.props.node;\n\n\t\tlet vals = node.types;\n\n\t\tlet i = vals.indexOf(typ);\n\t\tif (i === -1) {\n\t\t\tvals.push(typ);\n\t\t} else {\n\t\t\tvals.splice(i, 1);\n\t\t}\n\n\t\tvals = vals.filter((val): boolean => {\n\t\t\treturn !!val;\n\t\t});\n\n\t\tvals.sort();\n\n\t\tthis.set('types', vals);\n\t}\n\n\tifaces(): string[] {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet zoneId = node.zone;\n\t\tif (this.state.zone) {\n\t\t\tzoneId = this.state.zone;\n\t\t}\n\n\t\tlet vxlan = false;\n\t\tfor (let zne of this.props.zones) {\n\t\t\tif (zne.id === zoneId) {\n\t\t\t\tif (zne.network_mode === 'vxlan_vlan') {\n\t\t\t\t\tvxlan = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (vxlan) {\n\t\t\treturn node.available_bridges.concat(node.available_interfaces);\n\t\t} else {\n\t\t\treturn node.available_bridges.concat(node.available_interfaces);\n\t\t}\n\t}\n\n\tsubnetLabel(subnetId: string): string {\n\t\tfor (let vpc of (this.props.node.available_vpcs || [])) {\n\t\t\tfor (let subnet of (vpc.subnets || [])) {\n\t\t\t\tif (subnet.id === subnetId) {\n\t\t\t\t\treturn vpc.name + ' - ' + subnet.name;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn subnetId;\n\t}\n\n\tonAddNetworkRole = (): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (!this.state.addNetworkRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(node.network_roles || []),\n\t\t];\n\n\t\tif (networkRoles.indexOf(this.state.addNetworkRole) === -1) {\n\t\t\tnetworkRoles.push(this.state.addNetworkRole);\n\t\t}\n\n\t\tnetworkRoles.sort();\n\t\tnode.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveNetworkRole = (networkRole: string): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(node.network_roles || []),\n\t\t];\n\n\t\tlet i = networkRoles.indexOf(networkRole);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tnetworkRoles.splice(i, 1);\n\t\tnode.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\n\t\tlet node = {\n\t\t\t...this.state.node,\n\t\t};\n\n\t\tif (!this.props.node.zone) {\n\t\t\tlet zone = this.state.zone;\n\t\t\tif (!zone && this.props.datacenters.length &&\n\t\t\t\t\tthis.props.zones.length) {\n\t\t\t\tlet datacenter = this.state.datacenter ||\n\t\t\t\t\tthis.props.datacenters[0].id;\n\t\t\t\tfor (let zne of this.props.zones) {\n\t\t\t\t\tif (zne.datacenter === datacenter) {\n\t\t\t\t\t\tzone = zne.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (zone) {\n\t\t\t\tnode.zone = zone;\n\t\t\t}\n\t\t}\n\n\t\tNodeActions.commit(node).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tnode: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\toperation(state: string): void {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tNodeActions.operation(this.props.node.id, state).then((): void => {\n\t\t\tsetTimeout((): void => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t});\n\t\t\t}, 250);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tNodeActions.remove(this.props.node.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonAddExternalIface = (): void => {\n\t\tlet node: NodeTypes.Node;\n\t\tlet availableIfaces = this.ifaces();\n\n\t\tif (!this.state.addExternalIface && !availableIfaces.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet index = this.state.addExternalIface || availableIfaces[0];\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet ifaces = [\n\t\t\t...(node.external_interfaces || []),\n\t\t];\n\n\t\tif (ifaces.indexOf(index) === -1) {\n\t\t\tifaces.push(index);\n\t\t}\n\n\t\tifaces.sort();\n\n\t\tnode.external_interfaces = ifaces;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveExternalIface = (iface: string): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet ifaces = [\n\t\t\t...(node.external_interfaces || []),\n\t\t];\n\n\t\tlet i = ifaces.indexOf(iface);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tifaces.splice(i, 1);\n\n\t\tnode.external_interfaces = ifaces;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonAddInternalIface = (): void => {\n\t\tlet node: NodeTypes.Node;\n\t\tlet availableIfaces = this.ifaces();\n\n\t\tif (!this.state.addInternalIface && !availableIfaces.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet index = this.state.addInternalIface || availableIfaces[0];\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet ifaces = [\n\t\t\t...(node.internal_interfaces || []),\n\t\t];\n\n\t\tif (ifaces.indexOf(index) === -1) {\n\t\t\tifaces.push(index);\n\t\t}\n\n\t\tifaces.sort();\n\n\t\tnode.internal_interfaces = ifaces;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveInternalIface = (iface: string): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet ifaces = [\n\t\t\t...(node.internal_interfaces || []),\n\t\t];\n\n\t\tlet i = ifaces.indexOf(iface);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tifaces.splice(i, 1);\n\n\t\tnode.internal_interfaces = ifaces;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonAddCert = (): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (!this.state.addCert && !this.props.certificates.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet certId = this.state.addCert;\n\t\tif (!certId) {\n\t\t\tfor (let certificate of this.props.certificates) {\n\t\t\t\tif (certificate.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcertId = certificate.id;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tlet certificates = [\n\t\t\t...(node.certificates || []),\n\t\t];\n\n\t\tif (certificates.indexOf(certId) === -1) {\n\t\t\tcertificates.push(certId);\n\t\t}\n\n\t\tcertificates.sort();\n\n\t\tnode.certificates = certificates;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveCert = (certId: string): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet certificates = [\n\t\t\t...(node.certificates || []),\n\t\t];\n\n\t\tlet i = certificates.indexOf(certId);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tcertificates.splice(i, 1);\n\n\t\tnode.certificates = certificates;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tnewBlock = (ipv6: boolean): NodeTypes.BlockAttachment => {\n\t\tlet defBlock = '';\n\n\t\tfor (let block of (this.props.blocks || [])) {\n\t\t\tif ((ipv6 && block.type === 'ipv6') ||\n\t\t\t\t\t(!ipv6 && block.type === 'ipv4')) {\n\t\t\t\tdefBlock = block.id;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tinterface: this.props.node.available_bridges.concat(\n\t\t\t\tthis.props.node.available_interfaces)[0],\n\t\t\tblock: defBlock,\n\t\t} as NodeTypes.BlockAttachment;\n\t}\n\n\tonNetworkMode = (mode: string): void => {\n\t\tlet node: any;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tif (mode === 'static' && (node.blocks || []).length === 0) {\n\t\t\tnode.blocks = [\n\t\t\t\tthis.newBlock(false),\n\t\t\t];\n\t\t}\n\n\t\tnode.network_mode = mode;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonNetworkMode6 = (mode: string): void => {\n\t\tlet node: any;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tif (mode === 'static' && (node.blocks6 || []).length === 0) {\n\t\t\tnode.blocks6 = [\n\t\t\t\tthis.newBlock(true),\n\t\t\t];\n\t\t}\n\n\t\tnode.network_mode6 = mode;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonAddOracleSubnet = (): void => {\n\t\tlet node: NodeTypes.Node;\n\t\tlet availabeVpcs = this.props.node.available_vpcs || [];\n\n\t\tif (!this.state.addOracleSubnet && !availabeVpcs.length &&\n\t\t\t\t!availabeVpcs[0].subnets.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet addOracleSubnet = this.state.addOracleSubnet;\n\t\tif (!addOracleSubnet) {\n\t\t\taddOracleSubnet = availabeVpcs[0].subnets[0].id;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet nodeOracleSubnets = [\n\t\t\t...(node.oracle_subnets || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < nodeOracleSubnets.length; i++) {\n\t\t\tif (nodeOracleSubnets[i] === addOracleSubnet) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (index === -1) {\n\t\t\tnodeOracleSubnets.push(addOracleSubnet);\n\t\t}\n\n\t\tnode.oracle_subnets = nodeOracleSubnets;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveOracleSubnet = (device: string): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet nodeOracleSubnets = [\n\t\t\t...(node.oracle_subnets || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < nodeOracleSubnets.length; i++) {\n\t\t\tif (nodeOracleSubnets[i] === device) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tnodeOracleSubnets.splice(index, 1);\n\t\tnode.oracle_subnets = nodeOracleSubnets;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonAddBlock = (i: number): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet blocks = [\n\t\t\t...node.blocks,\n\t\t];\n\n\t\tblocks.splice(i + 1, 0, this.newBlock(false));\n\t\tnode.blocks = blocks;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonChangeBlock(i: number, block: NodeTypes.BlockAttachment): void {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet blocks = [\n\t\t\t...node.blocks,\n\t\t];\n\n\t\tblocks[i] = block;\n\n\t\tnode.blocks = blocks;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveBlock(i: number): void {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet blocks = [\n\t\t\t...node.blocks,\n\t\t];\n\n\t\tblocks.splice(i, 1);\n\n\t\tif (!blocks.length) {\n\t\t\tblocks = [\n\t\t\t\tthis.newBlock(false),\n\t\t\t];\n\t\t}\n\n\t\tnode.blocks = blocks;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonAddBlock6 = (i: number): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet blocks = [\n\t\t\t...node.blocks6,\n\t\t];\n\n\t\tblocks.splice(i + 1, 0, this.newBlock(true));\n\t\tnode.blocks6 = blocks;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonChangeBlock6(i: number, block: NodeTypes.BlockAttachment): void {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet blocks = [\n\t\t\t...node.blocks6,\n\t\t];\n\n\t\tblocks[i] = block;\n\n\t\tnode.blocks6 = blocks;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveBlock6(i: number): void {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet blocks = [\n\t\t\t...node.blocks6,\n\t\t];\n\n\t\tblocks.splice(i, 1);\n\n\t\tif (!blocks.length) {\n\t\t\tblocks = [\n\t\t\t\tthis.newBlock(true),\n\t\t\t];\n\t\t}\n\n\t\tnode.blocks6 = blocks;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonAddDrive = (): void => {\n\t\tlet node: NodeTypes.Node;\n\t\tlet availabeDrives = this.props.node.available_drives || [];\n\n\t\tif (!this.state.addDrive && !availabeDrives.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet addDrive = this.state.addDrive;\n\t\tif (!addDrive) {\n\t\t\taddDrive = availabeDrives[0].id;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet instanceDrives = [\n\t\t\t...(node.instance_drives || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < instanceDrives.length; i++) {\n\t\t\tlet dev = instanceDrives[i];\n\t\t\tif (dev.id === addDrive) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (index === -1) {\n\t\t\tinstanceDrives.push({\n\t\t\t\tid: addDrive,\n\t\t\t});\n\t\t}\n\n\t\tnode.instance_drives = instanceDrives;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveDrive = (device: string): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet instanceDrives = [\n\t\t\t...(node.instance_drives || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < instanceDrives.length; i++) {\n\t\t\tlet dev = instanceDrives[i];\n\t\t\tif (dev.id === device) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tinstanceDrives.splice(index, 1);\n\t\tnode.instance_drives = instanceDrives;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet node: NodeTypes.Node = this.state.node || this.props.node;\n\t\tlet active = node.requests_min !== 0 || node.memory !== 0 ||\n\t\t\t\tnode.load1 !== 0 || node.load5 !== 0 || node.load15 !== 0;\n\t\tlet types = node.types || [];\n\n\t\tlet publicIps: any = this.props.node.public_ips;\n\t\tif (!publicIps || !publicIps.length) {\n\t\t\tpublicIps = 'None';\n\t\t}\n\n\t\tlet publicIps6: any = this.props.node.public_ips6;\n\t\tif (!publicIps6 || !publicIps6.length) {\n\t\t\tpublicIps6 = 'None';\n\t\t}\n\n\t\tlet resourceBars: PageInfos.Bar[] = [\n\t\t\t{\n\t\t\t\tprogressClass: 'bp3-no-stripes bp3-intent-success',\n\t\t\t\tlabel: 'Load1',\n\t\t\t\tvalue: this.props.node.load1 || 0,\n\t\t\t},\n\t\t\t{\n\t\t\t\tprogressClass: 'bp3-no-stripes bp3-intent-warning',\n\t\t\t\tlabel: 'Load5',\n\t\t\t\tvalue: this.props.node.load5 || 0,\n\t\t\t},\n\t\t\t{\n\t\t\t\tprogressClass: 'bp3-no-stripes bp3-intent-danger',\n\t\t\t\tlabel: 'Load15',\n\t\t\t\tvalue: this.props.node.load15 || 0,\n\t\t\t},\n\t\t\t{\n\t\t\t\tprogressClass: 'bp3-no-stripes bp3-intent-primary',\n\t\t\t\tlabel: 'Memory',\n\t\t\t\tvalue: this.props.node.memory || 0,\n\t\t\t},\n\t\t];\n\t\tif (this.props.node.hugepages) {\n\t\t\tresourceBars.push({\n\t\t\t\tprogressClass: 'bp3-no-stripes bp3-intent-primary',\n\t\t\t\tlabel: 'HugePages',\n\t\t\t\tvalue: this.props.node.hugepages_used || 0,\n\t\t\t\tcolor: '#7207d4',\n\t\t\t});\n\t\t}\n\n\t\tlet externalIfaces: JSX.Element[] = [];\n\t\tfor (let iface of (node.external_interfaces || [])) {\n\t\t\texternalIfaces.push(\n\t\t\t\t\n\t\t\t\t\t{iface}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveExternalIface(iface);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet internalIfaces: JSX.Element[] = [];\n\t\tfor (let iface of (node.internal_interfaces || [])) {\n\t\t\tinternalIfaces.push(\n\t\t\t\t\n\t\t\t\t\t{iface}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveInternalIface(iface);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet availableIfaces = this.ifaces();\n\t\tlet externalIfacesSelect: JSX.Element[] = [];\n\t\tfor (let iface of (availableIfaces || [])) {\n\t\t\texternalIfacesSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet internalIfacesSelect: JSX.Element[] = [];\n\t\tfor (let iface of (availableIfaces || [])) {\n\t\t\tinternalIfacesSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet oracleSubnets: JSX.Element[] = [];\n\t\tfor (let subnetId of (node.oracle_subnets || [])) {\n\t\t\toracleSubnets.push(\n\t\t\t\t\n\t\t\t\t\t{this.subnetLabel(subnetId)}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveOracleSubnet(subnetId);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet availableSubnetsSelect: JSX.Element[] = [];\n\t\tfor (let vpc of (node.available_vpcs || [])) {\n\t\t\tfor (let subnet of (vpc.subnets || [])) {\n\t\t\t\tavailableSubnetsSelect.push(\n\t\t\t\t\t,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet hostBlocksSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tfor (let blck of (this.props.blocks || [])) {\n\t\t\tif (blck.type !== 'ipv4') {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\thostBlocksSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet availableDrives: JSX.Element[] = [];\n\t\tfor (let device of (node.instance_drives || [])) {\n\t\t\tavailableDrives.push(\n\t\t\t\t\n\t\t\t\t\t{device.id}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveDrive(device.id);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet availableDrivesSelect: JSX.Element[] = [];\n\t\tfor (let device of (node.available_drives || [])) {\n\t\t\tavailableDrivesSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet certificates: JSX.Element[] = [];\n\t\tfor (let certId of (node.certificates || [])) {\n\t\t\tlet cert = CertificatesStore.certificate(certId);\n\t\t\tif (!cert) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcertificates.push(\n\t\t\t\t\n\t\t\t\t\t{cert.name}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveCert(cert.id);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet hasCertificates = false;\n\t\tlet certificatesSelect: JSX.Element[] = [];\n\t\tif (this.props.certificates.length) {\n\t\t\tfor (let certificate of this.props.certificates) {\n\t\t\t\tif (certificate.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\thasCertificates = true;\n\n\t\t\t\tcertificatesSelect.push(\n\t\t\t\t\t,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasCertificates) {\n\t\t\tcertificatesSelect = [\n\t\t\t\t,\n\t\t\t];\n\t\t}\n\n\t\tlet defaultDatacenter = '';\n\t\tlet hasDatacenters = false;\n\t\tlet datacentersSelect: JSX.Element[] = [];\n\t\tif (this.props.datacenters.length) {\n\t\t\thasDatacenters = true;\n\t\t\tdefaultDatacenter = this.props.datacenters[0].id;\n\t\t\tfor (let datacenter of this.props.datacenters) {\n\t\t\t\tdatacentersSelect.push(\n\t\t\t\t\t{datacenter.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasDatacenters) {\n\t\t\tdatacentersSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\tlet datacenter = this.state.datacenter || defaultDatacenter;\n\t\tlet hasZones = false;\n\t\tlet zonesSelect: JSX.Element[] = [];\n\t\tif (this.props.zones.length) {\n\t\t\tzonesSelect.push();\n\n\t\t\tfor (let zone of this.props.zones) {\n\t\t\t\tif (!this.props.node.zone && zone.datacenter !== datacenter) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\thasZones = true;\n\n\t\t\t\tzonesSelect.push(\n\t\t\t\t\t{zone.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasZones) {\n\t\t\tzonesSelect = [];\n\t\t}\n\n\t\tlet hasRenders = false;\n\t\tlet rendersSelect: JSX.Element[] = [];\n\t\tif (this.props.node.available_renders &&\n\t\t\tthis.props.node.available_renders.length) {\n\t\t\trendersSelect.push();\n\n\t\t\tfor (let render of this.props.node.available_renders) {\n\t\t\t\thasRenders = true;\n\n\t\t\t\trendersSelect.push(\n\t\t\t\t\t{render},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasRenders) {\n\t\t\trendersSelect = [];\n\t\t}\n\n\t\tlet networkRoles: JSX.Element[] = [];\n\t\tfor (let networkRole of (node.network_roles || [])) {\n\t\t\tnetworkRoles.push(\n\t\t\t\t\n\t\t\t\t\t{networkRole}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveNetworkRole(networkRole);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet nodeBlocks = node.blocks || [];\n\t\tlet blocks: JSX.Element[] = [];\n\t\tfor (let i = 0; i < nodeBlocks.length; i++) {\n\t\t\tlet index = i;\n\n\t\t\tblocks.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeBlock(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonAdd={(): void => {\n\t\t\t\t\t\tthis.onAddBlock(index);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveBlock(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\tlet nodeBlocks6 = node.blocks6 || [];\n\t\tlet blocks6: JSX.Element[] = [];\n\t\tfor (let i = 0; i < nodeBlocks6.length; i++) {\n\t\t\tlet index = i;\n\n\t\t\tblocks6.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeBlock6(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonAdd={(): void => {\n\t\t\t\t\t\tthis.onAddBlock6(index);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveBlock6(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleType('admin');\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleType('user');\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleType('balancer');\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleType('hypervisor');\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('admin_domain', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('user_domain', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('webauthn_domain', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('no_redirect_server', !node.no_redirect_server);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tif (this.state.changed) {\n\t\t\t\t\t\t\t\tnode = {\n\t\t\t\t\t\t\t\t\t...this.state.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnode = {\n\t\t\t\t\t\t\t\t\t...this.props.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tchanged: true,\n\t\t\t\t\t\t\t\tnode: node,\n\t\t\t\t\t\t\t\tdatacenter: val,\n\t\t\t\t\t\t\t\tzone: '',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{datacentersSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet node: NodeTypes.Node;\n\t\t\t\t\t\t\tif (this.state.changed) {\n\t\t\t\t\t\t\t\tnode = {\n\t\t\t\t\t\t\t\t\t...this.state.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnode = {\n\t\t\t\t\t\t\t\t\t...this.props.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tchanged: true,\n\t\t\t\t\t\t\t\tnode: node,\n\t\t\t\t\t\t\t\tzone: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{zonesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onNetworkMode(val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onNetworkMode6(val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tExternal Interfaces\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{externalIfaces}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddExternalIface: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddExternalIface}\n\t\t\t\t\t>\n\t\t\t\t\t\t{externalIfacesSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tInternal Interfaces\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{internalIfaces}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddInternalIface: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddInternalIface}\n\t\t\t\t\t>\n\t\t\t\t\t\t{internalIfacesSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tExternal IPv4 Block Attachments\n\t\t\t\t\t\t{blocks}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tExternal IPv6 Block Attachments\n\t\t\t\t\t\t{blocks6}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tOracle Cloud Subnets\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{oracleSubnets}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddOracleSubnet: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddOracleSubnet}\n\t\t\t\t\t>\n\t\t\t\t\t\t{availableSubnetsSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('host_block', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{hostBlocksSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('host_nat', !node.host_nat);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('oracle_host_route', !node.oracle_host_route);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('oracle_user', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('oracle_public_key', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('default_no_public_address',\n\t\t\t\t\t\t\t\t!node.default_no_public_address);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('default_no_public_address6',\n\t\t\t\t\t\t\t\t!node.default_no_public_address6);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('jumbo_frames', !node.jumbo_frames);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('jumbo_frames_internal', !node.jumbo_frames_internal);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('iscsi', !node.iscsi);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('pci_passthrough', !node.pci_passthrough);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('usb_passthrough', !node.usb_passthrough);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('hugepages', !node.hugepages);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('hugepages_size', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={node.hugepages_size}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleFirewall();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('gui', !node.gui);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('gui', !node.gui);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('gui_mode', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('gui_user', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('hypervisor', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('vga', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('vga_render', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{rendersSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tInstance Passthrough Disks\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{availableDrives}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddDrive: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddDrive}\n\t\t\t\t\t>\n\t\t\t\t\t\t{availableDrivesSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddNetworkRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddNetworkRole}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tCertificates\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{certificates}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddCert: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddCert}\n\t\t\t\t\t>\n\t\t\t\t\t\t{certificatesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet nde: NodeTypes.Node;\n\n\t\t\t\t\t\t\tif (this.state.changed) {\n\t\t\t\t\t\t\t\tnde = {\n\t\t\t\t\t\t\t\t\t...this.state.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnde = {\n\t\t\t\t\t\t\t\t\t...this.props.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tnde.forwarded_for_header = val;\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tchanged: true,\n\t\t\t\t\t\t\t\tforwardedChecked: state,\n\t\t\t\t\t\t\t\tnode: nde,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet nde: NodeTypes.Node;\n\n\t\t\t\t\t\t\tif (this.state.changed) {\n\t\t\t\t\t\t\t\tnde = {\n\t\t\t\t\t\t\t\t\t...this.state.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnde = {\n\t\t\t\t\t\t\t\t\t...this.props.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tnde.forwarded_proto_header = val;\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tchanged: true,\n\t\t\t\t\t\t\t\tforwardedProtoChecked: state,\n\t\t\t\t\t\t\t\tnode: nde,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tforwardedChecked: false,\n\t\t\t\t\t\tforwardedProtoChecked: false,\n\t\t\t\t\t\tnode: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport * as BlockTypes from '../types/BlockTypes';\nimport NodeDetailed from './NodeDetailed';\n\ninterface Props {\n\tnode: NodeTypes.NodeRo;\n\tcertificates: CertificateTypes.CertificatesRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tzones: ZoneTypes.ZonesRo;\n\tblocks: BlockTypes.BlocksRo;\n\tselected: boolean;\n\topen: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n};\n\nexport default class Node extends React.Component {\n\trender(): JSX.Element {\n\t\tlet node = this.props.node;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t;\n\t\t}\n\n\t\tlet active = node.requests_min !== 0 || node.memory !== 0 ||\n\t\t\tnode.load1 !== 0 || node.load5 !== 0 || node.load15 !== 0;\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\t\tif (!active) {\n\t\t\tcardStyle.opacity = 0.6;\n\t\t}\n\n\t\tlet memoryStyle: React.CSSProperties = {\n\t\t\twidth: (node.memory || 0) + '%',\n\t\t};\n\t\tlet hugepagesStyle: React.CSSProperties = {\n\t\t\twidth: (node.hugepages_used || 0) + '%',\n\t\t\tbackgroundColor: '#7207d4',\n\t\t};\n\t\tlet load1Style: React.CSSProperties = {\n\t\t\twidth: (node.load1 || 0) + '%',\n\t\t};\n\t\tlet load5Style: React.CSSProperties = {\n\t\t\twidth: (node.load5 || 0) + '%',\n\t\t};\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{node.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{node.requests_min + '/min'}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{MiscUtils.formatDateShortTime(node.timestamp) || 'Inactive'}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as NodeTypes from '../types/NodeTypes';\nimport SearchInput from './SearchInput';\nimport SwitchNull from './SwitchNull';\nimport * as ZoneTypes from \"../types/ZoneTypes\";\n\ninterface Props {\n\tfilter: NodeTypes.Filter;\n\tonFilter: (filter: NodeTypes.Filter) => void;\n\tzones: ZoneTypes.ZonesRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class NodesFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet zonesSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.zones && this.props.zones.length) {\n\t\t\tfor (let zone of this.props.zones) {\n\t\t\t\tzonesSelect.push(\n\t\t\t\t\t{zone.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.network_role = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.network_role;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.zone;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.zone = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{zonesSelect}\n\t\t\t\t\n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (filter.admin === undefined) {\n\t\t\t\t\t\tfilter.admin = true;\n\t\t\t\t\t} else if (filter.admin === true) {\n\t\t\t\t\t\tfilter.admin = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.admin;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (filter.user === undefined) {\n\t\t\t\t\t\tfilter.user = true;\n\t\t\t\t\t} else if (filter.user === true) {\n\t\t\t\t\t\tfilter.user = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.user;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (filter.hypervisor === undefined) {\n\t\t\t\t\t\tfilter.hypervisor = true;\n\t\t\t\t\t} else if (filter.hypervisor === true) {\n\t\t\t\t\t\tfilter.hypervisor = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.hypervisor;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport NodesStore from '../stores/NodesStore';\nimport * as NodeActions from '../actions/NodeActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class NodesPages extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: NodesStore.page,\n\t\t\tpageCount: NodesStore.pageCount,\n\t\t\tpages: NodesStore.pages,\n\t\t\tcount: NodesStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tNodesStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tNodesStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: NodesStore.page,\n\t\t\tpageCount: NodesStore.pageCount,\n\t\t\tpages: NodesStore.pages,\n\t\t\tcount: NodesStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tNodeActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tNodeActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tNodeActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tNodeActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tNodeActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as DatacenterTypes from \"../types/DatacenterTypes\";\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport * as BlockTypes from '../types/BlockTypes';\nimport NodesStore from '../stores/NodesStore';\nimport CertificatesStore from '../stores/CertificatesStore';\nimport DatacentersStore from '../stores/DatacentersStore';\nimport ZonesStore from '../stores/ZonesStore';\nimport BlocksStore from '../stores/BlocksStore';\nimport * as NodeActions from '../actions/NodeActions';\nimport * as CertificateActions from '../actions/CertificateActions';\nimport * as DatacenterActions from '../actions/DatacenterActions';\nimport * as ZoneActions from '../actions/ZoneActions';\nimport * as BlockActions from '../actions/BlockActions';\nimport Node from './Node';\nimport NodesFilter from './NodesFilter';\nimport NodesPage from './NodesPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tnodes: NodeTypes.NodesRo;\n\tfilter: NodeTypes.Filter;\n\tcertificates: CertificateTypes.CertificatesRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tzones: ZoneTypes.ZonesRo;\n\tblocks: BlockTypes.BlocksRo;\n\tselected: Selected;\n\topened: Opened;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Nodes extends React.Component<{}, State> {\n\tinterval: NodeJS.Timer;\n\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tnodes: NodesStore.nodes,\n\t\t\tfilter: NodesStore.filter,\n\t\t\tcertificates: CertificatesStore.certificates,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tzones: ZonesStore.zones,\n\t\t\tblocks: BlocksStore.blocks,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tNodesStore.addChangeListener(this.onChange);\n\t\tCertificatesStore.addChangeListener(this.onChange);\n\t\tDatacentersStore.addChangeListener(this.onChange);\n\t\tZonesStore.addChangeListener(this.onChange);\n\t\tBlocksStore.addChangeListener(this.onChange);\n\t\tNodeActions.sync();\n\t\tCertificateActions.sync();\n\t\tDatacenterActions.sync();\n\t\tZoneActions.sync();\n\t\tBlockActions.sync();\n\n\t\tthis.interval = setInterval(() => {\n\t\t\tNodeActions.sync(true);\n\t\t}, 1000);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tNodesStore.removeChangeListener(this.onChange);\n\t\tCertificatesStore.removeChangeListener(this.onChange);\n\t\tDatacentersStore.removeChangeListener(this.onChange);\n\t\tZonesStore.removeChangeListener(this.onChange);\n\t\tBlocksStore.removeChangeListener(this.onChange);\n\t\tclearInterval(this.interval);\n\t}\n\n\tonChange = (): void => {\n\t\tlet nodes = NodesStore.nodes;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tnodes.forEach((node: NodeTypes.Node): void => {\n\t\t\tif (curSelected[node.id]) {\n\t\t\t\tselected[node.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[node.id]) {\n\t\t\t\topened[node.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tnodes: nodes,\n\t\t\tfilter: NodesStore.filter,\n\t\t\tcertificates: CertificatesStore.certificates,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tzones: ZonesStore.zones,\n\t\t\tblocks: BlocksStore.blocks,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet nodesDom: JSX.Element[] = [];\n\n\t\tthis.state.nodes.forEach((node: NodeTypes.NodeRo): void => {\n\t\t\tnodesDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet nodes = this.state.nodes;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < nodes.length; i++) {\n\t\t\t\t\t\t\tlet usr = nodes[i];\n\n\t\t\t\t\t\t\tif (usr.id === node.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[nodes[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: node.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[node.id]) {\n\t\t\t\t\t\tdelete selected[node.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[node.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: node.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[node.id]) {\n\t\t\t\t\t\tdelete opened[node.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[node.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Nodes

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tNodeActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tNodeActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tNodeActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\tzones={this.state.zones}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{nodesDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nexport const SYNC = 'policy.sync';\nexport const CHANGE = 'policy.change';\n\nexport interface Rule {\n\ttype?: string;\n\tdisable?: boolean;\n\tvalues?: string[];\n}\n\nexport interface Policy {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\tdisabled?: boolean;\n\troles?: string[];\n\trules?: {[key: string]: Rule};\n\tadmin_secondary?: string;\n\tuser_secondary?: string;\n\tadmin_device_secondary?: boolean;\n\tuser_device_secondary?: boolean;\n}\n\nexport type Policies = Policy[];\n\nexport type PolicyRo = Readonly;\nexport type PoliciesRo = ReadonlyArray;\n\nexport interface PolicyDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tpolicy?: Policy;\n\t\tpolicies?: Policies;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as PolicyTypes from '../types/PolicyTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass PoliciesStore extends EventEmitter {\n\t_policies: PolicyTypes.PoliciesRo = Object.freeze([]);\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._policies = Object.freeze([]);\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget policies(): PolicyTypes.PoliciesRo {\n\t\treturn this._policies;\n\t}\n\n\tget policiesM(): PolicyTypes.Policies {\n\t\tlet policies: PolicyTypes.Policies = [];\n\t\tthis._policies.forEach((\n\t\t\t\tpolicy: PolicyTypes.PolicyRo): void => {\n\t\t\tpolicies.push({\n\t\t\t\t...policy,\n\t\t\t});\n\t\t});\n\t\treturn policies;\n\t}\n\n\tpolicy(id: string): PolicyTypes.PolicyRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._policies[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(policies: PolicyTypes.Policy[]): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < policies.length; i++) {\n\t\t\tpolicies[i] = Object.freeze(policies[i]);\n\t\t\tthis._map[policies[i].id] = i;\n\t\t}\n\n\t\tthis._policies = Object.freeze(policies);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: PolicyTypes.PolicyDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase PolicyTypes.SYNC:\n\t\t\t\tthis._sync(action.data.policies);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new PoliciesStore();\n","/// \nexport const SYNC = 'settings.sync';\nexport const CHANGE = 'settings.change';\n\nexport interface Provider {\n\tid?: string;\n\ttype?: string;\n\tlabel?: string;\n\tdefault_roles?: string[];\n\tauto_create?: boolean;\n\trole_management?: string;\n}\n\nexport interface AzureProvider extends Provider {\n\ttenant?: string;\n\tclient_id?: string;\n\tclient_secret?: string;\n}\n\nexport interface GoogleProvider extends Provider {\n\tdomain?: string;\n\tgoogle_key?: string;\n\tgoogle_email?: string;\n}\n\nexport interface SamlProvider extends Provider {\n\tissuer_url?: string;\n\tsaml_url?: string;\n\tsaml_cert?: string;\n}\n\nexport interface JumpCloudProvider extends Provider {\n\tissuer_url?: string;\n\tsaml_url?: string;\n\tsaml_cert?: string;\n\tjumpcloud_app_id?: string;\n\tjumpcloud_secret?: string;\n}\n\nexport type ProviderAny = Provider & AzureProvider & GoogleProvider &\n\tSamlProvider & JumpCloudProvider;\nexport type Providers = ProviderAny[];\n\nexport interface SecondaryProvider {\n\tid?: string;\n\ttype?: string;\n\tlabel?: string;\n\tname?: string;\n}\n\nexport interface DuoProvider extends SecondaryProvider {\n\tduo_hostname?: string;\n\tduo_key?: string;\n\tduo_secret?: string;\n\tpush_factor?: boolean;\n\tphone_factor?: boolean;\n\tpasscode_factor?: boolean;\n\tsms_factor?: boolean;\n}\n\nexport interface OneLoginProvider extends SecondaryProvider {\n\tone_login_region?: string;\n\tone_login_id?: string;\n\tone_login_secret?: string;\n\tpush_factor?: boolean;\n\tpasscode_factor?: boolean;\n}\n\nexport interface OktaProvider extends SecondaryProvider {\n\tokta_domain?: string;\n\tokta_token?: string;\n\tpush_factor?: boolean;\n\tpasscode_factor?: boolean;\n}\n\nexport type SecondaryProviderAny = SecondaryProvider & DuoProvider &\n\tOneLoginProvider & OktaProvider;\nexport type SecondaryProviders = SecondaryProviderAny[];\n\nexport interface Settings {\n\tauth_providers: Providers;\n\tauth_secondary_providers: SecondaryProviders;\n\tauth_admin_expire: number;\n\tauth_admin_max_duration: number;\n\tauth_user_expire: number;\n\tauth_user_max_duration: number;\n}\n\nexport type SettingsRo = Readonly;\n\nexport interface SettingsDispatch {\n\ttype: string;\n\tdata?: Settings;\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as SettingsTypes from '../types/SettingsTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass SettingsStore extends EventEmitter {\n\t_settings: SettingsTypes.SettingsRo;\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._settings = undefined;\n\t\tthis.emitChange();\n\t}\n\n\tget settings(): SettingsTypes.SettingsRo {\n\t\treturn this._settings;\n\t}\n\n\tget settingsM(): SettingsTypes.Settings {\n\t\tif (this._settings) {\n\t\t\treturn {\n\t\t\t\t...this._settings,\n\t\t\t};\n\t\t}\n\t\treturn undefined;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(settings: SettingsTypes.Settings): void {\n\t\tthis._settings = Object.freeze(settings);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: SettingsTypes.SettingsDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase SettingsTypes.SYNC:\n\t\t\t\tthis._sync(action.data);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new SettingsStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as PolicyTypes from '../types/PolicyTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as Constants from \"../Constants\";\n\nlet syncId: string;\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/policy')\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load policies');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: PolicyTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tpolicies: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function commit(cert: PolicyTypes.Policy): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/policy/' + cert.id)\n\t\t\t.send(cert)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save policy');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(cert: PolicyTypes.Policy): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/policy')\n\t\t\t.send(cert)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create policy');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(certId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/policy/' + certId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete policies');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: PolicyTypes.PolicyDispatch) => {\n\tswitch (action.type) {\n\t\tcase PolicyTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\tsync();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as SettingsTypes from '../types/SettingsTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as Constants from \"../Constants\";\n\nlet syncId: string;\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/settings')\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to sync builds');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: SettingsTypes.SYNC,\n\t\t\t\t\tdata: res.body,\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function commit(\n\t\tsettings: SettingsTypes.Settings): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/settings')\n\t\t\t.send(settings)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to commit settings');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: SettingsTypes.SYNC,\n\t\t\t\t\tdata: res.body,\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: SettingsTypes.SettingsDispatch) => {\n\tswitch (action.type) {\n\t\tcase SettingsTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\tsync();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as PolicyTypes from '../types/PolicyTypes';\nimport * as Constants from '../Constants';\nimport PageSwitch from './PageSwitch';\nimport PageInputButton from './PageInputButton';\nimport PageSelectButton from './PageSelectButton';\nimport Help from './Help';\n\ninterface Props {\n\trule: PolicyTypes.Rule;\n\tonChange: (state: PolicyTypes.Rule) => void;\n}\n\ninterface State {\n\taddValue: string;\n}\n\nconst css = {\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class PolicyRule extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\taddValue: '',\n\t\t};\n\t}\n\n\tclone(): PolicyTypes.Rule {\n\t\treturn {\n\t\t\t...this.props.rule,\n\t\t};\n\t}\n\n\tonAddValue = (value: string): void => {\n\t\tif (!value) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet rule = this.clone();\n\n\t\tlet values = [\n\t\t\t...rule.values,\n\t\t];\n\n\t\tif (values.indexOf(value) === -1) {\n\t\t\tvalues.push(value);\n\t\t}\n\n\t\tvalues.sort();\n\n\t\trule.values = values;\n\n\t\tthis.props.onChange(rule);\n\t}\n\n\tonRemoveValue(value: string): void {\n\t\tlet rule = this.clone();\n\n\t\tlet values = [\n\t\t\t...rule.values,\n\t\t];\n\n\t\tlet i = values.indexOf(value);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tvalues.splice(i, 1);\n\n\t\trule.values = values;\n\n\t\tthis.props.onChange(rule);\n\t}\n\n\trender(): JSX.Element {\n\t\tlet rule = this.props.rule;\n\t\tlet defaultOption: string;\n\n\t\tlet label: string;\n\t\tlet selectLabel: string;\n\t\tlet selectPlaceholder: string;\n\t\tlet options: {[key: string]: string};\n\t\tswitch (this.props.rule.type) {\n\t\t\tcase 'operating_system':\n\t\t\t\tlabel = 'Permitted Operating Systems';\n\t\t\t\tselectLabel = 'Operating system policies';\n\t\t\t\toptions = Constants.operatingSystems;\n\t\t\t\tbreak;\n\t\t\tcase 'browser':\n\t\t\t\tlabel = 'Permitted Browsers';\n\t\t\t\tselectLabel = 'Browser policies';\n\t\t\t\toptions = Constants.browsers;\n\t\t\t\tbreak;\n\t\t\tcase 'location':\n\t\t\t\tlabel = 'Permitted Locations';\n\t\t\t\tselectLabel = 'Location policies';\n\t\t\t\toptions = Constants.locations;\n\t\t\t\tbreak;\n\t\t\tcase 'whitelist_networks':\n\t\t\t\tlabel = 'Permitted Networks';\n\t\t\t\tselectLabel = 'Permitted network policies';\n\t\t\t\tselectPlaceholder = 'Add network';\n\t\t\t\tbreak;\n\t\t\tcase 'blacklist_networks':\n\t\t\t\tlabel = 'Blocked Networks';\n\t\t\t\tselectLabel = 'Blocked network policies';\n\t\t\t\tselectPlaceholder = 'Add network';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet optionsSelect: JSX.Element[] = [];\n\t\tfor (let option in options) {\n\t\t\tif (!options.hasOwnProperty(option)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!defaultOption) {\n\t\t\t\tdefaultOption = option;\n\t\t\t}\n\n\t\t\toptionsSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet values: JSX.Element[] = [];\n\t\tfor (let value of rule.values || []) {\n\t\t\tvalues.push(\n\t\t\t\t\n\t\t\t\t\t{options ? options[value] || value : value}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveValue(value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet inputElem: JSX.Element;\n\t\tif (options) {\n\t\t\tinputElem = {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\taddValue: val,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSubmit={(): void => {\n\t\t\t\t\tthis.onAddValue(this.state.addValue || defaultOption);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{optionsSelect}\n\t\t\t;\n\t\t} else {\n\t\t\tinputElem = {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\taddValue: val,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSubmit={(): void => {\n\t\t\t\t\tthis.onAddValue(this.state.addValue);\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\taddValue: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>;\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.values = rule.values == null ? [] : null;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.disable = !state.disable;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t\t\t{label}\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t{values}\n\t\t\t\t
    \n\t\t\t\n\t\t\t{inputElem}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as PolicyTypes from '../types/PolicyTypes';\nimport * as SettingsTypes from '../types/SettingsTypes';\nimport * as PolicyActions from '../actions/PolicyActions';\nimport PolicyRule from './PolicyRule';\nimport PageInput from './PageInput';\nimport PageSwitch from './PageSwitch';\nimport PageSelect from './PageSelect';\nimport PageInputButton from './PageInputButton';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport * as Alert from '../Alert';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\tpolicy: PolicyTypes.PolicyRo;\n\tproviders: SettingsTypes.SecondaryProviders;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tpolicy: PolicyTypes.Policy;\n\taddRole: string;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class Policy extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tpolicy: null,\n\t\t\taddRole: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet policy: any;\n\n\t\tif (this.state.changed) {\n\t\t\tpolicy = {\n\t\t\t\t...this.state.policy,\n\t\t\t};\n\t\t} else {\n\t\t\tpolicy = {\n\t\t\t\t...this.props.policy,\n\t\t\t};\n\t\t}\n\n\t\tpolicy[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tpolicy: policy,\n\t\t});\n\t}\n\n\tsetRule(name: string, rule: PolicyTypes.Rule): void {\n\t\tlet policy: any;\n\n\t\tif (this.state.changed) {\n\t\t\tpolicy = {\n\t\t\t\t...this.state.policy,\n\t\t\t};\n\t\t} else {\n\t\t\tpolicy = {\n\t\t\t\t...this.props.policy,\n\t\t\t};\n\t\t}\n\n\t\tlet rules = {\n\t\t\t...(policy.rules || {}),\n\t\t};\n\n\t\tif (rule.values == null) {\n\t\t\tdelete rules[name];\n\t\t} else {\n\t\t\trules[name] = rule;\n\t\t}\n\n\t\tpolicy.rules = rules;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tpolicy: policy,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tPolicyActions.commit(this.state.policy).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tpolicy: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tPolicyActions.remove(this.props.policy.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonAddRole = (): void => {\n\t\tlet policy: PolicyTypes.Policy;\n\n\t\tif (this.state.changed) {\n\t\t\tpolicy = {\n\t\t\t\t...this.state.policy,\n\t\t\t};\n\t\t} else {\n\t\t\tpolicy = {\n\t\t\t\t...this.props.policy,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...(policy.roles || []),\n\t\t];\n\n\t\tif (!this.state.addRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (roles.indexOf(this.state.addRole) === -1) {\n\t\t\troles.push(this.state.addRole);\n\t\t}\n\n\t\troles.sort();\n\n\t\tpolicy.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\tpolicy: policy,\n\t\t});\n\t}\n\n\tonRemoveRole(role: string): void {\n\t\tlet policy: PolicyTypes.Policy;\n\n\t\tif (this.state.changed) {\n\t\t\tpolicy = {\n\t\t\t\t...this.state.policy,\n\t\t\t};\n\t\t} else {\n\t\t\tpolicy = {\n\t\t\t\t...this.props.policy,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...(policy.roles || []),\n\t\t];\n\n\t\tlet i = roles.indexOf(role);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\troles.splice(i, 1);\n\n\t\tpolicy.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\tpolicy: policy,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet policy: PolicyTypes.Policy = this.state.policy ||\n\t\t\tthis.props.policy;\n\n\t\tlet roles: JSX.Element[] = [];\n\t\tfor (let role of (policy.roles || [])) {\n\t\t\troles.push(\n\t\t\t\t\n\t\t\t\t\t{role}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveRole(role);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet rules = policy.rules || {};\n\t\tlet operatingSystem = rules.operating_system || {\n\t\t\ttype: 'operating_system',\n\t\t};\n\t\tlet browser = rules.browser || {\n\t\t\ttype: 'browser',\n\t\t};\n\t\tlet location = rules.location || {\n\t\t\ttype: 'location',\n\t\t};\n\t\tlet whitelistNetworks = rules.whitelist_networks || {\n\t\t\ttype: 'whitelist_networks',\n\t\t};\n\t\tlet blacklistNetworks = rules.blacklist_networks || {\n\t\t\ttype: 'blacklist_networks',\n\t\t};\n\n\t\tlet providerIds: string[] = [];\n\t\tlet adminProviders: JSX.Element[] = [];\n\t\tlet userProviders: JSX.Element[] = [];\n\t\tif (this.props.providers.length) {\n\t\t\tfor (let provider of this.props.providers) {\n\t\t\t\tproviderIds.push(provider.id);\n\t\t\t\tadminProviders.push({provider.name});\n\t\t\t\tuserProviders.push({provider.name});\n\t\t\t}\n\t\t} else {\n\t\t\tadminProviders.push(None);\n\t\t\tuserProviders.push(None);\n\t\t}\n\t\tlet adminProvider = policy.admin_secondary &&\n\t\t\tproviderIds.indexOf(policy.admin_secondary) !== -1;\n\t\tlet userProvider = policy.user_secondary &&\n\t\t\tproviderIds.indexOf(policy.user_secondary) !== -1;\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddRole}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tif (adminProvider) {\n\t\t\t\t\t\t\t\tthis.set('admin_secondary', null);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (this.props.providers.length === 0) {\n\t\t\t\t\t\t\t\t\tAlert.warning(\n\t\t\t\t\t\t\t\t\t\t'No two-factor authentication providers exist');\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.set('admin_secondary', this.props.providers[0].id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('admin_secondary', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{adminProviders}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tif (userProvider) {\n\t\t\t\t\t\t\t\tthis.set('user_secondary', null);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (this.props.providers.length === 0) {\n\t\t\t\t\t\t\t\t\tAlert.warning(\n\t\t\t\t\t\t\t\t\t\t'No two-factor authentication providers exist');\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.set('user_secondary', this.props.providers[0].id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('user_secondary', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{userProviders}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setRule('whitelist_networks', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setRule('blacklist_networks', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('disabled', !policy.disabled)\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setRule('location', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setRule('operating_system', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setRule('browser', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('admin_device_secondary',\n\t\t\t\t\t\t\t\t!policy.admin_device_secondary)\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('user_device_secondary',\n\t\t\t\t\t\t\t\t!policy.user_device_secondary)\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tpolicy: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as PolicyTypes from '../types/PolicyTypes';\nimport * as SettingsTypes from '../types/SettingsTypes';\nimport PoliciesStore from '../stores/PoliciesStore';\nimport SettingsStore from '../stores/SettingsStore';\nimport * as PolicyActions from '../actions/PolicyActions';\nimport * as SettingsActions from '../actions/SettingsActions';\nimport NonState from './NonState';\nimport Policy from './Policy';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface State {\n\tpolicies: PolicyTypes.PoliciesRo;\n\tproviders: SettingsTypes.SecondaryProviders;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Policies extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpolicies: PoliciesStore.policies,\n\t\t\tproviders: SettingsStore.settings ?\n\t\t\t\tSettingsStore.settings.auth_secondary_providers : [],\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tPoliciesStore.addChangeListener(this.onChange);\n\t\tSettingsStore.addChangeListener(this.onChange);\n\t\tPolicyActions.sync();\n\t\tSettingsActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tPoliciesStore.removeChangeListener(this.onChange);\n\t\tSettingsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpolicies: PoliciesStore.policies,\n\t\t\tproviders: SettingsStore.settings ?\n\t\t\t\tSettingsStore.settings.auth_secondary_providers : [],\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet policiesDom: JSX.Element[] = [];\n\n\t\tthis.state.policies.forEach((policy: PolicyTypes.PolicyRo): void => {\n\t\t\tpoliciesDom.push();\n\t\t});\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Policies

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tPolicyActions.create(null).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{policiesDom}\n\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n}\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as GlobalTypes from '../types/GlobalTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/organization')\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load organizations');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: OrganizationTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\torganizations: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function commit(org: OrganizationTypes.Organization): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/organization/' + org.id)\n\t\t\t.send(org)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save organization');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(org: OrganizationTypes.Organization): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/organization')\n\t\t\t.send(org)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create organization');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(orgId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/organization/' + orgId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete organizations');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function setCurrent(current: string): void {\n\tDispatcher.dispatch({\n\t\ttype: GlobalTypes.RESET,\n\t\tdata: {\n\t\t\tcurrent: current,\n\t\t},\n\t});\n\tDispatcher.dispatch({\n\t\ttype: GlobalTypes.RELOAD,\n\t\tdata: {\n\t\t\tcurrent: current,\n\t\t},\n\t});\n}\n\nEventDispatcher.register((action: OrganizationTypes.OrganizationDispatch) => {\n\tswitch (action.type) {\n\t\tcase OrganizationTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\n\ninterface Props {\n\tdomain: string;\n\tdisabled: boolean;\n\tonChange: (state: string) => void;\n\tonRemove: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tdomain: {\n\t\twidth: '100%',\n\t\tborderRadius: '0 3px 3px 0',\n\t} as React.CSSProperties,\n\tdomainBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class CertificateDomain extends React.Component {\n\trender(): JSX.Element {\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onChange(evt.target.value);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as CertificateActions from '../actions/CertificateActions';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport CertificateDomain from './CertificateDomain';\nimport PageInput from './PageInput';\nimport PageSelect from './PageSelect';\nimport PageInfo from './PageInfo';\nimport PageTextArea from './PageTextArea';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport * as Constants from \"../Constants\";\n\ninterface Props {\n\tcertificate: CertificateTypes.CertificateRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tcertificate: CertificateTypes.Certificate;\n\taddDomain: string;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\tdomain: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n};\n\nexport default class Certificate extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tcertificate: null,\n\t\t\taddDomain: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet certificate: any;\n\n\t\tif (this.state.changed) {\n\t\t\tcertificate = {\n\t\t\t\t...this.state.certificate,\n\t\t\t};\n\t\t} else {\n\t\t\tcertificate = {\n\t\t\t\t...this.props.certificate,\n\t\t\t};\n\t\t}\n\n\t\tcertificate[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tcertificate: certificate,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tCertificateActions.commit(this.state.certificate).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tcertificate: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tCertificateActions.remove(this.props.certificate.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonAddDomain = (): void => {\n\t\tlet cert: CertificateTypes.Certificate;\n\n\t\tif (this.state.changed) {\n\t\t\tcert = {\n\t\t\t\t...this.state.certificate,\n\t\t\t};\n\t\t} else {\n\t\t\tcert = {\n\t\t\t\t...this.props.certificate,\n\t\t\t};\n\t\t}\n\n\t\tlet acmeDomains = [\n\t\t\t...cert.acme_domains,\n\t\t\t'',\n\t\t];\n\n\t\tcert.acme_domains = acmeDomains;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddDomain: '',\n\t\t\tcertificate: cert,\n\t\t});\n\t}\n\n\tonChangeDomain(i: number, state: string): void {\n\t\tlet cert: CertificateTypes.Certificate;\n\n\t\tif (this.state.changed) {\n\t\t\tcert = {\n\t\t\t\t...this.state.certificate,\n\t\t\t};\n\t\t} else {\n\t\t\tcert = {\n\t\t\t\t...this.props.certificate,\n\t\t\t};\n\t\t}\n\n\t\tlet acmeDomains = [\n\t\t\t...cert.acme_domains,\n\t\t];\n\n\t\tacmeDomains[i] = state;\n\n\t\tcert.acme_domains = acmeDomains;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tcertificate: cert,\n\t\t});\n\t}\n\n\tonRemoveDomain(i: number): void {\n\t\tlet cert: CertificateTypes.Certificate;\n\n\t\tif (this.state.changed) {\n\t\t\tcert = {\n\t\t\t\t...this.state.certificate,\n\t\t\t};\n\t\t} else {\n\t\t\tcert = {\n\t\t\t\t...this.props.certificate,\n\t\t\t};\n\t\t}\n\n\t\tlet acmeDomains = [\n\t\t\t...cert.acme_domains,\n\t\t];\n\n\t\tacmeDomains.splice(i, 1);\n\n\t\tcert.acme_domains = acmeDomains;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddDomain: '',\n\t\t\tcertificate: cert,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet cert: CertificateTypes.Certificate = this.state.certificate ||\n\t\t\tthis.props.certificate;\n\n\t\tlet info: CertificateTypes.Info = this.props.certificate.info || {};\n\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\torganizationsSelect.push(\n\t\t\t,\n\t\t);\n\t\tif (this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet domains: JSX.Element[] = [];\n\t\tfor (let i = 0; i < cert.acme_domains.length; i++) {\n\t\t\tlet index = i;\n\n\t\t\tdomains.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeDomain(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveDomain(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('key', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('certificate', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tLetsEncrypt Domains\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tAdd Domain\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('type', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('organization', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tcertificate: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport CertificatesStore from '../stores/CertificatesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as CertificateActions from '../actions/CertificateActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport NonState from './NonState';\nimport Certificate from './Certificate';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface State {\n\tcertificates: CertificateTypes.CertificatesRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\tnoCerts: {\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n};\n\nexport default class Certificates extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tcertificates: CertificatesStore.certificates,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tCertificatesStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tCertificateActions.sync();\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tCertificatesStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tcertificates: CertificatesStore.certificates,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet certsDom: JSX.Element[] = [];\n\n\t\tthis.state.certificates.forEach((\n\t\t\t\tcert: CertificateTypes.CertificateRo): void => {\n\t\t\tcertsDom.push();\n\t\t});\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Certificates

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tCertificateActions.create(null).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{certsDom}\n\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport PageInputButton from './PageInputButton';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\torganization: OrganizationTypes.OrganizationRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\taddRole: string;\n\torganization: OrganizationTypes.Organization;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n};\n\nexport default class Organization extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\torganization: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet organization: any;\n\n\t\tif (this.state.changed) {\n\t\t\torganization = {\n\t\t\t\t...this.state.organization,\n\t\t\t};\n\t\t} else {\n\t\t\torganization = {\n\t\t\t\t...this.props.organization,\n\t\t\t};\n\t\t}\n\n\t\torganization[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\torganization: organization,\n\t\t});\n\t}\n\n\tonAddRole = (): void => {\n\t\tlet organization: OrganizationTypes.Organization;\n\n\t\tif (this.state.changed) {\n\t\t\torganization = {\n\t\t\t\t...this.state.organization,\n\t\t\t};\n\t\t} else {\n\t\t\torganization = {\n\t\t\t\t...this.props.organization,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...organization.roles,\n\t\t];\n\n\t\tif (!this.state.addRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (roles.indexOf(this.state.addRole) === -1) {\n\t\t\troles.push(this.state.addRole);\n\t\t}\n\n\t\troles.sort();\n\n\t\torganization.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\torganization: organization,\n\t\t});\n\t}\n\n\tonRemoveRole(role: string): void {\n\t\tlet organization: OrganizationTypes.Organization;\n\n\t\tif (this.state.changed) {\n\t\t\torganization = {\n\t\t\t\t...this.state.organization,\n\t\t\t};\n\t\t} else {\n\t\t\torganization = {\n\t\t\t\t...this.props.organization,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...organization.roles,\n\t\t];\n\n\t\tlet i = roles.indexOf(role);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\troles.splice(i, 1);\n\n\t\torganization.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\torganization: organization,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tOrganizationActions.commit(this.state.organization).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\torganization: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tOrganizationActions.remove(this.props.organization.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet org: OrganizationTypes.Organization = this.state.organization ||\n\t\t\tthis.props.organization;\n\n\t\tlet roles: JSX.Element[] = [];\n\t\tfor (let role of (org.roles || [])) {\n\t\t\troles.push(\n\t\t\t\t\n\t\t\t\t\t{role}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveRole(role);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddRole}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\torganization: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport NonState from './NonState';\nimport Organization from './Organization';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface State {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\tnoCerts: {\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n};\n\nexport default class Organizations extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet orgsDom: JSX.Element[] = [];\n\n\t\tthis.state.organizations.forEach((\n\t\t\t\torg: OrganizationTypes.OrganizationRo): void => {\n\t\t\torgsDom.push();\n\t\t});\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Organizations

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tOrganizationActions.create(null).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{orgsDom}\n\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n}\n","/// \nexport const SYNC = 'storage.sync';\nexport const CHANGE = 'storage.change';\n\nexport interface Storage {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\ttype?: string;\n\tendpoint?: string;\n\tbucket?: string;\n\taccess_key?: string;\n\tsecret_key?: string;\n\tinsecure?: boolean;\n}\n\nexport type Storages = Storage[];\n\nexport type StorageRo = Readonly;\nexport type StoragesRo = ReadonlyArray;\n\nexport interface StorageDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tstorage?: Storage;\n\t\tstorages?: Storages;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as StorageTypes from '../types/StorageTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass StoragesStore extends EventEmitter {\n\t_storages: StorageTypes.StoragesRo = Object.freeze([]);\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._storages = Object.freeze([]);\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget storages(): StorageTypes.StoragesRo {\n\t\treturn this._storages;\n\t}\n\n\tget storagesM(): StorageTypes.Storages {\n\t\tlet storages: StorageTypes.Storages = [];\n\t\tthis._storages.forEach((\n\t\t\t\tstorage: StorageTypes.StorageRo): void => {\n\t\t\tstorages.push({\n\t\t\t\t...storage,\n\t\t\t});\n\t\t});\n\t\treturn storages;\n\t}\n\n\tstorage(id: string): StorageTypes.StorageRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._storages[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(storages: StorageTypes.Storage[]): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < storages.length; i++) {\n\t\t\tstorages[i] = Object.freeze(storages[i]);\n\t\t\tthis._map[storages[i].id] = i;\n\t\t}\n\n\t\tthis._storages = Object.freeze(storages);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: StorageTypes.StorageDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase StorageTypes.SYNC:\n\t\t\t\tthis._sync(action.data.storages);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new StoragesStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as StorageTypes from '../types/StorageTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as Constants from \"../Constants\";\n\nlet syncId: string;\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/storage')\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load storages');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: StorageTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tstorages: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function commit(storage: StorageTypes.Storage): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/storage/' + storage.id)\n\t\t\t.send(storage)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save storage');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(storage: StorageTypes.Storage): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/storage')\n\t\t\t.send(storage)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create storage');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(storageId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/storage/' + storageId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete storages');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: StorageTypes.StorageDispatch) => {\n\tswitch (action.type) {\n\t\tcase StorageTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\tsync();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport * as StorageTypes from '../types/StorageTypes';\nimport * as DatacenterActions from '../actions/DatacenterActions';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport StoragesStore from '../stores/StoragesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSelect from './PageSelect';\nimport PageSelectButton from './PageSelectButton';\nimport PageSwitch from './PageSwitch';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\tdatacenter: DatacenterTypes.DatacenterRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tstorages: StorageTypes.StoragesRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tdatacenter: DatacenterTypes.Datacenter;\n\taddStorage: string;\n\taddOrganization: string;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class Datacenter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tdatacenter: null,\n\t\t\taddStorage: '',\n\t\t\taddOrganization: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet datacenter: any;\n\n\t\tif (this.state.changed) {\n\t\t\tdatacenter = {\n\t\t\t\t...this.state.datacenter,\n\t\t\t};\n\t\t} else {\n\t\t\tdatacenter = {\n\t\t\t\t...this.props.datacenter,\n\t\t\t};\n\t\t}\n\n\t\tdatacenter[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdatacenter: datacenter,\n\t\t});\n\t}\n\n\ttoggle(name: string): void {\n\t\tlet datacenter: any;\n\n\t\tif (this.state.changed) {\n\t\t\tdatacenter = {\n\t\t\t\t...this.state.datacenter,\n\t\t\t};\n\t\t} else {\n\t\t\tdatacenter = {\n\t\t\t\t...this.props.datacenter,\n\t\t\t};\n\t\t}\n\n\t\tdatacenter[name] = !datacenter[name];\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdatacenter: datacenter,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDatacenterActions.commit(this.state.datacenter).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tdatacenter: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDatacenterActions.remove(this.props.datacenter.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonAddStorage = (): void => {\n\t\tlet datacenter: DatacenterTypes.Datacenter;\n\n\t\tif (!this.state.addStorage && !this.props.storages.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet storageId = this.state.addStorage ||\n\t\t\tthis.props.storages[0].id;\n\n\t\tif (this.state.changed) {\n\t\t\tdatacenter = {\n\t\t\t\t...this.state.datacenter,\n\t\t\t};\n\t\t} else {\n\t\t\tdatacenter = {\n\t\t\t\t...this.props.datacenter,\n\t\t\t};\n\t\t}\n\n\t\tlet publicStorages = [\n\t\t\t...(datacenter.public_storages || []),\n\t\t];\n\n\t\tif (publicStorages.indexOf(storageId) === -1) {\n\t\t\tpublicStorages.push(storageId);\n\t\t}\n\n\t\tpublicStorages.sort();\n\n\t\tdatacenter.public_storages = publicStorages;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdatacenter: datacenter,\n\t\t});\n\t}\n\n\tonRemoveStorage = (storage: string): void => {\n\t\tlet datacenter: DatacenterTypes.Datacenter;\n\n\t\tif (this.state.changed) {\n\t\t\tdatacenter = {\n\t\t\t\t...this.state.datacenter,\n\t\t\t};\n\t\t} else {\n\t\t\tdatacenter = {\n\t\t\t\t...this.props.datacenter,\n\t\t\t};\n\t\t}\n\n\t\tlet publicStorages = [\n\t\t\t...(datacenter.public_storages || []),\n\t\t];\n\n\t\tlet i = publicStorages.indexOf(storage);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tpublicStorages.splice(i, 1);\n\n\t\tdatacenter.public_storages = publicStorages;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdatacenter: datacenter,\n\t\t});\n\t}\n\n\tonAddOrganization = (): void => {\n\t\tlet datacenter: DatacenterTypes.Datacenter;\n\n\t\tif (!this.state.addOrganization && !this.props.organizations.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet organizationId = this.state.addOrganization ||\n\t\t\tthis.props.organizations[0].id;\n\n\t\tif (this.state.changed) {\n\t\t\tdatacenter = {\n\t\t\t\t...this.state.datacenter,\n\t\t\t};\n\t\t} else {\n\t\t\tdatacenter = {\n\t\t\t\t...this.props.datacenter,\n\t\t\t};\n\t\t}\n\n\t\tlet organizations = [\n\t\t\t...(datacenter.organizations || []),\n\t\t];\n\n\t\tif (organizations.indexOf(organizationId) === -1) {\n\t\t\torganizations.push(organizationId);\n\t\t}\n\n\t\torganizations.sort();\n\n\t\tdatacenter.organizations = organizations;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdatacenter: datacenter,\n\t\t});\n\t}\n\n\tonRemoveOrganization = (organization: string): void => {\n\t\tlet datacenter: DatacenterTypes.Datacenter;\n\n\t\tif (this.state.changed) {\n\t\t\tdatacenter = {\n\t\t\t\t...this.state.datacenter,\n\t\t\t};\n\t\t} else {\n\t\t\tdatacenter = {\n\t\t\t\t...this.props.datacenter,\n\t\t\t};\n\t\t}\n\n\t\tlet organizations = [\n\t\t\t...(datacenter.organizations || []),\n\t\t];\n\n\t\tlet i = organizations.indexOf(organization);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\torganizations.splice(i, 1);\n\n\t\tdatacenter.organizations = organizations;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdatacenter: datacenter,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet datacenter: DatacenterTypes.Datacenter = this.state.datacenter ||\n\t\t\tthis.props.datacenter;\n\n\t\tlet organizations: JSX.Element[] = [];\n\t\tfor (let organizationId of (datacenter.organizations || [])) {\n\t\t\tlet organization = OrganizationsStore.organization(organizationId);\n\t\t\tif (!organization) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\torganizations.push(\n\t\t\t\t\n\t\t\t\t\t{organization.name}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveOrganization(organization.id);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\tif (this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\torganizationsSelect.push();\n\t\t}\n\n\t\tlet publicStorages: JSX.Element[] = [];\n\t\tfor (let storageId of (datacenter.public_storages || [])) {\n\t\t\tlet storage = StoragesStore.storage(storageId);\n\t\t\tif (!storage) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpublicStorages.push(\n\t\t\t\t\n\t\t\t\t\t{storage.name}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveStorage(storage.id);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet hasStorages = false;\n\t\tlet privateStoragesSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tlet backupStoragesSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tlet publicStoragesSelect: JSX.Element[] = [];\n\t\tif (this.props.storages.length) {\n\t\t\tfor (let storage of this.props.storages) {\n\t\t\t\tif (storage.type === 'public') {\n\t\t\t\t\thasStorages = true;\n\t\t\t\t\tpublicStoragesSelect.push(\n\t\t\t\t\t\t{storage.name},\n\t\t\t\t\t);\n\t\t\t\t} else if (storage.type === 'private') {\n\t\t\t\t\tprivateStoragesSelect.push(\n\t\t\t\t\t\t{storage.name},\n\t\t\t\t\t);\n\t\t\t\t\tbackupStoragesSelect.push(\n\t\t\t\t\t\t{storage.name},\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!hasStorages) {\n\t\t\tpublicStoragesSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('private_storage', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{privateStoragesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('private_storage_class', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('backup_storage', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{backupStoragesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('backup_storage_class', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tPublic Storages\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{publicStorages}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddStorage: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddStorage}\n\t\t\t\t\t>\n\t\t\t\t\t\t{publicStoragesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggle('match_organizations');\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tOrganizations\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{organizations}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddOrganization: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddOrganization}\n\t\t\t\t\t>\n\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tdatacenter: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport * as StorageTypes from '../types/StorageTypes';\nimport DatacentersStore from '../stores/DatacentersStore';\nimport StoragesStore from '../stores/StoragesStore';\nimport OrganizationsStore from \"../stores/OrganizationsStore\";\nimport * as DatacenterActions from '../actions/DatacenterActions';\nimport * as StorageActions from '../actions/StorageActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport NonState from './NonState';\nimport Datacenter from './Datacenter';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface State {\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tstorages: StorageTypes.StoragesRo;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\tnoCerts: {\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n};\n\nexport default class Datacenters extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tstorages: StoragesStore.storages,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tDatacentersStore.addChangeListener(this.onChange);\n\t\tStoragesStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tDatacenterActions.sync();\n\t\tStorageActions.sync();\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tDatacentersStore.removeChangeListener(this.onChange);\n\t\tStoragesStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tstorages: StoragesStore.storages,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet datacentersDom: JSX.Element[] = [];\n\n\t\tthis.state.datacenters.forEach((\n\t\t\t\tdatacenter: DatacenterTypes.DatacenterRo): void => {\n\t\t\tdatacentersDom.push();\n\t\t});\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Datacenters

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tDatacenterActions.create(null).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{datacentersDom}\n\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n}\n","/// \nexport const SYNC = 'alert.sync';\nexport const SYNC_NAMES = 'alert.sync_names';\nexport const TRAVERSE = 'alert.traverse';\nexport const FILTER = 'alert.filter';\nexport const CHANGE = 'alert.change';\n\nexport interface Alert {\n\tid: string;\n\tname?: string;\n\torganization?: string;\n\troles?: string[];\n\tresource?: string;\n\tlevel?: number;\n\tfrequency?: number;\n\tignores?: string[];\n\tvalue_int?: number;\n\tvalue_str?: string;\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\trole?: string;\n\torganization?: string;\n}\n\nexport type Alerts = Alert[];\n\nexport type AlertRo = Readonly;\nexport type AlertsRo = ReadonlyArray;\n\nexport interface AlertDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\talert?: Alert;\n\t\talerts?: Alerts;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as AlertTypes from '../types/AlertTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass AlertsStore extends EventEmitter {\n\t_alerts: AlertTypes.AlertsRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: AlertTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\tget alerts(): AlertTypes.AlertsRo {\n\t\treturn this._alerts;\n\t}\n\n\tget alertsM(): AlertTypes.Alerts {\n\t\tlet alerts: AlertTypes.Alerts = [];\n\t\tthis._alerts.forEach((alert: AlertTypes.AlertRo): void => {\n\t\t\talerts.push({\n\t\t\t\t...alert,\n\t\t\t});\n\t\t});\n\t\treturn alerts;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): AlertTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\talert(id: string): AlertTypes.AlertRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._alerts[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: AlertTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(alerts: AlertTypes.Alert[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < alerts.length; i++) {\n\t\t\talerts[i] = Object.freeze(alerts[i]);\n\t\t\tthis._map[alerts[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._alerts = Object.freeze(alerts);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: AlertTypes.AlertDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase AlertTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase AlertTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase AlertTypes.SYNC:\n\t\t\t\tthis._sync(action.data.alerts, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new AlertsStore();\n","/// \nexport const SYNC = 'authority.sync';\nexport const TRAVERSE = 'authority.traverse';\nexport const FILTER = 'authority.filter';\nexport const CHANGE = 'authority.change';\n\nexport interface Authority {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\ttype?: string;\n\torganization?: string;\n\tnetwork_roles?: string[];\n\tkey?: string;\n\troles?: string[];\n\tcertificate?: string;\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\trole?: string;\n\tnetwork_role?: string;\n\torganization?: string;\n}\n\nexport type Authorities = Authority[];\n\nexport type AuthorityRo = Readonly;\nexport type AuthoritiesRo = ReadonlyArray;\n\nexport interface AuthorityDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tauthority?: Authority;\n\t\tauthorities?: Authorities;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass AuthoritiesStore extends EventEmitter {\n\t_authorities: AuthorityTypes.AuthoritiesRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: AuthorityTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._authorities = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget authorities(): AuthorityTypes.AuthoritiesRo {\n\t\treturn this._authorities;\n\t}\n\n\tget authoritiesM(): AuthorityTypes.Authorities {\n\t\tlet authorities: AuthorityTypes.Authorities = [];\n\t\tthis._authorities.forEach((\n\t\t\t\tauthority: AuthorityTypes.AuthorityRo): void => {\n\t\t\tauthorities.push({\n\t\t\t\t...authority,\n\t\t\t});\n\t\t});\n\t\treturn authorities;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): AuthorityTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tauthority(id: string): AuthorityTypes.AuthorityRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._authorities[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: AuthorityTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(authorities: AuthorityTypes.Authority[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < authorities.length; i++) {\n\t\t\tauthorities[i] = Object.freeze(authorities[i]);\n\t\t\tthis._map[authorities[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._authorities = Object.freeze(authorities);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: AuthorityTypes.AuthorityDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase AuthorityTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase AuthorityTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase AuthorityTypes.SYNC:\n\t\t\t\tthis._sync(action.data.authorities, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new AuthoritiesStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport AlertsStore from '../stores/AlertsStore';\nimport * as AlertTypes from '../types/AlertTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/alert')\n\t\t\t.query({\n\t\t\t\t...AlertsStore.filter,\n\t\t\t\tpage: AlertsStore.page,\n\t\t\t\tpage_count: AlertsStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load alerts');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: AlertTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\talerts: res.body.alerts,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: AlertTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: AlertTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: AlertTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(alert: AlertTypes.Alert): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/alert/' + alert.id)\n\t\t\t.send(alert)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save alert');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(alert: AlertTypes.Alert): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/alert')\n\t\t\t.send(alert)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create alert');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(alertId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/alert/' + alertId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete alerts');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(alertIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/alert')\n\t\t\t.send(alertIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete alerts');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: AlertTypes.AlertDispatch) => {\n\tswitch (action.type) {\n\t\tcase AlertTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport AuthoritiesStore from '../stores/AuthoritiesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as Constants from \"../Constants\";\n\nlet syncId: string;\n\nexport function sync(noLoading?: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader: Loader;\n\tif (!noLoading) {\n\t\tloader = new Loader().loading();\n\t}\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/authority')\n\t\t\t.query({\n\t\t\t\t...AuthoritiesStore.filter,\n\t\t\t\tpage: AuthoritiesStore.page,\n\t\t\t\tpage_count: AuthoritiesStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (loader) {\n\t\t\t\t\tloader.done();\n\t\t\t\t}\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load authorities');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: AuthorityTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tauthorities: res.body.authorities,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: AuthorityTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: AuthorityTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: AuthorityTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(authority: AuthorityTypes.Authority): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/authority/' + authority.id)\n\t\t\t.send(authority)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save authority');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(authority: AuthorityTypes.Authority): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/authority')\n\t\t\t.send(authority)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create authority');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(authorityId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/authority/' + authorityId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete authority');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(authorityIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/authority')\n\t\t\t.send(authorityIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete authorities');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: AuthorityTypes.AuthorityDispatch) => {\n\tswitch (action.type) {\n\t\tcase AuthorityTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\tsync();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as AlertTypes from '../types/AlertTypes';\nimport * as AuthorityTypes from \"../types/AuthorityTypes\";\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport * as AlertActions from '../actions/AlertActions';\nimport * as PageInfos from './PageInfo';\nimport PageInput from './PageInput';\nimport PageSave from './PageSave';\nimport PageInfo from './PageInfo';\nimport ConfirmButton from './ConfirmButton';\nimport PageInputButton from './PageInputButton';\nimport Help from './Help';\nimport PageSwitch from \"./PageSwitch\";\nimport PageSelect from \"./PageSelect\";\nimport * as Constants from \"../Constants\";\n\ninterface Props {\n\talert: AlertTypes.AlertRo;\n\tauthorities: AuthorityTypes.AuthoritiesRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\taddRole: string;\n\taddIgnore: string;\n\talert: AlertTypes.Alert;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '250px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tcontrolButton: {\n\t\tmarginRight: '10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\theader: {\n\t\tfontSize: '20px',\n\t\tmarginTop: '-10px',\n\t\tpaddingBottom: '2px',\n\t\tmarginBottom: '10px',\n\t\tborderBottomStyle: 'solid',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\talertsButtons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\talertsAdd: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n};\n\nexport default class AlertDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\taddIgnore: '',\n\t\t\talert: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet alert: any;\n\n\t\tif (this.state.changed) {\n\t\t\talert = {\n\t\t\t\t...this.state.alert,\n\t\t\t};\n\t\t} else {\n\t\t\talert = {\n\t\t\t\t...this.props.alert,\n\t\t\t};\n\t\t}\n\n\t\talert[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\talert: alert,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tAlertActions.commit(this.state.alert).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\talert: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tAlertActions.remove(this.props.alert.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonAddRole = (): void => {\n\t\tlet alert: AlertTypes.Alert;\n\n\t\tif (this.state.changed) {\n\t\t\talert = {\n\t\t\t\t...this.state.alert,\n\t\t\t};\n\t\t} else {\n\t\t\talert = {\n\t\t\t\t...this.props.alert,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...alert.roles,\n\t\t];\n\n\t\tif (!this.state.addRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (roles.indexOf(this.state.addRole) === -1) {\n\t\t\troles.push(this.state.addRole);\n\t\t}\n\n\t\troles.sort();\n\n\t\talert.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\talert: alert,\n\t\t});\n\t}\n\n\tonRemoveRole(role: string): void {\n\t\tlet alert: AlertTypes.Alert;\n\n\t\tif (this.state.changed) {\n\t\t\talert = {\n\t\t\t\t...this.state.alert,\n\t\t\t};\n\t\t} else {\n\t\t\talert = {\n\t\t\t\t...this.props.alert,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...alert.roles,\n\t\t];\n\n\t\tlet i = roles.indexOf(role);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\troles.splice(i, 1);\n\n\t\talert.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\talert: alert,\n\t\t});\n\t}\n\n\tonAddIgnore = (): void => {\n\t\tlet alert: AlertTypes.Alert;\n\n\t\tif (this.state.changed) {\n\t\t\talert = {\n\t\t\t\t...this.state.alert,\n\t\t\t};\n\t\t} else {\n\t\t\talert = {\n\t\t\t\t...this.props.alert,\n\t\t\t};\n\t\t}\n\n\t\tlet ignores = [\n\t\t\t...(alert.ignores || []),\n\t\t];\n\n\t\tif (!this.state.addIgnore) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (ignores.indexOf(this.state.addIgnore) === -1) {\n\t\t\tignores.push(this.state.addIgnore);\n\t\t}\n\n\t\tignores.sort();\n\n\t\talert.ignores = ignores;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddIgnore: '',\n\t\t\talert: alert,\n\t\t});\n\t}\n\n\tonRemoveIgnore(ignore: string): void {\n\t\tlet alert: AlertTypes.Alert;\n\n\t\tif (this.state.changed) {\n\t\t\talert = {\n\t\t\t\t...this.state.alert,\n\t\t\t};\n\t\t} else {\n\t\t\talert = {\n\t\t\t\t...this.props.alert,\n\t\t\t};\n\t\t}\n\n\t\tlet ignores = [\n\t\t\t...(alert.ignores || []),\n\t\t];\n\n\t\tlet i = ignores.indexOf(ignore);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tignores.splice(i, 1);\n\n\t\talert.ignores = ignores;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddIgnore: '',\n\t\t\talert: alert,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet alert: AlertTypes.Alert = this.state.alert ||\n\t\t\tthis.props.alert;\n\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\torganizationsSelect.push(\n\t\t\t);\n\t\tif (this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet fields: PageInfos.Field[] = [\n\t\t\t{\n\t\t\t\tlabel: 'ID',\n\t\t\t\tvalue: this.props.alert.id || 'None',\n\t\t\t},\n\t\t];\n\n\t\tlet roles: JSX.Element[] = [];\n\t\tfor (let role of alert.roles) {\n\t\t\troles.push(\n\t\t\t\t\n\t\t\t\t\t{role}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveRole(role);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet ignores: JSX.Element[] = [];\n\t\tfor (let ignore of (alert.ignores || [])) {\n\t\t\tignores.push(\n\t\t\t\t\n\t\t\t\t\t{ignore}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveRole(ignore);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet valueInt = false;\n\t\tlet valueStr = false;\n\t\tlet valueLabel = '';\n\t\tlet valueHelp = '';\n\t\tlet ignoreShow = false;\n\t\tlet ignoreLabel = '';\n\t\tlet ignoreTitle = '';\n\t\tlet ignoreHelp = '';\n\t\tswitch (alert.resource) {\n\t\t\tcase \"system_cpu_level\":\n\t\t\t\tvalueInt = true;\n\t\t\t\tvalueLabel = 'Usage Threshold';\n\t\t\t\tvalueHelp = 'Maximum percent CPU usage as integer ' +\n\t\t\t\t\t'before alert is triggered.';\n\t\t\t\tbreak;\n\t\t\tcase \"system_memory_level\":\n\t\t\t\tvalueInt = true;\n\t\t\t\tvalueLabel = 'Usage Threshold';\n\t\t\t\tvalueHelp = 'Maximum percent memory usage as integer ' +\n\t\t\t\t\t'before alert is triggered.';\n\t\t\t\tbreak;\n\t\t\tcase \"system_swap_level\":\n\t\t\t\tvalueInt = true;\n\t\t\t\tvalueLabel = 'Usage Threshold';\n\t\t\t\tvalueHelp = 'Maximum percent swap usage as integer ' +\n\t\t\t\t\t'before alert is triggered.';\n\t\t\t\tbreak;\n\t\t\tcase \"system_hugepages_level\":\n\t\t\t\tvalueInt = true;\n\t\t\t\tvalueLabel = 'Usage Threshold';\n\t\t\t\tvalueHelp = 'Maximum percent hugepages usage as integer ' +\n\t\t\t\t\t'before alert is triggered.';\n\t\t\t\tbreak;\n\t\t\tcase \"disk_usage_level\":\n\t\t\t\tvalueInt = true;\n\t\t\t\tvalueLabel = 'Usage Threshold';\n\t\t\t\tvalueHelp = 'Maximum percent disk space usage as integer ' +\n\t\t\t\t\t'before alert is triggered.';\n\t\t\t\tbreak;\n\t\t\tcase \"kmsg_keyword\":\n\t\t\t\tvalueStr = true;\n\t\t\t\tvalueLabel = 'Dmesg Keyword Match';\n\t\t\t\tvalueHelp = 'Case insensitive dmesg match string to trigger alert.';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddRole}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('resource', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tInstance Offline\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddIgnore: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddIgnore}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('organization', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('value_int', parseInt(val, 10));\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('value_str', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('level', parseInt(val, 10));\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('frequency', parseInt(val, 10));\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\talert: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AlertTypes from '../types/AlertTypes';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport AlertDetailed from './AlertDetailed';\n\ninterface Props {\n\talert: AlertTypes.AlertRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tauthorities: AuthorityTypes.AuthoritiesRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n};\n\nexport default class Alert extends React.Component {\n\trender(): JSX.Element {\n\t\tlet alert = this.props.alert;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t;\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet roles: JSX.Element[] = [];\n\n\t\tfor (let role of alert.roles) {\n\t\t\troles.push(\n\t\t\t\t\n\t\t\t\t\t{role}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{alert.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{roles}\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AlertTypes from '../types/AlertTypes';\nimport SearchInput from './SearchInput';\nimport * as AuthorityTypes from \"../types/AuthorityTypes\";\n\ninterface Props {\n\tfilter: AlertTypes.Filter;\n\tonFilter: (filter: AlertTypes.Filter) => void;\n\tauthorities: AuthorityTypes.AuthoritiesRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class AlertsFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.role = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.role;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport AlertsStore from '../stores/AlertsStore';\nimport * as AlertActions from '../actions/AlertActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class AlertsPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: AlertsStore.page,\n\t\t\tpageCount: AlertsStore.pageCount,\n\t\t\tpages: AlertsStore.pages,\n\t\t\tcount: AlertsStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tAlertsStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tAlertsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: AlertsStore.page,\n\t\t\tpageCount: AlertsStore.pageCount,\n\t\t\tpages: AlertsStore.pages,\n\t\t\tcount: AlertsStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tAlertActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tAlertActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tAlertActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tAlertActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tAlertActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AlertTypes from '../types/AlertTypes';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport AlertsStore from '../stores/AlertsStore';\nimport AuthoritiesStore from '../stores/AuthoritiesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as AlertActions from '../actions/AlertActions';\nimport * as AuthorityActions from '../actions/AuthorityActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport Alert from './Alert';\nimport AlertsFilter from './AlertsFilter';\nimport AlertsPage from './AlertsPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\talerts: AlertTypes.AlertsRo;\n\tfilter: AlertTypes.Filter;\n\tauthorities: AuthorityTypes.AuthoritiesRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Alerts extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\talerts: AlertsStore.alerts,\n\t\t\tfilter: AlertsStore.filter,\n\t\t\tauthorities: AuthoritiesStore.authorities,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tAlertsStore.addChangeListener(this.onChange);\n\t\tAuthoritiesStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tAlertActions.sync();\n\t\tAuthorityActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tAlertsStore.removeChangeListener(this.onChange);\n\t\tAuthoritiesStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet alerts = AlertsStore.alerts;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\talerts.forEach((alert: AlertTypes.Alert): void => {\n\t\t\tif (curSelected[alert.id]) {\n\t\t\t\tselected[alert.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[alert.id]) {\n\t\t\t\topened[alert.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\talerts: alerts,\n\t\t\tfilter: AlertsStore.filter,\n\t\t\tauthorities: AuthoritiesStore.authorities,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tAlertActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet alertsDom: JSX.Element[] = [];\n\n\t\tthis.state.alerts.forEach((\n\t\t\t\talert: AlertTypes.AlertRo): void => {\n\t\t\talertsDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet alerts = this.state.alerts;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < alerts.length; i++) {\n\t\t\t\t\t\t\tlet usr = alerts[i];\n\n\t\t\t\t\t\t\tif (usr.id === alert.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[alerts[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: alert.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[alert.id]) {\n\t\t\t\t\t\tdelete selected[alert.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[alert.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: alert.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[alert.id]) {\n\t\t\t\t\t\tdelete opened[alert.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[alert.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let instId of Object.keys(this.state.selected)) {\n\t\t\tlet inst = AlertsStore.alert(instId);\n\t\t\tif (inst) {\n\t\t\t\tselectedNames.push(inst.name || instId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(instId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Alerts

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tAlertActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tAlertActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tAlertActions.create({\n\t\t\t\t\t\t\t\t\tid: null,\n\t\t\t\t\t\t\t\t}).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tAlertActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\tauthorities={this.state.authorities}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{alertsDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport * as ZoneActions from '../actions/ZoneActions';\nimport DatacentersStore from '../stores/DatacentersStore';\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport PageSelect from './PageSelect';\nimport ConfirmButton from './ConfirmButton';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\tzone: ZoneTypes.ZoneRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tzone: ZoneTypes.Zone;\n\taddCert: string;\n\tforwardedChecked: boolean;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class Zone extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tzone: null,\n\t\t\taddCert: null,\n\t\t\tforwardedChecked: false,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet zone: any;\n\n\t\tif (this.state.changed) {\n\t\t\tzone = {\n\t\t\t\t...this.state.zone,\n\t\t\t};\n\t\t} else {\n\t\t\tzone = {\n\t\t\t\t...this.props.zone,\n\t\t\t};\n\t\t}\n\n\t\tzone[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tzone: zone,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tZoneActions.commit(this.state.zone).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tzone: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tZoneActions.remove(this.props.zone.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet zone: ZoneTypes.Zone = this.state.zone ||\n\t\t\tthis.props.zone;\n\n\t\tlet datacenter = DatacentersStore.datacenter(\n\t\t\tthis.props.zone.datacenter);\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('network_mode', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tforwardedChecked: false,\n\t\t\t\t\t\tzone: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport ZonesStore from '../stores/ZonesStore';\nimport DatacentersStore from \"../stores/DatacentersStore\";\nimport * as ZoneActions from '../actions/ZoneActions';\nimport * as DatacenterActions from '../actions/DatacenterActions';\nimport NonState from './NonState';\nimport Zone from './Zone';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface State {\n\tzones: ZoneTypes.ZonesRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tdatacenter: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tmargin: '15px 0 0 0',\n\t\twidth: '220px',\n\t} as React.CSSProperties,\n\tselect: {\n\t\twidth: '100%',\n\t\tborderTopLeftRadius: '3px',\n\t\tborderBottomLeftRadius: '3px',\n\t} as React.CSSProperties,\n\tselectInner: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tselectBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class Zones extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tzones: ZonesStore.zones,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tdatacenter: '',\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tZonesStore.addChangeListener(this.onChange);\n\t\tDatacentersStore.addChangeListener(this.onChange);\n\t\tZoneActions.sync();\n\t\tDatacenterActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tZonesStore.removeChangeListener(this.onChange);\n\t\tDatacentersStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tzones: ZonesStore.zones,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet zonesDom: JSX.Element[] = [];\n\n\t\tthis.state.zones.forEach((\n\t\t\t\tzone: ZoneTypes.ZoneRo): void => {\n\t\t\tzonesDom.push();\n\t\t});\n\n\t\tlet hasDatacenters = false;\n\t\tlet datacentersSelect: JSX.Element[] = [];\n\t\tif (this.state.datacenters.length) {\n\t\t\thasDatacenters = true;\n\t\t\tfor (let datacenter of this.state.datacenters) {\n\t\t\t\tdatacentersSelect.push(\n\t\t\t\t\t{datacenter.name},\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tdatacentersSelect.push(\n\t\t\t\tNo Datacenters,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Zones

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdatacenter: evt.target.value,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{datacentersSelect}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tZoneActions.create({\n\t\t\t\t\t\t\t\t\t\tid: null,\n\t\t\t\t\t\t\t\t\t\tnetwork_mode: 'vxlan_vlan',\n\t\t\t\t\t\t\t\t\t\tdatacenter: this.state.datacenter ||\n\t\t\t\t\t\t\t\t\t\t\tthis.state.datacenters[0].id,\n\t\t\t\t\t\t\t\t\t}).then((): void => {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>New\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{zonesDom}\n\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as BlockTypes from '../types/BlockTypes';\nimport * as BlockActions from '../actions/BlockActions';\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport PageInputButton from './PageInputButton';\nimport ConfirmButton from './ConfirmButton';\nimport * as Alert from \"../Alert\";\nimport Help from './Help';\nimport PageSelect from \"./PageSelect\";\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\tblock: BlockTypes.BlockRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\taddSubnet: string,\n\taddSubnet6: string,\n\taddExclude: string,\n\tblock: BlockTypes.Block;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tcontrolButton: {\n\t\tmarginRight: '10px',\n\t} as React.CSSProperties,\n};\n\nexport default class Block extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\taddSubnet: '',\n\t\t\taddSubnet6: '',\n\t\t\taddExclude: '',\n\t\t\tblock: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet block: any;\n\n\t\tif (this.state.changed) {\n\t\t\tblock = {\n\t\t\t\t...this.state.block,\n\t\t\t};\n\t\t} else {\n\t\t\tblock = {\n\t\t\t\t...this.props.block,\n\t\t\t};\n\t\t}\n\n\t\tblock[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tblock: block,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tBlockActions.commit(this.state.block).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tblock: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonSync = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tBlockActions.commit(this.props.block).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tAlert.success('Block sync started');\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tBlockActions.remove(this.props.block.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonAddSubnet = (): void => {\n\t\tlet block: BlockTypes.Block;\n\n\t\tif (!this.state.addSubnet) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tblock = {\n\t\t\t\t...this.state.block,\n\t\t\t};\n\t\t} else {\n\t\t\tblock = {\n\t\t\t\t...this.props.block,\n\t\t\t};\n\t\t}\n\n\t\tlet subnets = [\n\t\t\t...(block.subnets || []),\n\t\t];\n\n\t\tlet addSubnet = this.state.addSubnet.trim();\n\t\tif (subnets.indexOf(addSubnet) === -1) {\n\t\t\tsubnets.push(addSubnet);\n\t\t}\n\n\t\tsubnets.sort();\n\t\tblock.subnets = subnets;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddSubnet: '',\n\t\t\tblock: block,\n\t\t});\n\t}\n\n\tonRemoveSubnet = (subnet: string): void => {\n\t\tlet block: BlockTypes.Block;\n\n\t\tif (this.state.changed) {\n\t\t\tblock = {\n\t\t\t\t...this.state.block,\n\t\t\t};\n\t\t} else {\n\t\t\tblock = {\n\t\t\t\t...this.props.block,\n\t\t\t};\n\t\t}\n\n\t\tlet subnets = [\n\t\t\t...(block.subnets || []),\n\t\t];\n\n\t\tlet i = subnets.indexOf(subnet);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tsubnets.splice(i, 1);\n\t\tblock.subnets = subnets;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tblock: block,\n\t\t});\n\t}\n\n\tonAddSubnet6 = (): void => {\n\t\tlet block: BlockTypes.Block;\n\n\t\tif (!this.state.addSubnet6) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tblock = {\n\t\t\t\t...this.state.block,\n\t\t\t};\n\t\t} else {\n\t\t\tblock = {\n\t\t\t\t...this.props.block,\n\t\t\t};\n\t\t}\n\n\t\tlet subnets6 = [\n\t\t\t...(block.subnets6 || []),\n\t\t];\n\n\t\tlet addSubnet6 = this.state.addSubnet6.trim();\n\t\tif (subnets6.indexOf(addSubnet6) === -1) {\n\t\t\tsubnets6.push(addSubnet6);\n\t\t}\n\n\t\tsubnets6.sort();\n\t\tblock.subnets6 = subnets6;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddSubnet6: '',\n\t\t\tblock: block,\n\t\t});\n\t}\n\n\tonRemoveSubnet6 = (subnet: string): void => {\n\t\tlet block: BlockTypes.Block;\n\n\t\tif (this.state.changed) {\n\t\t\tblock = {\n\t\t\t\t...this.state.block,\n\t\t\t};\n\t\t} else {\n\t\t\tblock = {\n\t\t\t\t...this.props.block,\n\t\t\t};\n\t\t}\n\n\t\tlet subnets6 = [\n\t\t\t...(block.subnets6 || []),\n\t\t];\n\n\t\tlet i = subnets6.indexOf(subnet);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tsubnets6.splice(i, 1);\n\t\tblock.subnets6 = subnets6;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tblock: block,\n\t\t});\n\t}\n\n\tonAddExclude = (): void => {\n\t\tlet block: BlockTypes.Block;\n\n\t\tif (!this.state.addExclude) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tblock = {\n\t\t\t\t...this.state.block,\n\t\t\t};\n\t\t} else {\n\t\t\tblock = {\n\t\t\t\t...this.props.block,\n\t\t\t};\n\t\t}\n\n\t\tlet excludes = [\n\t\t\t...(block.excludes || []),\n\t\t];\n\n\t\tlet addExclude = this.state.addExclude.trim();\n\t\tif (excludes.indexOf(addExclude) === -1) {\n\t\t\texcludes.push(addExclude);\n\t\t}\n\n\t\texcludes.sort();\n\t\tblock.excludes = excludes;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddExclude: '',\n\t\t\tblock: block,\n\t\t});\n\t}\n\n\tonRemoveExclude = (exclude: string): void => {\n\t\tlet block: BlockTypes.Block;\n\n\t\tif (this.state.changed) {\n\t\t\tblock = {\n\t\t\t\t...this.state.block,\n\t\t\t};\n\t\t} else {\n\t\t\tblock = {\n\t\t\t\t...this.props.block,\n\t\t\t};\n\t\t}\n\n\t\tlet excludes = [\n\t\t\t...(block.excludes || []),\n\t\t];\n\n\t\tlet i = excludes.indexOf(exclude);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\texcludes.splice(i, 1);\n\t\tblock.excludes = excludes;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tblock: block,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet block: BlockTypes.Block = this.state.block ||\n\t\t\tthis.props.block;\n\n\t\tlet subnets: JSX.Element[] = [];\n\t\tfor (let subnet of (block.subnets || [])) {\n\t\t\tsubnets.push(\n\t\t\t\t\n\t\t\t\t\t{subnet}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveSubnet(subnet);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet subnets6: JSX.Element[] = [];\n\t\tfor (let subnet of (block.subnets6 || [])) {\n\t\t\tsubnets6.push(\n\t\t\t\t\n\t\t\t\t\t{subnet}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveSubnet6(subnet);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet excludes: JSX.Element[] = [];\n\t\tfor (let exclude of (block.excludes || [])) {\n\t\t\texcludes.push(\n\t\t\t\t\n\t\t\t\t\t{exclude}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveExclude(exclude);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('type', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('netmask', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tIP Addresses\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{subnets}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddSubnet: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddSubnet}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tIPv6 Addresses\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{subnets6}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddSubnet6: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddSubnet6}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('gateway', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('gateway6', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tIP Excludes\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{excludes}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddExclude: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddExclude}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tblock: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as BlockTypes from '../types/BlockTypes';\nimport BlocksStore from '../stores/BlocksStore';\nimport * as BlockActions from '../actions/BlockActions';\nimport NonState from './NonState';\nimport Block from './Block';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface State {\n\tblocks: BlockTypes.BlocksRo;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\tnoCerts: {\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n};\n\nexport default class Blocks extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tblocks: BlocksStore.blocks,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tBlocksStore.addChangeListener(this.onChange);\n\t\tBlockActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tBlocksStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tblocks: BlocksStore.blocks,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet blocksDom: JSX.Element[] = [];\n\n\t\tthis.state.blocks.forEach((\n\t\t\t\tblock: BlockTypes.BlockRo): void => {\n\t\t\tblocksDom.push();\n\t\t});\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Blocks

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tBlockActions.create(null).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{blocksDom}\n\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n}\n","/// \nexport const SYNC = 'vpc.sync';\nexport const SYNC_NAMES= 'vpc.sync_names';\nexport const TRAVERSE = 'vpc.traverse';\nexport const FILTER = 'vpc.filter';\nexport const CHANGE = 'vpc.change';\n\nexport interface Vpc {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\tvpc_id?: number;\n\tnetwork?: string;\n\tnetwork6?: string;\n\tsubnets?: Subnet[];\n\torganization?: string;\n\tdatacenter?: string;\n\troutes?: Route[];\n}\n\nexport interface Subnet {\n\tid?: string;\n\tname?: string;\n\tnetwork?: string;\n}\n\nexport interface Route {\n\tdestination?: string;\n\ttarget?: string;\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\tnetwork?: string;\n\torganization?: string;\n\tdatacenter?: string;\n}\n\nexport type Vpcs = Vpc[];\n\nexport type VpcRo = Readonly;\nexport type VpcsRo = ReadonlyArray;\n\nexport interface VpcDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tvpc?: Vpc;\n\t\tvpcs?: Vpcs;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass VpcsStore extends EventEmitter {\n\t_vpcs: VpcTypes.VpcsRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: VpcTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._vpcs = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget vpcs(): VpcTypes.VpcsRo {\n\t\treturn this._vpcs;\n\t}\n\n\tget vpcsM(): VpcTypes.Vpcs {\n\t\tlet vpcs: VpcTypes.Vpcs = [];\n\t\tthis._vpcs.forEach((vpc: VpcTypes.VpcRo): void => {\n\t\t\tvpcs.push({\n\t\t\t\t...vpc,\n\t\t\t});\n\t\t});\n\t\treturn vpcs;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): VpcTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tvpc(id: string): VpcTypes.VpcRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._vpcs[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: VpcTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(vpcs: VpcTypes.Vpc[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < vpcs.length; i++) {\n\t\t\tvpcs[i] = Object.freeze(vpcs[i]);\n\t\t\tthis._map[vpcs[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._vpcs = Object.freeze(vpcs);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: VpcTypes.VpcDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase VpcTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase VpcTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase VpcTypes.SYNC:\n\t\t\t\tthis._sync(action.data.vpcs, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new VpcsStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as VpcTypes from '../types/VpcTypes';\nimport VpcsStore from '../stores/VpcsStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\nlet syncNamesId: string;\n\nexport function sync(noLoading?: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader: Loader;\n\tif (!noLoading) {\n\t\tloader = new Loader().loading();\n\t}\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/vpc')\n\t\t\t.query({\n\t\t\t\t...VpcsStore.filter,\n\t\t\t\tpage: VpcsStore.page,\n\t\t\t\tpage_count: VpcsStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (loader) {\n\t\t\t\t\tloader.done();\n\t\t\t\t}\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load vpcs');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: VpcTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tvpcs: res.body.vpcs,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function syncNames(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncNamesId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/vpc')\n\t\t\t.query({\n\t\t\t\tnames: \"true\",\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncNamesId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load vpcs names');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: VpcTypes.SYNC_NAMES,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tvpcs: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: VpcTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: VpcTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: VpcTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(vpc: VpcTypes.Vpc): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/vpc/' + vpc.id)\n\t\t\t.send(vpc)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save vpc');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(vpc: VpcTypes.Vpc): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/vpc')\n\t\t\t.send(vpc)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create vpc');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(vpcId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/vpc/' + vpcId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete vpc');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(vpcIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/vpc')\n\t\t\t.send(vpcIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete vpcs');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: VpcTypes.VpcDispatch) => {\n\tswitch (action.type) {\n\t\tcase VpcTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as VpcTypes from '../types/VpcTypes';\n\ninterface Props {\n\tdisabled?: boolean;\n\troute: VpcTypes.Route;\n\tonChange?: (state: VpcTypes.Route) => void;\n\tonAdd: () => void;\n\tonRemove?: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tinputBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class VpcRoute extends React.Component {\n\tclone(): VpcTypes.Route {\n\t\treturn {\n\t\t\t...this.props.route,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tlet route = this.props.route;\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.destination = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.target = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onAdd();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as VpcTypes from '../types/VpcTypes';\n\ninterface Props {\n\tdisabled?: boolean;\n\tsubnet: VpcTypes.Subnet;\n\tonChange?: (state: VpcTypes.Subnet) => void;\n\tonAdd: () => void;\n\tonRemove?: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tinputBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class VpcSubnet extends React.Component {\n\tclone(): VpcTypes.Subnet {\n\t\treturn {\n\t\t\t...this.props.subnet,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tlet subnet = this.props.subnet;\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.name = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.network = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onAdd();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as VpcActions from '../actions/VpcActions';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport * as PageInfos from './PageInfo';\nimport DatacentersStore from \"../stores/DatacentersStore\";\nimport OrganizationsStore from \"../stores/OrganizationsStore\";\nimport VpcRoute from './VpcRoute';\nimport VpcSubnet from './VpcSubnet';\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tvpc: VpcTypes.VpcRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\taddNetworkRole: string;\n\taddVpc: string;\n\tvpc: VpcTypes.Vpc;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\tlist: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n};\n\nexport default class VpcDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: null,\n\t\t\taddVpc: null,\n\t\t\tvpc: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet vpc: any;\n\n\t\tif (this.state.changed) {\n\t\t\tvpc = {\n\t\t\t\t...this.state.vpc,\n\t\t\t};\n\t\t} else {\n\t\t\tvpc = {\n\t\t\t\t...this.props.vpc,\n\t\t\t};\n\t\t}\n\n\t\tvpc[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tvpc: vpc,\n\t\t});\n\t}\n\n\tonAddSubnet = (i: number): void => {\n\t\tlet vpc: VpcTypes.Vpc;\n\n\t\tif (this.state.changed) {\n\t\t\tvpc = {\n\t\t\t\t...this.state.vpc,\n\t\t\t};\n\t\t} else {\n\t\t\tvpc = {\n\t\t\t\t...this.props.vpc,\n\t\t\t};\n\t\t}\n\n\t\tlet subnets = [\n\t\t\t...(vpc.subnets || []),\n\t\t];\n\n\t\tif (subnets.length === 0) {\n\t\t\tsubnets = [{}];\n\t\t}\n\n\t\tsubnets.splice(i + 1, 0, {} as VpcTypes.Subnet);\n\t\tvpc.subnets = subnets;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tvpc: vpc,\n\t\t});\n\t}\n\n\tonChangeSubnet(i: number, subnet: VpcTypes.Subnet): void {\n\t\tlet vpc: VpcTypes.Vpc;\n\n\t\tif (this.state.changed) {\n\t\t\tvpc = {\n\t\t\t\t...this.state.vpc,\n\t\t\t};\n\t\t} else {\n\t\t\tvpc = {\n\t\t\t\t...this.props.vpc,\n\t\t\t};\n\t\t}\n\n\t\tlet subnets = [\n\t\t\t...(vpc.subnets || []),\n\t\t];\n\n\t\tif (subnets.length === 0) {\n\t\t\tsubnets = [{}];\n\t\t}\n\n\t\tsubnets[i] = subnet;\n\n\t\tvpc.subnets = subnets;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tvpc: vpc,\n\t\t});\n\t}\n\n\tonRemoveSubnet(i: number): void {\n\t\tlet vpc: VpcTypes.Vpc;\n\n\t\tif (this.state.changed) {\n\t\t\tvpc = {\n\t\t\t\t...this.state.vpc,\n\t\t\t};\n\t\t} else {\n\t\t\tvpc = {\n\t\t\t\t...this.props.vpc,\n\t\t\t};\n\t\t}\n\n\t\tlet subnets = [\n\t\t\t...(vpc.subnets || []),\n\t\t];\n\n\t\tif (subnets.length !== 0) {\n\t\t\tsubnets.splice(i, 1);\n\t\t}\n\n\t\tif (subnets.length === 0) {\n\t\t\tsubnets = [{}];\n\t\t}\n\n\t\tvpc.subnets = subnets;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tvpc: vpc,\n\t\t});\n\t}\n\n\tonAddRoute = (i: number): void => {\n\t\tlet vpc: VpcTypes.Vpc;\n\n\t\tif (this.state.changed) {\n\t\t\tvpc = {\n\t\t\t\t...this.state.vpc,\n\t\t\t};\n\t\t} else {\n\t\t\tvpc = {\n\t\t\t\t...this.props.vpc,\n\t\t\t};\n\t\t}\n\n\t\tlet routes = [\n\t\t\t...(vpc.routes || []),\n\t\t];\n\n\t\troutes.splice(i + 1, 0, {} as VpcTypes.Route);\n\t\tvpc.routes = routes;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tvpc: vpc,\n\t\t});\n\t}\n\n\tonChangeRoute(i: number, route: VpcTypes.Route): void {\n\t\tlet vpc: VpcTypes.Vpc;\n\n\t\tif (this.state.changed) {\n\t\t\tvpc = {\n\t\t\t\t...this.state.vpc,\n\t\t\t};\n\t\t} else {\n\t\t\tvpc = {\n\t\t\t\t...this.props.vpc,\n\t\t\t};\n\t\t}\n\n\t\tlet routes = [\n\t\t\t...vpc.routes,\n\t\t];\n\n\t\troutes[i] = route;\n\n\t\tvpc.routes = routes;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tvpc: vpc,\n\t\t});\n\t}\n\n\tonRemoveRoute(i: number): void {\n\t\tlet vpc: VpcTypes.Vpc;\n\n\t\tif (this.state.changed) {\n\t\t\tvpc = {\n\t\t\t\t...this.state.vpc,\n\t\t\t};\n\t\t} else {\n\t\t\tvpc = {\n\t\t\t\t...this.props.vpc,\n\t\t\t};\n\t\t}\n\n\t\tlet routes = [\n\t\t\t...vpc.routes,\n\t\t];\n\n\t\troutes.splice(i, 1);\n\n\t\tvpc.routes = routes;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tvpc: vpc,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tVpcActions.commit(this.state.vpc).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tvpc: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tVpcActions.remove(this.props.vpc.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet vpc: VpcTypes.Vpc = this.state.vpc ||\n\t\t\tthis.props.vpc;\n\n\t\tlet datacenter = DatacentersStore.datacenter(vpc.datacenter);\n\t\tlet datacenterName = datacenter ? datacenter.name : vpc.datacenter;\n\t\tlet org = OrganizationsStore.organization(this.props.vpc.organization);\n\n\t\tlet subnets = (vpc.subnets || []);\n\t\tif (subnets.length === 0) {\n\t\t\tsubnets.push({});\n\t\t}\n\n\t\tlet subnetsElem: JSX.Element[] = [];\n\t\tfor (let i = 0; i < subnets.length; i++) {\n\t\t\tlet index = i;\n\n\t\t\tsubnetsElem.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeSubnet(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonAdd={(): void => {\n\t\t\t\t\t\tthis.onAddSubnet(index);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveSubnet(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\tlet routes: JSX.Element[] = [\n\t\t\t {\n\t\t\t\t\tthis.onAddRoute(-1);\n\t\t\t\t}}\n\t\t\t/>,\n\t\t];\n\t\tif (vpc.routes) {\n\t\t\tfor (let i = 0; i < (vpc.routes || []).length; i++) {\n\t\t\t\tlet index = i;\n\n\t\t\t\troutes.push(\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onChangeRoute(index, state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonAdd={(): void => {\n\t\t\t\t\t\t\tthis.onAddRoute(index);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\t\tthis.onRemoveRoute(index);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet fields: PageInfos.Field[] = [\n\t\t\t{\n\t\t\t\tlabel: 'ID',\n\t\t\t\tvalue: this.props.vpc.id || 'Unknown',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Datacenter',\n\t\t\t\tvalue: datacenterName,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Organization',\n\t\t\t\tvalue: org ? org.name : this.props.vpc.organization,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'VLAN Number',\n\t\t\t\tvalue: this.props.vpc.vpc_id || 'Unknown',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Private IPv6 Network',\n\t\t\t\tvalue: this.props.vpc.network6 || 'Unknown',\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t];\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('network', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{subnetsElem}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{routes}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tvpc: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport DatacentersStore from '../stores/DatacentersStore';\nimport VpcDetailed from './VpcDetailed';\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tvpc: VpcTypes.VpcRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class Vpc extends React.Component {\n\trender(): JSX.Element {\n\t\tlet vpc = this.props.vpc;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    ;\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet orgName = '';\n\t\tif (vpc.organization) {\n\t\t\tlet org = OrganizationsStore.organization(vpc.organization);\n\t\t\torgName = org ? org.name : vpc.organization;\n\t\t} else {\n\t\t\torgName = 'Unknown';\n\t\t}\n\n\t\tlet datacenter = DatacentersStore.datacenter(vpc.datacenter);\n\t\tlet datacenterName = datacenter ? datacenter.name : vpc.datacenter;\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{vpc.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{orgName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{datacenterName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{vpc.network}\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as VpcTypes from '../types/VpcTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport * as DatacenterTypes from \"../types/DatacenterTypes\";\n\ninterface Props {\n\tfilter: VpcTypes.Filter;\n\tonFilter: (filter: VpcTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class VpcsFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet datacentersSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.datacenters && this.props.datacenters.length) {\n\t\t\tfor (let datacenter of this.props.datacenters) {\n\t\t\t\tdatacentersSelect.push(\n\t\t\t\t\t{datacenter.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.network = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.network;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.datacenter;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.datacenter = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{datacentersSelect}\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport VpcsStore from '../stores/VpcsStore';\nimport * as VpcActions from '../actions/VpcActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class VpcsPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: VpcsStore.page,\n\t\t\tpageCount: VpcsStore.pageCount,\n\t\t\tpages: VpcsStore.pages,\n\t\t\tcount: VpcsStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tVpcsStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tVpcsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: VpcsStore.page,\n\t\t\tpageCount: VpcsStore.pageCount,\n\t\t\tpages: VpcsStore.pages,\n\t\t\tcount: VpcsStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tVpcActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tVpcActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tVpcActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tVpcActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tVpcActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport VpcsStore from '../stores/VpcsStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as VpcActions from '../actions/VpcActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport Vpc from './Vpc';\nimport VpcsFilter from './VpcsFilter';\nimport VpcsPage from './VpcsPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport DatacentersStore from \"../stores/DatacentersStore\";\nimport * as DatacenterActions from \"../actions/DatacenterActions\";\nimport * as DatacenterTypes from \"../types/DatacenterTypes\";\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tvpcs: VpcTypes.VpcsRo;\n\tfilter: VpcTypes.Filter;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tnetwork: string;\n\tdatacenter: string;\n\torganization: string;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tgroupBox: {\n\t\tmargin: '16px 0 0 0',\n\t\twidth: '100%',\n\t\tmaxWidth: '420px',\n\t} as React.CSSProperties,\n\tgroupBoxUser: {\n\t\tmargin: '16px 0 0 0',\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '107px',\n\t} as React.CSSProperties,\n\tselect: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tselectFirst: {\n\t\twidth: '100%',\n\t\tborderTopLeftRadius: '3px',\n\t\tborderBottomLeftRadius: '3px',\n\t} as React.CSSProperties,\n\tselectInner: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tselectBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmargin: '8px 8px 0 0',\n\t} as React.CSSProperties,\n};\n\nexport default class Vpcs extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tvpcs: VpcsStore.vpcs,\n\t\t\tfilter: VpcsStore.filter,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tnetwork: '',\n\t\t\torganization: '',\n\t\t\tdatacenter: '',\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tVpcsStore.addChangeListener(this.onChange);\n\t\tDatacentersStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tVpcActions.sync();\n\t\tDatacenterActions.sync();\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tVpcsStore.removeChangeListener(this.onChange);\n\t\tDatacentersStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet vpcs = VpcsStore.vpcs;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tvpcs.forEach((vpc: VpcTypes.Vpc): void => {\n\t\t\tif (curSelected[vpc.id]) {\n\t\t\t\tselected[vpc.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[vpc.id]) {\n\t\t\t\topened[vpc.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tvpcs: vpcs,\n\t\t\tfilter: VpcsStore.filter,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tVpcActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet vpcsDom: JSX.Element[] = [];\n\n\t\tlet hasOrganizations = false;\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\tif (this.state.organizations.length) {\n\t\t\thasOrganizations = true;\n\t\t\tfor (let organization of this.state.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\torganizationsSelect.push(\n\t\t\t\tNo Organizations,\n\t\t\t);\n\t\t}\n\n\t\tlet hasDatacenters = false;\n\t\tlet datacentersSelect: JSX.Element[] = [];\n\t\tif (this.state.datacenters.length) {\n\t\t\thasDatacenters = true;\n\t\t\tfor (let datacenter of this.state.datacenters) {\n\t\t\t\tdatacentersSelect.push(\n\t\t\t\t\t{datacenter.name},\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tdatacentersSelect.push(\n\t\t\t\tNo Datacenters,\n\t\t\t);\n\t\t}\n\n\t\tthis.state.vpcs.forEach((\n\t\t\t\tvpc: VpcTypes.VpcRo): void => {\n\t\t\tvpcsDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet vpcs = this.state.vpcs;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < vpcs.length; i++) {\n\t\t\t\t\t\t\tlet usr = vpcs[i];\n\n\t\t\t\t\t\t\tif (usr.id === vpc.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[vpcs[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: vpc.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[vpc.id]) {\n\t\t\t\t\t\tdelete selected[vpc.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[vpc.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: vpc.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[vpc.id]) {\n\t\t\t\t\t\tdelete opened[vpc.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[vpc.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    VPCs

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tVpcActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tVpcActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tnetwork: evt.target.value,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdatacenter: evt.target.value,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{datacentersSelect}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tVpcActions.create({\n\t\t\t\t\t\t\t\t\t\tid: null,\n\t\t\t\t\t\t\t\t\t\tnetwork: this.state.network,\n\t\t\t\t\t\t\t\t\t\torganization: this.state.organization ||\n\t\t\t\t\t\t\t\t\t\t\tthis.state.organizations[0].id,\n\t\t\t\t\t\t\t\t\t\tdatacenter: this.state.datacenter ||\n\t\t\t\t\t\t\t\t\t\t\tthis.state.datacenters[0].id,\n\t\t\t\t\t\t\t\t\t}).then((): void => {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tnetwork: '',\n\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>New\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tVpcActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t\tdatacenters={this.state.datacenters}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{vpcsDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nexport const SYNC = 'domain.sync';\nexport const SYNC_NAME = 'domain.sync_name';\nexport const TRAVERSE = 'domain.traverse';\nexport const FILTER = 'domain.filter';\nexport const CHANGE = 'domain.change';\n\nexport interface Domain {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\torganization?: string;\n\ttype?: string;\n\taws_id?: string;\n\taws_secret?: string;\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\tnetwork_role?: string;\n\torganization?: string;\n}\n\nexport type Domains = Domain[];\n\nexport type DomainRo = Readonly;\nexport type DomainsRo = ReadonlyArray;\n\nexport interface DomainDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tdomain?: Domain;\n\t\tdomains?: Domains;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass DomainsStore extends EventEmitter {\n\t_domains: DomainTypes.DomainsRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: DomainTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._domains = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget domains(): DomainTypes.DomainsRo {\n\t\treturn this._domains;\n\t}\n\n\tget domainsM(): DomainTypes.Domains {\n\t\tlet domains: DomainTypes.Domains = [];\n\t\tthis._domains.forEach((domain: DomainTypes.DomainRo): void => {\n\t\t\tdomains.push({\n\t\t\t\t...domain,\n\t\t\t});\n\t\t});\n\t\treturn domains;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): DomainTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tdomain(id: string): DomainTypes.DomainRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._domains[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: DomainTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(domains: DomainTypes.Domain[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < domains.length; i++) {\n\t\t\tdomains[i] = Object.freeze(domains[i]);\n\t\t\tthis._map[domains[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._domains = Object.freeze(domains);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: DomainTypes.DomainDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase DomainTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase DomainTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase DomainTypes.SYNC:\n\t\t\t\tthis._sync(action.data.domains, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new DomainsStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as DomainTypes from '../types/DomainTypes';\nimport DomainsStore from '../stores/DomainsStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\nlet syncNamesId: string;\n\nexport function sync(noLoading?: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader: Loader;\n\tif (!noLoading) {\n\t\tloader = new Loader().loading();\n\t}\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/domain')\n\t\t\t.query({\n\t\t\t\t...DomainsStore.filter,\n\t\t\t\tpage: DomainsStore.page,\n\t\t\t\tpage_count: DomainsStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (loader) {\n\t\t\t\t\tloader.done();\n\t\t\t\t}\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load domains');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: DomainTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tdomains: res.body.domains,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function syncName(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncNamesId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/domain')\n\t\t\t.query({\n\t\t\t\tnames: true,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncNamesId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load domain names');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: DomainTypes.SYNC_NAME,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tdomains: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: DomainTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: DomainTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: DomainTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(domain: DomainTypes.Domain): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/domain/' + domain.id)\n\t\t\t.send(domain)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save domain');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(domain: DomainTypes.Domain): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/domain')\n\t\t\t.send(domain)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create domain');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(domainId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/domain/' + domainId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete domain');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(domainIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/domain')\n\t\t\t.send(domainIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete domains');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: DomainTypes.DomainDispatch) => {\n\tswitch (action.type) {\n\t\tcase DomainTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as DomainActions from '../actions/DomainActions';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport OrganizationsStore from \"../stores/OrganizationsStore\";\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport PageSelect from \"./PageSelect\";\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdomain: DomainTypes.DomainRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tdomain: DomainTypes.Domain;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\trules: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n};\n\nexport default class DomainDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tdomain: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet domain: any;\n\n\t\tif (this.state.changed) {\n\t\t\tdomain = {\n\t\t\t\t...this.state.domain,\n\t\t\t};\n\t\t} else {\n\t\t\tdomain = {\n\t\t\t\t...this.props.domain,\n\t\t\t};\n\t\t}\n\n\t\tdomain[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdomain: domain,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDomainActions.commit(this.state.domain).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tdomain: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDomainActions.remove(this.props.domain.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet domain: DomainTypes.Domain = this.state.domain ||\n\t\t\tthis.props.domain;\n\t\tlet org = OrganizationsStore.organization(this.props.domain.organization);\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('type', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('aws_id', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('aws_secret', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tdomain: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport DomainDetailed from './DomainDetailed';\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdomain: DomainTypes.DomainRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class Domain extends React.Component {\n\trender(): JSX.Element {\n\t\tlet domain = this.props.domain;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    ;\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet orgName = '';\n\t\tif (domain.organization) {\n\t\t\tlet org = OrganizationsStore.organization(domain.organization);\n\t\t\torgName = org ? org.name : domain.organization;\n\t\t} else {\n\t\t\torgName = 'Node Domain';\n\t\t}\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{domain.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{orgName}\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as DomainTypes from '../types/DomainTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\n\ninterface Props {\n\tfilter: DomainTypes.Filter;\n\tonFilter: (filter: DomainTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class DomainsFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport DomainsStore from '../stores/DomainsStore';\nimport * as DomainActions from '../actions/DomainActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class DomainsPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: DomainsStore.page,\n\t\t\tpageCount: DomainsStore.pageCount,\n\t\t\tpages: DomainsStore.pages,\n\t\t\tcount: DomainsStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tDomainsStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tDomainsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: DomainsStore.page,\n\t\t\tpageCount: DomainsStore.pageCount,\n\t\t\tpages: DomainsStore.pages,\n\t\t\tcount: DomainsStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tDomainActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tDomainActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tDomainActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tDomainActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tDomainActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from \"../Constants\";\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport DomainsStore from '../stores/DomainsStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as DomainActions from '../actions/DomainActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport Domain from './Domain';\nimport DomainsFilter from './DomainsFilter';\nimport DomainsPage from './DomainsPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tdomains: DomainTypes.DomainsRo;\n\tfilter: DomainTypes.Filter;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\torganization: string;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tgroupBox: {\n\t\tmargin: '16px 0 0 8px',\n\t\twidth: '100%',\n\t\tmaxWidth: '200px',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tselectFirst: {\n\t\twidth: '100%',\n\t\tborderTopLeftRadius: '3px',\n\t\tborderBottomLeftRadius: '3px',\n\t} as React.CSSProperties,\n\tselectInner: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tselectBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Domains extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdomains: DomainsStore.domains,\n\t\t\tfilter: DomainsStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\torganization: '',\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tDomainsStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tDomainActions.sync();\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tDomainsStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet domains = DomainsStore.domains;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tdomains.forEach((domain: DomainTypes.Domain): void => {\n\t\t\tif (curSelected[domain.id]) {\n\t\t\t\tselected[domain.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[domain.id]) {\n\t\t\t\topened[domain.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdomains: domains,\n\t\t\tfilter: DomainsStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDomainActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet domainsDom: JSX.Element[] = [];\n\n\t\tlet hasOrganizations = false;\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\tif (this.state.organizations.length) {\n\t\t\thasOrganizations = true;\n\t\t\tfor (let organization of this.state.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\torganizationsSelect.push(\n\t\t\t\tNo Organizations,\n\t\t\t);\n\t\t}\n\n\t\tthis.state.domains.forEach((\n\t\t\t\tdomain: DomainTypes.DomainRo): void => {\n\t\t\tdomainsDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet domains = this.state.domains;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < domains.length; i++) {\n\t\t\t\t\t\t\tlet usr = domains[i];\n\n\t\t\t\t\t\t\tif (usr.id === domain.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[domains[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: domain.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[domain.id]) {\n\t\t\t\t\t\tdelete selected[domain.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[domain.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: domain.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[domain.id]) {\n\t\t\t\t\t\tdelete opened[domain.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[domain.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let domainId of Object.keys(this.state.selected)) {\n\t\t\tlet domain = DomainsStore.domain(domainId);\n\t\t\tif (domain) {\n\t\t\t\tselectedNames.push(domain.name || domainId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(domainId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Domains

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tDomainActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tDomainActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tDomainActions.create({\n\t\t\t\t\t\t\t\t\tid: null,\n\t\t\t\t\t\t\t\t}).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tDomainActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{domainsDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nexport const SYNC = 'balancer.sync';\nexport const TRAVERSE = 'balancer.traverse';\nexport const FILTER = 'balancer.filter';\nexport const CHANGE = 'balancer.change';\n\nexport interface Domain {\n\tdomain?: string;\n\thost?: string;\n}\n\nexport interface Backend {\n\tprotocol?: string;\n\thostname?: string;\n\tport?: number;\n}\n\nexport interface State {\n\ttimestamp?: string;\n\trequests?: number;\n\tretries?: number;\n\twebsockets?: number;\n\tonline?: string[];\n\tunknown_high?: string[];\n\tunknown_mid?: string[];\n\tunknown_low?: string[];\n\toffline?: string[];\n}\n\nexport interface Balancer {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\tstate?: boolean;\n\ttype?: string;\n\torganization?: string;\n\tdatacenter?: string;\n\tcertificates?: string[];\n\twebsockets?: boolean;\n\tdomains?: Domain[];\n\tbackends?: Backend[];\n\tcheck_path?: string;\n\tstates?: {[key: string]: State};\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\torganization?: string;\n\tdatacenter?: string;\n}\n\nexport type Balancers = Balancer[];\n\nexport type BalancerRo = Readonly;\nexport type BalancersRo = ReadonlyArray;\n\nexport interface BalancerDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tbalancer?: Balancer;\n\t\tbalancers?: Balancers;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as BalancerTypes from '../types/BalancerTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass BalancersStore extends EventEmitter {\n\t_balancers: BalancerTypes.BalancersRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: BalancerTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._balancers = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget balancers(): BalancerTypes.BalancersRo {\n\t\treturn this._balancers;\n\t}\n\n\tget balancersM(): BalancerTypes.Balancers {\n\t\tlet balancers: BalancerTypes.Balancers = [];\n\t\tthis._balancers.forEach((balancer: BalancerTypes.BalancerRo): void => {\n\t\t\tbalancers.push({\n\t\t\t\t...balancer,\n\t\t\t});\n\t\t});\n\t\treturn balancers;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): BalancerTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tbalancer(id: string): BalancerTypes.BalancerRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._balancers[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: BalancerTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(balancers: BalancerTypes.Balancer[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < balancers.length; i++) {\n\t\t\tbalancers[i] = Object.freeze(balancers[i]);\n\t\t\tthis._map[balancers[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._balancers = Object.freeze(balancers);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: BalancerTypes.BalancerDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase BalancerTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase BalancerTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase BalancerTypes.SYNC:\n\t\t\t\tthis._sync(action.data.balancers, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new BalancersStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as BalancerTypes from '../types/BalancerTypes';\nimport BalancersStore from '../stores/BalancersStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(noLoading?: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader: Loader;\n\tif (!noLoading) {\n\t\tloader = new Loader().loading();\n\t}\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/balancer')\n\t\t\t.query({\n\t\t\t\t...BalancersStore.filter,\n\t\t\t\tpage: BalancersStore.page,\n\t\t\t\tpage_count: BalancersStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (loader) {\n\t\t\t\t\tloader.done();\n\t\t\t\t}\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load balancers');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: BalancerTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tbalancers: res.body.balancers,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: BalancerTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: BalancerTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: BalancerTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(balancer: BalancerTypes.Balancer): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/balancer/' + balancer.id)\n\t\t\t.send(balancer)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save balancer');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(balancer: BalancerTypes.Balancer): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/balancer')\n\t\t\t.send(balancer)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create balancer');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(balancerId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/balancer/' + balancerId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete balancer');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(balancerIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/balancer')\n\t\t\t.send(balancerIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete balancers');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: BalancerTypes.BalancerDispatch) => {\n\tswitch (action.type) {\n\t\tcase BalancerTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as BalancerTypes from '../types/BalancerTypes';\n\ninterface Props {\n\tdomain: BalancerTypes.Domain;\n\tonChange: (state: BalancerTypes.Domain) => void;\n\tonRemove: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tdomain: {\n\t\twidth: '100%',\n\t\tborderRadius: '0 3px 3px 0',\n\t} as React.CSSProperties,\n\tdomainBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class BalancerDomain extends React.Component {\n\tclone(): BalancerTypes.Domain {\n\t\treturn {\n\t\t\t...this.props.domain,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tlet domain = this.props.domain;\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\tstate.domain = evt.target.value;\n\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\tstate.host = evt.target.value;\n\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as BalancerTypes from '../types/BalancerTypes';\n\ninterface Props {\n\tbackend: BalancerTypes.Backend;\n\tonChange: (state: BalancerTypes.Backend) => void;\n\tonRemove: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\thostname: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\thostnameBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '0 1 auto',\n\t\twidth: '52px',\n\t\tborderRadius: '0 3px 3px 0',\n\t} as React.CSSProperties,\n};\n\nexport default class BalancerBackend extends React.Component {\n\tclone(): BalancerTypes.Backend {\n\t\treturn {\n\t\t\t...this.props.backend,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tlet backend = this.props.backend;\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\tstate.protocol = evt.target.value;\n\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\tstate.hostname = evt.target.value;\n\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.port = parseInt(evt.target.value, 10);\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as BalancerTypes from '../types/BalancerTypes';\nimport * as BalancerActions from '../actions/BalancerActions';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport BalancerDomain from './BalancerDomain';\nimport BalancerBackend from './BalancerBackend';\nimport CertificatesStore from '../stores/CertificatesStore';\nimport PageInput from './PageInput';\nimport PageSelect from './PageSelect';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport PageSelectButton from \"./PageSelectButton\";\nimport PageSwitch from \"./PageSwitch\";\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tcertificates: CertificateTypes.CertificatesRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tbalancer: BalancerTypes.BalancerRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tbalancer: BalancerTypes.Balancer;\n\taddCert: string;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\trules: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n};\n\nexport default class BalancerDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tbalancer: null,\n\t\t\taddCert: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet balancer: any;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tbalancer[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonAddBackend = (): void => {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet backends = [\n\t\t\t...balancer.backends,\n\t\t\t{\n\t\t\t\tprotocol: 'http',\n\t\t\t\thostname: '',\n\t\t\t\tport: 80,\n\t\t\t},\n\t\t];\n\n\t\tbalancer.backends = backends;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonChangeBackend(i: number, state: BalancerTypes.Backend): void {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet backends = [\n\t\t\t...balancer.backends,\n\t\t];\n\n\t\tbackends[i] = state;\n\n\t\tbalancer.backends = backends;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonRemoveBackend(i: number): void {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet backends = [\n\t\t\t...balancer.backends,\n\t\t];\n\n\t\tbackends.splice(i, 1);\n\n\t\tbalancer.backends = backends;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonAddCert = (): void => {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (!this.state.addCert && !this.props.certificates.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet certId = this.state.addCert;\n\t\tif (!certId) {\n\t\t\tfor (let certificate of this.props.certificates) {\n\t\t\t\tif (certificate.organization !== balancer.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcertId = certificate.id;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tlet certificates = [\n\t\t\t...(balancer.certificates || []),\n\t\t];\n\n\t\tif (certificates.indexOf(certId) === -1) {\n\t\t\tcertificates.push(certId);\n\t\t}\n\n\t\tcertificates.sort();\n\n\t\tbalancer.certificates = certificates;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonRemoveCert = (certId: string): void => {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet certificates = [\n\t\t\t...(balancer.certificates || []),\n\t\t];\n\n\t\tlet i = certificates.indexOf(certId);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tcertificates.splice(i, 1);\n\n\t\tbalancer.certificates = certificates;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonAddDomain = (): void => {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet domains = [\n\t\t\t...balancer.domains,\n\t\t\t{},\n\t\t];\n\n\t\tbalancer.domains = domains;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonChangeDomain(i: number, state: BalancerTypes.Domain): void {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet domains = [\n\t\t\t...balancer.domains,\n\t\t];\n\n\t\tdomains[i] = state;\n\n\t\tbalancer.domains = domains;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonRemoveDomain(i: number): void {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet domains = [\n\t\t\t...balancer.domains,\n\t\t];\n\n\t\tdomains.splice(i, 1);\n\n\t\tbalancer.domains = domains;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tBalancerActions.commit(this.state.balancer).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tbalancer: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tBalancerActions.remove(this.props.balancer.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet balancer: BalancerTypes.Balancer = this.state.balancer ||\n\t\t\tthis.props.balancer;\n\n\t\tlet hasOrganizations = false;\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\tif (this.props.organizations.length) {\n\t\t\torganizationsSelect.push(\n\t\t\t\t,\n\t\t\t);\n\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\thasOrganizations = true;\n\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasOrganizations) {\n\t\t\torganizationsSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\tlet domains: JSX.Element[] = [];\n\t\tfor (let i = 0; i < balancer.domains.length; i++) {\n\t\t\tlet index = i;\n\n\t\t\tdomains.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeDomain(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveDomain(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\tlet backends: JSX.Element[] = [];\n\t\tfor (let i = 0; i < balancer.backends.length; i++) {\n\t\t\tlet index = i;\n\n\t\t\tbackends.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeBackend(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveBackend(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\tlet certificates: JSX.Element[] = [];\n\t\tfor (let certId of (balancer.certificates || [])) {\n\t\t\tlet cert = CertificatesStore.certificate(certId);\n\t\t\tif (!cert) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcertificates.push(\n\t\t\t\t\n\t\t\t\t\t{cert.name}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveCert(cert.id);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet hasCertificates = false;\n\t\tlet certificatesSelect: JSX.Element[] = [];\n\t\tif (this.props.certificates.length) {\n\t\t\tfor (let certificate of this.props.certificates) {\n\t\t\t\tif (certificate.organization !== balancer.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\thasCertificates = true;\n\n\t\t\t\tcertificatesSelect.push(\n\t\t\t\t\t,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasCertificates) {\n\t\t\tcertificatesSelect = [\n\t\t\t\t,\n\t\t\t];\n\t\t}\n\n\t\tlet hasDatacenters = false;\n\t\tlet datacentersSelect: JSX.Element[] = [];\n\t\tif (this.props.datacenters.length) {\n\t\t\tdatacentersSelect.push(\n\t\t\t\t);\n\n\t\t\thasDatacenters = true;\n\t\t\tfor (let datacenter of this.props.datacenters) {\n\t\t\t\tdatacentersSelect.push(\n\t\t\t\t\t{datacenter.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasDatacenters) {\n\t\t\tdatacentersSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\tlet requests = 0;\n\t\tlet retries = 0;\n\t\tlet websockets = 0;\n\t\tlet states: string[] = [];\n\t\tlet statesMap: {[index: string]: number} = {};\n\t\tlet online: string[] = [];\n\t\tlet unknownHigh: string[] = [];\n\t\tlet unknownMid: string[] = [];\n\t\tlet unknownLow: string[] = [];\n\t\tlet offline: string[] = [];\n\t\tlet backendsClasses: string[] = [];\n\n\t\tif (this.props.balancer.state && balancer.states) {\n\t\t\tfor (let key in balancer.states) {\n\t\t\t\tif (!balancer.states.hasOwnProperty(key)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet state = balancer.states[key];\n\n\t\t\t\trequests += state.requests || 0;\n\t\t\t\tretries += state.retries || 0;\n\t\t\t\twebsockets += state.websockets || 0;\n\n\t\t\t\tfor (let backend of state.offline) {\n\t\t\t\t\tlet curState = statesMap[backend];\n\t\t\t\t\tif (curState === undefined || curState > 1) {\n\t\t\t\t\t\tstatesMap[backend] = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let backend of state.unknown_low) {\n\t\t\t\t\tlet curState = statesMap[backend];\n\t\t\t\t\tif (curState === undefined || curState > 2) {\n\t\t\t\t\t\tstatesMap[backend] = 2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let backend of state.unknown_mid) {\n\t\t\t\t\tlet curState = statesMap[backend];\n\t\t\t\t\tif (curState === undefined || curState > 3) {\n\t\t\t\t\t\tstatesMap[backend] = 3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let backend of state.unknown_high) {\n\t\t\t\t\tlet curState = statesMap[backend];\n\t\t\t\t\tif (curState === undefined || curState > 4) {\n\t\t\t\t\t\tstatesMap[backend] = 4;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let backend of state.online) {\n\t\t\t\t\tlet curState = statesMap[backend];\n\t\t\t\t\tif (curState === undefined) {\n\t\t\t\t\t\tstatesMap[backend] = 5;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (let backend in statesMap) {\n\t\t\t\tif (!statesMap.hasOwnProperty(backend)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet state = statesMap[backend];\n\n\t\t\t\tswitch (state) {\n\t\t\t\t\tcase 5:\n\t\t\t\t\t\tonline.push(backend);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 4:\n\t\t\t\t\t\tunknownHigh.push(backend);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 3:\n\t\t\t\t\t\tunknownMid.push(backend);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\tunknownLow.push(backend);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\toffline.push(backend);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tonline.sort();\n\t\t\tfor (let backend of online) {\n\t\t\t\tstates.push(backend + ' - Online');\n\t\t\t\tbackendsClasses.push('bp3-text-intent-success');\n\t\t\t}\n\t\t\tunknownHigh.sort();\n\t\t\tfor (let backend of unknownHigh) {\n\t\t\t\tstates.push(backend + ' - Unknown High');\n\t\t\t\tbackendsClasses.push('bp3-text-intent-warning');\n\t\t\t}\n\t\t\tunknownMid.sort();\n\t\t\tfor (let backend of unknownMid) {\n\t\t\t\tstates.push(backend + ' - Unknown Mid');\n\t\t\t\tbackendsClasses.push('bp3-text-intent-warning');\n\t\t\t}\n\t\t\tunknownLow.sort();\n\t\t\tfor (let backend of unknownLow) {\n\t\t\t\tstates.push(backend + ' - Unknown Low');\n\t\t\t\tbackendsClasses.push('bp3-text-intent-warning');\n\t\t\t}\n\t\t\toffline.sort();\n\t\t\tfor (let backend of offline) {\n\t\t\t\tstates.push(backend + ' - Offline');\n\t\t\t\tbackendsClasses.push('bp3-text-intent-danger');\n\t\t\t}\n\t\t}\n\n\t\tif (!states.length) {\n\t\t\tstates = ['-'];\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('state', !balancer.state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('type', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('datacenter', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{datacentersSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{domains}\n\t\t\t\t\t\n\t\t\t\t\t\tAdd Domain\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{backends}\n\t\t\t\t\t\n\t\t\t\t\t\tAdd Backend\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('websockets', !balancer.websockets);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('organization', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tCertificates\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{certificates}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddCert: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddCert}\n\t\t\t\t\t>\n\t\t\t\t\t\t{certificatesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('check_path', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tbalancer: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as BalancerTypes from '../types/BalancerTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport DatacentersStore from '../stores/DatacentersStore';\nimport BalancerDetailed from './BalancerDetailed';\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tcertificates: CertificateTypes.CertificatesRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tbalancer: BalancerTypes.BalancerRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '2px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class Balancer extends React.Component {\n\trender(): JSX.Element {\n\t\tlet balancer = this.props.balancer;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    ;\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet orgName = '';\n\t\tif (!MiscUtils.objectIdNil(balancer.organization)) {\n\t\t\tlet org = OrganizationsStore.organization(balancer.organization);\n\t\t\torgName = org ? org.name : balancer.organization;\n\t\t}\n\n\t\tlet datacenter = DatacentersStore.datacenter(\n\t\t\tthis.props.balancer.datacenter);\n\t\tlet datacenterName = datacenter ? datacenter.name : null;\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{balancer.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{orgName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{datacenterName}\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport BalancersStore from '../stores/BalancersStore';\nimport * as BalancerActions from '../actions/BalancerActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class BalancersPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: BalancersStore.page,\n\t\t\tpageCount: BalancersStore.pageCount,\n\t\t\tpages: BalancersStore.pages,\n\t\t\tcount: BalancersStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tBalancersStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tBalancersStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: BalancersStore.page,\n\t\t\tpageCount: BalancersStore.pageCount,\n\t\t\tpages: BalancersStore.pages,\n\t\t\tcount: BalancersStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tBalancerActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tBalancerActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tBalancerActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tBalancerActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tBalancerActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as BalancerTypes from '../types/BalancerTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\n\ninterface Props {\n\tfilter: BalancerTypes.Filter;\n\tonFilter: (filter: BalancerTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class BalancersFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as BalancerTypes from '../types/BalancerTypes';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport BalancersStore from '../stores/BalancersStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport DatacentersStore from '../stores/DatacentersStore';\nimport * as BalancerActions from '../actions/BalancerActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport * as DatacenterActions from '../actions/DatacenterActions';\nimport Balancer from './Balancer';\nimport BalancersPage from './BalancersPage';\nimport BalancersFilter from './BalancersFilter';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\nimport CertificatesStore from \"../stores/CertificatesStore\";\nimport * as CertificateActions from \"../actions/CertificateActions\";\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tbalancers: BalancerTypes.BalancersRo;\n\tfilter: BalancerTypes.Filter;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tcertificates: CertificateTypes.CertificatesRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Balancers extends React.Component<{}, State> {\n\tinterval: NodeJS.Timer;\n\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tbalancers: BalancersStore.balancers,\n\t\t\tfilter: BalancersStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tcertificates: CertificatesStore.certificates,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tBalancersStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tCertificatesStore.addChangeListener(this.onChange);\n\t\tDatacentersStore.addChangeListener(this.onChange);\n\t\tBalancerActions.sync();\n\t\tOrganizationActions.sync();\n\t\tCertificateActions.sync();\n\t\tDatacenterActions.sync();\n\n\t\tthis.interval = setInterval(() => {\n\t\t\tBalancerActions.sync(true);\n\t\t}, 5000);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tBalancersStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t\tCertificatesStore.removeChangeListener(this.onChange);\n\t\tDatacentersStore.removeChangeListener(this.onChange);\n\t\tclearInterval(this.interval);\n\t}\n\n\tonChange = (): void => {\n\t\tlet balancers = BalancersStore.balancers;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tbalancers.forEach((balancer: BalancerTypes.Balancer): void => {\n\t\t\tif (curSelected[balancer.id]) {\n\t\t\t\tselected[balancer.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[balancer.id]) {\n\t\t\t\topened[balancer.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tbalancers: balancers,\n\t\t\tfilter: BalancersStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tcertificates: CertificatesStore.certificates,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tBalancerActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet balancersDom: JSX.Element[] = [];\n\n\t\tthis.state.balancers.forEach((\n\t\t\t\tbalancer: BalancerTypes.BalancerRo): void => {\n\t\t\tbalancersDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet balancers = this.state.balancers;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < balancers.length; i++) {\n\t\t\t\t\t\t\tlet usr = balancers[i];\n\n\t\t\t\t\t\t\tif (usr.id === balancer.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[balancers[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: balancer.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[balancer.id]) {\n\t\t\t\t\t\tdelete selected[balancer.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[balancer.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: balancer.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[balancer.id]) {\n\t\t\t\t\t\tdelete opened[balancer.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[balancer.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let instId of Object.keys(this.state.selected)) {\n\t\t\tlet inst = BalancersStore.balancer(instId);\n\t\t\tif (inst) {\n\t\t\t\tselectedNames.push(inst.name || instId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(instId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Balancers

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tBalancerActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tBalancerActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tBalancerActions.create({\n\t\t\t\t\t\t\t\t} as BalancerTypes.Balancer).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tBalancerActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{balancersDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as StorageTypes from '../types/StorageTypes';\nimport * as StorageActions from '../actions/StorageActions';\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport PageSelect from './PageSelect';\nimport PageSwitch from './PageSwitch';\nimport ConfirmButton from './ConfirmButton';\nimport * as InstanceActions from \"../actions/InstanceActions\";\nimport * as Alert from \"../Alert\";\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\tstorage: StorageTypes.StorageRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tstorage: StorageTypes.Storage;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tcontrolButton: {\n\t\tmarginRight: '10px',\n\t} as React.CSSProperties,\n};\n\nexport default class Storage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tstorage: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet storage: any;\n\n\t\tif (this.state.changed) {\n\t\t\tstorage = {\n\t\t\t\t...this.state.storage,\n\t\t\t};\n\t\t} else {\n\t\t\tstorage = {\n\t\t\t\t...this.props.storage,\n\t\t\t};\n\t\t}\n\n\t\tstorage[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tstorage: storage,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tStorageActions.commit(this.state.storage).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tstorage: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonSync = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tStorageActions.commit(this.props.storage).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tAlert.success('Storage sync started');\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tStorageActions.remove(this.props.storage.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet storage: StorageTypes.Storage = this.state.storage ||\n\t\t\tthis.props.storage;\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('endpoint', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('bucket', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('type', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('access_key', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('secret_key', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('insecure', !storage.insecure);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tstorage: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t>\n\t\t\t\t {\n\t\t\t\t\t\tthis.onSync();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as StorageTypes from '../types/StorageTypes';\nimport StoragesStore from '../stores/StoragesStore';\nimport * as StorageActions from '../actions/StorageActions';\nimport NonState from './NonState';\nimport Storage from './Storage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface State {\n\tstorages: StorageTypes.StoragesRo;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\tnoCerts: {\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n};\n\nexport default class Storages extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tstorages: StoragesStore.storages,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tStoragesStore.addChangeListener(this.onChange);\n\t\tStorageActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tStoragesStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tstorages: StoragesStore.storages,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet storagesDom: JSX.Element[] = [];\n\n\t\tthis.state.storages.forEach((\n\t\t\t\tstorage: StorageTypes.StorageRo): void => {\n\t\t\tstoragesDom.push();\n\t\t});\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Storages

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tStorageActions.create(null).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{storagesDom}\n\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n}\n","/// \nexport const SYNC = 'image.sync';\nexport const SYNC_DATACENTER = 'image.sync_datacenter';\nexport const TRAVERSE = 'image.traverse';\nexport const FILTER = 'image.filter';\nexport const CHANGE = 'image.change';\n\nexport interface Image {\n\tid?: string;\n\tdisk_id?: string;\n\tname?: string;\n\tcomment?: string;\n\torganization?: string;\n\tstorage?: string;\n\tsigned?: boolean;\n\tkey?: string;\n\ttype?: string;\n\tfirmware?: string;\n\tetag?: string;\n\tlast_modified?: string;\n\tstorage_class?: string;\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\ttype?: string;\n\torganization?: string;\n}\n\nexport type Images = Image[];\n\nexport type ImageRo = Readonly;\nexport type ImagesRo = ReadonlyArray;\n\nexport interface ImageDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\timage?: Image;\n\t\timages?: Images;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as ImageTypes from '../types/ImageTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass ImagesStore extends EventEmitter {\n\t_images: ImageTypes.ImagesRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: ImageTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._images = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget images(): ImageTypes.ImagesRo {\n\t\treturn this._images;\n\t}\n\n\tget imagesM(): ImageTypes.Images {\n\t\tlet images: ImageTypes.Images = [];\n\t\tthis._images.forEach((image: ImageTypes.ImageRo): void => {\n\t\t\timages.push({\n\t\t\t\t...image,\n\t\t\t});\n\t\t});\n\t\treturn images;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): ImageTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\timage(id: string): ImageTypes.ImageRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._images[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: ImageTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(images: ImageTypes.Image[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < images.length; i++) {\n\t\t\timages[i] = Object.freeze(images[i]);\n\t\t\tthis._map[images[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._images = Object.freeze(images);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: ImageTypes.ImageDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase ImageTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase ImageTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase ImageTypes.SYNC:\n\t\t\t\tthis._sync(action.data.images, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new ImagesStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as ImageTypes from '../types/ImageTypes';\nimport ImagesStore from '../stores/ImagesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/image')\n\t\t\t.query({\n\t\t\t\t...ImagesStore.filter,\n\t\t\t\tpage: ImagesStore.page,\n\t\t\t\tpage_count: ImagesStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load images');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: ImageTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\timages: res.body.images,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function syncDatacenter(datacenter: string): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tif (!datacenter) {\n\t\tDispatcher.dispatch({\n\t\t\ttype: ImageTypes.SYNC_DATACENTER,\n\t\t\tdata: {\n\t\t\t\timages: [],\n\t\t\t},\n\t\t});\n\t\treturn Promise.resolve();\n\t}\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/image')\n\t\t\t.query({\n\t\t\t\tdatacenter: datacenter,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load images names');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: ImageTypes.SYNC_DATACENTER,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\timages: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: ImageTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: ImageTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: ImageTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(image: ImageTypes.Image): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/image/' + image.id)\n\t\t\t.send(image)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save image');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(image: ImageTypes.Image): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/image')\n\t\t\t.send(image)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create image');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(imageId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/image/' + imageId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete image');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(imageIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/image')\n\t\t\t.send(imageIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete images');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: ImageTypes.ImageDispatch) => {\n\tswitch (action.type) {\n\t\tcase ImageTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as ImageTypes from '../types/ImageTypes';\nimport * as ImageActions from '../actions/ImageActions';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport OrganizationsStore from \"../stores/OrganizationsStore\";\nimport StoragesStore from \"../stores/StoragesStore\";\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\timage: ImageTypes.ImageRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\timage: ImageTypes.Image;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n};\n\nexport default class ImageDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\timage: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet image: any;\n\n\t\tif (this.state.changed) {\n\t\t\timage = {\n\t\t\t\t...this.state.image,\n\t\t\t};\n\t\t} else {\n\t\t\timage = {\n\t\t\t\t...this.props.image,\n\t\t\t};\n\t\t}\n\n\t\timage[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\timage: image,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tImageActions.commit(this.state.image).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\timage: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tImageActions.remove(this.props.image.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet image: ImageTypes.Image = this.state.image ||\n\t\t\tthis.props.image;\n\n\t\tlet org = OrganizationsStore.organization(this.props.image.organization);\n\t\tlet store = StoragesStore.storage(this.props.image.storage);\n\n\t\tlet imgType = image.type;\n\t\tif (imgType) {\n\t\t\timgType = imgType.charAt(0).toUpperCase() + imgType.slice(1);\n\t\t}\n\n\t\tlet orgName = '';\n\t\tif (image.organization) {\n\t\t\torgName = org ? org.name : image.organization;\n\t\t} else {\n\t\t\torgName = 'Public Image';\n\t\t}\n\n\t\tif (image.signed) {\n\t\t\torgName = 'Signed Public Image';\n\t\t}\n\n\t\tlet storageClass = 'Default';\n\t\tswitch (this.props.image.storage_class) {\n\t\t\tcase 'aws_standard':\n\t\t\t\tstorageClass = 'AWS Standard';\n\t\t\t\tbreak;\n\t\t\tcase 'aws_infrequent_access':\n\t\t\t\tstorageClass = 'AWS Standard-IA';\n\t\t\t\tbreak;\n\t\t\tcase 'aws_glacier':\n\t\t\t\tstorageClass = 'AWS Glacier';\n\t\t\t\tbreak;\n\t\t\tcase 'oracle_standard':\n\t\t\t\tstorageClass = 'Oracle Standard';\n\t\t\t\tbreak;\n\t\t\tcase 'oracle_archive':\n\t\t\t\tstorageClass = 'Oracle Archive';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\timage: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as ImageTypes from '../types/ImageTypes';\nimport ImageDetailed from './ImageDetailed';\nimport OrganizationsStore from \"../stores/OrganizationsStore\";\n\ninterface Props {\n\timage: ImageTypes.ImageRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n};\n\nexport default class Image extends React.Component {\n\trender(): JSX.Element {\n\t\tlet image = this.props.image;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    ;\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet orgClass = '';\n\t\tlet orgIcon = '';\n\t\tlet orgName = '';\n\t\tif (image.organization) {\n\t\t\tlet org = OrganizationsStore.organization(image.organization);\n\t\t\torgIcon = 'bp3-text-muted bp3-icon-people';\n\t\t\torgName = org ? org.name : image.organization;\n\t\t} else {\n\t\t\torgIcon = 'bp3-text-muted bp3-icon-globe';\n\t\t\torgName = 'Public Image';\n\t\t}\n\n\t\tif (image.signed) {\n\t\t\torgClass = 'bp3-text-intent-success';\n\t\t\torgIcon = 'bp3-icon-endorsed';\n\t\t\torgName = 'Signed Public Image';\n\t\t}\n\n\t\tlet diskIcon = 'bp3-icon-box';\n\t\tswitch (this.props.image.storage_class) {\n\t\t\tcase 'aws_standard':\n\t\t\t\tdiskIcon = 'bp3-icon-box';\n\t\t\t\tbreak;\n\t\t\tcase 'aws_infrequent_access':\n\t\t\t\tdiskIcon = 'bp3-icon-compressed';\n\t\t\t\tbreak;\n\t\t\tcase 'aws_glacier':\n\t\t\t\tdiskIcon = 'bp3-icon-snowflake';\n\t\t\t\tbreak;\n\t\t\tcase 'oracle_standard':\n\t\t\t\tdiskIcon = 'bp3-icon-box';\n\t\t\t\tbreak;\n\t\t\tcase 'oracle_archive':\n\t\t\t\tdiskIcon = 'bp3-icon-snowflake';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{image.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{orgName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{image.key}\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as ImageTypes from '../types/ImageTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\n\ninterface Props {\n\tfilter: ImageTypes.Filter;\n\tonFilter: (filter: ImageTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class ImagesFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.type;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.type = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport ImagesStore from '../stores/ImagesStore';\nimport * as ImageActions from '../actions/ImageActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class ImagesPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: ImagesStore.page,\n\t\t\tpageCount: ImagesStore.pageCount,\n\t\t\tpages: ImagesStore.pages,\n\t\t\tcount: ImagesStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tImagesStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tImagesStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: ImagesStore.page,\n\t\t\tpageCount: ImagesStore.pageCount,\n\t\t\tpages: ImagesStore.pages,\n\t\t\tcount: ImagesStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tImageActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tImageActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tImageActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tImageActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tImageActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as ImageTypes from '../types/ImageTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport ImagesStore from '../stores/ImagesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as ImageActions from '../actions/ImageActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport Image from './Image';\nimport ImagesFilter from './ImagesFilter';\nimport ImagesPage from './ImagesPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\timages: ImageTypes.ImagesRo;\n\tfilter: ImageTypes.Filter;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Images extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\timages: ImagesStore.images,\n\t\t\tfilter: ImagesStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tImagesStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tImageActions.sync();\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tImagesStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet images = ImagesStore.images;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\timages.forEach((image: ImageTypes.Image): void => {\n\t\t\tif (curSelected[image.id]) {\n\t\t\t\tselected[image.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[image.id]) {\n\t\t\t\topened[image.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\timages: images,\n\t\t\tfilter: ImagesStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tImageActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet imagesDom: JSX.Element[] = [];\n\n\t\tthis.state.images.forEach((\n\t\t\t\timage: ImageTypes.ImageRo): void => {\n\t\t\timagesDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet images = this.state.images;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < images.length; i++) {\n\t\t\t\t\t\t\tlet usr = images[i];\n\n\t\t\t\t\t\t\tif (usr.id === image.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[images[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: image.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[image.id]) {\n\t\t\t\t\t\tdelete selected[image.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[image.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: image.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[image.id]) {\n\t\t\t\t\t\tdelete opened[image.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[image.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let instId of Object.keys(this.state.selected)) {\n\t\t\tlet inst = ImagesStore.image(instId);\n\t\t\tif (inst) {\n\t\t\t\tselectedNames.push(inst.name || instId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(instId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Images

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tImageActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tImageActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tImageActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{imagesDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nexport const SYNC = 'disk.sync';\nexport const TRAVERSE = 'disk.traverse';\nexport const FILTER = 'disk.filter';\nexport const CHANGE = 'disk.change';\n\nexport interface Disk {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\tnode?: string;\n\torganization?: string;\n\tstate?: string;\n\tinstance?: string;\n\tdelete_protection?: boolean;\n\timage?: string;\n\trestore_image?: string;\n\tbacking?: boolean;\n\tbacking_image?: string;\n\tindex?: string;\n\tsize?: number;\n\tnew_size?: number;\n\tbackup?: boolean;\n\tbackups?: Backup[];\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\torganization?: string;\n\tdatacenter?: string;\n\tinstance?: string;\n\tnode?: string;\n}\n\nexport interface Backup {\n\timage?: string;\n\tname?: string;\n}\n\nexport type Disks = Disk[];\n\nexport type DiskRo = Readonly;\nexport type DisksRo = ReadonlyArray;\n\nexport interface DiskDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tdisk?: Disk;\n\t\tdisks?: Disks;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as DiskTypes from '../types/DiskTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass DisksStore extends EventEmitter {\n\t_disks: DiskTypes.DisksRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: DiskTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._disks = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget disks(): DiskTypes.DisksRo {\n\t\treturn this._disks;\n\t}\n\n\tget disksM(): DiskTypes.Disks {\n\t\tlet disks: DiskTypes.Disks = [];\n\t\tthis._disks.forEach((disk: DiskTypes.DiskRo): void => {\n\t\t\tdisks.push({\n\t\t\t\t...disk,\n\t\t\t});\n\t\t});\n\t\treturn disks;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): DiskTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tdisk(id: string): DiskTypes.DiskRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._disks[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: DiskTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(disks: DiskTypes.Disk[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < disks.length; i++) {\n\t\t\tdisks[i] = Object.freeze(disks[i]);\n\t\t\tthis._map[disks[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._disks = Object.freeze(disks);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: DiskTypes.DiskDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase DiskTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase DiskTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase DiskTypes.SYNC:\n\t\t\t\tthis._sync(action.data.disks, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new DisksStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as DiskTypes from '../types/DiskTypes';\nimport DisksStore from '../stores/DisksStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(noLoading?: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader: Loader;\n\tif (!noLoading) {\n\t\tloader = new Loader().loading();\n\t}\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/disk')\n\t\t\t.query({\n\t\t\t\t...DisksStore.filter,\n\t\t\t\tpage: DisksStore.page,\n\t\t\t\tpage_count: DisksStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (loader) {\n\t\t\t\t\tloader.done();\n\t\t\t\t}\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load disks');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: DiskTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tdisks: res.body.disks,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: DiskTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: DiskTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: DiskTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(disk: DiskTypes.Disk): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/disk/' + disk.id)\n\t\t\t.send(disk)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save disk');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(disk: DiskTypes.Disk): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/disk')\n\t\t\t.send(disk)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create disk');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(diskId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/disk/' + diskId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete disk');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(diskIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/disk')\n\t\t\t.send(diskIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete disks');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function forceRemoveMulti(diskIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/disk')\n\t\t\t.query({\n\t\t\t\tforce: true,\n\t\t\t})\n\t\t\t.send(diskIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete disks');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function updateMulti(diskIds: string[],\n\t\tstate: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/disk')\n\t\t\t.send({\n\t\t\t\t\"ids\": diskIds,\n\t\t\t\t\"state\": state,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to update disks');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: DiskTypes.DiskDispatch) => {\n\tswitch (action.type) {\n\t\tcase DiskTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Props {\n\thidden?: boolean;\n\tlabel: string;\n\tvalue: string;\n\tconfirmMsg?: string;\n\tdisabled?: boolean;\n\tbuttonClass?: string;\n\tprogressClassName?: string;\n\tonChange: (val: string) => void;\n\tonSubmit: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\tmarginBottom: '15px',\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tselect: {\n\t\twidth: '100%',\n\t\tborderTopLeftRadius: '3px',\n\t\tborderBottomLeftRadius: '3px',\n\t} as React.CSSProperties,\n\tselectInner: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tselectBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class PageSelectButton extends React.Component {\n\trender(): JSX.Element {\n\t\tlet buttonClass = 'bp3-button';\n\t\tif (this.props.buttonClass) {\n\t\t\tbuttonClass += ' ' + this.props.buttonClass;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.props.onChange(evt.target.value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.props.children}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nexport const SYNC = 'instance.sync';\nexport const SYNC_NODE = 'instance.sync_node';\nexport const TRAVERSE = 'instance.traverse';\nexport const FILTER = 'instance.filter';\nexport const CHANGE = 'instance.change';\n\nexport interface Instance {\n\tid?: string;\n\torganization?: string;\n\tzone?: string;\n\tnode?: string;\n\timage?: string;\n\timage_backing?: boolean;\n\tstatus?: string;\n\tuptime?: string;\n\tstate?: string;\n\tvm_state?: string;\n\tvm_timestamp?: string;\n\tuefi?: boolean;\n\tsecure_boot?: boolean;\n\ttpm?: boolean;\n\tdhcp_server?: boolean;\n\tcloud_type?: string;\n\tdelete_protection?: boolean;\n\tskip_source_dest_check?: boolean;\n\tqemu_version?: string;\n\tpublic_ips?: string[];\n\tpublic_ips6?: string[];\n\tprivate_ips?: string[];\n\tprivate_ips6?: string[];\n\tgateway_ips?: string[];\n\tgateway_ips6?: string[];\n\toracle_private_ips?: string[];\n\toracle_public_ips?: string[];\n\tnetwork_namespace?: string;\n\thost_ips?: string[];\n\tpublic_mac?: string;\n\tname?: string;\n\tcomment?: string;\n\tinit_disk_size?: number;\n\tmemory?: number;\n\tprocessors?: number;\n\tnetwork_roles?: string[];\n\tisos?: Iso[];\n\tusb_devices?: UsbDevice[];\n\tpci_devices?: PciDevice[];\n\tdrive_devices?: DriveDevice[];\n\tiscsi_devices?: IscsiDevice[];\n\troot_enabled?: boolean;\n\troot_passwd?: string;\n\tvnc?: boolean;\n\tvnc_password?: string;\n\tvnc_display?: number;\n\tspice?: boolean;\n\tspice_password?: string;\n\tspice_port?: number;\n\tgui?: boolean;\n\tdomain?: string;\n\tno_public_address?: boolean;\n\tno_public_address6?: boolean;\n\tno_host_address?: boolean;\n\tvpc?: string;\n\tsubnet?: string;\n\toracle_subnet?: string;\n\tcount?: number;\n\tinfo?: Info;\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\tstate?: string;\n\tnetwork_role?: string;\n\tnetwork_namespace?: string;\n\torganization?: string;\n\tnode?: string;\n\tzone?: string;\n\tvpc?: string;\n\tsubnet?: string;\n}\n\nexport interface Iso {\n\tname?: string;\n}\n\nexport interface UsbDevice {\n\tname?: string;\n\tvendor?: string;\n\tproduct?: string;\n\tbus?: string;\n\taddress?: string;\n}\n\nexport interface PciDevice {\n\tslot?: string;\n\tclass?: string;\n\tname?: string;\n\tdriver?: string;\n}\n\nexport interface IscsiDevice {\n\thost?: string;\n\tport?: number;\n\tiqn?: string;\n\tlun?: string;\n\tusername?: string;\n\tpassword?: string;\n\turi?: string;\n}\n\nexport interface DriveDevice {\n\tid?: string;\n}\n\nexport interface OracleSubnet {\n\tid?: string;\n\tname?: string;\n}\n\nexport interface Info {\n\tnode?: string;\n\tnode_public_ip?: string;\n\tmtu?: number;\n\tiscsi?: boolean;\n\tfirewall_rules?: string[];\n\tauthorities?: string[];\n\tdisks?: string[];\n\tisos?: Iso[];\n\tusb_devices?: UsbDevice[];\n\tpci_devices?: PciDevice[];\n\tdrive_devices?: DriveDevice[];\n\toracle_subnets?: OracleSubnet[];\n}\n\nexport type Instances = Instance[];\nexport type InstancesNode = Map;\n\nexport type InstanceRo = Readonly;\nexport type InstancesRo = ReadonlyArray;\nexport type InstancesNodeRo = Map;\n\nexport interface InstanceDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tnode?: string;\n\t\tinstance?: Instance;\n\t\tinstances?: Instances;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass InstancesStore extends EventEmitter {\n\t_instances: InstanceTypes.InstancesRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: InstanceTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._instances = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget instances(): InstanceTypes.InstancesRo {\n\t\treturn this._instances;\n\t}\n\n\tget instancesM(): InstanceTypes.Instances {\n\t\tlet instances: InstanceTypes.Instances = [];\n\t\tthis._instances.forEach((instance: InstanceTypes.InstanceRo): void => {\n\t\t\tinstances.push({\n\t\t\t\t...instance,\n\t\t\t});\n\t\t});\n\t\treturn instances;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): InstanceTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tinstance(id: string): InstanceTypes.InstanceRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._instances[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: InstanceTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(instances: InstanceTypes.Instance[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < instances.length; i++) {\n\t\t\tinstances[i] = Object.freeze(instances[i]);\n\t\t\tthis._map[instances[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._instances = Object.freeze(instances);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: InstanceTypes.InstanceDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase InstanceTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase InstanceTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase InstanceTypes.SYNC:\n\t\t\t\tthis._sync(action.data.instances, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new InstancesStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport InstancesStore from '../stores/InstancesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(noLoading?: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader: Loader;\n\tif (!noLoading) {\n\t\tloader = new Loader().loading();\n\t}\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/instance')\n\t\t\t.query({\n\t\t\t\t...InstancesStore.filter,\n\t\t\t\tpage: InstancesStore.page,\n\t\t\t\tpage_count: InstancesStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (loader) {\n\t\t\t\t\tloader.done();\n\t\t\t\t}\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load instances');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: InstanceTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tinstances: res.body.instances,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: InstanceTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: InstanceTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: InstanceTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(instance: InstanceTypes.Instance): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/instance/' + instance.id)\n\t\t\t.send(instance)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save instance');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(instance: InstanceTypes.Instance): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/instance')\n\t\t\t.send(instance)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create instance');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(instanceId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/instance/' + instanceId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete instance');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(instanceIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/instance')\n\t\t\t.send(instanceIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete instances');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function forceRemoveMulti(instanceIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/instance')\n\t\t\t.query({\n\t\t\t\tforce: true,\n\t\t\t})\n\t\t\t.send(instanceIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to force delete instances');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function updateMulti(instanceIds: string[],\n\t\tstate: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/instance')\n\t\t\t.send({\n\t\t\t\t\"ids\": instanceIds,\n\t\t\t\t\"state\": state,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to update instances');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function syncNode(node: string): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tif (!node) {\n\t\treturn Promise.resolve();\n\t}\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/instance')\n\t\t\t.query({\n\t\t\t\tnode_names: node,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load instance names');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: InstanceTypes.SYNC_NODE,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tnode: node,\n\t\t\t\t\t\tinstances: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: InstanceTypes.InstanceDispatch) => {\n\tswitch (action.type) {\n\t\tcase InstanceTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass InstancesNodeStore extends EventEmitter {\n\t_instances: InstanceTypes.InstancesNodeRo = new Map(Object.freeze([]));\n\t_map: {[key: string]: [string, number]} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._instances = new Map(\n\t\t\tObject.freeze([]));\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tinstances(node: string): InstanceTypes.InstancesRo {\n\t\treturn this._instances.get(node) || [];\n\t}\n\n\tinstance(id: string): InstanceTypes.InstanceRo {\n\t\tlet x = this._map[id];\n\t\tif (x === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._instances.get(x[0])[x[1]];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(node: string, instances: InstanceTypes.Instance[]): void {\n\t\tfor (let i = 0; i < instances.length; i++) {\n\t\t\tinstances[i] = Object.freeze(instances[i]);\n\t\t}\n\t\tthis._instances.set(node, Object.freeze(instances));\n\n\t\tthis._map = {};\n\t\tfor (let item of this._instances.entries()) {\n\t\t\tlet insts = item[1];\n\n\t\t\tfor (let i = 0; i < insts.length; i++) {\n\t\t\t\tthis._map[insts[i].id] = [item[0], i];\n\t\t\t}\n\t\t}\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: InstanceTypes.InstanceDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase InstanceTypes.SYNC_NODE:\n\t\t\t\tthis._sync(action.data.node, action.data.instances);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new InstancesNodeStore();\n","/// \nimport * as React from 'react';\nimport * as DiskTypes from '../types/DiskTypes';\nimport * as DiskActions from '../actions/DiskActions';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport PageInput from './PageInput';\nimport PageSelect from './PageSelect';\nimport PageSwitch from './PageSwitch';\nimport PageNumInput from './PageNumInput';\nimport PageInfo from './PageInfo';\nimport PageSelectButtonConfirm from './PageSelectButtonConfirm';\nimport Help from './Help';\nimport * as PageInfos from './PageInfo';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport NodesStore from '../stores/NodesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as InstanceActions from '../actions/InstanceActions';\nimport InstancesNodeStore from '../stores/InstancesNodeStore';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as Alert from '../Alert';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdisk: DiskTypes.DiskRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tdisk: DiskTypes.Disk;\n\tinstances: InstanceTypes.InstancesRo;\n\trestoreImage: string;\n\tresizeDisk: boolean;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\trules: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n};\n\nexport default class DiskDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tdisk: null,\n\t\t\tinstances: null,\n\t\t\trestoreImage: null,\n\t\t\tresizeDisk: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tInstancesNodeStore.addChangeListener(this.onChange);\n\t\tInstanceActions.syncNode(this.props.disk.node);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tInstancesNodeStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tinstances: InstancesNodeStore.instances(this.props.disk.node),\n\t\t});\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet disk: any;\n\n\t\tif (this.state.changed) {\n\t\t\tdisk = {\n\t\t\t\t...this.state.disk,\n\t\t\t};\n\t\t} else {\n\t\t\tdisk = {\n\t\t\t\t...this.props.disk,\n\t\t\t};\n\t\t}\n\n\t\tdisk[name] = val;\n\n\t\tif (name === 'instance' && !Number(disk.index)) {\n\t\t\tdisk['index'] = '0';\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdisk: disk,\n\t\t});\n\t}\n\n\tsetResizeDisk(val: boolean): void {\n\t\tlet disk: any;\n\n\t\tif (this.state.changed) {\n\t\t\tdisk = {\n\t\t\t\t...this.state.disk,\n\t\t\t};\n\t\t} else {\n\t\t\tdisk = {\n\t\t\t\t...this.props.disk,\n\t\t\t};\n\t\t}\n\n\t\tif (val) {\n\t\t\tdisk.new_size = disk.size;\n\t\t} else {\n\t\t\tdisk.new_size = 0;\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tresizeDisk: val,\n\t\t\tdisk: disk,\n\t\t});\n\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\n\t\tlet disk = {\n\t\t\t...this.state.disk,\n\t\t};\n\n\t\tif (this.state.resizeDisk && disk.new_size > disk.size) {\n\t\t\tdisk.state = 'expand';\n\t\t}\n\n\t\tDiskActions.commit(disk).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tdisk: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tresizeDisk: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDiskActions.remove(this.props.disk.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonRestoreBackup = (): void => {\n\t\tlet restoreImage: string;\n\n\t\tif (this.state.restoreImage) {\n\t\t\trestoreImage = this.state.restoreImage;\n\t\t} else if (this.props.disk.backups && this.props.disk.backups.length) {\n\t\t\trestoreImage = this.props.disk.backups[0].image;\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\n\t\tlet disk: DiskTypes.Disk;\n\n\t\tif (this.state.changed) {\n\t\t\tdisk = {\n\t\t\t\t...this.state.disk,\n\t\t\t};\n\t\t} else {\n\t\t\tdisk = {\n\t\t\t\t...this.props.disk,\n\t\t\t};\n\t\t}\n\n\t\tdisk.state = 'restore';\n\t\tdisk.restore_image = restoreImage;\n\n\t\tDiskActions.commit(disk).then((): void => {\n\t\t\tAlert.success('Disk restore started');\n\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet disk: DiskTypes.Disk = this.state.disk ||\n\t\t\tthis.props.disk;\n\n\t\tlet node = NodesStore.node(this.props.disk.node);\n\t\tlet org = OrganizationsStore.organization(this.props.disk.organization);\n\n\t\tlet hasInstances = false;\n\t\tlet instancesSelect: JSX.Element[] = [];\n\t\tif (this.state.instances === null) {\n\t\t\tinstancesSelect = [];\n\t\t} else {\n\t\t\tif (this.state.instances.length) {\n\t\t\t\tinstancesSelect.push(\n\t\t\t\t\t);\n\n\t\t\t\thasInstances = true;\n\t\t\t\tfor (let instance of this.state.instances) {\n\t\t\t\t\tinstancesSelect.push(\n\t\t\t\t\t\t{instance.name},\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!hasInstances) {\n\t\t\t\tinstancesSelect = [];\n\t\t\t}\n\t\t}\n\n\t\tlet backupsSelect: JSX.Element[] = [];\n\t\tfor (let backup of (disk.backups || [])) {\n\t\t\tbackupsSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet hasBackups = false;\n\t\tif (!backupsSelect.length) {\n\t\t\tbackupsSelect = [];\n\t\t} else {\n\t\t\thasBackups = true\n\t\t}\n\n\t\tlet statusText = 'Unknown';\n\t\tlet statusClass = 'tab-close ';\n\t\tswitch (this.props.disk.state) {\n\t\t\tcase 'provision':\n\t\t\t\tstatusText = 'Provisioning';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'available':\n\t\t\t\tif (this.props.disk.instance) {\n\t\t\t\t\tstatusText = 'Connected';\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = 'Available';\n\t\t\t\t}\n\t\t\t\tstatusClass += ' bp3-text-intent-success';\n\t\t\t\tbreak;\n\t\t\tcase 'destroy':\n\t\t\t\tstatusText = 'Destroying';\n\t\t\t\tstatusClass += ' bp3-text-intent-danger';\n\t\t\t\tbreak;\n\t\t\tcase 'snapshot':\n\t\t\t\tstatusText = 'Snapshotting';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'backup':\n\t\t\t\tstatusText = 'Backing Up';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'restore':\n\t\t\t\tstatusText = 'Restoring';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'expand':\n\t\t\t\tstatusText = 'Expanding';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet fields: PageInfos.Field[] = [\n\t\t\t{\n\t\t\t\tlabel: 'ID',\n\t\t\t\tvalue: this.props.disk.id || 'Unknown',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Image',\n\t\t\t\tvalue: this.props.disk.image || 'Blank Disk',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Organization',\n\t\t\t\tvalue: org ? org.name : this.props.disk.organization,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Node',\n\t\t\t\tvalue: (node ? node.name : this.props.disk.node) || '-',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Size',\n\t\t\t\tvalue: this.props.disk.size + 'GB',\n\t\t\t},\n\t\t];\n\n\t\tlet backingImage = this.props.disk.backing_image;\n\t\tif (backingImage) {\n\t\t\tbackingImage = backingImage.replace('-', '\\n');\n\n\t\t\tfields.splice(2, 0, {\n\t\t\t\tlabel: 'Backing Image',\n\t\t\t\tvalue: backingImage,\n\t\t\t});\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{statusText}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('instance', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{instancesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('index', String(val));\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('delete_protection', !disk.delete_protection);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setResizeDisk(!this.state.resizeDisk);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('new_size', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('backup', !disk.backup);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tRestore Backup\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\trestoreImage: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onRestoreBackup}\n\t\t\t\t\t>\n\t\t\t\t\t\t{backupsSelect}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tdisk: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as DiskTypes from '../types/DiskTypes';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport DiskDetailed from './DiskDetailed';\nimport NodesStore from \"../stores/NodesStore\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdisk: DiskTypes.DiskRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class Disk extends React.Component {\n\trender(): JSX.Element {\n\t\tlet disk = this.props.disk;\n\t\tlet node = NodesStore.node(this.props.disk.node);\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    ;\n\t\t}\n\n\t\tlet orgName = '';\n\t\tif (disk.organization) {\n\t\t\tlet org = OrganizationsStore.organization(disk.organization);\n\t\t\torgName = org ? org.name : disk.organization;\n\t\t} else {\n\t\t\torgName = 'Node Disk';\n\t\t}\n\n\t\tlet statusText = 'Unknown';\n\t\tlet statusClass = 'bp3-cell';\n\t\tswitch (disk.state) {\n\t\t\tcase 'provision':\n\t\t\t\tstatusText = 'Provisioning';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'available':\n\t\t\t\tif (disk.instance) {\n\t\t\t\t\tstatusText = 'Connected';\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = 'Available';\n\t\t\t\t}\n\t\t\t\tstatusClass += ' bp3-text-intent-success';\n\t\t\t\tbreak;\n\t\t\tcase 'destroy':\n\t\t\t\tstatusText = 'Destroying';\n\t\t\t\tstatusClass += ' bp3-text-intent-danger';\n\t\t\t\tbreak;\n\t\t\tcase 'snapshot':\n\t\t\t\tstatusText = 'Snapshotting';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'backup':\n\t\t\t\tstatusText = 'Backing Up';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'restore':\n\t\t\t\tstatusText = 'Restoring';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'expand':\n\t\t\t\tstatusText = 'Expanding';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{disk.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{statusText}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{orgName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{node ? node.name : this.props.disk.node}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{disk.size}GB\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as DiskTypes from '../types/DiskTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport * as NodeTypes from '../types/NodeTypes';\n\ninterface Props {\n\tfilter: DiskTypes.Filter;\n\tonFilter: (filter: DiskTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tnodes: NodeTypes.NodesRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class DisksFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet nodesSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.nodes && this.props.nodes.length) {\n\t\t\tfor (let node of this.props.nodes) {\n\t\t\t\tnodesSelect.push(\n\t\t\t\t\t{node.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.instance = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.instance;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport DisksStore from '../stores/DisksStore';\nimport * as DiskActions from '../actions/DiskActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class DisksPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: DisksStore.page,\n\t\t\tpageCount: DisksStore.pageCount,\n\t\t\tpages: DisksStore.pages,\n\t\t\tcount: DisksStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tDisksStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tDisksStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: DisksStore.page,\n\t\t\tpageCount: DisksStore.pageCount,\n\t\t\tpages: DisksStore.pages,\n\t\t\tcount: DisksStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tDiskActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tDiskActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tDiskActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tDiskActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tDiskActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as ImageTypes from '../types/ImageTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass ImagesDatacenterStore extends EventEmitter {\n\t_images: ImageTypes.ImagesRo = Object.freeze([]);\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._images = Object.freeze([]);\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget images(): ImageTypes.ImagesRo {\n\t\treturn this._images;\n\t}\n\n\tget imagesM(): ImageTypes.Images {\n\t\tlet images: ImageTypes.Images = [];\n\t\tthis._images.forEach((\n\t\t\t\timage: ImageTypes.ImageRo): void => {\n\t\t\timages.push({\n\t\t\t\t...image,\n\t\t\t});\n\t\t});\n\t\treturn images;\n\t}\n\n\timage(id: string): ImageTypes.ImageRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._images[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(images: ImageTypes.Image[]): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < images.length; i++) {\n\t\t\timages[i] = Object.freeze(images[i]);\n\t\t\tthis._map[images[i].id] = i;\n\t\t}\n\n\t\tthis._images = Object.freeze(images);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: ImageTypes.ImageDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase ImageTypes.SYNC_DATACENTER:\n\t\t\t\tthis._sync(action.data.images);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new ImagesDatacenterStore();\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass NodesZoneStore extends EventEmitter {\n\t_nodes: NodeTypes.NodesRo = Object.freeze([]);\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._nodes = Object.freeze([]);\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget nodes(): NodeTypes.NodesRo {\n\t\treturn this._nodes;\n\t}\n\n\tget nodesM(): NodeTypes.Nodes {\n\t\tlet nodes: NodeTypes.Nodes = [];\n\t\tthis._nodes.forEach((\n\t\t\t\tnode: NodeTypes.NodeRo): void => {\n\t\t\tnodes.push({\n\t\t\t\t...node,\n\t\t\t});\n\t\t});\n\t\treturn nodes;\n\t}\n\n\tnode(id: string): NodeTypes.NodeRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._nodes[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(nodes: NodeTypes.Node[]): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < nodes.length; i++) {\n\t\t\tnodes[i] = Object.freeze(nodes[i]);\n\t\t\tthis._map[nodes[i].id] = i;\n\t\t}\n\n\t\tthis._nodes = Object.freeze(nodes);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: NodeTypes.NodeDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase NodeTypes.SYNC_ZONE:\n\t\t\t\tthis._sync(action.data.nodes);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new NodesZoneStore();\n","/// \nimport * as React from 'react';\n\ninterface Props {\n\tstyle?: React.CSSProperties;\n\tmessage: string;\n\tchanged: boolean;\n\tdisabled: boolean;\n\tclosed?: boolean;\n\thidden?: boolean;\n\tlight?: boolean;\n\tonCancel: () => void;\n\tonCreate: () => void;\n}\n\nconst css = {\n\tmessage: {\n\t\tmarginTop: '6px',\n\t} as React.CSSProperties,\n\tbox: {\n\t\tmarginTop: '15px',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmarginLeft: '10px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tflexShrink: 0,\n\t} as React.CSSProperties,\n};\n\nexport default class PageCreate extends React.Component {\n\trender(): JSX.Element {\n\t\tlet style: React.CSSProperties = this.props.light ? null : css.box;\n\n\t\tif (this.props.style) {\n\t\t\tstyle = {\n\t\t\t\t...style,\n\t\t\t\t...this.props.style,\n\t\t\t};\n\t\t}\n\n\t\tlet closedDom: JSX.Element;\n\t\tif (this.props.closed) {\n\t\t\tclosedDom = \n\t\t\t\tClose\n\t\t\t;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\tCancel\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tCreate\n\t\t\t\t\t\n\t\t\t\t\t{closedDom}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as DiskTypes from '../types/DiskTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as ImageTypes from '../types/ImageTypes';\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport * as DiskActions from '../actions/DiskActions';\nimport * as ImageActions from '../actions/ImageActions';\nimport * as InstanceActions from '../actions/InstanceActions';\nimport * as NodeActions from '../actions/NodeActions';\nimport ImagesDatacenterStore from '../stores/ImagesDatacenterStore';\nimport InstancesNodeStore from '../stores/InstancesNodeStore';\nimport NodesZoneStore from '../stores/NodesZoneStore';\nimport PageInput from './PageInput';\nimport PageInputButton from './PageInputButton';\nimport PageCreate from './PageCreate';\nimport PageSelect from './PageSelect';\nimport PageSwitch from \"./PageSwitch\";\nimport PageNumInput from './PageNumInput';\nimport Help from './Help';\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tzones: ZoneTypes.ZonesRo;\n\tonClose: () => void;\n}\n\ninterface State {\n\tclosed: boolean;\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tdisk: DiskTypes.Disk;\n\tdatacenter: string;\n\tzone: string;\n\timages: ImageTypes.ImagesRo;\n\tnodes: NodeTypes.NodesRo;\n\tinstances: InstanceTypes.InstancesRo;\n\thiddenImages: boolean;\n}\n\nconst css = {\n\trow: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class DiskNew extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tclosed: false,\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tdisk: {\n\t\t\t\tname: 'New Disk',\n\t\t\t\tindex: \"1\",\n\t\t\t\tsize: 10,\n\t\t\t},\n\t\t\tdatacenter: '',\n\t\t\tzone: '',\n\t\t\timages: [],\n\t\t\tnodes: [],\n\t\t\tinstances: [],\n\t\t\thiddenImages: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tImagesDatacenterStore.addChangeListener(this.onChange);\n\t\tNodesZoneStore.addChangeListener(this.onChange);\n\t\tInstancesNodeStore.addChangeListener(this.onChange);\n\t\tImageActions.syncDatacenter('');\n\t\tNodeActions.syncZone('');\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tImagesDatacenterStore.removeChangeListener(this.onChange);\n\t\tNodesZoneStore.removeChangeListener(this.onChange);\n\t\tInstancesNodeStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\timages: ImagesDatacenterStore.images,\n\t\t\tnodes: NodesZoneStore.nodes,\n\t\t\tinstances: InstancesNodeStore.instances(this.state.disk.node),\n\t\t});\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet disk: any = {\n\t\t\t...this.state.disk,\n\t\t};\n\n\t\tdisk[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdisk: disk,\n\t\t});\n\t}\n\n\tonCreate = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\n\t\tlet disk: any = {\n\t\t\t...this.state.disk,\n\t\t};\n\n\t\tif (this.props.organizations.length && !disk.organization) {\n\t\t\tdisk.organization = this.props.organizations[0].id;\n\t\t}\n\n\t\tDiskActions.create(disk).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Disk created successfully',\n\t\t\t\tchanged: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t\tchanged: true,\n\t\t\t\t});\n\t\t\t}, 2000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet disk = this.state.disk;\n\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\tif (this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet hasDatacenters = false;\n\t\tlet datacentersSelect: JSX.Element[] = [];\n\t\tif (this.props.datacenters.length) {\n\t\t\tdatacentersSelect.push(\n\t\t\t\t);\n\n\t\t\thasDatacenters = true;\n\t\t\tfor (let datacenter of this.props.datacenters) {\n\t\t\t\tdatacentersSelect.push(\n\t\t\t\t\t{datacenter.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasDatacenters) {\n\t\t\tdatacentersSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\tlet datacenter = this.state.datacenter;\n\t\tlet hasZones = false;\n\t\tlet zonesSelect: JSX.Element[] = [];\n\t\tif (this.props.zones.length) {\n\t\t\tzonesSelect.push();\n\n\t\t\tfor (let zone of this.props.zones) {\n\t\t\t\tif (zone.datacenter !== datacenter) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\thasZones = true;\n\n\t\t\t\tzonesSelect.push(\n\t\t\t\t\t{zone.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasZones) {\n\t\t\tzonesSelect = [];\n\t\t}\n\n\t\tlet hasNodes = false;\n\t\tlet nodesSelect: JSX.Element[] = [];\n\t\tif (this.state.nodes.length) {\n\t\t\tnodesSelect.push();\n\n\t\t\thasNodes = true;\n\t\t\tfor (let node of this.state.nodes) {\n\t\t\t\tnodesSelect.push(\n\t\t\t\t\t{node.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasNodes) {\n\t\t\tnodesSelect = [];\n\t\t}\n\n\t\tlet hasInstances = false;\n\t\tlet instancesSelect: JSX.Element[] = [];\n\t\tif (this.state.instances.length) {\n\t\t\tinstancesSelect.push(\n\t\t\t\t);\n\n\t\t\thasInstances = true;\n\t\t\tfor (let instance of this.state.instances) {\n\t\t\t\tinstancesSelect.push(\n\t\t\t\t\t{instance.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasInstances) {\n\t\t\tinstancesSelect = [];\n\t\t}\n\n\n\t\tlet imagesSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tlet imagesMap = new Map();\n\t\tlet imagesVer = new Map();\n\t\tif (this.state.images.length) {\n\t\t\tfor (let image of this.state.images) {\n\t\t\t\tif (!this.state.hiddenImages && image.signed) {\n\t\t\t\t\tlet imgSpl = image.key.split('_');\n\n\t\t\t\t\tif (imgSpl.length >= 2 && imgSpl[imgSpl.length - 1].length >= 4) {\n\t\t\t\t\t\tlet imgKey = imgSpl[0] + '_' + image.firmware\n\n\t\t\t\t\t\tlet imgVer = parseInt(\n\t\t\t\t\t\t\timgSpl[imgSpl.length - 1].substring(0, 4), 10);\n\t\t\t\t\t\tif (imgVer) {\n\t\t\t\t\t\t\tlet curImg = imagesVer.get(imgKey);\n\t\t\t\t\t\t\tif (!curImg || imgVer > curImg[0]) {\n\t\t\t\t\t\t\t\timagesVer.set(imgKey, [imgVer, image.id, image.name]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\timagesMap.set(image.id, image.name);\n\t\t\t}\n\n\t\t\tfor (let item of imagesMap.entries()) {\n\t\t\t\timagesSelect.push(\n\t\t\t\t\t{item[1]},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tfor (let item of imagesVer.entries()) {\n\t\t\t\timagesSelect.push(\n\t\t\t\t\t{item[1][2]},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('organization', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdatacenter: val,\n\t\t\t\t\t\t\t\t\tdisk: {\n\t\t\t\t\t\t\t\t\t\t...this.state.disk,\n\t\t\t\t\t\t\t\t\t\tnode: '',\n\t\t\t\t\t\t\t\t\t\timage: '',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tImageActions.syncDatacenter(val);\n\t\t\t\t\t\t\t\tNodeActions.syncZone('');\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{datacentersSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tzone: val,\n\t\t\t\t\t\t\t\t\tdisk: {\n\t\t\t\t\t\t\t\t\t\t...this.state.disk,\n\t\t\t\t\t\t\t\t\t\tnode: '',\n\t\t\t\t\t\t\t\t\t\tinstance: '',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tNodeActions.syncZone(val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{zonesSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisk: {\n\t\t\t\t\t\t\t\t\t\t...this.state.disk,\n\t\t\t\t\t\t\t\t\t\tnode: val,\n\t\t\t\t\t\t\t\t\t\tinstance: '',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tInstanceActions.syncNode(val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{nodesSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('delete_protection', !disk.delete_protection);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('instance', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{instancesSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('index', String(val));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('image', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{imagesSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from \"../Constants\";\nimport * as DiskTypes from '../types/DiskTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as NodeTypes from '../types/NodeTypes';\nimport DisksStore from '../stores/DisksStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport NodesStore from '../stores/NodesStore';\nimport * as DiskActions from '../actions/DiskActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport * as NodeActions from '../actions/NodeActions';\nimport Disk from './Disk';\nimport DisksFilter from './DisksFilter';\nimport DisksPage from './DisksPage';\nimport DiskNew from './DiskNew';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\nimport ZonesStore from \"../stores/ZonesStore\";\nimport DatacentersStore from \"../stores/DatacentersStore\";\nimport * as ZoneTypes from \"../types/ZoneTypes\";\nimport * as DatacenterTypes from \"../types/DatacenterTypes\";\nimport InstancesStore from \"../stores/InstancesStore\";\nimport * as InstanceActions from \"../actions/InstanceActions\";\nimport * as DatacenterActions from \"../actions/DatacenterActions\";\nimport * as ZoneActions from \"../actions/ZoneActions\";\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tdisks: DiskTypes.DisksRo;\n\tfilter: DiskTypes.Filter;\n\tdebug: boolean;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tzones: ZoneTypes.ZonesRo;\n\tnodes: NodeTypes.NodesRo;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\tdebug: {\n\t\tmargin: '0 0 4px 0',\n\t} as React.CSSProperties,\n\tdebugButton: {\n\t\topacity: 0.5,\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Disks extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisks: DisksStore.disks,\n\t\t\tfilter: DisksStore.filter,\n\t\t\tdebug: false,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tzones: ZonesStore.zones,\n\t\t\tnodes: NodesStore.nodes,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tInstancesStore.addChangeListener(this.onChange);\n\t\tDisksStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tDatacentersStore.addChangeListener(this.onChange);\n\t\tZonesStore.addChangeListener(this.onChange);\n\t\tNodesStore.addChangeListener(this.onChange);\n\t\tInstanceActions.sync();\n\t\tDiskActions.sync();\n\t\tOrganizationActions.sync();\n\t\tDatacenterActions.sync();\n\t\tZoneActions.sync();\n\t\tNodeActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tInstancesStore.removeChangeListener(this.onChange);\n\t\tDisksStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t\tDatacentersStore.removeChangeListener(this.onChange);\n\t\tZonesStore.removeChangeListener(this.onChange);\n\t\tNodesStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet disks = DisksStore.disks;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tdisks.forEach((disk: DiskTypes.Disk): void => {\n\t\t\tif (curSelected[disk.id]) {\n\t\t\t\tselected[disk.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[disk.id]) {\n\t\t\t\topened[disk.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisks: disks,\n\t\t\tfilter: DisksStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tzones: ZonesStore.zones,\n\t\t\tnodes: NodesStore.nodes,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDiskActions.removeMulti(\n\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonForceDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDiskActions.forceRemoveMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonSnapshot = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDiskActions.updateMulti(\n\t\t\tObject.keys(this.state.selected), 'snapshot').then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonBackup = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDiskActions.updateMulti(\n\t\t\tObject.keys(this.state.selected), 'backup').then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet disksDom: JSX.Element[] = [];\n\n\t\tthis.state.disks.forEach((\n\t\t\tdisk: DiskTypes.DiskRo): void => {\n\t\t\tdisksDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet disks = this.state.disks;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < disks.length; i++) {\n\t\t\t\t\t\t\tlet usr = disks[i];\n\n\t\t\t\t\t\t\tif (usr.id === disk.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[disks[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: disk.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[disk.id]) {\n\t\t\t\t\t\tdelete selected[disk.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[disk.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: disk.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[disk.id]) {\n\t\t\t\t\t\tdelete opened[disk.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[disk.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet newDiskDom: JSX.Element;\n\t\tif (this.state.newOpened) {\n\t\t\tnewDiskDom = {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tnewOpened: false,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>;\n\t\t}\n\n\t\tlet debugClass = 'bp3-button bp3-icon-console ';\n\t\tif (this.state.debug) {\n\t\t\tdebugClass += 'bp3-active';\n\t\t}\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let instId of Object.keys(this.state.selected)) {\n\t\t\tlet inst = DisksStore.disk(instId);\n\t\t\tif (inst) {\n\t\t\t\tselectedNames.push(inst.name || instId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(instId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Disks

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdebug: !this.state.debug,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tDebug\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tDiskActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tDiskActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tnewOpened: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tDiskActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t\tnodes={this.state.nodes}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{newDiskDom}\n\t\t\t\t\t{disksDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass DomainsNameStore extends EventEmitter {\n\t_domains: DomainTypes.DomainsRo = Object.freeze([]);\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._domains = Object.freeze([]);\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget domains(): DomainTypes.DomainsRo {\n\t\treturn this._domains;\n\t}\n\n\tget domainsM(): DomainTypes.Domains {\n\t\tlet domains: DomainTypes.Domains = [];\n\t\tthis._domains.forEach((\n\t\t\t\tdomain: DomainTypes.DomainRo): void => {\n\t\t\tdomains.push({\n\t\t\t\t...domain,\n\t\t\t});\n\t\t});\n\t\treturn domains;\n\t}\n\n\tdomain(id: string): DomainTypes.DomainRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._domains[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(domains: DomainTypes.Domain[]): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < domains.length; i++) {\n\t\t\tdomains[i] = Object.freeze(domains[i]);\n\t\t\tthis._map[domains[i].id] = i;\n\t\t}\n\n\t\tthis._domains = Object.freeze(domains);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: DomainTypes.DomainDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase DomainTypes.SYNC_NAME:\n\t\t\t\tthis._sync(action.data.domains);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new DomainsNameStore();\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass VpcsZoneStore extends EventEmitter {\n\t_vpcs: VpcTypes.VpcsRo = Object.freeze([]);\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._vpcs = Object.freeze([]);\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget vpcs(): VpcTypes.VpcsRo {\n\t\treturn this._vpcs;\n\t}\n\n\tget vpcsM(): VpcTypes.Vpcs {\n\t\tlet vpcs: VpcTypes.Vpcs = [];\n\t\tthis._vpcs.forEach((\n\t\t\t\tvpc: VpcTypes.VpcRo): void => {\n\t\t\tvpcs.push({\n\t\t\t\t...vpc,\n\t\t\t});\n\t\t});\n\t\treturn vpcs;\n\t}\n\n\tvpc(id: string): VpcTypes.VpcRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._vpcs[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(vpcs: VpcTypes.Vpc[]): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < vpcs.length; i++) {\n\t\t\tvpcs[i] = Object.freeze(vpcs[i]);\n\t\t\tthis._map[vpcs[i].id] = i;\n\t\t}\n\n\t\tthis._vpcs = Object.freeze(vpcs);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: VpcTypes.VpcDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase VpcTypes.SYNC_NAMES:\n\t\t\t\tthis._sync(action.data.vpcs);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new VpcsZoneStore();\n","/// \nimport * as React from 'react';\nimport * as InstanceTypes from '../types/InstanceTypes';\n\ninterface Props {\n\tdisabled?: boolean;\n\tiscsi: InstanceTypes.IscsiDevice;\n\tonChange?: (state: InstanceTypes.IscsiDevice) => void;\n\tonAdd: () => void;\n\tonRemove?: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tinputBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class InstanceIscsiDevice extends React.Component {\n\tclone(): InstanceTypes.IscsiDevice {\n\t\treturn {\n\t\t\t...this.props.iscsi,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tlet iscsi = this.props.iscsi;\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.uri = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onAdd();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport RFB from '@novnc/novnc';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as InstanceActions from '../actions/InstanceActions';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as PageInfos from './PageInfo';\nimport * as Csrf from '../Csrf';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport ZonesStore from '../stores/ZonesStore';\nimport InstanceIscsiDevice from './InstanceIscsiDevice';\nimport PageInput from './PageInput';\nimport PageInputButton from './PageInputButton';\nimport PageInfo from './PageInfo';\nimport PageSwitch from './PageSwitch';\nimport PageSelect from './PageSelect';\nimport PageSave from './PageSave';\nimport PageNumInput from './PageNumInput';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport PageSelectButton from \"./PageSelectButton\";\nimport PageTextArea from \"./PageTextArea\";\nimport NodesStore from \"../stores/NodesStore\";\n\ninterface Props {\n\tvpcs: VpcTypes.VpcsRo;\n\tdomains: DomainTypes.DomainsRo;\n\tinstance: InstanceTypes.InstanceRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tinstance: InstanceTypes.Instance;\n\taddCert: string;\n\taddNetworkRole: string;\n\taddVpc: string;\n\taddDriveDevice: string;\n\taddIso: string;\n\taddUsbDevice: string;\n\taddPciDevice: string;\n\tforwardedChecked: boolean;\n\tvnc: boolean;\n\tvncCtrl: boolean;\n\tvncAlt: boolean;\n\tvncSuper: boolean;\n\tvncScale: boolean;\n\tvncHeight: number;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t\tmaxWidth: '1060px',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tcontrolButton: {\n\t\tmarginRight: '10px',\n\t\tmarginBottom: '10px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\twordBreak: 'break-all',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tlist: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\tvncBox: {\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n};\n\nexport default class InstanceDetailed extends React.Component {\n\tvncState: boolean;\n\tvncRef: React.RefObject;\n\tvncRfb: RFB;\n\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tinstance: null,\n\t\t\taddCert: null,\n\t\t\taddNetworkRole: '',\n\t\t\taddVpc: '',\n\t\t\taddDriveDevice: '',\n\t\t\taddIso: '',\n\t\t\taddUsbDevice: '',\n\t\t\taddPciDevice: '',\n\t\t\tforwardedChecked: false,\n\t\t\tvnc: false,\n\t\t\tvncCtrl: false,\n\t\t\tvncAlt: false,\n\t\t\tvncSuper: false,\n\t\t\tvncScale: false,\n\t\t\tvncHeight: null,\n\t\t};\n\n\t\tthis.vncRef = React.createRef();\n\t}\n\n\tcomponentDidMount(): void {\n\t\tthis.vncState = true;\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tthis.vncState = false;\n\t\tif (this.vncRfb) {\n\t\t\tthis.vncRfb.disconnect();\n\t\t}\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet instance: any;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tinstance[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonTogleVnc = (): void => {\n\t\tif (this.state.vnc) {\n\t\t\tif (this.vncRfb) {\n\t\t\t\tthis.vncRfb.disconnect();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.connectVnc();\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tvnc: !this.state.vnc,\n\t\t});\n\t}\n\n\tconnectVnc = (): void => {\n\t\tthis.vncRfb = new RFB(\n\t\t\tthis.vncRef.current,\n\t\t\t'wss://' + location.hostname + (\n\t\t\t\tlocation.port ? ':' + location.port : '') + '/instance/' +\n\t\t\t\tthis.props.instance.id + '/vnc?csrf_token=' + Csrf.token,\n\t\t\t{\n\t\t\t\tshared: true,\n\t\t\t\twsProtocols: ['binary'],\n\t\t\t\tcredentials: {\n\t\t\t\t\tpassword: this.props.instance.vnc_password,\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t\tthis.vncRfb.addEventListener('disconnect', function() {\n\t\t\tsetTimeout(function() {\n\t\t\t\tif (this.state.vnc && this.vncState) {\n\t\t\t\t\tthis.connectVnc();\n\t\t\t\t}\n\t\t\t}.bind(this), 250);\n\t\t}.bind(this));\n\t\tif (this.state.vncScale) {\n\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t}\n\t}\n\n\tonToggleVncCtrl = (): void => {\n\t\tif (this.vncRfb) {\n\t\t\tif (this.state.vncCtrl) {\n\t\t\t\tthis.vncRfb.sendKey(0xffe3, 'ControlLeft', false);\n\t\t\t} else {\n\t\t\t\tthis.vncRfb.sendKey(0xffe3, 'ControlLeft', true);\n\t\t\t}\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tvncCtrl: !this.state.vncCtrl,\n\t\t});\n\t}\n\n\tonToggleVncAlt = (): void => {\n\t\tif (this.vncRfb) {\n\t\t\tif (this.state.vncAlt) {\n\t\t\t\tthis.vncRfb.sendKey(0xffe9, 'AltLeft', false);\n\t\t\t} else {\n\t\t\t\tthis.vncRfb.sendKey(0xffe9, 'AltLeft', true);\n\t\t\t}\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tvncAlt: !this.state.vncAlt,\n\t\t});\n\t}\n\n\tonToggleVncSuper = (): void => {\n\t\tif (this.vncRfb) {\n\t\t\tif (this.state.vncSuper) {\n\t\t\t\tthis.vncRfb.sendKey(0xffeb, 'MetaLeft', false);\n\t\t\t} else {\n\t\t\t\tthis.vncRfb.sendKey(0xffeb, 'MetaLeft', true);\n\t\t\t}\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tvncSuper: !this.state.vncSuper,\n\t\t});\n\t}\n\n\tonVncCtrlAltDel = (): void => {\n\t\tif (this.vncRfb) {\n\t\t\tthis.vncRfb.sendCtrlAltDel();\n\t\t}\n\t}\n\n\tonVncTab = (): void => {\n\t\tif (this.vncRfb) {\n\t\t\tthis.vncRfb.sendKey(0xff09, 'Tab');\n\t\t}\n\t}\n\n\tonVncEsc = (): void => {\n\t\tif (this.vncRfb) {\n\t\t\tthis.vncRfb.sendKey(0xff1b, 'Escape');\n\t\t}\n\t}\n\n\tonToggleVncFullscreen = (): void => {\n\t\tif (document.fullscreenElement) {\n\t\t\tif (document.exitFullscreen) {\n\t\t\t\tdocument.exitFullscreen();\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.vncRef) {\n\t\t\t\tif (this.vncRef.current.requestFullscreen) {\n\t\t\t\t\tthis.vncRef.current.requestFullscreen();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tonToggleVncScale = (): void => {\n\t\tlet vncHeight: number;\n\t\tlet vncScale = this.state.vncScale;\n\n\t\tif (vncScale) {\n\t\t\tthis.vncRfb.scaleViewport = '';\n\t\t} else {\n\t\t\tlet ratio = this.vncRfb._canvas.height / this.vncRfb._canvas.width;\n\t\t\tvncHeight = Math.floor(this.vncRef.current.offsetWidth * ratio);\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tvncScale: !this.state.vncScale,\n\t\t\tvncHeight: vncHeight,\n\t\t});\n\n\t\tif (!vncScale) {\n\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (this.state.vncScale) {\n\t\t\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t\t\t}\n\t\t\t\tsetTimeout((): void => {\n\t\t\t\t\tif (this.state.vncScale) {\n\t\t\t\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t\t\t\t}\n\t\t\t\t\tsetTimeout((): void => {\n\t\t\t\t\t\tif (this.state.vncScale) {\n\t\t\t\t\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetTimeout((): void => {\n\t\t\t\t\t\t\tif (this.state.vncScale) {\n\t\t\t\t\t\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetTimeout((): void => {\n\t\t\t\t\t\t\t\tif (this.state.vncScale) {\n\t\t\t\t\t\t\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetTimeout((): void => {\n\t\t\t\t\t\t\t\t\tif (this.state.vncScale) {\n\t\t\t\t\t\t\t\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}, 50);\n\t\t\t\t\t\t\t}, 50);\n\t\t\t\t\t\t}, 50);\n\t\t\t\t\t}, 50);\n\t\t\t\t}, 50);\n\t\t\t}, 50);\n\t\t}\n\t}\n\n\tonAddNetworkRole = (): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (!this.state.addNetworkRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(instance.network_roles || []),\n\t\t];\n\n\t\tif (networkRoles.indexOf(this.state.addNetworkRole) === -1) {\n\t\t\tnetworkRoles.push(this.state.addNetworkRole);\n\t\t}\n\n\t\tnetworkRoles.sort();\n\t\tinstance.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonRemoveNetworkRole = (networkRole: string): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(instance.network_roles || []),\n\t\t];\n\n\t\tlet i = networkRoles.indexOf(networkRole);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tnetworkRoles.splice(i, 1);\n\t\tinstance.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonAddDriveDevice = (): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\t\tlet infoDriveDevices = this.props.instance.info.drive_devices || [];\n\n\t\tif (!this.state.addDriveDevice && !infoDriveDevices.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet addDevice = this.state.addDriveDevice;\n\t\tif (!addDevice) {\n\t\t\taddDevice = infoDriveDevices[0].id;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet driveDevices = [\n\t\t\t...(instance.drive_devices || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < driveDevices.length; i++) {\n\t\t\tlet dev = driveDevices[i];\n\t\t\tif (dev.id === addDevice) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (index === -1) {\n\t\t\tdriveDevices.push({\n\t\t\t\tid: addDevice,\n\t\t\t});\n\t\t}\n\n\t\tinstance.drive_devices = driveDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddDriveDevice: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonRemoveDriveDevice = (device: string): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet driveDevices = [\n\t\t\t...(instance.drive_devices || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < driveDevices.length; i++) {\n\t\t\tlet dev = driveDevices[i];\n\t\t\tif (dev.id === device) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tdriveDevices.splice(index, 1);\n\t\tinstance.drive_devices = driveDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddDriveDevice: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonAddIso = (): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\t\tlet infoIsos = this.props.instance.info.isos || [];\n\n\t\tif (!this.state.addIso && !infoIsos.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet addIso = this.state.addIso;\n\t\tif (!addIso) {\n\t\t\taddIso = infoIsos[0].name;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet isos = [\n\t\t\t...(instance.isos || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < isos.length; i++) {\n\t\t\tlet iso = isos[i];\n\t\t\tif (iso.name === addIso) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (index === -1) {\n\t\t\tisos.push({\n\t\t\t\tname: addIso,\n\t\t\t});\n\t\t}\n\n\t\tinstance.isos = isos;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddIso: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonRemoveIso = (isoName: string): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet isos = [\n\t\t\t...(instance.isos || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < isos.length; i++) {\n\t\t\tlet iso = isos[i];\n\t\t\tif (iso.name == isoName) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tisos.splice(index, 1);\n\t\tinstance.isos = isos;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddIso: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonAddUsbDevice = (): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\t\tlet infoUsbDevices = this.props.instance.info.usb_devices || [];\n\n\t\tif (!this.state.addUsbDevice && !infoUsbDevices.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet addDevice = this.state.addUsbDevice;\n\t\tif (!addDevice) {\n\t\t\taddDevice = infoUsbDevices[0].vendor + ':' + infoUsbDevices[0].product;\n\t\t}\n\n\t\tlet bus = addDevice.indexOf('-') !== -1;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet usbDevices = [\n\t\t\t...(instance.usb_devices || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < usbDevices.length; i++) {\n\t\t\tlet dev = usbDevices[i];\n\t\t\tif (!bus && dev.vendor + ':' + dev.product === addDevice) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t} else if (bus && dev.bus + '-' + dev.address === addDevice) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (!bus) {\n\t\t\tlet device = addDevice.split(':');\n\n\t\t\tif (index === -1) {\n\t\t\t\tusbDevices.push({\n\t\t\t\t\tvendor: device[0],\n\t\t\t\t\tproduct: device[1],\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tlet port = addDevice.split('-');\n\n\t\t\tif (index === -1) {\n\t\t\t\tusbDevices.push({\n\t\t\t\t\tbus: port[0],\n\t\t\t\t\taddress: port[1],\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tinstance.usb_devices = usbDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddUsbDevice: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonRemoveUsbDevice = (device: string): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet usbDevices = [\n\t\t\t...(instance.usb_devices || []),\n\t\t];\n\n\t\tlet bus = device.indexOf('-') !== -1;\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < usbDevices.length; i++) {\n\t\t\tlet dev = usbDevices[i];\n\t\t\tif (!bus && dev.vendor + ':' + dev.product == device) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t} else if (bus && dev.bus + '-' + dev.address == device) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tusbDevices.splice(index, 1);\n\t\tinstance.usb_devices = usbDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddUsbDevice: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonAddPciDevice = (): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\t\tlet infoPciDevices = this.props.instance.info.pci_devices || [];\n\n\t\tif (!this.state.addPciDevice && !infoPciDevices.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet addDevice = this.state.addPciDevice;\n\t\tif (!addDevice) {\n\t\t\taddDevice = infoPciDevices[0].slot;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet pciDevices = [\n\t\t\t...(instance.pci_devices || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < pciDevices.length; i++) {\n\t\t\tlet dev = pciDevices[i];\n\t\t\tif (dev.slot === addDevice) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (index === -1) {\n\t\t\tpciDevices.push({\n\t\t\t\tslot: addDevice,\n\t\t\t});\n\t\t}\n\n\t\tinstance.pci_devices = pciDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddPciDevice: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonRemovePciDevice = (device: string): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet pciDevices = [\n\t\t\t...(instance.pci_devices || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < pciDevices.length; i++) {\n\t\t\tlet dev = pciDevices[i];\n\t\t\tif (dev.slot === device) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tpciDevices.splice(index, 1);\n\t\tinstance.pci_devices = pciDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddPciDevice: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonAddIscsiDevice = (i: number): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet iscsiDevices = [\n\t\t\t...(instance.iscsi_devices || []),\n\t\t];\n\n\t\tif (iscsiDevices.length === 0) {\n\t\t\tiscsiDevices = [{}];\n\t\t}\n\n\t\tiscsiDevices.splice(i + 1, 0, {} as InstanceTypes.IscsiDevice);\n\t\tinstance.iscsi_devices = iscsiDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonChangeIscsiDevice(i: number, subnet: InstanceTypes.IscsiDevice): void {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet iscsiDevices = [\n\t\t\t...(instance.iscsi_devices || []),\n\t\t];\n\n\t\tif (iscsiDevices.length === 0) {\n\t\t\tiscsiDevices = [{}];\n\t\t}\n\n\t\tiscsiDevices[i] = subnet;\n\n\t\tinstance.iscsi_devices = iscsiDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonRemoveIscsiDevice(i: number): void {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet iscsiDevices = [\n\t\t\t...(instance.iscsi_devices || []),\n\t\t];\n\n\t\tif (iscsiDevices.length !== 0) {\n\t\t\tiscsiDevices.splice(i, 1);\n\t\t}\n\n\t\tif (iscsiDevices.length === 0) {\n\t\t\tiscsiDevices = [{}];\n\t\t}\n\n\t\tinstance.iscsi_devices = iscsiDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tInstanceActions.commit({\n\t\t\t...this.state.instance,\n\t\t\tstate: null,\n\t\t}).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tinstance: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tInstanceActions.remove(this.props.instance.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tupdate(state: string): void {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tInstanceActions.updateMulti([this.props.instance.id],\n\t\t\t\tstate).then((): void => {\n\t\t\tsetTimeout((): void => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t});\n\t\t\t}, 250);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet instance: InstanceTypes.Instance = this.state.instance ||\n\t\t\tthis.props.instance;\n\t\tlet info: InstanceTypes.Info = this.props.instance.info || {};\n\n\t\tlet org = OrganizationsStore.organization(\n\t\t\tthis.props.instance.organization);\n\t\tlet zone = ZonesStore.zone(this.props.instance.zone);\n\n\t\tlet privateIps: any = this.props.instance.private_ips;\n\t\tif (!privateIps || !privateIps.length) {\n\t\t\tprivateIps = 'None';\n\t\t}\n\n\t\tlet privateIps6: any = this.props.instance.private_ips6;\n\t\tif (!privateIps6 || !privateIps6.length) {\n\t\t\tprivateIps6 = 'None';\n\t\t}\n\n\t\tlet gatewayIps: any = this.props.instance.gateway_ips;\n\t\tif (!gatewayIps || !gatewayIps.length) {\n\t\t\tgatewayIps = 'None';\n\t\t}\n\n\t\tlet gatewayIps6: any = this.props.instance.gateway_ips6;\n\t\tif (!gatewayIps6 || !gatewayIps6.length) {\n\t\t\tgatewayIps6 = 'None';\n\t\t}\n\n\t\tlet publicIps: any = this.props.instance.public_ips;\n\t\tif (!publicIps || !publicIps.length) {\n\t\t\tpublicIps = 'None';\n\t\t}\n\n\t\tlet publicIps6: any = this.props.instance.public_ips6;\n\t\tif (!publicIps6 || !publicIps6.length) {\n\t\t\tpublicIps6 = 'None';\n\t\t}\n\n\t\tlet hostIps: any = this.props.instance.host_ips;\n\t\tif (!hostIps || !hostIps.length) {\n\t\t\thostIps = 'None';\n\t\t}\n\n\t\tlet oraclePrivateIps: any = this.props.instance.oracle_private_ips;\n\t\tif (!oraclePrivateIps || !oraclePrivateIps.length) {\n\t\t\toraclePrivateIps = null;\n\t\t}\n\t\tlet oraclePublicIps: any = this.props.instance.oracle_public_ips;\n\t\tif (!oraclePublicIps || !oraclePublicIps.length) {\n\t\t\toraclePublicIps = null;\n\t\t}\n\n\t\tlet statusClass = 'no-select tab-close';\n\t\tswitch (instance.status) {\n\t\t\tcase 'Running':\n\t\t\t\tstatusClass += ' bp3-text-intent-success';\n\t\t\t\tbreak;\n\t\t\tcase 'Restart Required':\n\t\t\t\tstatusClass += ' bp3-text-intent-warning';\n\t\t\t\tbreak;\n\t\t\tcase 'Stopped':\n\t\t\tcase 'Failed':\n\t\t\tcase 'Destroying':\n\t\t\t\tstatusClass += ' bp3-text-intent-danger';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet networkRoles: JSX.Element[] = [];\n\t\tfor (let networkRole of (instance.network_roles || [])) {\n\t\t\tnetworkRoles.push(\n\t\t\t\t\n\t\t\t\t\t{networkRole}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveNetworkRole(networkRole);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet hasVpcs = false;\n\t\tlet vpcsSelect: JSX.Element[] = [];\n\t\tif (this.props.vpcs && this.props.vpcs.length) {\n\t\t\tvpcsSelect.push();\n\n\t\t\tfor (let vpc of this.props.vpcs) {\n\t\t\t\tif (vpc.organization !== instance.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\thasVpcs = true;\n\t\t\t\tvpcsSelect.push(\n\t\t\t\t\t{vpc.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasVpcs) {\n\t\t\tvpcsSelect = [];\n\t\t}\n\n\t\tlet hasSubnets = false;\n\t\tlet subnetSelect: JSX.Element[] = [];\n\t\tif (this.props.vpcs && this.props.vpcs.length) {\n\t\t\tsubnetSelect.push();\n\n\t\t\tfor (let vpc of this.props.vpcs) {\n\t\t\t\tif (vpc.organization !== instance.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (vpc.id === instance.vpc) {\n\t\t\t\t\tfor (let sub of (vpc.subnets || [])) {\n\t\t\t\t\t\thasSubnets = true;\n\t\t\t\t\t\tsubnetSelect.push(\n\t\t\t\t\t\t\t{sub.name + ' - ' + sub.network},\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!hasSubnets) {\n\t\t\tsubnetSelect = [];\n\t\t}\n\n\t\tlet oracleSubnetsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.instance.info.oracle_subnets) {\n\t\t\tfor (let subnet of (this.props.instance.info.oracle_subnets || [])) {\n\t\t\t\toracleSubnetsSelect.push(\n\t\t\t\t\t,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet domainsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.domains && this.props.domains.length) {\n\t\t\tfor (let domain of this.props.domains) {\n\t\t\t\tif (domain.organization !== instance.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tdomainsSelect.push(\n\t\t\t\t\t{domain.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet driveDevices: JSX.Element[] = [];\n\t\tfor (let device of (instance.drive_devices || [])) {\n\t\t\tlet key = device.id;\n\t\t\tdriveDevices.push(\n\t\t\t\t\n\t\t\t\t\t{key}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveDriveDevice(key);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet infoDriveDevices = this.props.instance.info.drive_devices;\n\t\tlet driveDevicesSelect: JSX.Element[] = [];\n\t\tfor (let i = 0; i < (infoDriveDevices || []).length; i++) {\n\t\t\tlet device = infoDriveDevices[i];\n\t\t\tdriveDevicesSelect.push(\n\t\t\t\t\n\t\t\t\t\t{device.id}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet isos: JSX.Element[] = [];\n\t\tfor (let iso of (instance.isos || [])) {\n\t\t\tlet key = iso.name;\n\t\t\tisos.push(\n\t\t\t\t\n\t\t\t\t\t{key}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveIso(key);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet infoIsos = this.props.instance.info.isos;\n\t\tlet isosSelect: JSX.Element[] = [];\n\t\tfor (let i = 0; i < (infoIsos || []).length; i++) {\n\t\t\tlet iso = infoIsos[i];\n\t\t\tisosSelect.push(\n\t\t\t\t\n\t\t\t\t\t{iso.name}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet usbDevices: JSX.Element[] = [];\n\t\tfor (let device of (instance.usb_devices || [])) {\n\t\t\tlet key = '';\n\t\t\tif (device.bus && device.address) {\n\t\t\t\tkey = device.bus + '-' + device.address;\n\t\t\t} else {\n\t\t\t\tkey = device.vendor + ':' + device.product;\n\t\t\t}\n\t\t\tusbDevices.push(\n\t\t\t\t\n\t\t\t\t\t{key}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveUsbDevice(key);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet infoUsbDevices = this.props.instance.info.usb_devices;\n\t\tlet usbDevicesSelect: JSX.Element[] = [];\n\t\tfor (let i = 0; i < (infoUsbDevices || []).length; i++) {\n\t\t\tlet device = infoUsbDevices[i];\n\t\t\tusbDevicesSelect.push(\n\t\t\t\t\n\t\t\t\t\t{'Device=' + device.vendor + ':' + device.product +\n\t\t\t\t\t' (' + device.name + ')'}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\t\tfor (let i = 0; i < (infoUsbDevices || []).length; i++) {\n\t\t\tlet device = infoUsbDevices[i];\n\t\t\tusbDevicesSelect.push(\n\t\t\t\t\n\t\t\t\t\t{'Bus=' + device.bus + ' Port=' + device.address +\n\t\t\t\t\t' (' + device.name + ')'}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet pciDevices: JSX.Element[] = [];\n\t\tfor (let device of (instance.pci_devices || [])) {\n\t\t\tlet key = device.slot;\n\t\t\tpciDevices.push(\n\t\t\t\t\n\t\t\t\t\t{key}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemovePciDevice(key);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet infoPciDevices = this.props.instance.info.pci_devices;\n\t\tlet pciDevicesSelect: JSX.Element[] = [];\n\t\tfor (let i = 0; i < (infoPciDevices || []).length; i++) {\n\t\t\tlet device = infoPciDevices[i];\n\t\t\tpciDevicesSelect.push(\n\t\t\t\t\n\t\t\t\t\t{device.slot + ' ' + device.class + ':' + device.name}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet iscsiDevices = [...(instance.iscsi_devices || [])];\n\t\tif (iscsiDevices.length === 0) {\n\t\t\tiscsiDevices.push({});\n\t\t}\n\n\t\tlet iscsiDevicesElem: JSX.Element[] = [];\n\t\tfor (let i = 0; i < iscsiDevices.length; i++) {\n\t\t\tlet index = i;\n\t\t\tlet device = iscsiDevices[i];\n\n\t\t\tiscsiDevicesElem.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeIscsiDevice(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonAdd={(): void => {\n\t\t\t\t\t\tthis.onAddIscsiDevice(index);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveIscsiDevice(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\tlet fields: PageInfos.Field[] = [\n\t\t\t{\n\t\t\t\tlabel: 'ID',\n\t\t\t\tvalue: this.props.instance.id || 'None',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Organization',\n\t\t\t\tvalue: org ? org.name :\n\t\t\t\t\tthis.props.instance.organization || 'None',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Zone',\n\t\t\t\tvalue: zone ? zone.name : this.props.instance.zone || 'None',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Node',\n\t\t\t\tvalue: info.node || 'None',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'State',\n\t\t\t\tvalue: (this.props.instance.state || 'None') + ':' + (\n\t\t\t\t\tthis.props.instance.vm_state || 'None'),\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Uptime',\n\t\t\t\tvalue: this.props.instance.uptime || '-',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Public MAC Address',\n\t\t\t\tvalue: this.props.instance.public_mac || 'Unknown',\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'QEMU Version',\n\t\t\t\tvalue: this.props.instance.qemu_version || 'Unknown',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Platform',\n\t\t\t\tvalue: (this.props.instance.uefi ? 'UEFI' : 'BIOS'),\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'SecureBoot',\n\t\t\t\tvalue: (this.props.instance.secure_boot ? 'Enabled' : 'Disabled'),\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Public IPv4',\n\t\t\t\tvalue: publicIps,\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Public IPv6',\n\t\t\t\tvalue: publicIps6,\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Private IPv4',\n\t\t\t\tvalue: privateIps,\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Private IPv6',\n\t\t\t\tvalue: privateIps6,\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Gateway IPv4',\n\t\t\t\tvalue: gatewayIps,\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Gateway IPv6',\n\t\t\t\tvalue: gatewayIps6,\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t];\n\n\t\tif (oraclePublicIps) {\n\t\t\tfields.push(\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Oracle Public IPv4',\n\t\t\t\t\tvalue: oraclePublicIps,\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\tif (oraclePrivateIps) {\n\t\t\tfields.push(\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Oracle Private IPv4',\n\t\t\t\t\tvalue: oraclePrivateIps,\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tfields.push(\n\t\t\t{\n\t\t\t\tlabel: 'Host IPv4',\n\t\t\t\tvalue: hostIps,\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t);\n\n\t\tif (this.props.instance.info.mtu) {\n\t\t\tfields.push(\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Network MTU',\n\t\t\t\t\tvalue: this.props.instance.info.mtu,\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tfields.push(\n\t\t\t{\n\t\t\t\tlabel: 'Network Namespace',\n\t\t\t\tvalue: this.props.instance.network_namespace || 'None',\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t);\n\n\t\tif (this.props.instance.root_enabled) {\n\t\t\tfields.push(\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Root Password',\n\t\t\t\t\tvalue: this.props.instance.root_passwd,\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tif (this.props.instance.vnc) {\n\t\t\tif (this.props.instance.info.node_public_ip) {\n\t\t\t\tfields.push(\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'VNC IP',\n\t\t\t\t\t\tvalue: this.props.instance.info.node_public_ip,\n\t\t\t\t\t\tcopy: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tlet vncPort;\n\t\t\tif (this.props.instance.vnc_display) {\n\t\t\t\tvncPort = this.props.instance.vnc_display + 5900;\n\t\t\t} else {\n\t\t\t\tvncPort = '-';\n\t\t\t}\n\n\t\t\tfields.push(\n\t\t\t\t{\n\t\t\t\t\tlabel: 'VNC Port',\n\t\t\t\t\tvalue: vncPort,\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'VNC Password',\n\t\t\t\t\tvalue: this.props.instance.vnc_password,\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tif (this.props.instance.spice) {\n\t\t\tif (this.props.instance.info.node_public_ip) {\n\t\t\t\tfields.push(\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Spice IP',\n\t\t\t\t\t\tvalue: this.props.instance.info.node_public_ip,\n\t\t\t\t\t\tcopy: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tfields.push(\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Spice Port',\n\t\t\t\t\tvalue: this.props.instance.spice_port || '-',\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Spice Password',\n\t\t\t\t\tvalue: this.props.instance.spice_password,\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tfields.push(\n\t\t\t{\n\t\t\t\tlabel: 'Disks',\n\t\t\t\tvalue: info.disks || '',\n\t\t\t},\n\t\t\t{\n\t\t\t\t// TODO Firewall map view show firewalls matched to roles\n\t\t\t\tlabel: 'Firewall Rules',\n\t\t\t\tvalue: this.props.instance.info.firewall_rules || '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Authorities',\n\t\t\t\tvalue: this.props.instance.info.authorities || '',\n\t\t\t},\n\t\t);\n\n\t\tlet vncStyle = {\n\t\t\theight: this.state.vncHeight ? this.state.vncHeight + 'px' : '100%',\n\t\t\tmarginBottom: '10px',\n\t\t} as React.CSSProperties;\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{instance.status}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('memory', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={instance.memory}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('processors', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={instance.processors}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddNetworkRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddNetworkRole}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tISO Images\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{isos}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddIso: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddIso}\n\t\t\t\t\t>\n\t\t\t\t\t\t{isosSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tDisk Passthrough Devices\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{driveDevices}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddDriveDevice: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddDriveDevice}\n\t\t\t\t\t>\n\t\t\t\t\t\t{driveDevicesSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tiSCSI Devices\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{iscsiDevicesElem}\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\tPCI Devices\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{pciDevices}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddPciDevice: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddPciDevice}\n\t\t\t\t\t>\n\t\t\t\t\t\t{pciDevicesSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tUSB Devices\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{usbDevices}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddUsbDevice: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddUsbDevice}\n\t\t\t\t\t>\n\t\t\t\t\t\t{usbDevicesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('vpc', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{vpcsSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('subnet', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{subnetSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('oracle_subnet', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{oracleSubnetsSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('domain', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{domainsSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('cloud_type', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t,\n\t\t\t\t\t\t,\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('root_enabled', !instance.root_enabled);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('vnc', !instance.vnc);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('spice', !instance.spice);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('gui', !instance.gui);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('uefi', !instance.uefi);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('secure_boot', !instance.secure_boot);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('tpm', !instance.tpm);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('dhcp_server', !instance.dhcp_server);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('delete_protection', !instance.delete_protection);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('no_public_address', !instance.no_public_address);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('no_public_address6', !instance.no_public_address6);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('no_host_address', !instance.no_host_address);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('skip_source_dest_check',\n\t\t\t\t\t\t\t\t!instance.skip_source_dest_check);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tforwardedChecked: false,\n\t\t\t\t\t\tinstance: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t>\n\t\t\t\t {\n\t\t\t\t\t\tthis.update('start');\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tthis.update('stop');\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tthis.onTogleVnc();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tVNC Console\n\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tthis.onTogleVnc();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tVNC Console\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onToggleVncCtrl();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tCtrl\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onToggleVncAlt();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tAlt\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onToggleVncSuper();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tSuper\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onVncTab();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tTab\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onVncEsc();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tEsc\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onToggleVncFullscreen();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tFullscreen\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onToggleVncScale();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tScale\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onVncCtrlAltDel();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tCtrl+Alt+Del\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as DomainTypes from '../types/DomainTypes'\nimport InstanceDetailed from './InstanceDetailed';\nimport ZonesStore from \"../stores/ZonesStore\";\nimport NodesStore from \"../stores/NodesStore\";\n\ninterface Props {\n\tvpcs: VpcTypes.VpcsRo;\n\tdomains: DomainTypes.DomainsRo;\n\tinstance: InstanceTypes.InstanceRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n};\n\nexport default class Instance extends React.Component {\n\trender(): JSX.Element {\n\t\tlet instance = this.props.instance;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t;\n\t\t}\n\n\t\tlet node = NodesStore.node(this.props.instance.node);\n\t\tlet nodeName = node ? node.name : null;\n\t\tlet zone = ZonesStore.zone(this.props.instance.zone);\n\t\tlet zoneName = zone ? zone.name : null;\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet publicIp = '';\n\t\tlet privateIp = '';\n\t\tif (instance.public_ips && instance.public_ips.length > 0) {\n\t\t\tpublicIp = instance.public_ips[0];\n\t\t} else if (instance.host_ips && instance.host_ips.length > 0) {\n\t\t\tpublicIp = instance.host_ips[0];\n\t\t}\n\t\tif (instance.private_ips && instance.private_ips.length > 0) {\n\t\t\tprivateIp = instance.private_ips[0];\n\t\t}\n\n\t\tlet statusClass = 'bp3-cell';\n\t\tswitch (instance.status) {\n\t\t\tcase 'Running':\n\t\t\t\tstatusClass += ' bp3-text-intent-success';\n\t\t\t\tbreak;\n\t\t\tcase 'Restart Required':\n\t\t\t\tstatusClass += ' bp3-text-intent-warning';\n\t\t\t\tbreak;\n\t\t\tcase 'Stopped':\n\t\t\tcase 'Failed':\n\t\t\tcase 'Destroying':\n\t\t\t\tstatusClass += ' bp3-text-intent-danger';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{instance.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{instance.status}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{nodeName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{zoneName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{publicIp}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{privateIp}\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Blueprint from '@blueprintjs/core';\nimport * as License from '../License';\n\ninterface Props {\n\topen?: boolean;\n\tonClose?: () => void;\n}\n\nconst css = {\n\tdialog: {\n\t\theight: '500px',\n\t\twidth: '90%',\n\t\tmaxWidth: '700px',\n\t} as React.CSSProperties,\n\ttextarea: {\n\t\tresize: 'none',\n\t\tfontSize: '12px',\n\t\tfontFamily: '\"Lucida Console\", Monaco, monospace',\n\t} as React.CSSProperties,\n};\n\nconst license = `ORACLE LINUX LICENSE AGREEMENT \n\n“We,” “us,” “our” and “Oracle” refers to Oracle America, Inc. “You” and “your” refers to the \nindividual or entity that has acquired the Oracle Linux programs. “Oracle Linux programs” \nrefers to the Linux software product which you have acquired. “License” refers to your right to \nuse the Oracle Linux programs under the terms of this Agreement and the licenses referenced \nherein. This Agreement is governed by the substantive and procedural laws of the United States \nand the State of California and you and Oracle agree to submit to the exclusive jurisdiction of, \nand venue in, the courts of San Francisco or Santa Clara counties in California in any dispute \narising out of or relating to this Agreement.\n\nWe are willing to provide a copy of the Oracle Linux programs to you only upon the condition \nthat you accept all of the terms contained in this Agreement. Read the terms carefully and \nindicate your acceptance by either selecting the “Accept” button at the bottom of the page to \nconfirm your acceptance, if you are downloading the Oracle Linux programs, or continuing to \ninstall the Oracle Linux programs, if you have received this Agreement during the installation \nprocess. If you are not willing to be bound by these terms, select the “Do Not Accept” button or \ndiscontinue the installation process.\n\n1. Grant of Licenses to the Oracle Linux programs. Subject to the terms of this Agreement, \nOracle grants to you a license to the Oracle Linux programs under the GNU General Public \nLicense version 2.0. The Oracle Linux programs contain many components developed by Oracle \nand various third parties. The license for each component is located in the licensing \ndocumentation and/or in the component's source code. In addition, a list of components may be \ndelivered with the Oracle Linux programs and the Additional Oracle Linux programs (as defined \nbelow) or accessed online at http://oss.oracle.com/linux/legal/oracle-list.html. The source code \nfor the Oracle Linux Programs and the Additional Oracle Linux programs can be found and \naccessed online at https://oss.oracle.com/sources/. This agreement does not limit, supersede or \nmodify your rights under the license associated with any separately licensed individual \ncomponent.\n\n2. Licenses to Additional Oracle Linux programs. Certain third-party technology (collectively \nthe “Additional Oracle Linux programs”) may be included on the same medium or as part of the \ndownload of Oracle Linux programs you receive, but is not part of the Oracle Linux programs. \nEach Additional Oracle Linux program is licensed solely under the terms of the Mozilla Public \nLicense, Apache License, Common Public License, GNU Lesser General Public License, \nNetscape Public License or similar license that is included with the relevant Additional Oracle \nLinux program. \n\n3. Ownership. The Oracle Linux programs and their components and the Additional Oracle \nLinux programs are owned by Oracle or its licensors. Subject to the licenses granted and/or \nreferenced herein, title to the Oracle Linux programs and their components and the Additional \nOracle Linux programs remains with Oracle and/or its licensors. \n\n4. Trademark License. You are permitted to distribute unmodified Oracle Linux programs or \nunmodified Additional Oracle Linux programs without removing the trademark(s) owned by \nOracle or its affiliates that are included in the unmodified Oracle Linux programs or unmodified \nAdditional Oracle Linux programs (the “Oracle Linux trademarks”). You may only distribute \nmodified Oracle Linux programs or modified Additional Oracle Linux programs if you remove \nrelevant images containing the Oracle Linux trademarks. Certain files, identified in \nhttp://oss.oracle.com/linux/legal/oracle-list.html, include such trademarks. Do not delete these \nfiles, as deletion may corrupt the Oracle Linux programs or Additional Oracle Linux programs. \nYou are not granted any other rights to Oracle Linux trademarks, and you acknowledge that you \nshall not gain any proprietary interest in the Oracle Linux trademarks. All goodwill arising out of \nuse of the Oracle Linux trademarks shall inure to the benefit of Oracle or its affiliates. You may \nnot use any trademarks owned by Oracle or its affiliates (including “ORACLE”) or potentially \nconfusing variations (such as, “ORA”) as a part of your logo(s), product name(s), service \nname(s), company name, or domain name(s) even if such products, services or domains include, \nor are related to, the Oracle Linux programs or Additional Oracle Linux programs. \n\n5. Limited Warranty. THE ORACLE LINUX PROGRAMS AND ADDITIONAL ORACLE \nLINUX PROGRAMS ARE PROVIDED \"AS IS\" WITHOUT WARRANTY OF ANY KIND. \nWE FURTHER DISCLAIM ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING \nWITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR \nFITNESS FOR A PARTICULAR PURPOSE.\n\n6. Limitation of Liability. IN NO EVENT SHALL WE BE LIABLE FOR ANY INDIRECT, \nINCIDENTAL, SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR DAMAGES \nFOR LOSS OF PROFITS, REVENUE, DATA OR DATA USE, INCURRED BY YOU OR \nANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT, EVEN IF WE \nHAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. OUR ENTIRE \nLIABILITY FOR DAMAGES HEREUNDER SHALL IN NO EVENT EXCEED ONE \nHUNDRED DOLLARS (U.S.).\n\n7. No Technical Support. Our technical support organization will not provide technical support, \nphone support, or updates to you for the materials licensed under this Agreement. Technical \nsupport, if available, may be acquired from Oracle or its affiliates under a separate agreement.\n\n8. Relationship Between the Parties. The relationship between you and us is that of \nlicensee/licensor. Neither party will represent that it has any authority to assume or create any \nobligation, express or implied, on behalf of the other party, nor to represent the other party as \nagent, employee, franchisee, or in any other capacity. Nothing in this Agreement shall be \nconstrued to limit either party's right to independently develop or distribute programs that are \nfunctionally similar to the other party’s products, so long as proprietary information of the other \nparty is not included in such programs.\n\n9. Entire Agreement. You agree that this Agreement is the complete Agreement for the Oracle \nLinux programs and the Additional Oracle Linux programs, and this Agreement supersedes all \nprior or contemporaneous Agreements or representations. If any term of this Agreement is found \nto be invalid or unenforceable, the remaining provisions will remain effective. Neither the \nUniform Computer Information Transactions Act nor the United Nations Convention on the \nInternational Sale of Goods applies to this agreement.\n\nYou can find a copy of the GNU General Public License version 2.0 in the “copying” or \n“license” file included with the Oracle Linux programs or here: \nhttp://oss.oracle.com/licenses/GPL-2.\n\nOFFER TO PROVIDE SOURCE CODE\n\nFor software that you receive from Oracle in binary form that is licensed under an open source \nlicense that gives you the right to receive the source code for that binary, you can obtain a copy \nof the applicable source code from https://oss.oracle.com/sources/ or \nhttp://www.oracle.com/goto/opensourcecode. Alternatively, if the source code for the \ntechnology was not provided to you with the binary, you can also receive a copy of the source \ncode on physical media by submitting a written request to:\n \nOracle America, Inc. \nAttn: Associate General Counsel \nDevelopment and Engineering Legal \n500 Oracle Parkway, 10th Floor \nRedwood Shores, CA 94065 \n \nOr, you may send an email to Oracle using the form linked from \nhttp://www.oracle.com/goto/opensourcecode. Your written or emailed request should include:\n•\tThe name of the component or binary file(s) for which you are requesting the source code\n•\tThe name and version number of the Oracle product\n•\tThe date you received the Oracle product\n•\tYour name\n•\tYour company name (if applicable)\n•\tYour return mailing address and email\n•\tA telephone number in the event we need to reach you.\nWe may charge you a fee to cover the cost of physical media and processing. Your request must \nbe sent (i) within three (3) years of the date you received the Oracle product that included the \ncomponent or binary file(s) that are the subject of your request, or (ii) in the case of code \nlicensed under the GPL v3, for as long as Oracle offers spare parts or customer support for that \nproduct model or version.\n\nLast updated 24 March 2017`;\n\nexport default class InstanceLicense extends React.Component {\n\trender(): JSX.Element {\n\t\tif (!this.props.open) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tthis.props.onClose();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>Decline\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tLicense.setOracle(true);\n\t\t\t\t\t\t\t\tLicense.save();\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>Accept\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as License from '../License';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as ImageTypes from '../types/ImageTypes';\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport * as InstanceActions from '../actions/InstanceActions';\nimport * as ImageActions from '../actions/ImageActions';\nimport * as NodeActions from '../actions/NodeActions';\nimport ImagesDatacenterStore from '../stores/ImagesDatacenterStore';\nimport NodesZoneStore from '../stores/NodesZoneStore';\nimport InstanceLicense from './InstanceLicense';\nimport PageInput from './PageInput';\nimport PageInputButton from './PageInputButton';\nimport PageCreate from './PageCreate';\nimport PageSelect from './PageSelect';\nimport PageSwitch from \"./PageSwitch\";\nimport PageNumInput from './PageNumInput';\nimport Help from './Help';\nimport OrganizationsStore from \"../stores/OrganizationsStore\";\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tvpcs: VpcTypes.VpcsRo;\n\tdomains: DomainTypes.DomainsRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tzones: ZoneTypes.ZonesRo;\n\tonClose: () => void;\n}\n\ninterface State {\n\tclosed: boolean;\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tlicenseOpen: boolean;\n\tinstance: InstanceTypes.Instance;\n\tdatacenter: string;\n\timages: ImageTypes.ImagesRo;\n\tnodes: NodeTypes.NodesRo;\n\taddNetworkRole: string;\n\taddVpc: string;\n\tdhcpChanged: boolean;\n\tsecureBootChanged: boolean;\n\thiddenImages: boolean;\n}\n\nconst css = {\n\trow: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class InstanceNew extends React.Component {\n\timagesMap: Map;\n\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tclosed: false,\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tlicenseOpen: false,\n\t\t\tinstance: this.default,\n\t\t\tdatacenter: '',\n\t\t\timages: [],\n\t\t\tnodes: [],\n\t\t\taddNetworkRole: '',\n\t\t\taddVpc: '',\n\t\t\tdhcpChanged: false,\n\t\t\tsecureBootChanged: false,\n\t\t\thiddenImages: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tImagesDatacenterStore.addChangeListener(this.onChange);\n\t\tNodesZoneStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tImagesDatacenterStore.removeChangeListener(this.onChange);\n\t\tNodesZoneStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\timages: ImagesDatacenterStore.images,\n\t\t\tnodes: NodesZoneStore.nodes,\n\t\t});\n\t}\n\n\tget default(): InstanceTypes.Instance {\n\t\treturn {\n\t\t\tid: null,\n\t\t\tname: 'New instance',\n\t\t\tuefi: true,\n\t\t\tsecure_boot: true,\n\t\t\tinit_disk_size: 10,\n\t\t\tmemory: 1024,\n\t\t\tprocessors: 1,\n\t\t\tcount: 1,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet instance: any = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tinstance[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonCreate = (): void => {\n\t\t// if (this.state.instance.image &&\n\t\t// \t\tthis.state.instance.image.indexOf('oracle') &&\n\t\t// \t\t!License.oracle) {\n\t\t// \tthis.setState({\n\t\t// \t\t...this.state,\n\t\t// \t\tlicenseOpen: true,\n\t\t// \t});\n\t\t// \treturn\n\t\t// }\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\n\t\tlet instance: any = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tif (this.props.organizations.length && !instance.organization) {\n\t\t\tinstance.organization = this.props.organizations[0].id;\n\t\t}\n\n\t\tInstanceActions.create(instance).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Instance created successfully',\n\t\t\t\tchanged: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t\tchanged: true,\n\t\t\t\t});\n\t\t\t}, 2000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonUefi(uefi: boolean): void {\n\t\tlet instance: any = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tif (instance.uefi !== uefi) {\n\t\t\tinstance.image = '';\n\t\t}\n\t\tinstance.uefi = uefi;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonSecureBoot(secureBoot: boolean): void {\n\t\tlet instance: InstanceTypes.Instance = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tif (instance.secure_boot !== secureBoot) {\n\t\t\tinstance.image = '';\n\t\t}\n\t\tinstance.secure_boot = secureBoot;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tinstance: instance,\n\t\t\tsecureBootChanged: true,\n\t\t});\n\t}\n\n\tonDhcpServer(dhcpServer: boolean): void {\n\t\tlet instance: InstanceTypes.Instance = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tinstance.dhcp_server = dhcpServer;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tinstance: instance,\n\t\t\tdhcpChanged: true,\n\t\t});\n\t}\n\n\tonNode(nodeId: string): void {\n\t\tlet instance: InstanceTypes.Instance = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tinstance.node = nodeId;\n\n\t\tlet node = NodesZoneStore.node(instance.node);\n\t\tif (node) {\n\t\t\tinstance.no_public_address = node.default_no_public_address;\n\t\t\tinstance.no_public_address6 = node.default_no_public_address6;\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonAddNetworkRole = (): void => {\n\t\tif (!this.state.addNetworkRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet instance = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tlet networkRoles = [\n\t\t\t...(instance.network_roles || []),\n\t\t];\n\n\t\tif (networkRoles.indexOf(this.state.addNetworkRole) === -1) {\n\t\t\tnetworkRoles.push(this.state.addNetworkRole);\n\t\t}\n\n\t\tnetworkRoles.sort();\n\t\tinstance.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonRemoveNetworkRole = (networkRole: string): void => {\n\t\tlet instance = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tlet networkRoles = [\n\t\t\t...(instance.network_roles || []),\n\t\t];\n\n\t\tlet i = networkRoles.indexOf(networkRole);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tnetworkRoles.splice(i, 1);\n\t\tinstance.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonImageselect = (val: string): void => {\n\t\tlet instance: any = {\n\t\t\t...this.state.instance,\n\t\t};\n\t\tlet imageName = this.imagesMap.get(val);\n\n\t\tinstance.image = val;\n\t\tif (imageName.indexOf('BSD') !== -1) {\n\t\t\tinstance.secure_boot = false;\n\t\t\tinstance.cloud_type = 'bsd';\n\t\t} else {\n\t\t\tif (!this.state.secureBootChanged) {\n\t\t\t\tinstance.secure_boot = true;\n\t\t\t}\n\t\t\tinstance.cloud_type = 'linux';\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet instance = this.state.instance;\n\n\t\tlet node: NodeTypes.Node;\n\t\tif (instance.node) {\n\t\t\tnode = NodesZoneStore.node(instance.node);\n\t\t}\n\n\t\tlet hasOrganizations = !!this.props.organizations.length;\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\torganizationsSelect.push(\n\t\t\t\t);\n\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasOrganizations) {\n\t\t\torganizationsSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\tlet hasDatacenters = false;\n\t\tlet datacentersSelect: JSX.Element[] = [];\n\t\tif (this.props.datacenters && this.props.datacenters.length) {\n\t\t\tdatacentersSelect.push(\n\t\t\t\t);\n\n\t\t\thasDatacenters = true;\n\t\t\tfor (let datacenter of this.props.datacenters) {\n\t\t\t\tdatacentersSelect.push(\n\t\t\t\t\t{datacenter.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasDatacenters) {\n\t\t\tdatacentersSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\tlet datacenter = this.state.datacenter;\n\t\tlet hasZones = false;\n\t\tlet zonesSelect: JSX.Element[] = [];\n\t\tif (this.props.zones && this.props.zones.length) {\n\t\t\tzonesSelect.push();\n\n\t\t\tfor (let zone of this.props.zones) {\n\t\t\t\tif (zone.datacenter !== datacenter) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\thasZones = true;\n\n\t\t\t\tzonesSelect.push(\n\t\t\t\t\t{zone.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasZones) {\n\t\t\tzonesSelect = [];\n\t\t}\n\n\t\tlet hasNodes = false;\n\t\tlet nodesSelect: JSX.Element[] = [];\n\t\tif (this.state.nodes && this.state.nodes.length) {\n\t\t\tnodesSelect.push();\n\n\t\t\thasNodes = true;\n\t\t\tfor (let node of this.state.nodes) {\n\t\t\t\tnodesSelect.push(\n\t\t\t\t\t{node.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasNodes) {\n\t\t\tnodesSelect = [];\n\t\t}\n\n\t\tlet hasVpcs = false;\n\t\tlet vpcsSelect: JSX.Element[] = [];\n\t\tif (this.props.vpcs && this.props.vpcs.length) {\n\t\t\tvpcsSelect.push();\n\n\t\t\tfor (let vpc of this.props.vpcs) {\n\t\t\t\tif (Constants.user) {\n\t\t\t\t\tif (vpc.organization !== OrganizationsStore.current) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (vpc.organization !== instance.organization) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (vpc.datacenter !== this.state.datacenter) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\thasVpcs = true;\n\t\t\t\tvpcsSelect.push(\n\t\t\t\t\t{vpc.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasVpcs) {\n\t\t\tvpcsSelect = [];\n\t\t}\n\n\t\tlet hasSubnets = false;\n\t\tlet subnetSelect: JSX.Element[] = [];\n\t\tif (this.props.vpcs && this.props.vpcs.length) {\n\t\t\tsubnetSelect.push();\n\n\t\t\tfor (let vpc of this.props.vpcs) {\n\t\t\t\tif (Constants.user) {\n\t\t\t\t\tif (vpc.organization !== OrganizationsStore.current) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (vpc.organization !== instance.organization) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (vpc.datacenter !== this.state.datacenter) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (vpc.id === instance.vpc) {\n\t\t\t\t\tfor (let sub of (vpc.subnets || [])) {\n\t\t\t\t\t\thasSubnets = true;\n\t\t\t\t\t\tsubnetSelect.push(\n\t\t\t\t\t\t\t{sub.name + ' - ' + sub.network},\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!hasSubnets) {\n\t\t\tsubnetSelect = [];\n\t\t}\n\n\t\tlet oracleSubnetsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (node && node.oracle_subnets && node.oracle_subnets.length) {\n\t\t\tlet subnets: Map = new Map();\n\n\t\t\tfor (let vpc of (node.available_vpcs || [])) {\n\t\t\t\tfor (let subnet of (vpc.subnets || [])) {\n\t\t\t\t\tsubnets.set(subnet.id, vpc.name + ' - ' + subnet.name);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (let subnetId of (node.oracle_subnets || [])) {\n\t\t\t\toracleSubnetsSelect.push(\n\t\t\t\t\t,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet domainsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.domains && this.props.domains.length) {\n\t\t\tfor (let domain of this.props.domains) {\n\t\t\t\tif (!Constants.user &&\n\t\t\t\t\t\tdomain.organization !== instance.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tdomainsSelect.push(\n\t\t\t\t\t{domain.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet hasImages = false;\n\t\tlet imagesSelect: JSX.Element[] = [];\n\t\tthis.imagesMap = new Map();\n\t\tlet imagesVer = new Map();\n\t\tif (this.state.images.length) {\n\t\t\timagesSelect.push();\n\n\t\t\thasImages = true;\n\t\t\tfor (let image of this.state.images) {\n\t\t\t\tif (instance.uefi && image.firmware === 'bios') {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (!instance.uefi && image.firmware === 'uefi') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (!this.state.hiddenImages && image.signed) {\n\t\t\t\t\tlet imgSpl = image.key.split('_');\n\n\t\t\t\t\tif (imgSpl.length >= 2 && imgSpl[imgSpl.length - 1].length >= 4) {\n\t\t\t\t\t\tlet imgKey = imgSpl[0] + '_' + image.firmware\n\n\t\t\t\t\t\tlet imgVer = parseInt(\n\t\t\t\t\t\t\timgSpl[imgSpl.length - 1].substring(0, 4), 10);\n\t\t\t\t\t\tif (imgVer) {\n\t\t\t\t\t\t\tlet curImg = imagesVer.get(imgKey);\n\t\t\t\t\t\t\tif (!curImg || imgVer > curImg[0]) {\n\t\t\t\t\t\t\t\timagesVer.set(imgKey, [imgVer, image.id, image.name]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.imagesMap.set(image.id, image.name);\n\t\t\t}\n\n\t\t\tfor (let item of this.imagesMap.entries()) {\n\t\t\t\timagesSelect.push(\n\t\t\t\t\t{item[1]},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tfor (let item of imagesVer.entries()) {\n\t\t\t\tthis.imagesMap.set(item[1][1], item[1][2]);\n\t\t\t\timagesSelect.push(\n\t\t\t\t\t{item[1][2]},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet networkRoles: JSX.Element[] = [];\n\t\tfor (let networkRole of (instance.network_roles || [])) {\n\t\t\tnetworkRoles.push(\n\t\t\t\t\n\t\t\t\t\t{networkRole}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveNetworkRole(networkRole);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tif (!hasImages) {\n\t\t\timagesSelect = [];\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlicenseOpen: false,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('organization', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdatacenter: val,\n\t\t\t\t\t\t\t\t\tinstance: {\n\t\t\t\t\t\t\t\t\t\t...this.state.instance,\n\t\t\t\t\t\t\t\t\t\tnode: '',\n\t\t\t\t\t\t\t\t\t\tzone: '',\n\t\t\t\t\t\t\t\t\t\timage: '',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tImageActions.syncDatacenter(val);\n\t\t\t\t\t\t\t\tNodeActions.syncZone('');\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{datacentersSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tinstance: {\n\t\t\t\t\t\t\t\t\t\t...this.state.instance,\n\t\t\t\t\t\t\t\t\t\tnode: '',\n\t\t\t\t\t\t\t\t\t\tzone: val,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tNodeActions.syncZone(val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{zonesSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.onNode(val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{nodesSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tinstance: {\n\t\t\t\t\t\t\t\t\t\t...this.state.instance,\n\t\t\t\t\t\t\t\t\t\tvpc: val,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{vpcsSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tinstance: {\n\t\t\t\t\t\t\t\t\t\t...this.state.instance,\n\t\t\t\t\t\t\t\t\t\tsubnet: val,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{subnetSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tinstance: {\n\t\t\t\t\t\t\t\t\t\t...this.state.instance,\n\t\t\t\t\t\t\t\t\t\toracle_subnet: val,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{oracleSubnetsSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('domain', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{domainsSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('cloud_type', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('root_enabled', !instance.root_enabled);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('vnc', !instance.vnc);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('spice', !instance.spice);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('gui', !instance.gui);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (instance.state === 'stop') {\n\t\t\t\t\t\t\t\t\tthis.set('state', '');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.set('state', 'stop');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.onUefi(!instance.uefi);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.onSecureBoot(!instance.secure_boot);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('tpm', !instance.tpm);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.onDhcpServer(!instance.dhcp_server);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('delete_protection', !instance.delete_protection);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{imagesSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as ZoneTypes from '../types/ZoneTypes';\n\ninterface Props {\n\tfilter: InstanceTypes.Filter;\n\tonFilter: (filter: InstanceTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tnodes: NodeTypes.NodesRo;\n\tzones: ZoneTypes.ZonesRo;\n\tvpcs: VpcTypes.VpcsRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tshortInput: {\n\t\twidth: '180px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class InstancesFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet nodesSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.nodes && this.props.nodes.length) {\n\t\t\tfor (let node of this.props.nodes) {\n\t\t\t\tnodesSelect.push(\n\t\t\t\t\t{node.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet zonesSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.zones && this.props.zones.length) {\n\t\t\tfor (let zone of this.props.zones) {\n\t\t\t\tzonesSelect.push(\n\t\t\t\t\t{zone.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet vpcsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.vpcs && this.props.vpcs.length) {\n\t\t\tfor (let vpc of this.props.vpcs) {\n\t\t\t\tvpcsSelect.push(\n\t\t\t\t\t{vpc.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet subnetsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.vpcs && this.props.vpcs.length) {\n\t\t\tfor (let vpc of this.props.vpcs) {\n\t\t\t\tif (vpc.id === this.props.filter.vpc) {\n\t\t\t\t\tfor (let sub of (vpc.subnets || [])) {\n\t\t\t\t\t\tsubnetsSelect.push(\n\t\t\t\t\t\t\t{sub.name + ' - ' + sub.network},\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.network_role = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.network_role;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.network_namespace = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.network_namespace;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.node;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.node = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{nodesSelect}\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.zone;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.zone = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{zonesSelect}\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.vpc;\n\t\t\t\t\t\t\tdelete filter.subnet;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (filter.vpc !== val) {\n\t\t\t\t\t\t\t\tfilter.vpc = val;\n\t\t\t\t\t\t\t\tdelete filter.subnet;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{vpcsSelect}\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.subnet;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.subnet = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{subnetsSelect}\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport InstancesStore from '../stores/InstancesStore';\nimport * as InstanceActions from '../actions/InstanceActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class InstancesPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: InstancesStore.page,\n\t\t\tpageCount: InstancesStore.pageCount,\n\t\t\tpages: InstancesStore.pages,\n\t\t\tcount: InstancesStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tInstancesStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tInstancesStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: InstancesStore.page,\n\t\t\tpageCount: InstancesStore.pageCount,\n\t\t\tpages: InstancesStore.pages,\n\t\t\tcount: InstancesStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tInstanceActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tInstanceActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tInstanceActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tInstanceActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tInstanceActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport InstancesStore from '../stores/InstancesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport DomainsNameStore from '../stores/DomainsNameStore';\nimport VpcsNameStore from '../stores/VpcsNameStore';\nimport DatacentersStore from '../stores/DatacentersStore';\nimport NodesStore from '../stores/NodesStore';\nimport ZonesStore from '../stores/ZonesStore';\nimport * as InstanceActions from '../actions/InstanceActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport * as DomainActions from '../actions/DomainActions';\nimport * as VpcActions from '../actions/VpcActions';\nimport * as DatacenterActions from '../actions/DatacenterActions';\nimport * as NodeActions from '../actions/NodeActions';\nimport * as ZoneActions from '../actions/ZoneActions';\nimport Instance from './Instance';\nimport InstanceNew from './InstanceNew';\nimport InstancesFilter from './InstancesFilter';\nimport InstancesPage from './InstancesPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tinstances: InstanceTypes.InstancesRo;\n\tdomains: DomainTypes.DomainsRo;\n\tfilter: InstanceTypes.Filter;\n\tdebug: boolean;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tvpcs: VpcTypes.VpcsRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tnodes: NodeTypes.NodesRo;\n\tzones: ZoneTypes.ZonesRo;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\tdebug: {\n\t\tmargin: '0 0 4px 0',\n\t} as React.CSSProperties,\n\tdebugButton: {\n\t\topacity: 0.5,\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Instances extends React.Component<{}, State> {\n\tinterval: NodeJS.Timer;\n\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tinstances: InstancesStore.instances,\n\t\t\tfilter: InstancesStore.filter,\n\t\t\tdebug: false,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tdomains: DomainsNameStore.domains,\n\t\t\tvpcs: VpcsNameStore.vpcs,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tnodes: NodesStore.nodes,\n\t\t\tzones: ZonesStore.zones,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tInstancesStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tDomainsNameStore.addChangeListener(this.onChange);\n\t\tVpcsNameStore.addChangeListener(this.onChange);\n\t\tDatacentersStore.addChangeListener(this.onChange);\n\t\tNodesStore.addChangeListener(this.onChange);\n\t\tZonesStore.addChangeListener(this.onChange);\n\t\tInstanceActions.sync();\n\t\tOrganizationActions.sync();\n\t\tDomainActions.syncName();\n\t\tVpcActions.syncNames();\n\t\tDatacenterActions.sync();\n\t\tNodeActions.sync();\n\t\tZoneActions.sync();\n\n\t\tthis.interval = setInterval(() => {\n\t\t\tInstanceActions.sync(true);\n\t\t\t// TODO wait for last sync to finish\n\t\t\t// TODO requests stack on slow server\n\t\t}, 1000);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tInstancesStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t\tDomainsNameStore.removeChangeListener(this.onChange);\n\t\tVpcsNameStore.removeChangeListener(this.onChange);\n\t\tDatacentersStore.removeChangeListener(this.onChange);\n\t\tNodesStore.removeChangeListener(this.onChange);\n\t\tZonesStore.removeChangeListener(this.onChange);\n\t\tclearInterval(this.interval);\n\t}\n\n\tonChange = (): void => {\n\t\tlet instances = InstancesStore.instances;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tinstances.forEach((instance: InstanceTypes.Instance): void => {\n\t\t\tif (curSelected[instance.id]) {\n\t\t\t\tselected[instance.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[instance.id]) {\n\t\t\t\topened[instance.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tinstances: instances,\n\t\t\tfilter: InstancesStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tdomains: DomainsNameStore.domains,\n\t\t\tvpcs: VpcsNameStore.vpcs,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tnodes: NodesStore.nodes,\n\t\t\tzones: ZonesStore.zones,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tInstanceActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonForceDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tInstanceActions.forceRemoveMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tupdateSelected(state: string): void {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tInstanceActions.updateMulti(\n\t\t\tObject.keys(this.state.selected), state).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet instancesDom: JSX.Element[] = [];\n\n\t\tthis.state.instances.forEach((\n\t\t\t\tinstance: InstanceTypes.InstanceRo): void => {\n\t\t\tinstancesDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet instances = this.state.instances;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < instances.length; i++) {\n\t\t\t\t\t\t\tlet usr = instances[i];\n\n\t\t\t\t\t\t\tif (usr.id === instance.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[instances[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: instance.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[instance.id]) {\n\t\t\t\t\t\tdelete selected[instance.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[instance.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: instance.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[instance.id]) {\n\t\t\t\t\t\tdelete opened[instance.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[instance.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet newInstanceDom: JSX.Element;\n\t\tif (this.state.newOpened) {\n\t\t\tnewInstanceDom = {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tnewOpened: false,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>;\n\t\t}\n\n\t\tlet debugClass = 'bp3-button bp3-icon-console ';\n\t\tif (this.state.debug) {\n\t\t\tdebugClass += 'bp3-active';\n\t\t}\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let instId of Object.keys(this.state.selected)) {\n\t\t\tlet inst = InstancesStore.instance(instId);\n\t\t\tif (inst) {\n\t\t\t\tselectedNames.push(inst.name || instId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(instId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Instances

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdebug: !this.state.debug,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tDebug\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tInstanceActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tInstanceActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.updateSelected('start');\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.updateSelected('stop');\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tnewOpened: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tInstanceActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\tnodes={this.state.nodes}\n\t\t\t\tzones={this.state.zones}\n\t\t\t\tvpcs={this.state.vpcs}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{newInstanceDom}\n\t\t\t\t\t{instancesDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nexport const SYNC = 'firewall.sync';\nexport const TRAVERSE = 'firewall.traverse';\nexport const FILTER = 'firewall.filter';\nexport const CHANGE = 'firewall.change';\n\nexport interface Rule {\n\tprotocol: string;\n\tport?: string;\n\tsource_ips?: string[];\n}\n\nexport interface Firewall {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\torganization?: string;\n\tnetwork_roles?: string[];\n\tingress?: Rule[];\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\tnetwork_role?: string;\n\torganization?: string;\n}\n\nexport type Firewalls = Firewall[];\n\nexport type FirewallRo = Readonly;\nexport type FirewallsRo = ReadonlyArray;\n\nexport interface FirewallDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tfirewall?: Firewall;\n\t\tfirewalls?: Firewalls;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as FirewallTypes from '../types/FirewallTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass FirewallsStore extends EventEmitter {\n\t_firewalls: FirewallTypes.FirewallsRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: FirewallTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._firewalls = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget firewalls(): FirewallTypes.FirewallsRo {\n\t\treturn this._firewalls;\n\t}\n\n\tget firewallsM(): FirewallTypes.Firewalls {\n\t\tlet firewalls: FirewallTypes.Firewalls = [];\n\t\tthis._firewalls.forEach((firewall: FirewallTypes.FirewallRo): void => {\n\t\t\tfirewalls.push({\n\t\t\t\t...firewall,\n\t\t\t});\n\t\t});\n\t\treturn firewalls;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): FirewallTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tfirewall(id: string): FirewallTypes.FirewallRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._firewalls[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: FirewallTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(firewalls: FirewallTypes.Firewall[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < firewalls.length; i++) {\n\t\t\tfirewalls[i] = Object.freeze(firewalls[i]);\n\t\t\tthis._map[firewalls[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._firewalls = Object.freeze(firewalls);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: FirewallTypes.FirewallDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase FirewallTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase FirewallTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase FirewallTypes.SYNC:\n\t\t\t\tthis._sync(action.data.firewalls, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new FirewallsStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as FirewallTypes from '../types/FirewallTypes';\nimport FirewallsStore from '../stores/FirewallsStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(noLoading?: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader: Loader;\n\tif (!noLoading) {\n\t\tloader = new Loader().loading();\n\t}\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/firewall')\n\t\t\t.query({\n\t\t\t\t...FirewallsStore.filter,\n\t\t\t\tpage: FirewallsStore.page,\n\t\t\t\tpage_count: FirewallsStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (loader) {\n\t\t\t\t\tloader.done();\n\t\t\t\t}\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load firewalls');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: FirewallTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tfirewalls: res.body.firewalls,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: FirewallTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: FirewallTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: FirewallTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(firewall: FirewallTypes.Firewall): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/firewall/' + firewall.id)\n\t\t\t.send(firewall)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save firewall');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(firewall: FirewallTypes.Firewall): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/firewall')\n\t\t\t.send(firewall)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create firewall');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(firewallId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/firewall/' + firewallId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete firewall');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(firewallIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/firewall')\n\t\t\t.send(firewallIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete firewalls');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: FirewallTypes.FirewallDispatch) => {\n\tswitch (action.type) {\n\t\tcase FirewallTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as FirewallTypes from '../types/FirewallTypes';\n\ninterface Props {\n\trule: FirewallTypes.Rule;\n\tonChange: (state: FirewallTypes.Rule) => void;\n\tonAdd: () => void;\n\tonRemove: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tsourceGroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '219px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tportBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tother: {\n\t\tflex: '0 1 auto',\n\t\twidth: '52px',\n\t\tborderRadius: '0 3px 3px 0',\n\t} as React.CSSProperties,\n};\n\nexport default class FirewallRule extends React.Component {\n\tclone(): FirewallTypes.Rule {\n\t\treturn {\n\t\t\t...this.props.rule,\n\t\t};\n\t}\n\n\tonAddSourceIp = (i: number): void => {\n\t\tlet state = this.clone();\n\n\t\tlet sourceIps = [\n\t\t\t...(state.source_ips || []),\n\t\t];\n\n\t\tsourceIps.splice(i + 1, 0, '');\n\t\tstate.source_ips = sourceIps;\n\n\t\tthis.props.onChange(state);\n\t}\n\n\tonChangeSourceIp = (i: number, sourceIp: string): void => {\n\t\tlet state = this.clone();\n\n\t\tlet sourceIps = [\n\t\t\t...(state.source_ips || []),\n\t\t];\n\n\t\tsourceIps[i] = sourceIp;\n\t\tstate.source_ips = sourceIps;\n\n\t\tthis.props.onChange(state);\n\t}\n\n\tonRemoveSourceIp = (i: number): void => {\n\t\tlet state = this.clone();\n\n\t\tlet sourceIps = [\n\t\t\t...(state.source_ips || []),\n\t\t];\n\n\t\tsourceIps.splice(i, 1);\n\t\tstate.source_ips = sourceIps;\n\n\t\tthis.props.onChange(state);\n\t}\n\n\trender(): JSX.Element {\n\t\tlet rule = this.props.rule;\n\n\t\tlet port = rule.port;\n\t\tlet placeholder = '';\n\t\tswitch (rule.protocol) {\n\t\t\tcase 'all':\n\t\t\t\tport = null;\n\t\t\t\tplaceholder = 'Allow all traffic';\n\t\t\t\tbreak;\n\t\t\tcase 'icmp':\n\t\t\t\tport = null;\n\t\t\t\tplaceholder = 'Allow all ICMP traffic';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet sourceIps = (rule.source_ips || []);\n\t\tif (sourceIps.length === 0) {\n\t\t\tsourceIps.push('');\n\t\t}\n\n\t\tlet sourceIpsDoms: JSX.Element[] = [];\n\t\tsourceIps.forEach((sourceIp: string, i: number): void => {\n\t\t\tsourceIpsDoms.push(\n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onChangeSourceIp(i, evt.target.value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveSourceIp(i);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onAddSourceIp(i);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t);\n\t\t});\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.protocol = evt.target.value;\n\n\t\t\t\t\t\t\tif (state.protocol === 'all' || state.protocol === 'icmp') {\n\t\t\t\t\t\t\t\tstate.port = null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.port = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onAdd();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t{sourceIpsDoms}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as FirewallTypes from '../types/FirewallTypes';\nimport * as FirewallActions from '../actions/FirewallActions';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport FirewallRule from './FirewallRule';\nimport PageInput from './PageInput';\nimport PageSelect from './PageSelect';\nimport PageInfo from './PageInfo';\nimport PageInputButton from './PageInputButton';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tfirewall: FirewallTypes.FirewallRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\taddNetworkRole: string;\n\tfirewall: FirewallTypes.Firewall;\n\tingress: FirewallTypes.Rule;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\trules: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n};\n\nexport default class FirewallDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: null,\n\t\t\tfirewall: null,\n\t\t\tingress: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet firewall: any;\n\n\t\tif (this.state.changed) {\n\t\t\tfirewall = {\n\t\t\t\t...this.state.firewall,\n\t\t\t};\n\t\t} else {\n\t\t\tfirewall = {\n\t\t\t\t...this.props.firewall,\n\t\t\t};\n\t\t}\n\n\t\tfirewall[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tfirewall: firewall,\n\t\t});\n\t}\n\n\tonAddNetworkRole = (): void => {\n\t\tlet firewall: FirewallTypes.Firewall;\n\n\t\tif (!this.state.addNetworkRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tfirewall = {\n\t\t\t\t...this.state.firewall,\n\t\t\t};\n\t\t} else {\n\t\t\tfirewall = {\n\t\t\t\t...this.props.firewall,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(firewall.network_roles || []),\n\t\t];\n\n\n\t\tif (networkRoles.indexOf(this.state.addNetworkRole) === -1) {\n\t\t\tnetworkRoles.push(this.state.addNetworkRole);\n\t\t}\n\n\t\tnetworkRoles.sort();\n\t\tfirewall.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tfirewall: firewall,\n\t\t});\n\t}\n\n\tonRemoveNetworkRole = (networkRole: string): void => {\n\t\tlet firewall: FirewallTypes.Firewall;\n\n\t\tif (this.state.changed) {\n\t\t\tfirewall = {\n\t\t\t\t...this.state.firewall,\n\t\t\t};\n\t\t} else {\n\t\t\tfirewall = {\n\t\t\t\t...this.props.firewall,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(firewall.network_roles || []),\n\t\t];\n\n\t\tlet i = networkRoles.indexOf(networkRole);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tnetworkRoles.splice(i, 1);\n\t\tfirewall.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tfirewall: firewall,\n\t\t});\n\t}\n\n\tonAddIngress = (i: number): void => {\n\t\tlet firewall: FirewallTypes.Firewall;\n\n\t\tif (this.state.changed) {\n\t\t\tfirewall = {\n\t\t\t\t...this.state.firewall,\n\t\t\t};\n\t\t} else {\n\t\t\tfirewall = {\n\t\t\t\t...this.props.firewall,\n\t\t\t};\n\t\t}\n\n\t\tlet ingress = [\n\t\t\t...firewall.ingress,\n\t\t];\n\n\t\tingress.splice(i + 1, 0, {\n\t\t\tprotocol: 'all',\n\t\t\tsource_ips: [\n\t\t\t\t'0.0.0.0/0',\n\t\t\t\t'::/0',\n\t\t\t],\n\t\t} as FirewallTypes.Rule);\n\t\tfirewall.ingress = ingress;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tfirewall: firewall,\n\t\t});\n\t}\n\n\tonChangeIngress(i: number, rule: FirewallTypes.Rule): void {\n\t\tlet firewall: FirewallTypes.Firewall;\n\n\t\tif (this.state.changed) {\n\t\t\tfirewall = {\n\t\t\t\t...this.state.firewall,\n\t\t\t};\n\t\t} else {\n\t\t\tfirewall = {\n\t\t\t\t...this.props.firewall,\n\t\t\t};\n\t\t}\n\n\t\tlet ingress = [\n\t\t\t...firewall.ingress,\n\t\t];\n\n\t\tingress[i] = rule;\n\n\t\tfirewall.ingress = ingress;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tfirewall: firewall,\n\t\t});\n\t}\n\n\tonRemoveIngress(i: number): void {\n\t\tlet firewall: FirewallTypes.Firewall;\n\n\t\tif (this.state.changed) {\n\t\t\tfirewall = {\n\t\t\t\t...this.state.firewall,\n\t\t\t};\n\t\t} else {\n\t\t\tfirewall = {\n\t\t\t\t...this.props.firewall,\n\t\t\t};\n\t\t}\n\n\t\tlet ingress = [\n\t\t\t...firewall.ingress,\n\t\t];\n\n\t\tingress.splice(i, 1);\n\n\t\tif (!ingress.length) {\n\t\t\tingress = [\n\t\t\t\t{\n\t\t\t\t\tprotocol: 'all',\n\t\t\t\t\tsource_ips: [\n\t\t\t\t\t\t'0.0.0.0/0',\n\t\t\t\t\t\t'::/0',\n\t\t\t\t\t],\n\t\t\t\t} as FirewallTypes.Rule,\n\t\t\t];\n\t\t}\n\n\t\tfirewall.ingress = ingress;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tfirewall: firewall,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tFirewallActions.commit(this.state.firewall).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tfirewall: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tFirewallActions.remove(this.props.firewall.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet firewall: FirewallTypes.Firewall = this.state.firewall ||\n\t\t\tthis.props.firewall;\n\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\torganizationsSelect.push(\n\t\t\t);\n\t\tif (this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet networkRoles: JSX.Element[] = [];\n\t\tfor (let networkRole of (firewall.network_roles || [])) {\n\t\t\tnetworkRoles.push(\n\t\t\t\t\n\t\t\t\t\t{networkRole}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveNetworkRole(networkRole);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet rules: JSX.Element[] = [];\n\t\tfor (let i = 0; i < firewall.ingress.length; i++) {\n\t\t\tlet index = i;\n\n\t\t\trules.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeIngress(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonAdd={(): void => {\n\t\t\t\t\t\tthis.onAddIngress(index);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveIngress(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{rules}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('organization', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddNetworkRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddNetworkRole}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tfirewall: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as FirewallTypes from '../types/FirewallTypes';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport FirewallDetailed from './FirewallDetailed';\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tfirewall: FirewallTypes.FirewallRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class Firewall extends React.Component {\n\trender(): JSX.Element {\n\t\tlet firewall = this.props.firewall;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    ;\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet networkRoles: JSX.Element[] = [];\n\t\tfor (let networkRole of (firewall.network_roles || [])) {\n\t\t\tnetworkRoles.push(\n\t\t\t\t\n\t\t\t\t\t{networkRole}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet orgName = '';\n\t\tif (!MiscUtils.objectIdNil(firewall.organization)) {\n\t\t\tlet org = OrganizationsStore.organization(firewall.organization);\n\t\t\torgName = org ? org.name : firewall.organization;\n\t\t} else {\n\t\t\torgName = 'Node Firewall';\n\t\t}\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{firewall.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{orgName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{networkRoles}\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as FirewallTypes from '../types/FirewallTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\n\ninterface Props {\n\tfilter: FirewallTypes.Filter;\n\tonFilter: (filter: FirewallTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class FirewallsFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.network_role = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.network_role;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport FirewallsStore from '../stores/FirewallsStore';\nimport * as FirewallActions from '../actions/FirewallActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class FirewallsPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: FirewallsStore.page,\n\t\t\tpageCount: FirewallsStore.pageCount,\n\t\t\tpages: FirewallsStore.pages,\n\t\t\tcount: FirewallsStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tFirewallsStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tFirewallsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: FirewallsStore.page,\n\t\t\tpageCount: FirewallsStore.pageCount,\n\t\t\tpages: FirewallsStore.pages,\n\t\t\tcount: FirewallsStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tFirewallActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tFirewallActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tFirewallActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tFirewallActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tFirewallActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as FirewallTypes from '../types/FirewallTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport FirewallsStore from '../stores/FirewallsStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as FirewallActions from '../actions/FirewallActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport Firewall from './Firewall';\nimport FirewallsFilter from './FirewallsFilter';\nimport FirewallsPage from './FirewallsPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tfirewalls: FirewallTypes.FirewallsRo;\n\tfilter: FirewallTypes.Filter;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Firewalls extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tfirewalls: FirewallsStore.firewalls,\n\t\t\tfilter: FirewallsStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tFirewallsStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tFirewallActions.sync();\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tFirewallsStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet firewalls = FirewallsStore.firewalls;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tfirewalls.forEach((firewall: FirewallTypes.Firewall): void => {\n\t\t\tif (curSelected[firewall.id]) {\n\t\t\t\tselected[firewall.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[firewall.id]) {\n\t\t\t\topened[firewall.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tfirewalls: firewalls,\n\t\t\tfilter: FirewallsStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tFirewallActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet firewallsDom: JSX.Element[] = [];\n\n\t\tthis.state.firewalls.forEach((\n\t\t\t\tfirewall: FirewallTypes.FirewallRo): void => {\n\t\t\tfirewallsDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet firewalls = this.state.firewalls;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < firewalls.length; i++) {\n\t\t\t\t\t\t\tlet usr = firewalls[i];\n\n\t\t\t\t\t\t\tif (usr.id === firewall.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[firewalls[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: firewall.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[firewall.id]) {\n\t\t\t\t\t\tdelete selected[firewall.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[firewall.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: firewall.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[firewall.id]) {\n\t\t\t\t\t\tdelete opened[firewall.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[firewall.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let instId of Object.keys(this.state.selected)) {\n\t\t\tlet inst = FirewallsStore.firewall(instId);\n\t\t\tif (inst) {\n\t\t\t\tselectedNames.push(inst.name || instId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(instId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Firewalls

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tFirewallActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tFirewallActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tlet orgId = '';\n\t\t\t\t\t\t\t\tif (this.state.organizations.length) {\n\t\t\t\t\t\t\t\t\torgId = this.state.organizations[0].id;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tFirewallActions.create({\n\t\t\t\t\t\t\t\t\torganization: orgId,\n\t\t\t\t\t\t\t\t\tingress: [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tsource_ips: [\n\t\t\t\t\t\t\t\t\t\t\t\t'0.0.0.0/0',\n\t\t\t\t\t\t\t\t\t\t\t\t'::/0',\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\tprotocol: 'icmp',\n\t\t\t\t\t\t\t\t\t\t} as FirewallTypes.Rule,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tsource_ips: [\n\t\t\t\t\t\t\t\t\t\t\t\t'0.0.0.0/0',\n\t\t\t\t\t\t\t\t\t\t\t\t'::/0',\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\tprotocol: 'tcp',\n\t\t\t\t\t\t\t\t\t\t\tport: '22',\n\t\t\t\t\t\t\t\t\t\t} as FirewallTypes.Rule,\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tcomment: '22/tcp - SSH connections'\n\t\t\t\t\t\t\t\t} as FirewallTypes.Firewall).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tFirewallActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{firewallsDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport * as AuthorityActions from '../actions/AuthorityActions';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport PageInput from './PageInput';\nimport PageSelect from './PageSelect';\nimport PageInfo from './PageInfo';\nimport PageInputButton from './PageInputButton';\nimport PageTextArea from './PageTextArea';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport * as Constants from \"../Constants\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tauthority: AuthorityTypes.AuthorityRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\taddRole: string;\n\taddNetworkRole: string;\n\tauthority: AuthorityTypes.Authority;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\trules: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n};\n\nexport default class AuthorityDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\taddRole: null,\n\t\t\taddNetworkRole: null,\n\t\t\tauthority: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet authority: any;\n\n\t\tif (this.state.changed) {\n\t\t\tauthority = {\n\t\t\t\t...this.state.authority,\n\t\t\t};\n\t\t} else {\n\t\t\tauthority = {\n\t\t\t\t...this.props.authority,\n\t\t\t};\n\t\t}\n\n\t\tauthority[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tauthority: authority,\n\t\t});\n\t}\n\n\tonAddRole = (): void => {\n\t\tlet authority: AuthorityTypes.Authority;\n\n\t\tif (!this.state.addRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tauthority = {\n\t\t\t\t...this.state.authority,\n\t\t\t};\n\t\t} else {\n\t\t\tauthority = {\n\t\t\t\t...this.props.authority,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...(authority.roles || []),\n\t\t];\n\n\n\t\tif (roles.indexOf(this.state.addRole) === -1) {\n\t\t\troles.push(this.state.addRole);\n\t\t}\n\n\t\troles.sort();\n\t\tauthority.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\tauthority: authority,\n\t\t});\n\t}\n\n\tonRemoveRole = (role: string): void => {\n\t\tlet authority: AuthorityTypes.Authority;\n\n\t\tif (this.state.changed) {\n\t\t\tauthority = {\n\t\t\t\t...this.state.authority,\n\t\t\t};\n\t\t} else {\n\t\t\tauthority = {\n\t\t\t\t...this.props.authority,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...(authority.roles || []),\n\t\t];\n\n\t\tlet i = roles.indexOf(role);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\troles.splice(i, 1);\n\t\tauthority.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\tauthority: authority,\n\t\t});\n\t}\n\n\tonAddNetworkRole = (): void => {\n\t\tlet authority: AuthorityTypes.Authority;\n\n\t\tif (!this.state.addNetworkRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tauthority = {\n\t\t\t\t...this.state.authority,\n\t\t\t};\n\t\t} else {\n\t\t\tauthority = {\n\t\t\t\t...this.props.authority,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(authority.network_roles || []),\n\t\t];\n\n\n\t\tif (networkRoles.indexOf(this.state.addNetworkRole) === -1) {\n\t\t\tnetworkRoles.push(this.state.addNetworkRole);\n\t\t}\n\n\t\tnetworkRoles.sort();\n\t\tauthority.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tauthority: authority,\n\t\t});\n\t}\n\n\tonRemoveNetworkRole = (networkRole: string): void => {\n\t\tlet authority: AuthorityTypes.Authority;\n\n\t\tif (this.state.changed) {\n\t\t\tauthority = {\n\t\t\t\t...this.state.authority,\n\t\t\t};\n\t\t} else {\n\t\t\tauthority = {\n\t\t\t\t...this.props.authority,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(authority.network_roles || []),\n\t\t];\n\n\t\tlet i = networkRoles.indexOf(networkRole);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tnetworkRoles.splice(i, 1);\n\t\tauthority.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tauthority: authority,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\n\n\t\tlet authority: any = {\n\t\t\t...this.state.authority,\n\t\t};\n\n\t\tif (this.props.organizations.length && !authority.organization) {\n\t\t\tauthority.organization = this.props.organizations[0].id;\n\t\t}\n\n\t\tAuthorityActions.commit(authority).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tauthority: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tAuthorityActions.remove(this.props.authority.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet authority: AuthorityTypes.Authority = this.state.authority ||\n\t\t\tthis.props.authority;\n\n\t\tlet hasOrganizations = !!this.props.organizations.length;\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\tif (this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasOrganizations) {\n\t\t\torganizationsSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\tlet roles: JSX.Element[] = [];\n\t\tfor (let role of (authority.roles || [])) {\n\t\t\troles.push(\n\t\t\t\t\n\t\t\t\t\t{role}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveRole(role);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet networkRoles: JSX.Element[] = [];\n\t\tfor (let networkRole of (authority.network_roles || [])) {\n\t\t\tnetworkRoles.push(\n\t\t\t\t\n\t\t\t\t\t{networkRole}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveNetworkRole(networkRole);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('type', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('key', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('certificate', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tRoles\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{roles}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddRole}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('organization', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddNetworkRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddNetworkRole}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tauthority: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport AuthorityDetailed from './AuthorityDetailed';\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tauthority: AuthorityTypes.AuthorityRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class Authority extends React.Component {\n\trender(): JSX.Element {\n\t\tlet authority = this.props.authority;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    ;\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet networkRoles: JSX.Element[] = [];\n\t\tfor (let networkRole of (authority.network_roles || [])) {\n\t\t\tnetworkRoles.push(\n\t\t\t\t\n\t\t\t\t\t{networkRole}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet orgName = '';\n\t\tif (authority.organization) {\n\t\t\tlet org = OrganizationsStore.organization(authority.organization);\n\t\t\torgName = org ? org.name : authority.organization;\n\t\t} else {\n\t\t\torgName = 'No Organization';\n\t\t}\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{authority.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{orgName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{networkRoles}\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\n\ninterface Props {\n\tfilter: AuthorityTypes.Filter;\n\tonFilter: (filter: AuthorityTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class AuthoritiesFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.role = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.role;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.network_role = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.network_role;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport AuthoritiesStore from '../stores/AuthoritiesStore';\nimport * as AuthorityActions from '../actions/AuthorityActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class AuthoritiesPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: AuthoritiesStore.page,\n\t\t\tpageCount: AuthoritiesStore.pageCount,\n\t\t\tpages: AuthoritiesStore.pages,\n\t\t\tcount: AuthoritiesStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tAuthoritiesStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tAuthoritiesStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: AuthoritiesStore.page,\n\t\t\tpageCount: AuthoritiesStore.pageCount,\n\t\t\tpages: AuthoritiesStore.pages,\n\t\t\tcount: AuthoritiesStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tAuthorityActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tAuthorityActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tAuthorityActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tAuthorityActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tAuthorityActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport AuthoritiesStore from '../stores/AuthoritiesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as AuthorityActions from '../actions/AuthorityActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport Authority from './Authority';\nimport AuthoritiesFilter from './AuthoritiesFilter';\nimport AuthoritiesPage from './AuthoritiesPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tauthorities: AuthorityTypes.AuthoritiesRo;\n\tfilter: AuthorityTypes.Filter;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Authorities extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tauthorities: AuthoritiesStore.authorities,\n\t\t\tfilter: AuthoritiesStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tAuthoritiesStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tAuthorityActions.sync();\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tAuthoritiesStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet authorities = AuthoritiesStore.authorities;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tauthorities.forEach((authority: AuthorityTypes.Authority): void => {\n\t\t\tif (curSelected[authority.id]) {\n\t\t\t\tselected[authority.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[authority.id]) {\n\t\t\t\topened[authority.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tauthorities: authorities,\n\t\t\tfilter: AuthoritiesStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tAuthorityActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet authoritiesDom: JSX.Element[] = [];\n\n\t\tthis.state.authorities.forEach((\n\t\t\t\tauthority: AuthorityTypes.AuthorityRo): void => {\n\t\t\tauthoritiesDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet authorities = this.state.authorities;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < authorities.length; i++) {\n\t\t\t\t\t\t\tlet usr = authorities[i];\n\n\t\t\t\t\t\t\tif (usr.id === authority.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[authorities[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: authority.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[authority.id]) {\n\t\t\t\t\t\tdelete selected[authority.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[authority.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: authority.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[authority.id]) {\n\t\t\t\t\t\tdelete opened[authority.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[authority.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let authrId of Object.keys(this.state.selected)) {\n\t\t\tlet authr = AuthoritiesStore.authority(authrId);\n\t\t\tif (authr) {\n\t\t\t\tselectedNames.push(authr.name || authrId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(authrId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Authorities

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tAuthorityActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tAuthorityActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tAuthorityActions.create({\n\t\t\t\t\t\t\t\t\tname: 'New Authority',\n\t\t\t\t\t\t\t\t} as AuthorityTypes.Authority).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tAuthorityActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{authoritiesDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nexport const SYNC = 'log.sync';\nexport const TRAVERSE = 'log.traverse';\nexport const FILTER = 'log.filter';\nexport const CHANGE = 'log.change';\n\nexport interface Log {\n\tid?: string;\n\tlevel?: string;\n\ttimestamp?: string;\n\tmessage?: string;\n\tstack?: string;\n\tfields?: {[key: string]: any};\n}\n\nexport interface Filter {\n\tlevel?: string;\n\tmessage?: string;\n}\n\nexport type Logs = Log[];\n\nexport type LogRo = Readonly;\nexport type LogsRo = ReadonlyArray;\n\nexport interface LogDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tlog?: Log;\n\t\tlogs?: Logs;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as LogTypes from '../types/LogTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass LogsStore extends EventEmitter {\n\t_logs: LogTypes.LogsRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: LogTypes.Filter = null;\n\t_count: number;\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._logs = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis.emitChange();\n\t}\n\n\tget logs(): LogTypes.LogsRo {\n\t\treturn this._logs;\n\t}\n\n\tget logsM(): LogTypes.Logs {\n\t\tlet logs: LogTypes.Logs = [];\n\t\tthis._logs.forEach((log: LogTypes.LogRo): void => {\n\t\t\tlogs.push({\n\t\t\t\t...log,\n\t\t\t});\n\t\t});\n\t\treturn logs;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 50;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): LogTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: LogTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.level !== this._filter.level\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(logs: LogTypes.Log[], count: number): void {\n\t\tfor (let i = 0; i < logs.length; i++) {\n\t\t\tlogs[i] = Object.freeze(logs[i]);\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._logs = Object.freeze(logs);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: LogTypes.LogDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase LogTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase LogTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase LogTypes.SYNC:\n\t\t\t\tthis._sync(action.data.logs, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new LogsStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport * as Constants from '../Constants';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as LogTypes from '../types/LogTypes';\nimport LogsStore from '../stores/LogsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/log')\n\t\t\t.query({\n\t\t\t\t...LogsStore.filter,\n\t\t\t\tpage: LogsStore.page,\n\t\t\t\tpage_count: LogsStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load logs');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: LogTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tlogs: res.body.logs,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: LogTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: LogTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: LogTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nEventDispatcher.register((action: LogTypes.LogDispatch) => {\n\tswitch (action.type) {\n\t\tcase LogTypes.CHANGE:\n\t\t\tif (!Constants.user && window.location.hash.indexOf('/logs') !== -1) {\n\t\t\t\tsync();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as Blueprint from '@blueprintjs/core';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as LogTypes from '../types/LogTypes';\n\ninterface State {\n\tstack: boolean;\n}\n\ninterface Props {\n\tlog: LogTypes.LogRo;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t} as React.CSSProperties,\n\ttimestamp: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '6px',\n\t} as React.CSSProperties,\n\tlevel: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '6px',\n\t} as React.CSSProperties,\n\tmessage: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '6px',\n\t} as React.CSSProperties,\n\tfields: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '6px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tkey: {\n\t\tfontWeight: 'bold',\n\t} as React.CSSProperties,\n\tvalue: {\n\t} as React.CSSProperties,\n\tdialog: {\n\t\theight: '500px',\n\t\twidth: '90%',\n\t\tmaxWidth: '700px',\n\t} as React.CSSProperties,\n\tdialogBody: {\n\t\theight: '100%',\n\t} as React.CSSProperties,\n\ttextarea: {\n\t\tresize: 'none',\n\t\tfontSize: '12px',\n\t\tfontFamily: '\"Lucida Console\", Monaco, monospace',\n\t\tmarginBottom: 0,\n\t} as React.CSSProperties,\n};\n\nexport default class Log extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tstack: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tlet log = this.props.log;\n\n\t\tlet className = 'bp3-cell ';\n\t\tswitch (log.level) {\n\t\t\tcase 'debug':\n\t\t\t\tclassName += 'bp3-text-intent-success';\n\t\t\t\tbreak;\n\t\t\tcase 'info':\n\t\t\t\tclassName += 'bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'warning':\n\t\t\t\tclassName += 'bp3-text-intent-warning';\n\t\t\t\tbreak;\n\t\t\tcase 'error':\n\t\t\t\tclassName += 'bp3-text-intent-danger';\n\t\t\t\tbreak;\n\t\t\tcase 'fatal':\n\t\t\t\tclassName += 'bp3-text-intent-danger';\n\t\t\t\tbreak;\n\t\t\tcase 'panic':\n\t\t\t\tclassName += 'bp3-text-intent-danger';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet fields: JSX.Element[] = [];\n\t\tfor (let key in log.fields) {\n\t\t\tif (!log.fields.hasOwnProperty(key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet val = log.fields[key];\n\n\t\t\tfields.push(\n\t\t\t\t
    \n\t\t\t\t\t{key}: \n\t\t\t\t\t\n\t\t\t\t\t\t{JSON.stringify(val)}\n\t\t\t\t\t\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t{MiscUtils.formatDateShortTime(log.timestamp) || 'Unknown'}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{log.level}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{log.message}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{fields}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\tstack: true,\n\t\t\t\t\t\t});\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tstack: false,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as LogTypes from '../types/LogTypes';\nimport SearchInput from './SearchInput';\n\ninterface Props {\n\tfilter: LogTypes.Filter;\n\tonFilter: (filter: LogTypes.Filter) => void;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class LogsFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.message = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.message;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.level;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.level = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport LogsStore from '../stores/LogsStore';\nimport * as LogActions from '../actions/LogActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class LogsPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: LogsStore.page,\n\t\t\tpageCount: LogsStore.pageCount,\n\t\t\tpages: LogsStore.pages,\n\t\t\tcount: LogsStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tLogsStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tLogsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: LogsStore.page,\n\t\t\tpageCount: LogsStore.pageCount,\n\t\t\tpages: LogsStore.pages,\n\t\t\tcount: LogsStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tLogActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tLogActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tLogActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tLogActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tLogActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as LogTypes from '../types/LogTypes';\nimport LogsStore from '../stores/LogsStore';\nimport * as LogActions from '../actions/LogActions';\nimport Log from './Log';\nimport LogsFilter from './LogsFilter';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport LogsPage from './LogsPage';\n\ninterface State {\n\tlogs: LogTypes.LogsRo;\n\tfilter: LogTypes.Filter;\n}\n\nconst css = {\n\tlogs: {\n\t\twidth: '100%',\n\t\tmarginTop: '-3px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 3px',\n\t} as React.CSSProperties,\n\tlogsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Logs extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tlogs: LogsStore.logs,\n\t\t\tfilter: LogsStore.filter,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tLogsStore.addChangeListener(this.onChange);\n\t\tLogActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tLogsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tlogs: LogsStore.logs,\n\t\t\tfilter: LogsStore.filter,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet logsDom: JSX.Element[] = [];\n\n\t\tthis.state.logs.forEach((log: LogTypes.LogRo): void => {\n\t\t\tlogsDom.push();\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Logs

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tLogActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tLogActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tLogActions.filter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{logsDom}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as SettingsTypes from '../types/SettingsTypes';\nimport PageInput from './PageInput';\nimport PageInputButton from './PageInputButton';\nimport PageTextArea from './PageTextArea';\nimport PageSwitch from './PageSwitch';\nimport PageInfo from './PageInfo';\nimport PageSelect from './PageSelect';\nimport Help from './Help';\n\ninterface Props {\n\tprovider: SettingsTypes.ProviderAny;\n\tonChange: (state: SettingsTypes.ProviderAny) => void;\n\tonRemove: () => void;\n}\n\ninterface State {\n\taddRole: string;\n}\n\nconst css = {\n\tlabel: {\n\t\tfontSize: '16px',\n\t\tmargin: '0 0 7px 0',\n\t} as React.CSSProperties,\n\tcard: {\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class SettingsProvider extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\taddRole: '',\n\t\t};\n\t}\n\n\tclone(): SettingsTypes.ProviderAny {\n\t\treturn {\n\t\t\t...this.props.provider,\n\t\t};\n\t}\n\n\tazure(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.tenant = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.client_id = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.client_secret = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\tauthzero(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.domain = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.client_id = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.client_secret = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\tgoogle(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.domain = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.google_email = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.google_key = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\tonelogin(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.issuer_url = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.saml_url = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.saml_cert = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\tokta(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.saml_url = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.issuer_url = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.saml_cert = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\tjumpcloud(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.saml_url = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.issuer_url = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.saml_cert = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.jumpcloud_app_id = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.jumpcloud_secret = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\trender(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\t\tlet label = '';\n\t\tlet options: JSX.Element;\n\n\t\tswitch (provider.type) {\n\t\t\tcase 'azure':\n\t\t\t\tlabel = 'Azure';\n\t\t\t\toptions = this.azure();\n\t\t\t\tbreak;\n\t\t\tcase 'authzero':\n\t\t\t\tlabel = 'Auth0';\n\t\t\t\toptions = this.authzero();\n\t\t\t\tbreak;\n\t\t\tcase 'google':\n\t\t\t\tlabel = 'Google';\n\t\t\t\toptions = this.google();\n\t\t\t\tbreak;\n\t\t\tcase 'onelogin':\n\t\t\t\tlabel = 'OneLogin';\n\t\t\t\toptions = this.onelogin();\n\t\t\t\tbreak;\n\t\t\tcase 'okta':\n\t\t\t\tlabel = 'Okta';\n\t\t\t\toptions = this.okta();\n\t\t\t\tbreak;\n\t\t\tcase 'jumpcloud':\n\t\t\t\tlabel = 'JumpCloud';\n\t\t\t\toptions = this.jumpcloud();\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet roles: JSX.Element[] = [];\n\t\tfor (let role of provider.default_roles) {\n\t\t\troles.push(\n\t\t\t\t\n\t\t\t\t\t{role}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet rls = [\n\t\t\t\t\t\t\t\t...this.props.provider.default_roles,\n\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\tlet i = rls.indexOf(role);\n\t\t\t\t\t\t\tif (i === -1) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\trls.splice(i, 1);\n\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.default_roles = rls;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t
    {label}
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.label = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\taddRole: val,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSubmit={(): void => {\n\t\t\t\t\tlet rls = [\n\t\t\t\t\t\t...this.props.provider.default_roles,\n\t\t\t\t\t];\n\n\t\t\t\t\tif (!this.state.addRole) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (rls.indexOf(this.state.addRole) === -1) {\n\t\t\t\t\t\trls.push(this.state.addRole);\n\t\t\t\t\t}\n\n\t\t\t\t\trls.sort();\n\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.default_roles = rls;\n\t\t\t\t\tthis.props.onChange(state);\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\taddRole: '',\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.auto_create = !state.auto_create;\n\n\t\t\t\t\tif (!state.auto_create &&\n\t\t\t\t\t\t\tstate.role_management === 'set_on_insert') {\n\t\t\t\t\t\tstate.role_management = 'merge';\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.role_management = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\tSet on insert\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{options}\n\t\t\t {\n\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t}}\n\t\t\t>Remove\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as SettingsTypes from '../types/SettingsTypes';\nimport PageInput from './PageInput';\nimport PageSelect from './PageSelect';\nimport PageSwitch from './PageSwitch';\nimport PageInfo from './PageInfo';\n\ninterface Props {\n\tprovider: SettingsTypes.SecondaryProviderAny;\n\tonChange: (state: SettingsTypes.SecondaryProviderAny) => void;\n\tonRemove: () => void;\n}\n\nconst css = {\n\tlabel: {\n\t\tfontSize: '16px',\n\t\tmargin: '0 0 7px 0',\n\t} as React.CSSProperties,\n\tcard: {\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class SettingsSecondaryProvider extends React.Component {\n\tclone(): SettingsTypes.SecondaryProviderAny {\n\t\treturn {\n\t\t\t...this.props.provider,\n\t\t};\n\t}\n\n\tduo(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.duo_hostname = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.duo_key = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.duo_secret = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.push_factor = !state.push_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.phone_factor = !state.phone_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.passcode_factor = !state.passcode_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.sms_factor = !state.sms_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\tonelogin(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.one_login_id = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.one_login_secret = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.one_login_region = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.push_factor = !state.push_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.passcode_factor = !state.passcode_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\tokta(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.okta_domain = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.okta_token = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.push_factor = !state.push_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.passcode_factor = !state.passcode_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\trender(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\t\tlet label = '';\n\t\tlet options: JSX.Element;\n\n\t\tswitch (provider.type) {\n\t\t\tcase 'duo':\n\t\t\t\tlabel = 'Duo';\n\t\t\t\toptions = this.duo();\n\t\t\t\tbreak;\n\t\t\tcase 'one_login':\n\t\t\t\tlabel = 'OneLogin';\n\t\t\t\toptions = this.onelogin();\n\t\t\t\tbreak;\n\t\t\tcase 'okta':\n\t\t\t\tlabel = 'Okta';\n\t\t\t\toptions = this.okta();\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn
    \n\t\t\t
    {label}
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.name = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.label = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{options}\n\t\t\t {\n\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t}}\n\t\t\t>Remove\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as SettingsTypes from '../types/SettingsTypes';\nimport SettingsStore from '../stores/SettingsStore';\nimport SubscriptionStore from '../stores/SubscriptionStore';\nimport * as SettingsActions from '../actions/SettingsActions';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport PagePanel from './PagePanel';\nimport PageSplit from './PageSplit';\nimport PageInput from './PageInput';\nimport PageSwitch from './PageSwitch';\nimport PageSelectButton from './PageSelectButton';\nimport PageSave from './PageSave';\nimport SettingsProvider from './SettingsProvider';\nimport SettingsSecondaryProvider from './SettingsSecondaryProvider';\nimport NonState from './NonState';\n\ninterface State {\n\tchanged: boolean;\n\tdisabled: boolean;\n\tmessage: string;\n\tprovider: string;\n\tsecondaryProvider: string;\n\tsettings: SettingsTypes.Settings;\n}\n\nconst css = {\n\tproviders: {\n\t\tpaddingBottom: '6px',\n\t\tmarginBottom: '5px',\n\t\tborderBottomStyle: 'solid',\n\t} as React.CSSProperties,\n\tprovidersLabel: {\n\t\tmargin: 0,\n\t} as React.CSSProperties,\n\tsecondaryProviders: {\n\t\tpaddingBottom: '6px',\n\t\tmarginTop: '5px',\n\t\tmarginBottom: '5px',\n\t\tborderBottomStyle: 'solid',\n\t} as React.CSSProperties,\n};\n\nexport default class Settings extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tchanged: false,\n\t\t\tdisabled: false,\n\t\t\tmessage: '',\n\t\t\tprovider: 'google',\n\t\t\tsecondaryProvider: 'duo',\n\t\t\tsettings: SettingsStore.settingsM,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tSettingsStore.addChangeListener(this.onChange);\n\t\tSettingsActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tSettingsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: false,\n\t\t\tsettings: SettingsStore.settingsM,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tSettingsActions.commit(this.state.settings).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tset = (name: string, val: any): void => {\n\t\tlet settings: any = {\n\t\t\t...this.state.settings,\n\t\t};\n\n\t\tsettings[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tsettings: settings,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet settings = this.state.settings;\n\n\t\tif (!settings) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet subscriptionActive = SubscriptionStore.subscription ?\n\t\t\tSubscriptionStore.subscription.active : false;\n\n\t\tlet providers: JSX.Element[] = [];\n\t\tfor (let i = 0; i < settings.auth_providers.length; i++) {\n\t\t\tproviders.push( {\n\t\t\t\t\tlet prvdrs = [\n\t\t\t\t\t\t...this.state.settings.auth_providers,\n\t\t\t\t\t];\n\t\t\t\t\tprvdrs[i] = state;\n\t\t\t\t\tthis.set('auth_providers', prvdrs);\n\t\t\t\t}}\n\t\t\t\tonRemove={(): void => {\n\t\t\t\t\tlet prvdrs = [\n\t\t\t\t\t\t...this.state.settings.auth_providers,\n\t\t\t\t\t];\n\t\t\t\t\tprvdrs.splice(i, 1);\n\t\t\t\t\tthis.set('auth_providers', prvdrs);\n\t\t\t\t}}\n\t\t\t/>);\n\t\t}\n\n\t\tlet secondaryProviders: JSX.Element[] = [];\n\t\tfor (let i = 0; i < settings.auth_secondary_providers.length; i++) {\n\t\t\tsecondaryProviders.push( {\n\t\t\t\t\tlet prvdrs = [\n\t\t\t\t\t\t...this.state.settings.auth_secondary_providers,\n\t\t\t\t\t];\n\t\t\t\t\tprvdrs[i] = state;\n\t\t\t\t\tthis.set('auth_secondary_providers', prvdrs);\n\t\t\t\t}}\n\t\t\t\tonRemove={(): void => {\n\t\t\t\t\tlet prvdrs = [\n\t\t\t\t\t\t...this.state.settings.auth_secondary_providers,\n\t\t\t\t\t];\n\t\t\t\t\tprvdrs.splice(i, 1);\n\t\t\t\t\tthis.set('auth_secondary_providers', prvdrs);\n\t\t\t\t}}\n\t\t\t/>);\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Two-Factor Providers
    \n\t\t\t\t\t
    \n\t\t\t\t\t{secondaryProviders}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tsecondaryProvider: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={(): void => {\n\t\t\t\t\t\t\tlet authProviders: SettingsTypes.SecondaryProviders = [\n\t\t\t\t\t\t\t\t...settings.auth_secondary_providers,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: this.state.secondaryProvider,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tthis.set('auth_secondary_providers', authProviders);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('auth_admin_expire', parseInt(val, 10));\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('auth_admin_max_duration', parseInt(val, 10));\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('auth_user_expire', parseInt(val, 10));\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('auth_user_max_duration', parseInt(val, 10));\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tmessage: 'Your changes have been discarded',\n\t\t\t\t\t\tsettings: SettingsStore.settingsM,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport OrganizationsStore from '../stores/OrganizationsStore';\n\ninterface Props {\n\thidden: boolean;\n}\n\ninterface State {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tcurrent: string;\n}\n\nconst css = {\n\tselect: {\n\t\tmarginRight: '11px',\n\t} as React.CSSProperties,\n};\n\nexport default class Organization extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tcurrent: null,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tcurrent: OrganizationsStore.current,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet orgsSelect: JSX.Element[] = [];\n\n\t\tthis.state.organizations.forEach((\n\t\t\t\torg: OrganizationTypes.OrganizationRo): void => {\n\t\t\torgsSelect.push(\n\t\t\t\t{org.name},\n\t\t\t);\n\t\t});\n\n\t\treturn
    \n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tOrganizationActions.setCurrent(evt.target.value);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{orgsSelect}\n\t\t\t\t\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as ReactRouter from 'react-router-dom';\nimport * as Theme from '../Theme';\nimport * as Constants from '../Constants';\nimport * as SubscriptionTypes from '../types/SubscriptionTypes';\nimport SubscriptionStore from '../stores/SubscriptionStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport LoadingBar from './LoadingBar';\nimport Subscription from './Subscription';\nimport Users from './Users';\nimport UserDetailed from './UserDetailed';\nimport Nodes from './Nodes';\nimport Policies from './Policies';\nimport Certificates from './Certificates';\nimport Organizations from './Organizations';\nimport Datacenters from './Datacenters';\nimport Alerts from './Alerts';\nimport Zones from './Zones';\nimport Blocks from './Blocks';\nimport Vpcs from './Vpcs';\nimport Domains from './Domains';\nimport Balancers from './Balancers';\nimport Storages from './Storages';\nimport Images from './Images';\nimport Disks from './Disks';\nimport Instances from './Instances';\nimport Firewalls from './Firewalls';\nimport Authorities from './Authorities';\nimport Logs from './Logs';\nimport Settings from './Settings';\nimport OrganizationSelect from './OrganizationSelect';\nimport * as UserActions from '../actions/UserActions';\nimport * as SessionActions from '../actions/SessionActions';\nimport * as AuditActions from '../actions/AuditActions';\nimport * as NodeActions from '../actions/NodeActions';\nimport * as PolicyActions from '../actions/PolicyActions';\nimport * as CertificateActions from '../actions/CertificateActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport * as DatacenterActions from '../actions/DatacenterActions';\nimport * as AlertActions from '../actions/AlertActions';\nimport * as ZoneActions from '../actions/ZoneActions';\nimport * as BlockActions from '../actions/BlockActions';\nimport * as VpcActions from '../actions/VpcActions';\nimport * as DomainActions from '../actions/DomainActions';\nimport * as BalancerActions from '../actions/BalancerActions';\nimport * as StorageActions from '../actions/StorageActions';\nimport * as ImageActions from '../actions/ImageActions';\nimport * as DiskActions from '../actions/DiskActions';\nimport * as InstanceActions from '../actions/InstanceActions';\nimport * as FirewallActions from '../actions/FirewallActions';\nimport * as AuthorityActions from '../actions/AuthorityActions';\nimport * as LogActions from '../actions/LogActions';\nimport * as SettingsActions from '../actions/SettingsActions';\nimport * as SubscriptionActions from '../actions/SubscriptionActions';\n\ninterface State {\n\tsubscription: SubscriptionTypes.SubscriptionRo;\n\tcurrent: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\tcard: {\n\t\tminWidth: '310px',\n\t\tmaxWidth: '380px',\n\t\twidth: 'calc(100% - 20px)',\n\t\tmargin: '60px auto',\n\t} as React.CSSProperties,\n\tnav: {\n\t\toverflowX: 'auto',\n\t\toverflowY: 'auto',\n\t\tuserSelect: 'none',\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n\tnavTitle: {\n\t\tflexWrap: 'wrap',\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n\tnavGroup: {\n\t\tflexWrap: 'wrap',\n\t\theight: 'auto',\n\t\tpadding: '10px 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tpadding: '0 7px',\n\t\tcolor: 'inherit',\n\t} as React.CSSProperties,\n\tsub: {\n\t\tcolor: 'inherit',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmarginRight: '11px',\n\t\tmarginBottom: '2px',\n\t\tfontSize: '18px',\n\t\tfontWeight: 'bold',\n\t\twidth: '100px',\n\t} as React.CSSProperties,\n};\n\nexport default class Main extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tsubscription: SubscriptionStore.subscription,\n\t\t\tcurrent: OrganizationsStore.current,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tif (!Constants.user) {\n\t\t\tSubscriptionStore.addChangeListener(this.onChange);\n\t\t\tSubscriptionActions.sync(false);\n\t\t} else {\n\t\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\t\tOrganizationActions.sync();\n\t\t}\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tif (!Constants.user) {\n\t\t\tSubscriptionStore.removeChangeListener(this.onChange);\n\t\t} else {\n\t\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t\t}\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tsubscription: SubscriptionStore.subscription,\n\t\t\tcurrent: OrganizationsStore.current,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tif ((!Constants.user && !this.state.subscription) ||\n\t\t\t\t(Constants.user && this.state.current === undefined)) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tif (Constants.user && !this.state.current) {\n\t\t\treturn
    \n\t\t\t\t\n\t\t\t\t\t

    No Organization

    \n\t\t\t\t\tAccount does not have access to any organizations\n\t\t\t\t\t {\n\t\t\t\t\t\t\twindow.location.href = '/logout';\n\t\t\t\t\t\t}}\n\t\t\t\t\t>Logout\n\t\t\t\t
    \n\t\t\t
    ;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\tUsers\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tNodes\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPolicies\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tCertificates\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tOrganizations\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDatacenters\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tZones\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tIP Blocks\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tVPCs\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDomains\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tLoad Balancers\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tStorages\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tImages\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDisks\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tInstances\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tFirewalls\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tAuthorities\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tAlerts\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tLogs\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSettings\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tSubscriptionActions.sync(true);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>Subscription\n\t\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tlet pathname = props.location.pathname;\n\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (pathname === '/users') {\n\t\t\t\t\t\t\t\t\t\tUserActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname.startsWith('/user/')) {\n\t\t\t\t\t\t\t\t\t\tUserActions.reload().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tSessionActions.reload().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tAuditActions.reload().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/nodes') {\n\t\t\t\t\t\t\t\t\t\tNodeActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tCertificateActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tDatacenterActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tZoneActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tBlockActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/policies') {\n\t\t\t\t\t\t\t\t\t\tSettingsActions.sync();\n\t\t\t\t\t\t\t\t\t\tPolicyActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/certificates') {\n\t\t\t\t\t\t\t\t\t\tCertificateActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/organizations') {\n\t\t\t\t\t\t\t\t\t\tOrganizationActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/datacenters') {\n\t\t\t\t\t\t\t\t\t\tDatacenterActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/zones') {\n\t\t\t\t\t\t\t\t\t\tZoneActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/blocks') {\n\t\t\t\t\t\t\t\t\t\tBlockActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/vpcs') {\n\t\t\t\t\t\t\t\t\t\tVpcActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/domains') {\n\t\t\t\t\t\t\t\t\t\tDomainActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/balancers') {\n\t\t\t\t\t\t\t\t\t\tBalancerActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/storages') {\n\t\t\t\t\t\t\t\t\t\tStorageActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/images') {\n\t\t\t\t\t\t\t\t\t\tImageActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/disks') {\n\t\t\t\t\t\t\t\t\t\tDiskActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/instances') {\n\t\t\t\t\t\t\t\t\t\tInstanceActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/firewalls') {\n\t\t\t\t\t\t\t\t\t\tFirewallActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/authorities') {\n\t\t\t\t\t\t\t\t\t\tAuthorityActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/alerts') {\n\t\t\t\t\t\t\t\t\t\tAlertActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/logs') {\n\t\t\t\t\t\t\t\t\t\tLogActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/settings') {\n\t\t\t\t\t\t\t\t\t\tSettingsActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/subscription') {\n\t\t\t\t\t\t\t\t\t\tSubscriptionActions.sync(true).then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>Refresh\n\t\t\t\t\t\t)}/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\twindow.location.href = '/logout';\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>Logout\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tTheme.toggle();\n\t\t\t\t\t\t\t\tTheme.save();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t (\n\t\t\t\t\tConstants.user ? : \n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport EventDispatcher from './dispatcher/EventDispatcher';\nimport * as Csrf from './Csrf';\n\nlet connected = false;\n\nfunction connect(): void {\n\tlet url = '';\n\tlet location = window.location;\n\n\tif (location.protocol === 'https:') {\n\t\turl += 'wss';\n\t} else {\n\t\turl += 'ws';\n\t}\n\n\turl += '://' + location.host + '/event?csrf_token=' + Csrf.token;\n\n\tlet socket = new WebSocket(url);\n\n\tsocket.addEventListener('close', () => {\n\t\tsetTimeout(() => {\n\t\t\tconnect();\n\t\t}, 500);\n\t});\n\n\tsocket.addEventListener('message', (evt) => {\n\t\tconsole.log(JSON.parse(evt.data).data);\n\t\tEventDispatcher.dispatch(JSON.parse(evt.data).data);\n\t});\n}\n\nexport function init() {\n\tif (connected) {\n\t\treturn;\n\t}\n\tconnected = true;\n\n\tconnect();\n}\n","/// \nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as Blueprint from '@blueprintjs/core';\nimport Main from './components/Main';\nimport * as Alert from './Alert';\nimport * as Event from './Event';\nimport * as Csrf from './Csrf';\n\nCsrf.load().then((): void => {\n\tBlueprint.FocusStyleManager.onlyShowFocusOnTabs();\n\tAlert.init();\n\tEvent.init();\n\n\tReactDOM.render(\n\t\t
    ,\n\t\tdocument.getElementById('app'),\n\t);\n});\n"],"names":["module","exports","obj","__esModule","window","document","newObj","key","Object","prototype","hasOwnProperty","call","desc","defineProperty","getOwnPropertyDescriptor","get","set","default","_interopRequireWildcard","_addClass","_interopRequireDefault","_removeClass","_react","_Transition","_extends","assign","target","i","arguments","length","source","apply","this","addClass","node","classes","split","forEach","c","removeClass","CSSTransition","_React$Component","subClass","superClass","_this","_len","args","Array","_key","concat","onEnter","appearing","className","getClassNames","removeClasses","props","onEntering","activeClassName","reflowAndAddClass","onEntered","appearClassName","doneClassName","enterClassName","onExit","onExiting","onExited","type","classNames","isStringClassNames","create","constructor","__proto__","_proto","_this$getClassNames6","scrollTop","render","createElement","Component","defaultProps","propTypes","_default","_reactDom","_TransitionGroup","ReplaceTransition","_args","handleEnter","_len2","_key2","handleLifecycle","handleEntering","_len3","_key3","handleEntered","_len4","_key4","handleExit","_len5","_key5","handleExiting","_len6","_key6","handleExited","_len7","_key7","handler","idx","originalArgs","_child$props","children","child","Children","toArray","findDOMNode","_this$props","inProp","in","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","_React$Children$toArr","first","second","cloneElement","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","PropTypes","_reactLifecyclesCompat","Transition","context","initialStatus","parentGroup","transitionGroup","appear","isMounting","enter","appearStatus","unmountOnExit","mountOnEnter","state","status","nextCallback","getChildContext","getDerivedStateFromProps","_ref","prevState","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","timeout","undefined","mounting","performEnter","performExit","setState","_this2","timeouts","enterTimeout","safeSetState","onTransitionEnd","_this3","cancel","nextState","callback","setNextCallback","_this4","active","event","doesNotHaveTimeoutOrListener","addEndListener","setTimeout","childProps","only","noop","contextTypes","object","childContextTypes","polyfill","_propTypes","_ChildMapping","_assertThisInitialized","self","ReferenceError","values","map","k","TransitionGroup","bind","firstRender","appeared","mounted","nextProps","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","component","childFactory","isRequired","_CSSTransition","_ReplaceTransition","mergeChildMappings","getProp","nextChildMapping","isValidElement","hasPrev","hasNext","prevChild","isLeaving","mapFn","result","mapper","prev","next","getValueForKey","nextKeysPending","pendingKeys","prevKey","push","childMapping","nextKey","pendingNextKey","prop","classNamesShape","timeoutsShape","Caption","handleKeyUp","locale","date","getMonth","getFullYear","e","keyCode","ENTER","onClick","months","localeUtils","caption","role","onKeyUp","formatMonthTitle","LocaleUtils","clone","d","Date","getTime","isDate","value","isNaN","valueOf","addMonths","n","newDate","setMonth","isSameDay","d1","d2","getDate","isSameMonth","isDayBefore","setHours","isDayAfter","isPastDay","today","isFutureDay","tomorrow","isDayBetween","addDayToRange","day","range","from","to","isDayInRange","getWeekNumber","setDate","getDay","Math","ceil","handleEvent","modifiers","persist","Day","propNames","nextPropNames","some","name","nextProp","nextModifiers","mod","hasOwnProp","modifiersStyles","tabIndex","empty","onMouseEnter","onMouseLeave","onMouseUp","onMouseDown","onKeyDown","onTouchStart","onTouchEnd","onFocus","ariaLabel","ariaDisabled","ariaSelected","defaultClassNames","join","modifier","style","filter","Helpers","DateUtils","ModifiersUtils","DayPicker","dayPicker","showNextMonth","allowNextMonth","deltaMonths","pagedNavigation","numberOfMonths","nextMonth","currentMonth","showMonth","showPreviousMonth","allowPreviousMonth","previousMonth","handleKeyDown","LEFT","dir","cancelEvent","RIGHT","UP","showPreviousYear","DOWN","showNextYear","handleDayKeyDown","focusNextDay","focusPreviousDay","focusPreviousWeek","focusNextWeek","SPACE","onDayClick","handleDayClick","onDayKeyDown","outside","enableOutsideDaysClick","handleOutsideDayClick","handleTodayButtonClick","month","blur","onTodayButtonClick","getModifiersForDay","getCurrentMonthFromProps","startOfMonth","initialMonth","fromMonth","diffInMonths","getMonthsDiff","floor","toMonth","allowMonth","canChangeMonth","onMonthChange","allowYearChange","wrapper","focus","getDayNodes","dayNodes","dayNode","dayNodeIndex","nodeListToArray","focusLastDayOfMonth","focusFirstDayOfMonth","nextMonthDayNodeIndex","previousMonthDayNodes","labels","navbarElement","attributes","navBar","getNextNavigableMonth","getPreviousNavigableMonth","showPreviousButton","showNextButton","onNextClick","onPreviousClick","React","firstDayOfWeek","getFirstDayOfWeekFromProps","reverseMonths","reverse","todayButton","footer","renderTodayButton","container","interactionDisabled","containerProps","ref","el","lang","onBlur","renderNavbar","renderMonths","renderFooter","showOutsideDays","fixedWeeks","showWeekNumbers","showWeekDays","renderDay","renderWeek","weekNumber","weekdayElement","captionElement","VERSION","preventDefault","stopPropagation","getFirstDayOfMonth","getDaysInMonth","selectedDays","selected","disabledDays","disabled","getFirstDayOfWeek","daysInMonth","dayArray","week","weekArray","firstWeek","outsideDate","unshift","lastWeek","lastExtraWeek","lastDay","extraWeek","j","outsideClassName","dayQuery","replace","outsideDayQuery","selector","querySelectorAll","nodeList","slice","resultDate","formatDay","formatWeekdayShort","formatWeekdayLong","getMonths","WEEKDAYS_LONG","WEEKDAYS_SHORT","MONTHS","toDateString","dayMatchesModifier","isArray","isRangeOfDates","after","before","daysOfWeek","dayOfWeek","modifiersObj","reduce","modifierName","Month","monthNumber","propModifiers","getModifiersFromProps","dayModifiers","isOutside","onDayFocus","onDayMouseEnter","onDayMouseLeave","onDayMouseDown","onDayMouseUp","onDayTouchEnd","onDayTouchStart","weekdaysLong","weekdaysShort","onCaptionClick","onWeekClick","captionProps","weeks","getWeekArray","body","Navbar","handleNextClick","handlePreviousClick","handleNextKeyDown","handlePreviousKeyDown","previousClickHandler","nextClickHandler","previousKeyDownHandler","nextKeyDownHandler","shouldShowPrevious","shouldShowNext","previousClassName","navButtonPrev","navButtonInteractionDisabled","nextClassName","navButtonNext","previousButton","nextButton","Weekday","weekday","title","content","Weekdays","days","elementProps","element","weekdays","weekdaysRow","ESC","TAB","_propTypes2","_gud2","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","_inherits","enumerable","writable","configurable","setPrototypeOf","MAX_SIGNED_31_BIT_INT","createEventEmitter","handlers","on","off","h","newValue","changedBits","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","Provider","_Component","_temp","emitter","componentWillReceiveProps","oldValue","x","y","Consumer","_Component2","_temp2","getValue","onUpdate","observedBits","_react2","_implementation2","createContext","_typeof","Symbol","iterator","Log","nodeInterop","cache","_getRequireWildcardCache","has","hasPropertyDescriptor","WeakMap","cacheBabelInterop","cacheNodeInterop","toBase64Table","base64Pad","encode","data","lengthpad","toBinaryTable","decode","offset","dataLength","resultLength","leftbits","leftdata","charCodeAt","padding","charAt","Error","err","_defineProperties","descriptor","CopyRectDecoder","protoProps","staticProps","width","height","sock","display","depth","rQwait","deltaX","rQshift16","deltaY","copyImage","HextileDecoder","_tiles","_lastsubencoding","_tileBuffer","Uint8Array","_tilesX","_tilesY","_totalTiles","bytes","rQ","rQi","subencoding","currTile","tx","ty","tw","min","th","subrects","Debug","fillRect","_background","pixels","blitImage","_foreground","_startTile","_subrects","s","color","xy","sx","sy","wh","sw","sh","_subTile","_finishTile","_tileX","_tileY","_tileW","_tileH","red","green","blue","w","xend","yend","p","RawDecoder","_lines","bytesPerLine","curY","currHeight","rQlen","index","newdata","_i","rQskipBytes","RREDecoder","rQshift32","rQshiftBytes","_color","swidth","sheight","_inflator","TightDecoder","_ctl","_filter","_numColors","_palette","_zlibs","rQshift8","reset","Info","ret","_fillRect","_jpegRect","_pngRect","_basicRect","_readData","imageRect","ctl","streamId","_copyFilter","_paletteFilter","_gradientFilter","uncompressedSize","setInput","inflate","rgbx","numColors","rQpeek8","paletteSize","rQshiftTo","bpp","_monoRect","_paletteRect","palette","dest","_getScratchBuffer","w1","_y","dp","sp","_x","b","_b","total","_byte","size","_scratchBuffer","_setPrototypeOf","o","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","getPrototypeOf","TightPNGDecoder","_TightDecoder","_super","_deflate2","_zstream","Deflator","strm","chunkSize","outputBuffer","windowBits","deflateInit","inData","input","avail_in","next_in","output","avail_out","next_out","lastRet","deflate","Z_FULL_FLUSH","outData","buffer","chunks","totalLen","chunk","newData","a","f","PC2","totrot","SP1","z","SP2","SP3","SP4","SP5","SP6","SP7","SP8","DES","password","pc1m","pcr","kn","l","m","_m","_j","_l","_j2","rawi","KnLi","raw0","raw1","text","r","_i2","keysi","fval","t","enc8","_base","_int","Display","_drawCtx","_renderQ","_flushing","_fbWidth","_fbHeight","_prevDrawStyle","_target","getContext","_targetCtx","_viewportLoc","_backbuffer","_damageBounds","left","top","right","bottom","navigator","userAgent","_scale","_clipViewport","onflush","scale","_rescale","viewport","vp","viewportChangeSize","viewportChangePos","vx2","vy2","_damage","flip","canvas","toSigned32bit","saveImg","getImageData","putImageData","fromQueue","vx","vy","drawImage","_renderQPush","_setFillColor","oldX","oldY","newX","newY","mozImageSmoothingEnabled","webkitImageSmoothingEnabled","msImageSmoothingEnabled","imageSmoothingEnabled","mime","arr","img","Image","src","Uint8ClampedArray","byteOffset","ImageData","newArr","containerWidth","containerHeight","scaleRatio","targetAspectRatio","factor","newStyle","fillStyle","action","_scanRenderQ","removeEventListener","_noVNCDisplay","_resumeRenderQ","ready","complete","addEventListener","shift","encodingName","num","encodings","encodingRaw","encodingCopyRect","encodingRRE","encodingHextile","encodingTight","encodingTightPNG","pseudoEncodingQualityLevel9","pseudoEncodingQualityLevel0","pseudoEncodingDesktopSize","pseudoEncodingLastRect","pseudoEncodingCursor","pseudoEncodingQEMUExtendedKeyEvent","pseudoEncodingDesktopName","pseudoEncodingExtendedDesktopSize","pseudoEncodingXvp","pseudoEncodingFence","pseudoEncodingContinuousUpdates","pseudoEncodingCompressLevel9","pseudoEncodingCompressLevel0","pseudoEncodingVMwareCursor","pseudoEncodingExtendedClipboard","_inflate2","Inflate","inflateInit","expected","inflateReset","_keysym","DOMKeyTable","addStandard","standard","addLeftRight","addNumpad","numpad","XK_Alt_L","XK_Alt_R","XK_ISO_Level3_Shift","XK_Caps_Lock","XK_Control_L","XK_Control_R","XK_Super_L","XK_Super_R","XK_Num_Lock","XK_Scroll_Lock","XK_Shift_L","XK_Shift_R","XK_Return","XK_KP_Enter","XK_Tab","XK_space","XK_KP_Space","XK_Down","XK_KP_Down","XK_Left","XK_KP_Left","XK_Right","XK_KP_Right","XK_Up","XK_KP_Up","XK_End","XK_KP_End","XK_Home","XK_KP_Home","XK_Next","XK_KP_Next","XK_Prior","XK_KP_Prior","XK_BackSpace","XK_Clear","XK_KP_Begin","XF86XK_Copy","XF86XK_Cut","XK_Delete","XK_KP_Delete","XK_Insert","XK_KP_Insert","XF86XK_Paste","XK_Redo","XK_Undo","XK_Cancel","XK_Menu","XK_Escape","XK_Execute","XK_Find","XK_Help","XK_Pause","XK_Select","XF86XK_ZoomIn","XF86XK_ZoomOut","XF86XK_MonBrightnessDown","XF86XK_MonBrightnessUp","XF86XK_Eject","XF86XK_LogOff","XF86XK_PowerOff","XF86XK_PowerDown","XK_Print","XF86XK_Hibernate","XF86XK_Standby","XF86XK_WakeUp","XK_MultipleCandidate","XK_Eisu_toggle","XK_Codeinput","XK_Multi_key","XK_Henkan","XK_ISO_First_Group","XK_ISO_Last_Group","XK_ISO_Next_Group","XK_ISO_Prev_Group","XK_Muhenkan","XK_PreviousCandidate","XK_SingleCandidate","XK_Hangul","XK_Hangul_Hanja","XK_Hangul_Jeonja","XK_Hankaku","XK_Hiragana","XK_Hiragana_Katakana","XK_Kana_Shift","XK_Kanji","XK_Katakana","XK_Romaji","XK_Zenkaku","XK_Zenkaku_Hankaku","XK_F1","XK_F2","XK_F3","XK_F4","XK_F5","XK_F6","XK_F7","XK_F8","XK_F9","XK_F10","XK_F11","XK_F12","XK_F13","XK_F14","XK_F15","XK_F16","XK_F17","XK_F18","XK_F19","XK_F20","XK_F21","XK_F22","XK_F23","XK_F24","XK_F25","XK_F26","XK_F27","XK_F28","XK_F29","XK_F30","XK_F31","XK_F32","XK_F33","XK_F34","XK_F35","XF86XK_Close","XF86XK_MailForward","XF86XK_Reply","XF86XK_Send","XF86XK_AudioForward","XF86XK_AudioPause","XF86XK_AudioPlay","XF86XK_AudioRecord","XF86XK_AudioRewind","XF86XK_AudioStop","XF86XK_AudioNext","XF86XK_AudioPrev","XF86XK_New","XF86XK_Open","XF86XK_Save","XF86XK_Spell","XF86XK_AudioLowerVolume","XF86XK_AudioRaiseVolume","XF86XK_AudioMute","XF86XK_AudioMicMute","XF86XK_MyComputer","XF86XK_Calculator","XF86XK_Calendar","XF86XK_Mail","XF86XK_AudioMedia","XF86XK_Music","XF86XK_Phone","XF86XK_ScreenSaver","XF86XK_Excel","XF86XK_WWW","XF86XK_WebCam","XF86XK_Word","XF86XK_Back","XF86XK_Favorites","XF86XK_Forward","XF86XK_HomePage","XF86XK_Refresh","XF86XK_Search","XF86XK_Stop","XF86XK_BrightnessAdjust","XF86XK_AudioCycleTrack","XF86XK_AudioRandomPlay","XF86XK_SplitScreen","XF86XK_Subtitle","XF86XK_Next_VMode","XK_equal","XK_KP_Equal","XK_plus","XK_KP_Add","XK_minus","XK_KP_Subtract","XK_asterisk","XK_KP_Multiply","XK_slash","XK_KP_Divide","XK_period","XK_KP_Decimal","XK_comma","XK_KP_Separator","XK_0","XK_KP_0","XK_1","XK_KP_1","XK_2","XK_KP_2","XK_3","XK_KP_3","XK_4","XK_KP_4","XK_5","XK_KP_5","XK_6","XK_KP_6","XK_7","XK_KP_7","XK_8","XK_KP_8","XK_9","XK_KP_9","GH_TWODRAG","GH_PINCH","GestureHandler","_state","_tracked","_ignored","_waitingRelease","_releaseStart","_longpressTimeoutId","_twoTouchTimeoutId","_boundEventHandler","_eventHandler","detach","_stopLongpressTimeout","_stopTwoTouchTimeout","fn","_touchStart","_touchMove","_touchEnd","changedTouches","touch","identifier","clientX","clientY","id","_hasDetectedGesture","now","started","firstX","firstY","lastX","lastY","angle","_startLongpressTimeout","find","atan2","PI","hypot","prevTouch","deltaAngle","abs","_isTwoTouchTimeoutRunning","_startTwoTouchTimeout","_pushEvent","splice","_longpressTimeout","clearTimeout","_twoTouchTimeout","avgM","_getAverageMovement","avgMoveH","avgMoveV","avgD","_getAverageDistance","deltaTouchDistance","last","detail","_stateToGesture","avg","_getPosition","pos","distance","movement","gev","CustomEvent","dispatchEvent","fx","fy","lx","ly","totalH","totalV","_events","KeyboardUtil","browser","Keyboard","_keyDownList","_altGrArmed","_eventHandlers","_handleKeyUp","_handleKeyDown","_allKeysUp","onkeyevent","keysym","code","down","getKeycode","keyIdentifier","substr","codepoint","parseInt","String","fromCharCode","toUpperCase","_getKeyCode","getKeysym","_altGrTimeout","timeStamp","_altGrCtrlTime","_sendKeyEvent","stopEvent","isMac","isIOS","XK_Mode_switch","jpBadKeys","isWindows","includes","_handleAltGrTimeout","keydown","keyup","XK_VoidSymbol","XK_Linefeed","XK_Sys_Req","XK_Henkan_Mode","XK_Touroku","XK_Massyo","XK_Kana_Lock","XK_Eisu_Shift","XK_Kanji_Bangou","XK_Zen_Koho","XK_Mae_Koho","XK_Page_Up","XK_Page_Down","XK_Begin","XK_Break","XK_script_switch","XK_KP_Tab","XK_KP_F1","XK_KP_F2","XK_KP_F3","XK_KP_F4","XK_KP_Page_Up","XK_KP_Page_Down","XK_L1","XK_L2","XK_L3","XK_L4","XK_L5","XK_L6","XK_L7","XK_L8","XK_L9","XK_L10","XK_R1","XK_R2","XK_R3","XK_R4","XK_R5","XK_R6","XK_R7","XK_R8","XK_R9","XK_R10","XK_R11","XK_R12","XK_R13","XK_R14","XK_R15","XK_Shift_Lock","XK_Meta_L","XK_Meta_R","XK_Hyper_L","XK_Hyper_R","XK_exclam","XK_quotedbl","XK_numbersign","XK_dollar","XK_percent","XK_ampersand","XK_apostrophe","XK_quoteright","XK_parenleft","XK_parenright","XK_colon","XK_semicolon","XK_less","XK_greater","XK_question","XK_at","XK_A","XK_B","XK_C","XK_D","XK_E","XK_F","XK_G","XK_H","XK_I","XK_J","XK_K","XK_L","XK_M","XK_N","XK_O","XK_P","XK_Q","XK_R","XK_S","XK_T","XK_U","XK_V","XK_W","XK_X","XK_Y","XK_Z","XK_bracketleft","XK_backslash","XK_bracketright","XK_asciicircum","XK_underscore","XK_grave","XK_quoteleft","XK_a","XK_b","XK_c","XK_d","XK_e","XK_f","XK_g","XK_h","XK_i","XK_j","XK_k","XK_l","XK_m","XK_n","XK_o","XK_p","XK_q","XK_r","XK_s","XK_t","XK_u","XK_v","XK_w","XK_x","XK_y","XK_z","XK_braceleft","XK_bar","XK_braceright","XK_asciitilde","XK_nobreakspace","XK_exclamdown","XK_cent","XK_sterling","XK_currency","XK_yen","XK_brokenbar","XK_section","XK_diaeresis","XK_copyright","XK_ordfeminine","XK_guillemotleft","XK_notsign","XK_hyphen","XK_registered","XK_macron","XK_degree","XK_plusminus","XK_twosuperior","XK_threesuperior","XK_acute","XK_mu","XK_paragraph","XK_periodcentered","XK_cedilla","XK_onesuperior","XK_masculine","XK_guillemotright","XK_onequarter","XK_onehalf","XK_threequarters","XK_questiondown","XK_Agrave","XK_Aacute","XK_Acircumflex","XK_Atilde","XK_Adiaeresis","XK_Aring","XK_AE","XK_Ccedilla","XK_Egrave","XK_Eacute","XK_Ecircumflex","XK_Ediaeresis","XK_Igrave","XK_Iacute","XK_Icircumflex","XK_Idiaeresis","XK_ETH","XK_Eth","XK_Ntilde","XK_Ograve","XK_Oacute","XK_Ocircumflex","XK_Otilde","XK_Odiaeresis","XK_multiply","XK_Oslash","XK_Ooblique","XK_Ugrave","XK_Uacute","XK_Ucircumflex","XK_Udiaeresis","XK_Yacute","XK_THORN","XK_Thorn","XK_ssharp","XK_agrave","XK_aacute","XK_acircumflex","XK_atilde","XK_adiaeresis","XK_aring","XK_ae","XK_ccedilla","XK_egrave","XK_eacute","XK_ecircumflex","XK_ediaeresis","XK_igrave","XK_iacute","XK_icircumflex","XK_idiaeresis","XK_eth","XK_ntilde","XK_ograve","XK_oacute","XK_ocircumflex","XK_otilde","XK_odiaeresis","XK_division","XK_oslash","XK_ooblique","XK_ugrave","XK_uacute","XK_ucircumflex","XK_udiaeresis","XK_yacute","XK_thorn","XK_ydiaeresis","XF86XK_ModeLock","XF86XK_KbdLightOnOff","XF86XK_KbdBrightnessUp","XF86XK_KbdBrightnessDown","XF86XK_Start","XF86XK_Memo","XF86XK_ToDoList","XF86XK_ContrastAdjust","XF86XK_RockerUp","XF86XK_RockerDown","XF86XK_RockerEnter","XF86XK_Sleep","XF86XK_VendorHome","XF86XK_LightBulb","XF86XK_Shop","XF86XK_History","XF86XK_OpenURL","XF86XK_AddFavorite","XF86XK_HotLinks","XF86XK_Finance","XF86XK_Community","XF86XK_BackForward","XF86XK_Launch0","XF86XK_Launch1","XF86XK_Launch2","XF86XK_Launch3","XF86XK_Launch4","XF86XK_Launch5","XF86XK_Launch6","XF86XK_Launch7","XF86XK_Launch8","XF86XK_Launch9","XF86XK_LaunchA","XF86XK_LaunchB","XF86XK_LaunchC","XF86XK_LaunchD","XF86XK_LaunchE","XF86XK_LaunchF","XF86XK_ApplicationLeft","XF86XK_ApplicationRight","XF86XK_Book","XF86XK_CD","XF86XK_Calculater","XF86XK_Clear","XF86XK_Display","XF86XK_DOS","XF86XK_Documents","XF86XK_Explorer","XF86XK_Game","XF86XK_Go","XF86XK_iTouch","XF86XK_Market","XF86XK_Meeting","XF86XK_MenuKB","XF86XK_MenuPB","XF86XK_MySites","XF86XK_News","XF86XK_OfficeHome","XF86XK_Option","XF86XK_Q","XF86XK_Reload","XF86XK_RotateWindows","XF86XK_RotationPB","XF86XK_RotationKB","XF86XK_ScrollUp","XF86XK_ScrollDown","XF86XK_ScrollClick","XF86XK_Support","XF86XK_TaskPane","XF86XK_Terminal","XF86XK_Tools","XF86XK_Travel","XF86XK_UserPB","XF86XK_User1KB","XF86XK_User2KB","XF86XK_Video","XF86XK_WheelButton","XF86XK_Xfer","XF86XK_Away","XF86XK_Messenger","XF86XK_Pictures","XF86XK_Battery","XF86XK_Bluetooth","XF86XK_WLAN","XF86XK_UWB","XF86XK_AudioRepeat","XF86XK_CycleAngle","XF86XK_FrameBack","XF86XK_FrameForward","XF86XK_Time","XF86XK_Select","XF86XK_View","XF86XK_TopMenu","XF86XK_Red","XF86XK_Green","XF86XK_Yellow","XF86XK_Blue","XF86XK_Suspend","XF86XK_TouchpadToggle","XF86XK_TouchpadOn","XF86XK_TouchpadOff","XF86XK_Switch_VT_1","XF86XK_Switch_VT_2","XF86XK_Switch_VT_3","XF86XK_Switch_VT_4","XF86XK_Switch_VT_5","XF86XK_Switch_VT_6","XF86XK_Switch_VT_7","XF86XK_Switch_VT_8","XF86XK_Switch_VT_9","XF86XK_Switch_VT_10","XF86XK_Switch_VT_11","XF86XK_Switch_VT_12","XF86XK_Ungrab","XF86XK_ClearGrab","XF86XK_Prev_VMode","XF86XK_LogWindowTree","XF86XK_LogGrabInfo","codepoints","lookup","u","getKey","evt","_domkeytable","location","_code","_keysymdef","_vkeys","_fixedkeys","charCode","_strings","_browser","_element","_eventtarget","_display","_deflator","_keyboard","_gesturehandler","_cursor","_websock","_des","_xtscancodes","_encodings","_raw","_copyrect","_rre","_hextile","_tight","_tightpng","GESTURE_SCRLSENS","extendedClipboardActionCaps","extendedClipboardActionRequest","extendedClipboardActionPeek","extendedClipboardActionNotify","extendedClipboardActionProvide","RFB","_EventTargetMixin","urlOrChannel","options","_url","_rawChannel","_rfbCredentials","credentials","_shared","shared","_repeaterID","repeaterID","_wsProtocols","wsProtocols","_rfbConnectionState","_rfbInitState","_rfbAuthScheme","_rfbCleanDisconnect","_rfbVersion","_rfbMaxVersion","_rfbTightVNC","_rfbVeNCryptState","_rfbXvpVer","_fbName","_capabilities","power","_supportsFence","_supportsContinuousUpdates","_enabledContinuousUpdates","_supportsSetDesktopSize","_screenID","_screenFlags","_qemuExtKeyEventSupported","_clipboardText","_clipboardServerCapabilitiesActions","_clipboardServerCapabilitiesFormats","_sock","_gestures","_resizeObserver","_disconnTimer","_resizeTimeout","_mouseMoveTimer","_decoders","_FBU","rects","encoding","_mousePos","_mouseButtonMask","_mouseLastMoveTime","_viewportDragging","_viewportDragPos","_viewportHasMoved","_accumulatedWheelDeltaX","_accumulatedWheelDeltaY","_gestureLastTapTime","_gestureFirstDoubleTapEv","_gestureLastMagnitudeX","_gestureLastMagnitudeY","focusCanvas","_focusCanvas","handleResize","_handleResize","handleMouse","_handleMouse","handleWheel","_handleWheel","handleGesture","_handleGesture","_screen","overflow","background","_canvas","margin","outline","appendChild","_cursorImage","cursors","none","exc","_onFlush","_handleKeyEvent","_socketOpen","_socketClose","_handleMessage","_socketError","ResizeObserver","_updateConnectionState","dragViewport","focusOnClick","_viewOnly","_scaleViewport","_resizeSession","_showDotCursor","showDotCursor","Warn","_qualityLevel","_compressionLevel","challenge","passwordChars","encrypt","viewOnly","ungrab","grab","button","_updateClip","_updateScale","resize","_requestRemoteResize","show","_refreshCursor","cssValue","qualityLevel","Number","isInteger","_sendEncodings","compressionLevel","creds","_initMsg","sendKey","_xvpOp","scancode","messages","QEMUExtendedKeyEvent","keyEvent","extendedClipboardNotify","clientCutText","open","attach","readyState","observe","disconnect","close","removeChild","_fail","msg","reason","requestAnimationFrame","curClip","clipViewport","newClip","_screenSize","_fixScrollbars","autoscale","setDesktopSize","getBoundingClientRect","orig","oldstate","_connect","_disconnect","DISCONNECT_TIMEOUT","clean","details","cap","val","capabilities","_normalMsg","ev","clientToElement","setCapture","_handleMouseButton","_handleMouseMove","bmask","_sendMouse","dragThreshold","timeSinceLastMove","_handleDelayedMouseMove","mask","pointerEvent","absX","absY","dX","dY","deltaMode","elementX","elementY","move","dx","dy","_fakeMouseMove","magnitude","_handleTapEvent","magnitudeX","magnitudeY","sversion","rQshiftStr","isRepeater","sendString","cversion","numTypes","_securityContext","_securityStatus","types","send","strlen","username","xvpAuthStr","_negotiateAuthentication","major","minor","res","subtypesLength","_rfbVeNCryptSubtypesLength","subtypes","user","encodeUTF8","pass","response","genDES","numTunnels","clientSupportedTunnelTypes","vendor","signature","serverSupportedTunnelTypes","capCode","capVendor","capSignature","_negotiateTightTunnels","subAuthCount","clientSupportedTypes","serverSupportedTypes","authType","_negotiateXvpAuth","_negotiateStdVNCAuth","_negotiateTightAuth","_negotiateVeNCryptAuth","_negotiateTightUnixAuth","bigEndian","trueColor","redMax","greenMax","blueMax","redShift","greenShift","blueShift","nameLength","decodeUTF8","numServerMessages","numClientMessages","numEncodings","totalMessagesLength","_setDesktopName","_resize","_fbDepth","pixelFormat","fbUpdateRequest","encs","clientEncodings","_negotiateProtocolVersion","_negotiateSecurity","_handleSecurityResult","_handleSecurityReason","_negotiateServerInit","flags","formats","actions","_index","clientActions","extendedClipboardCaps","extendedClipboardFormatText","extendedClipboardProvide","extendedClipboardRequest","zlibStream","streamInflator","textData","format","sizeArray","tmpText","_i3","payload","clientFence","xvpVer","xvpMsg","_setCapability","msgType","_framebufferUpdate","_handleSetColourMapMsg","_handleServerCutText","_updateContinuousUpdates","_handleServerFenceMsg","_handleXvpMsg","rQslice","pending","flush","hdr","_handleRect","_handleVMwareCursor","_handleCursor","_handleDesktopName","_handleExtendedDesktopSize","_handleDataRect","hotx","hoty","rgba","cursorType","PIXEL_MASK","andMask","pixel","xorMask","_pixel","_pixel2","bgr","g","_pixel3","_updateCursor","pixelslength","masklength","pixIdx","alpha","numberOfScreens","firstUpdate","decoder","decodeRect","enableContinuousUpdates","ver","op","xvpOp","rgbaPixels","image","_shouldShowDotCursor","dot","change","buff","_sQ","_sQlen","keycode","xtScanCode","lowerByte","RFBkeycode","_buildExtendedClipboardFlags","formatFlag","actionFlag","_i4","deflator","dataToDeflate","deflatedData","formatKeys","sort","loopOffset","extended","toUnsigned32bit","dataOffset","remaining","flushSize","_sQbufferSize","enable","bits","enc","incremental","hasScrollbarGutter","isFirefox","exec","platform","isSafari","isTouchDevice","supportsCursorURIs","documentElement","ontouchstart","maxTouchPoints","msMaxTouchPoints","onFirstTouch","devicePixelRatio","_supportsCursorURIs","cursor","_hasScrollbarGutter","visibility","scrollbarWidth","offsetWidth","parentNode","useFallback","Cursor","position","zIndex","pointerEvents","_position","_hotSpot","_handleMouseOver","_handleMouseLeave","_handleMouseUp","capture","passive","mouseover","mouseleave","mousemove","mouseup","clear","ctx","clearRect","_updatePosition","url","toDataURL","visualViewport","offsetLeft","offsetTop","elementFromPoint","_updateVisibility","relatedTarget","_captureIsActive","contains","getComputedStyle","captureElement","_shouldShowCursor","_showCursor","_hideCursor","elem","bounds","getPointerEvent","touches","releaseCapture","proxyElem","getElementById","_captureProxy","_captureObserver","_capturedElemChanged","_captureRecursion","_elementForUnflushedEvents","newEv","defaultPrevented","MutationObserver","EventTargetMixin","_listeners","Map","Set","add","toConvert","getLogging","_logLevel","initLogging","level","console","debug","info","warn","error","utf8string","allowLatin1","decodeURIComponent","escape","URIError","DOMString","unescape","encodeURIComponent","Buf8","Buf32","Buf16","arraySet","src_offs","len","dest_offs","subarray","flattenChunks","shrinkBuf","buf","Uint16Array","Int32Array","adler","s1","s2","makeTable","table","Z_UNKNOWN","Z_STREAM_ERROR","Z_STREAM_END","Z_RLE","Z_PARTIAL_FLUSH","Z_OK","Z_NO_FLUSH","Z_HUFFMAN_ONLY","Z_FIXED","Z_FINISH","Z_FILTERED","Z_DEFLATED","Z_DEFAULT_STRATEGY","Z_DEFAULT_COMPRESSION","Z_DATA_ERROR","Z_BUF_ERROR","Z_BLOCK","old_flush","beg","FINISH_STATE","last_flush","wrap","put_byte","gzhead","hcrc","extra","comment","time","strategy","os","_crc","pending_buf","gzindex","BUSY_STATE","header","w_bits","level_flags","strstart","putShortMSB","pending_buf_size","flush_pending","HCRC_STATE","rank","lookahead","bstate","bflush","fill_window","match_length","trees","_tr_tally","flush_block_only","insert","last_lit","deflate_huff","scan","strend","_win","MAX_MATCH","deflate_rle","configuration_table","func","_tr_align","_tr_stored_block","zero","head","block_start","total_in","deflateEnd","deflateInfo","deflateInit2","deflateReset","deflateResetKeep","deflateSetDictionary","dictionary","str","avail","tmpDict","dictLength","_adler","w_size","utils","ins_h","hash_shift","hash_mask","w_mask","MIN_MATCH","prev_length","match_available","deflateSetHeader","_messages","MIN_LOOKAHEAD","errorCode","pending_out","total_out","_tr_flush_block","longest_match","cur_match","match","chain_length","max_chain_length","best_len","nice_match","limit","wmask","scan_end1","scan_end","good_match","match_start","more","start","_w_size","window_size","hash_size","deflate_fast","hash_head","max_lazy_match","deflate_slow","max_insert","prev_match","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","method","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","MAX_BITS","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","data_type","_tr_init","memLevel","max_block_size","max_start","_in","_out","end","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","dist","from_source","lencode","distcode","lenbits","distbits","dolen","mode","dodist","sane","Z_TREES","Z_NEED_DICT","Z_MEM_ERROR","put","have","copy","here_bits","here_op","here_val","last_bits","last_op","last_val","opts","hbuf","order","TYPE","inf_leave","check","done","BAD","wbits","xflags","extra_len","zswap32","havedict","fixedtables","nlen","ndist","ncode","lens","lendyn","_inftrees","work","distdyn","_inffast","back","was","updatewindow","inflateEnd","inflateGetHeader","inflateInfo","inflateInit2","MAX_WBITS","inflateReset2","inflateResetKeep","inflateSetDictionary","dictid","q","InflateState","lenfix","distfix","virgin","sym","lens_index","codes","table_index","incr","fill","low","max","root","curr","drop","used","huff","base","base_index","count","MAXBITS","offs","extra_index","lbase","lext","dbase","dext","send_bits","STATIC_TREES","send_code","static_ltree","put_short","bi_flush","stored_len","opt_lenb","static_lenb","max_blindex","black_mask","LITERALS","detect_data_type","build_tree","scan_tree","max_code","BL_CODES","bl_order","build_bl_tree","compress_block","static_dtree","lcodes","dcodes","blcodes","send_tree","send_all_trees","init_block","bi_windup","static_init_done","LENGTH_CODES","base_length","extra_lbits","_length_code","base_dist","extra_dbits","_dist_code","D_CODES","gen_codes","L_CODES","bi_reverse","static_l_desc","StaticTreeDesc","static_d_desc","static_bl_desc","extra_blbits","tr_static_init","TreeDesc","lc","d_code","static_tree","extra_bits","extra_base","elems","max_length","has_stree","dyn_tree","stat_desc","tree","next_code","END_BLOCK","smaller","_n2","_m2","pqdownheap","v","ltree","dtree","stree","xbits","gen_bitlen","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","copy_block","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","toString","test","_unsupportedIterableToArray","_nonIterableSpread","arr2","MAX_RQ_GROW_SIZE","DataChannel","ReadyStates","CONNECTING","WebSocket","OPEN","CLOSING","CLOSED","rawChannelProps","Websock","_websocket","_rQi","_rQlen","_rQbufferSize","_rQ","message","subState","_rQshift","part","goback","_encodeMessage","chr","_allocateBuffers","uri","protocols","rawChannel","init","channelProps","getOwnPropertyNames","binaryType","onmessage","_recvMessage","onopen","protocol","onclose","onerror","minFit","requiredBufferSize","resizeNeeded","oldRQbuffer","copyWithin","u8","_expandCompactRQ","_DecodeMessage","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","applyBind","hasOwn","arg","argType","inner","Emitter","mixin","_callbacks","once","removeListener","removeAllListeners","cb","callbacks","emit","listeners","hasListeners","objectKeys","isArguments","is","isRegex","deepEqual","actual","strict","isUndefinedOrNull","aIsRegex","bIsRegex","aIsBuffer","isBuffer","bIsBuffer","ka","kb","objEquiv","hasSymbols","toStr","origDefineProperty","supportsDescriptors","_","arePropertyDescriptorsSupported","predicate","defineProperties","predicates","getOwnPropertySymbols","classList","_hasClass","setAttribute","baseVal","replaceClassName","origClass","classToRemove","RegExp","remove","createDocumentFragment","nodeName","enoughArguments","mutationMacro","nodes","textNodeIfPrimitive","fragment","list","createTextNode","property","TemporaryPrototype","TemporaryTokenList","wrapVerifyToken","hOP","__defineGetter__","__defineSetter__","DOMTokenList","noClassName","getAttribute","isSVG","trim","properties","spaces","_isSVG","classListDescriptor","CLASS_LIST","toggle","token","force","DocumentFragmentPrototype","DocumentFragment","Node","NodePrototype","Element","CharacterData","CharacterDataPrototype","DocumentType","DocumentTypePrototype","ElementPrototype","HTMLElement","HTMLSelectElement","selectRemove","SVGElement","matchesSelector","webkitMatchesSelector","khtmlMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","firstChild","insertBefore","nextSibling","had","hasAttribute","removeAttribute","replaceWith","replaceChild","_dom4","o_O","verifyToken","item","original","getElementsByTagName","raf","rAF","cAF","cancelAnimationFrame","prefixes","goOn","eventName","defaultInitDict","initCustomEvent","bubbles","cancelable","initEvent","eventInitDict","createEvent","Event","$Event","out","KeyboardEvent","$KeyboardEvent","eventType","initType","defaults","char","ctrlKey","shiftKey","altKey","metaKey","altGraphKey","repeat","language","which","initKeyboardEvent","keyLocation","getModifier","withDefaults","withInitValues","view","initKeyEvent","MouseEvent","$MouseEvent","initMouseEvent","screenX","screenY","patch","what","css","querySelector","dataScope","random","proto","ELEMENT_NODE","$0","$1","$2","$3","global","DOMMap","counter","dispatched","dispatch","ce","shouldDrop","Handler","__ce__","currentTarget","Dict","createEventListener","eventListener","removed","augment","dm","dE","aEL","rEL","increment","getListenerKey","tmp","createAEL","createREL","EventTarget","Text","HTMLDocument","Window","XMLHttpRequest","ReflectOwnKeys","R","ReflectApply","receiver","Function","ownKeys","NumberIsNaN","EventEmitter","Promise","resolve","reject","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","events","existing","warning","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","RangeError","setMaxListeners","getMaxListeners","doError","er","addListener","prependListener","prependOnceListener","originalListener","pop","spliceOne","rawListeners","eventNames","stringify","stable","deterministicStringify","stableStringify","LIMIT_REPLACE_NODE","CIRCULAR_REPLACE_NODE","replacerStack","defaultOptions","depthLimit","MAX_SAFE_INTEGER","edgesLimit","replacer","spacer","decirc","JSON","replaceGetterValues","setReplace","parent","propertyDescriptor","edgeIndex","stack","compareFunction","deterministicDecirc","toJSON","validateFormat","condition","argIndex","framesToPop","Dispatcher","_defineProperty","invariant","_isDispatching","_isHandled","_isPending","_lastID","register","unregister","waitFor","ids","ii","_invokeCallback","_startDispatching","_stopDispatching","isDispatching","_pendingPayload","ERROR_MESSAGE","funcType","bound","binder","boundLength","boundArgs","Empty","implementation","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","ArrayBuffer","Atomics","BigInt","DataView","decodeURI","encodeURI","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","isFinite","parseFloat","SharedArrayBuffer","Uint32Array","WeakRef","WeakSet","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","string","number","quote","subString","getBaseIntrinsic","alias","intrinsicName","parts","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","origSymbol","hasSymbolSham","symObj","syms","propertyIsEnumerable","toStringTag","reactIs","REACT_STATICS","contextType","displayName","getDefaultProps","getDerivedStateFromError","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","supportsStandardArguments","tryDateObject","$exec","isRegexMarker","badStringifier","throwRegexMarker","toPrimitive","gOPD","define","impl","fullPattern","shortPattern","tabletPattern","equalIC","toLowerCase","containsIC","array","valueLC","convertPropsToRegExp","MobileDetect","maxPhoneWidth","ua","prepareUserAgent","_cache","FALLBACK_PHONE","FALLBACK_TABLET","FALLBACK_MOBILE","verPos","mobileDetectRules","substring","oss","phones","tablets","uas","oss0","WindowsPhoneOS","WindowsMobileOS","findMatch","rules","findMatches","getVersionStr","propertyName","patterns","getVersion","version","prepareVersionNo","NaN","numbers","isMobileFallback","detectMobileBrowsers","isTabletFallback","prepareDetectionCache","mobile","phone","tablet","phoneSized","isPhoneSized","mobileGrade","$isMobile","detectOS","getDeviceSmallerSide","screen","userAgents","versionStr","pattern","grade","_impl","factory","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","symbols","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","objectToString","functionToString","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","isEnumerable","gPO","O","addNumericSeparator","Infinity","sepRegex","int","intStr","dec","inspectCustom","inspectSymbol","isSymbol","wrapQuotes","defaultStyle","quoteChar","quoteStyle","inspect_","seen","maxStringLength","customInspect","indent","numericSeparator","inspectString","bigIntStr","maxDepth","baseIndent","getIndent","inspect","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","isElement","attrs","childNodes","xs","singleLineValues","indentedJoin","isError","cause","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isString","isRegExp","ys","isPlainObject","protoTag","stringTag","tag","trailer","lowbyte","entries","lineJoiner","isArr","symMap","numberIsNaN","getPolyfill","shim","keysShim","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","isObject","isFunction","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","isarray","pathToRegexp","parse","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","tokens","path","defaultDelimiter","delimiter","escaped","prefix","group","asterisk","partial","optional","escapeGroup","escapeString","encodeURIComponentPretty","pretty","segment","attachKeys","re","sensitive","route","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","propName","componentName","propFullName","secret","getShim","ReactPropTypes","bigint","bool","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","percentTwenties","Format","formatters","RFC1738","RFC3986","allowDots","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictNullHandling","numberStr","parseArrayValue","parseKeys","givenKey","valuesParsed","chain","leaf","cleanRoot","parseObject","normalizeParseOptions","tempObj","cleanStr","skipIndex","bracketEqualsPos","maybeMap","encodedVal","combine","parseValues","merge","compact","getSideChannel","arrayPrefixGenerators","brackets","indices","pushToArray","valueOrArray","toISO","toISOString","defaultFormat","addQueryPrefix","encoder","encodeValuesOnly","formatter","serializeDate","skipNulls","sentinel","generateArrayPrefix","sideChannel","tmpSc","step","findFlag","keyValue","valuesArray","valuesJoined","objKeys","keyPrefix","valueSideChannel","normalizeStringifyOptions","arrayFormat","joined","hexTable","arrayToObject","acc","queue","refs","compacted","compactQueue","strWithoutPlus","defaultEncoder","kind","mapped","mergeTarget","targetItem","aa","ba","ca","da","ea","fa","ha","ia","ja","B","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","D","oa","pa","qa","ma","na","la","setAttributeNS","xlinkHref","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","sa","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","for","E","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","_render","Ra","$$typeof","_context","_payload","_init","Sa","Ta","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","ownerDocument","eb","db","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","lb","mb","nb","ob","namespaceURI","innerHTML","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","setProperty","ub","menuitem","area","br","col","embed","hr","keygen","link","meta","param","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","sibling","current","bc","dc","ec","fc","gc","hc","ic","jc","kc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","transition","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","F","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","returnValue","isPropagationStopped","cancelBubble","isPersistent","wd","xd","yd","sd","eventPhase","isTrusted","td","ud","vd","Ad","pageX","pageY","getModifierState","zd","buttons","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","Xd","Yd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","Zd","$d","ae","be","documentMode","de","ee","fe","ge","he","ie","le","datetime","email","search","tel","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","Me","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","href","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","G","$e","af","bf","cf","df","Nb","ef","ff","parentWindow","gf","hf","J","K","Q","L","je","ke","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","H","I","Cf","M","N","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","ReactCurrentBatchConfig","lg","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","A","C","Dg","Eg","Fg","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","shouldComponentUpdate","isPureReactComponent","Mg","updater","Ng","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","tagName","fh","gh","hh","P","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","xh","S","T","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","useState","getSnapshot","subscribe","useEffect","setSnapshot","Oh","Ph","Qh","Rh","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useCallback","useContext","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","hi","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createElementNS","V","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","then","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","onCommitFiberRoot","fk","gk","ik","isReactComponent","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","hk","_calculateChangedBits","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","isDisabled","supportsFiber","inject","createPortal","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","__reactInternalSnapshotFlag","__reactInternalSnapshot","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","_createClass","scriptLoading","scriptLoaded","scriptDidError","ReactStripeCheckout","onScriptLoaded","stripeHandler","StripeCheckout","configure","stripeKey","hasPendingClick","showStripeDialog","onScriptError","hideLoadingDialog","onClosed","_isMounted","closed","onOpened","opened","getConfig","config","showLoadingDialog","handleOnMouseDown","buttonActive","handleOnMouseUp","canceled","promise","script","onScriptTagCreated","async","loadPromise","onload","accept","isCanceled","catch","updateStripeHandler","reconfigureOnUpdate","triggerEvent","onMouseOut","border","textDecoration","borderRadius","boxShadow","userSelect","backgroundImage","fontFamily","fontSize","textShadow","textStyle","label","desktopShowModal","ComponentClass","renderDisabledButton","renderDefaultStripeButton","description","amount","currency","panelLabel","zipCode","billingAddress","shippingAddress","allowRememberMe","bitcoin","alipay","alipayReusable","forceUpdate","__self","__source","_status","_result","IsSomeRendererActing","PureComponent","_currentValue2","_threadCount","createFactory","createRef","forwardRef","lazy","memo","$Object","hasIndices","ignoreCase","multiline","dotAll","unicode","sticky","flagsBound","TypeErr","regex","performance","MessageChannel","unstable_forceFrameRate","port2","port1","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","$WeakMap","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","$wm","$m","$o","channel","assert","objects","listGet","listHas","listSet","Agent","_defaults","_setDefaults","req","def","require","safeStringify","qs","RequestBase","ResponseBase","Request","request","getXHR","ActiveXObject","serialize","pairs","pushEncodedKeyValuePair","subkey","parseString","pair","isJSON","Response","xhr","responseType","responseText","statusText","_setStatusProperties","headers","line","field","lines","fields","parseHeader","getAllResponseHeaders","getResponseHeader","_setHeaderProperties","_responseType","_parseBody","_query","_header","new_err","err_","rawResponse","statusCode","_isResponseOK","del","serializeObject","html","json","xml","urlencoded","_parser","toError","auth","btoa","_auth","query","file","_data","_getFormData","append","_formData","FormData","_shouldRetry","_retry","_callback","_maxRetries","retries","_retries","crossDomainError","crossDomain","agent","write","pipe","_isHost","_endCalled","_finalizeQueryString","_end","_setUploadTimeout","_uploadTimeout","_uploadTimeoutTimer","_timeoutError","_aborted","_setTimeouts","onreadystatechange","_responseTimeoutTimer","timedout","handleProgress","direction","percent","loaded","upload","_withCredentials","withCredentials","contentType","_serializer","setRequestHeader","post","_timer","_timeout","_responseTimeout","option","deadline","retry","_retryCallback","ERROR_CODES","STATUS_CODES","override","timedoutError","_fullfilledPromise","use","_okCallback","getHeader","unset","abort","base64Encoder","redirects","_maxRedirects","maxResponseSize","_maxResponseSize","isObject_","sortQuery","_sort","queryArray","_appendQueryString","errno","ct","params","links","parseLinks","statusType","redirect","clientError","serverError","created","accepted","noContent","badRequest","unauthorized","notAcceptable","forbidden","notFound","unprocessableEntity","cleanHeader","changesOrigin","host","authorization","cookie","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdD","getter","definition","globalThis","Alignment","Elevation","Intent","Position","NS","BLUEPRINT_NAMESPACE","REACT_APP_BLUEPRINT_NAMESPACE","ACTIVE","ALIGN_LEFT","ALIGN_RIGHT","DARK","DISABLED","FILL","FIXED","LARGE","LOADING","MINIMAL","OUTLINED","ROUND","SMALL","VERTICAL","INTENT_PRIMARY","positionClass","elevationClass","FOCUS_DISABLED","TEXT_OVERFLOW_ELLIPSIS","BLOCKQUOTE","CODE","CODE_BLOCK","HEADING","LIST","BUTTON","BUTTON_GROUP","BUTTON_SPINNER","BUTTON_TEXT","CONTROL_GROUP","DIALOG","DIALOG_CONTAINER","DIALOG_CLOSE_BUTTON","DIALOG_HEADER","DIVIDER","HTML_SELECT","INPUT","INPUT_GROUP","INPUT_LEFT_CONTAINER","INPUT_ACTION","LABEL","MENU","MENU_ITEM","MENU_ITEM_LABEL","MENU_SUBMENU","MENU_DIVIDER","MENU_HEADER","NUMERIC_INPUT","OVERLAY","OVERLAY_BACKDROP","OVERLAY_CONTENT","OVERLAY_INLINE","OVERLAY_OPEN","OVERLAY_SCROLL_CONTAINER","POPOVER","POPOVER_ARROW","POPOVER_BACKDROP","POPOVER_CAPTURING_DISMISS","POPOVER_CONTENT","POPOVER_DISMISS","POPOVER_DISMISS_OVERRIDE","POPOVER_OPEN","POPOVER_TARGET","POPOVER_WRAPPER","TRANSITION_CONTAINER","PORTAL","SPINNER","SPINNER_ANIMATION","SPINNER_HEAD","SPINNER_NO_SPIN","SPINNER_TRACK","TOAST","TOAST_CONTAINER","TOAST_MESSAGE","TOOLTIP","ICON","alignmentClass","alignment","elevation","intent","isRunning","handleMouseDown","isActive","stop","focusEngine","InteractionModeEngine","FocusStyleManager","_inheritsLoose","isAbsolute","pathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","valueEqual","every","aValue","bValue","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","notifyListeners","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entry","nextIndex","nextEntries","canGo","commonjsGlobal","getUniqueId","_proto2","createNamedContext","historyContext","Router","_pendingLocation","staticContext","computeRootMatch","isExact","RouterContext","HistoryContext","Lifecycle","onMount","onUnmount","cacheCount","generatePath","generator","compilePath","Redirect","computedMatch","matchPath","matched","cacheKey","pathCache","regexp","Route","createURL","staticHandler","methodName","HashRouter","createHistory","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","innerRef","navigate","rest","ex","isModifiedEvent","Link","ariaCurrent","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","extendStatics","__extends","__","__assign","__rest","__decorate","decorators","decorate","__spreadArrays","il","jl","INVALID_PROPS","removeNonHTMLProps","invalidProps","shouldMerge","setRef","refTarget","isRefCallback","refHandler","refTargetParent","refTargetKey","refProp","isKeyboardClick","isNodeEnv","env","process","ns","countDecimalPlaces","round","timeoutIds","requestIds","clearTimeouts","timeoutId","cancelAnimationFrames","requestId","validateProps","_prevProps","_prevState","_snapshot","handle","isReactNodeEmpty","skipArray","ensureElement","isReactElement","isElementOfType","ComponentType","createReactRef","IconSvgPaths16","IconSvgPaths20","Icon","icon","htmlTitle","iconSize","SIZE_STANDARD","htmlprops","pixelGridSize","SIZE_LARGE","paths","renderSvgPaths","iconName","viewBox","pathsSize","pathStrings","fillRule","DISPLAYNAME_PREFIX","AbstractPureComponent2","PATH_LENGTH","Spinner","getSize","strokeOffset","toFixed","getViewBox","pathLength","SIZE_SMALL","radius","viewBoxX","viewBoxWidth","currentKeyDown","buttonRef","click","handleBlur","getCommonButtonProps","alignText","large","loading","outlined","minimal","small","renderChildren","rightIcon","handleRef","elementRef","AbstractButton","commonProps","htmlElement","tagClassName","htmlProps","H4","H6","cannotCreatePortal","REACT_CONTEXT_TYPES","blueprintPortalClassName","hasMounted","portalElement","createContainerElement","onChildrenMount","unstableRenderNoPortal","maybeAddClass","IncrementDirection","hasEverOpened","isOpen","containerElement","refHandlers","maybeRenderChild","decoratedChild","enforceFocus","onOpening","onClosing","transitionDuration","transitionName","CSSTransitionImplicit","handleTransitionAddEnd","handleBackdropMouseDown","backdropProps","canOutsideClickClose","onClose","bringFocusInsideOverlay","handleDocumentClick","eventTarget","composed","composedPath","stackIndex","openStack","isClickInThisOverlayOrDescendant","isSameNode","handleDocumentFocus","stopImmediatePropagation","canEscapeKeyClose","Overlay","usePortal","childrenWithTransitions","maybeBackdrop","maybeRenderBackdrop","containerClasses","portalClassName","portalContainer","overlayWillOpen","overlayWillClose","autofocusElement","wrapperElement","backdropClassName","hasBackdrop","lastOpenedOverlay","getLastOpened","maybeRenderHeader","isCloseButtonShown","maybeRenderCloseButton","Button","Dialog","Divider","vertical","buttonGroupClasses","ButtonGroup","rootClasses","ControlGroup","hasPendingUpdate","isComposing","nextValue","handleCompositionStart","onCompositionStart","handleCompositionEnd","onCompositionEnd","handleChange","onChange","inputRef","restProps","AsyncControllableInput","leftElement","rightElement","asyncControl","inputGroupClasses","paddingLeft","leftElementWidth","paddingRight","rightElementWidth","inputProps","maybeRenderLeftElement","maybeRenderRightElement","updateInputWidth","leftIcon","clientWidth","InputGroup","getDecimalSeparator","testText","toLocaleString","one","nine","sanitizeNumericInput","getValueOrEmptyValue","parseStringToStringNumber","valueAsString","decimalSeparator","character","jsNumber","transformLocalizedNumberToStringNumber","isValidNumericKeyboardEvent","isFloatingPointNumericCharacter","valueChars","convertFullWidthNumbersToAscii","valueChar","NON_HTML_PROPS","currentImeInputInvalid","shouldSelectAfterUpdate","stepMaxPrecision","getStepMaxPrecision","didPasteEventJustOccur","inputElement","incrementButtonHandlers","getButtonEventHandlers","decrementButtonHandlers","handleButtonClick","updateDelta","incrementValue","onButtonClick","stopContinuousChange","clearInterval","intervalId","handleContinuousChange","valueAsNumber","handleInputFocus","selectAllOnFocus","handleInputBlur","clampValueOnBlur","handleNextValue","roundAndClampValue","handleInputKeyDown","readOnly","allowNumericCharactersOnly","handleCompositionUpdate","handleInputKeyPress","onKeyPress","handleInputPaste","onPaste","handleInputChange","NumericInput","prevMaxProp","prevMinProp","didMinChange","didMaxChange","didBoundsChange","sanitizedValue","VALUE_EMPTY","minorStepSize","stepSize","stringToStringNumber","isValueNumeric","currentValue","maxPrecision","scaleFactor","pow","toMaxPrecision","clampedValue","clampValue","buttonPosition","renderButtons","renderInput","setSelectionRange","didLocaleChange","didValueChange","localizedValue","onValueChange","majorStepSize","valueDoesNotMatch","isIncrementDisabled","isDecrementDisabled","inputGroupHtmlProps","autoComplete","onCompositionUpdate","startContinuousChange","setInterval","CONTINUOUS_CHANGE_INTERVAL","CONTINUOUS_CHANGE_DELAY","currValue","VALUE_ZERO","selectAllOnIncrement","getIncrementDelta","isShiftKeyPressed","isAltKeyPressed","iconProps","optionChildren","HTMLSelect","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","Manager","newReferenceNode","referenceNode","setReferenceNode","unwrapArray","InnerReference","Reference","timeoutDuration","longerTimeoutBrowsers","isBrowser","called","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","overflowX","overflowY","getReferenceNode","reference","isIE11","MSInputMethodContext","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","DOCUMENT_POSITION_FOLLOWING","commonAncestorContainer","firstElementChild","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","getBordersSize","styles","axis","sideA","sideB","computedStyle","getWindowSizes","getClientRect","offsets","sizes","clientHeight","horizScrollbar","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundariesElement","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","marginRight","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","ends","findIndex","cur","enabled","update","isDestroyed","positionFixed","originalPlacement","isCreated","onCreate","isModifierEnabled","getSupportedPropertyName","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","isNumeric","setStyles","unit","isModifierRequired","requestingName","requestedName","requesting","requested","validPlacements","placements","clockwise","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","ops","mergeWithPrevious","toValue","index2","shiftvariation","isVertical","shiftOffsets","transformProp","popperStyles","transform","escapeWithReference","opSide","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","arrow","flipped","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","hide","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","arrowStyles","modifierOptions","Popper","debounce","Defaults","jquery","onLoad","Utils","PopperUtils","initialStyle","initialArrowStyle","InnerPopper","popperNode","updatePopperInstance","arrowNode","applyStyle","updateStateModifier","popperInstance","destroyPopperInstance","referenceElement","getOptions","setPopperNode","getPopperStyle","getPopperPlacement","outOfBoundaries","getOutOfBoundariesState","arrowProps","setArrowNode","getArrowStyle","elementIsOrContains","testElement","MapShim","getIndex","class_1","__entries__","_a","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","childList","characterData","subtree","isReflowProperty","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","positions","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","isSVGGraphicsElement","SVGGraphicsElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","onResize","observeElement","observeParents","getElement","ResizeSensor","popover","popoverClassName","Popover","interactionKind","PopoverInteractionKind","HOVER_TARGET_ONLY","reposition","hoverCloseDelay","hoverOpenDelay","Tooltip","getPosition","isVerticalPosition","getOppositePosition","getAlignment","getTransformOrigin","arrowSizeShift","arrowOffsetModifier","arrowSize","offsetSide","arrowOffsetSize","sqrt","getArrowAngle","PopoverArrow","positionToPlacement","assertNever","CLICK","CLICK_TARGET_ONLY","HOVER","popoverRef","popoverElement","targetElement","hasDarkParent","getIsOpen","transformOrigin","isMouseInTargetOrPopover","lostFocusOnSamePage","handlePopoverRef","handleTargetRef","popperScheduleUpdate","renderPopover","popperProps","popoverHandlers","handlePopoverClick","handleMouseEnter","handleMouseLeave","popoverClasses","inheritDarkTheme","captureDismiss","isArrowEnabled","understandChildren","renderTarget","referenceProps","openOnTargetFocus","targetClassName","targetProps","isControlled","isHoverInteractionKind","targetTagName","finalTargetProps","handleTargetBlur","handleTargetFocus","handleTargetClick","rawTarget","rawTabIndex","clonedTarget","isElementInPopover","setOpenState","eventPopover","closest","isEventFromSelf","isEventPopoverCapturing","dismissElement","shouldDismiss","handleOverlayClose","updatePopoverState","wrapperTagName","isContentEmpty","wrapperClasses","getPopperModifiers","updateDarkParent","nextIsOpen","onInteraction","childrenCount","hasContentProp","hasTargetProp","contentProp","targetProp","targetChild","contentChild","defaultIsOpen","boundary","preventOverflow","arrowOffset","cancelOpenTimeout","isContentOverflowing","textRef","ellipsize","newState","scrollWidth","labelElement","shouldDismissPopover","textClassName","hasSubmenu","intentClass","anchorClasses","DISABLED_PROPS","maybeRenderLabel","liClasses","maybeRenderPopover","labelClassName","popoverProps","SUBMENU_POPOVER_MODIFIERS","MenuItem","ulRef","MenuDivider","Item","handleActionClick","triggerDismiss","handleCloseClick","startTimeout","maybeRenderActionButton","AnchorButton","didTimeoutExpire","onDismiss","Toast","toasts","toastId","renderToast","toast","getDismissHandler","timeoutExpired","dismiss","handleClose","Toaster","toaster","maxToasts","dismissIfAtLimit","createToastOptions","isNewToastKey","matchesKey","getToasts","getPositionClasses","canEscapeKeyClear","success","errorRes","error_msg","oracle","setOracle","theme","light","dark","mobileOs","sessionTypes","admin","operatingSystems","linux","macos_1010","macos_1011","macos_1012","macos_1013","macos_1014","macos_1015","macos11","macos12","macos13","macos14","windows_xp","windows_7","windows_vista","windows_8","windows_10","windows_11","chrome_os","ios_8","ios_9","ios_10","ios_11","ios_12","ios_13","ios_14","ios_15","ios_16","ios_17","ios_18","android_4","android_5","android_6","android_7","android_8","android_9","android_10","android_11","android_12","android_13","android_14","blackberry_10","windows_phone","firefox_os","kindle","browsers","chrome","chrome_mobile","safari","safari_mobile","firefox","firefox_mobile","edge","internet_explorer","internet_explorer_mobile","opera","opera_mobile","locations","US","US_AL","US_AK","US_AZ","US_AR","US_CA","US_CO","US_CT","US_DE","US_FL","US_GA","US_HI","US_ID","US_IL","US_IN","US_IA","US_KS","US_KY","US_LA","US_ME","US_MD","US_MA","US_MI","US_MN","US_MS","US_MO","US_MT","US_NE","US_NV","US_NH","US_NJ","US_NM","US_NY","US_NC","US_ND","US_OH","US_OK","US_OR","US_PA","US_RI","US_SC","US_SD","US_TN","US_TX","US_UT","US_VT","US_VA","US_WA","US_DC","US_WV","US_WI","US_WY","AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","CV","KH","CM","CA","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","emitDefer","SYNC","RESET","RELOAD","_token","subscription","_subscription","subscriptionM","emitChange","addChangeListener","removeChangeListener","_sync","freeze","_organizations","_map","_reset","_current","organizations","organizationsM","organization","ADD","DONE","_loaders","_add","_done","progress","progressBar","LoadingBar","super","EventDispatcher","uuid","objectIdNil","objId","zeroPad","capitalize","formatAmount","formatDate","dateStr","hours","getHours","period","getMinutes","getSeconds","formatDateShort","curDate","formatDateShortTime","_id","syncId","sync","curSyncId","loader","activate","license","box","verticalAlign","actionProgress","borderBottomLeftRadius","borderBottomRightRadius","squareActionProgress","dialog","maxWidth","ConfirmButton","openDialog","closeDialog","closeDialogConfirm","onConfirm","confirmId","confirming","clearConfirm","safe","confirmInput","dialogClassName","dialogLabel","autoCapitalize","spellCheck","placeholder","itemsList","confirmMsg","items","hidden","confirmElem","progressStyle","confirmStyle","backgroundColor","grouped","progressClassName","card","minWidth","card2","button2","button3","Subscription","plan","reactivate","balance","balanceLabel","sub","canceling","cancel_at_period_end","periodEnd","period_end","trialEnd","trial_end","quantity","url_key","TRAVERSE","FILTER","LOAD","UNLOAD","_users","_page","_pageCount","_count","users","usersM","page","pageCount","pages","_traverse","_filterCallback","administrator","_user","userM","_load","_unload","userId","roles","permissions","page_count","traverse","filt","userIds","_audits","_userId","audits","auditsM","audit","select","paddingTop","minHeight","lastActivity","whiteSpace","nameLink","User","userType","cardStyle","onSelect","last_active","SearchInput","SwitchNull","onToggle","filters","UsersFilter","menu","onFilter","pageWide","Page","wide","paddingBottom","borderBottomStyle","PageHeader","buttonLast","UsersPage","onPage","borderSpacing","usersBox","heading","Users","curSelected","onDelete","lastSelected","usersDom","usr","filterClass","selectedNames","SHOW_REMOVED","_sessions","_showRemoved","sessions","sessionsM","session","showRemoved","_setShowRemoved","show_removed","NonState","initialized","iconClass","formatContinent","continent","continent_code","formatLocation","city","region","region_code","formatCountry","country","country_code","formatCoordinates","latitude","longitude","CopyButton","hover","copied","selectNodeContents","selection","execCommand","wordWrap","bar","copyHover","PageInfo","labelStyle","bars","copyBtn","copyItemBtn","valueClasses","valueClass","progressClass","Session","sessionId","timestamp","operating_system","isp","Sessions","showEnded","base64urlToBuffer","baseurl64String","base64String","atob","byteView","bufferToBase64url","copyValue","convertValue","convert","conversionFn","schemaField","deriveFn","schema","required","derived","publicKeyCredentialDescriptorSchema","transports","simplifiedExtensionsSchema","appid","appidExclude","credProps","simplifiedClientExtensionResultsSchema","credentialCreationOptions","publicKey","rp","pubKeyCredParams","excludeCredentials","authenticatorSelection","attestation","extensions","signal","publicKeyCredentialWithAttestation","rawId","clientDataJSON","attestationObject","getTransports","clientExtensionResults","pkc","getClientExtensionResults","rpId","allowCredentials","userVerification","authenticatorData","userHandle","requestJSON","credential","createRequestFromJSON","createResponseToJSON","_devices","devices","devicesM","device","popoverTarget","inputFirst","Help","autoSelect","helpElm","examplesElem","examples","PageSwitch","help","messageWrap","buttonWrap","buttonWrapFirst","PageSave","buttonStyle","buttonStyleFirst","messageStyle","changed","onCancel","onSave","labelNarrow","PageInput","narrow","inputGroup","controlButton","save","Device","onTestAlert","deviceId","toggleLevel","levels","alert_levels","isPhone","deviceType","deviceOther","deviceMode","wan_rp_id","alertIcon","fields1","fields2","testButton","groupBox","inputBox","Devices","wanRegister","wanCreate","cred","deviceName","wanRespond","addDevice","deviceTypes","devicePhoneNumber","devicePubKey","Audit","AuditsPage","Audits","panel","PagePanel","PageSplit","groupList","groupTop","buttonTop","PageInputButton","buttonClass","buttonLabel","labelTop","buttonConfirm","buttonDisabled","onSubmit","listStyle","PageSelect","DATEPICKER","DATEPICKER_CAPTION","DATEPICKER_CAPTION_MEASURE","DATEPICKER_DAY_WRAPPER","DATEPICKER_FOOTER","DATEPICKER_MONTH_SELECT","DATEPICKER_YEAR_SELECT","DATEPICKER_NAVBAR","DATEPICKER_TIMEPICKER_WRAPPER","DATERANGEPICKER","DATERANGEPICKER_SHORTCUTS","DATETIMEPICKER","TIMEPICKER","TIMEPICKER_ARROW_BUTTON","TIMEPICKER_ARROW_ROW","TIMEPICKER_DIVIDER_TEXT","TIMEPICKER_HOUR","TIMEPICKER_INPUT","TIMEPICKER_INPUT_ROW","TIMEPICKER_MILLISECOND","TIMEPICKER_MINUTE","TIMEPICKER_SECOND","TIMEPICKER_AMPM_SELECT","areSameDay","date1","date2","areSameMonth","areSameTime","getMilliseconds","dateRange","exclusive","isDayRangeInRange","innerRange","outerRange","isTimeEqualOrGreaterThan","timeToCompare","isTimeEqualOrSmallerThan","isTimeInRange","minDate","maxDate","getDateOnlyWithTime","minTime","maxTime","isTimeGreaterThanMinTime","isTimeSmallerThanMaxTime","getTimeInRange","dateToCompare","isTimeSameOrAfter","getDateTime","getIsPmFrom24Hour","hour","get12HourFrom24Hour","newHour","DATEPICKER_DEFAULT_VALUE_INVALID","DATEPICKER_INITIAL_MONTH_INVALID","DATEPICKER_MAX_DATE_INVALID","DATEPICKER_VALUE_INVALID","padWithZeroes","minLength","numTimes","stringRepeat","monthRightOffset","handleMonthSelectChange","dateChangeHandler","handleYearSelectChange","year","setFullYear","onYearChange","minYear","maxYear","displayMonth","displayYear","startMonth","endMonth","monthOptionElements","years","displayedMonthText","monthSelect","yearSelect","orderedSelects","reverseMonthAndYearMenus","positionArrows","monthTextWidth","span","spanWidth","measureTextWidth","monthSelectWidth","rightOffset","onDateChange","DatePickerCaption","Months","getDefaultMinDate","TimeUnit","hideLeftNavButton","hideRightNavButton","getShorcutClickHandler","shortcut","onShortcutClick","isShortcutInRange","shortcutDateRange","allowSingleDayRange","hasTimePrecision","useSingleDateShortcuts","makeDate","yesterday","oneWeekAgo","oneMonthAgo","threeMonthsAgo","sixMonthsAgo","oneYearAgo","twoYearsAgo","shortcutElements","shortcuts","timePrecision","returnVal","createShortcut","selectedShortcutIndex","setTimeUnit","isPm","HOUR_24","HOUR_12","get24HourFrom12Hour","MINUTE","setMinutes","SECOND","setSeconds","setMilliseconds","isTimeUnitValid","getTimeUnitMin","getTimeUnitMax","TimeUnitMetadata","DEFAULT_MIN_HOUR","DEFAULT_MIN_MINUTE","DEFAULT_MIN_SECOND","DEFAULT_MIN_MILLISECOND","DEFAULT_MAX_HOUR","DEFAULT_MAX_MINUTE","DEFAULT_MAX_SECOND","DEFAULT_MAX_MILLISECOND","TimePrecision","getInputChangeHandler","getStringValueFromInputEvent","hourText","minuteText","secondText","millisecondText","getInputBlurHandler","updateTime","getInputFocusHandler","getInputKeyDownHandler","handleKeyEvent","incrementTime","decrementTime","getInputKeyUpHandler","handleAmPmChange","isNextPm","toPm","shiftTime","getFullStateFromValue","useAmPm","shouldRenderMilliseconds","precision","shouldRenderSeconds","hourUnit","maybeRenderArrowButton","renderDivider","maybeRenderAmPm","didMinTimeChange","didMaxTimeChange","didPropValueChange","shouldStateUpdate","isDirectionUp","timeUnit","showArrowButtons","isValid","isHour","timeInRange","formatTime","newTime","getTimeUnit","wrapTimeAtUnit","updateState","hasNewValue","ignoreNextMonthChange","shouldHighlightCurrentDay","getDatePickerModifiers","isToday","getDisabledDaysModifier","renderCaption","handleMonthChange","DatePickerNavbar","dayPickerProps","updateDay","canClearSelection","updateValue","handleShortcutClick","onShortcutChange","currentShortcutIndex","includeTime","datePickerShortcut","selectedDay","handleClearClick","computeValidDateInSpecifiedMonthYear","handleTodayClick","handleTimeChange","timePickerProps","getInitialValue","getInitialMonth","DatePicker","showActionsBar","maybeRenderShortcuts","maybeRenderTimePicker","renderOptionsBar","clearButtonText","todayButtonText","applyMin","applyMax","TimePicker","dateRangeShortcuts","Shortcuts","maxDaysInMonth","displayDate","isUserChange","skipOnChange","highlightCurrentDay","handleDateChange","dateValue","timeValue","datePickerProps","DateTimePicker","PageDateTime","dateStyle","PageNew","textarea","PageTextArea","rows","UserDetailed","onNew","locked","onAddRole","addRole","onRemoveRole","generate_secret","active_until","SYNC_ZONE","_nodes","nodesM","_certificates","certificates","certificatesM","certificate","_datacenters","datacenters","datacentersM","datacenter","_zones","zones","zonesM","zone","_blocks","blocks","blocksM","syncZonesId","noLoading","syncZone","names","callout","NodeDeploy","internalIface","ifaces","externalIface","provider","firewall","internal_interface","external_interface","host_network","network","block_gateway","gateway","block_netmask","netmask","block_subnets","subnets","nodeId","onAddSubnet","addSubnet","onRemoveSubnet","subnet","zoneId","vxlan","zne","network_mode","available_bridges","available_interfaces","popoverElem","errorMsgElem","errorMsg","defaultDatacenter","hasDatacenters","datacentersSelect","hasZones","zonesSelect","availableIfaces","ifacesSelect","iface","switchLabel","inputLabel","PageInputSwitch","borderTopLeftRadius","selectInner","selectBox","PageSelectButton","PageNumInput","sourceGroup","control","port","portBox","other","NodeBlock","ifaceMatch","interfaces","interface","blocksSelect","blck","ipv6","onRemove","onAdd","wordBreak","itemsLabel","itemsAdd","restart","NodeDetailed","onAddNetworkRole","addNetworkRole","networkRoles","network_roles","onRemoveNetworkRole","networkRole","onAddExternalIface","addExternalIface","external_interfaces","onRemoveExternalIface","onAddInternalIface","addInternalIface","internal_interfaces","onRemoveInternalIface","onAddCert","addCert","certId","onRemoveCert","newBlock","defBlock","onNetworkMode","onNetworkMode6","blocks6","network_mode6","onAddOracleSubnet","availabeVpcs","available_vpcs","addOracleSubnet","nodeOracleSubnets","oracle_subnets","onRemoveOracleSubnet","onAddBlock","onAddBlock6","onAddDrive","availabeDrives","available_drives","addDrive","instanceDrives","instance_drives","onRemoveDrive","forwardedChecked","forwardedProtoChecked","toggleFirewall","toggleType","typ","vals","subnetLabel","subnetId","vpc","operation","onChangeBlock","onRemoveBlock","onChangeBlock6","onRemoveBlock6","requests_min","memory","load1","load5","load15","publicIps","public_ips","publicIps6","public_ips6","resourceBars","hugepages","hugepages_used","externalIfaces","internalIfaces","externalIfacesSelect","internalIfacesSelect","oracleSubnets","availableSubnetsSelect","hostBlocksSelect","availableDrives","availableDrivesSelect","cert","hasCertificates","certificatesSelect","hasRenders","rendersSelect","available_renders","nodeBlocks","nodeBlocks6","colSpan","admin_domain","user_domain","webauthn_domain","no_redirect_server","host_block","host_nat","oracle_host_route","oracle_user","oracle_public_key","default_no_public_address","default_no_public_address6","jumbo_frames","jumbo_frames_internal","iscsi","pci_passthrough","usb_passthrough","hugepages_size","gui","gui_mode","gui_user","software_version","cpu_units","cpu_units_res","memory_units","memory_units_res","default_interface","hostname","hypervisor","vga","vga_render","forwarded_for_header","nde","forwarded_proto_header","cardOpen","nameSpan","barLast","onOpen","memoryStyle","hugepagesStyle","load1Style","load5Style","NodesFilter","network_role","NodesPages","itemsBox","Nodes","curOpened","interval","nodesDom","_policies","policies","policiesM","policy","_settings","settings","settingsM","PolicyRule","onAddValue","rule","addValue","onRemoveValue","defaultOption","selectLabel","selectPlaceholder","optionsSelect","inputElem","disable","Policy","setRule","operatingSystem","whitelistNetworks","whitelist_networks","blacklistNetworks","blacklist_networks","providerIds","adminProviders","userProviders","providers","adminProvider","admin_secondary","userProvider","user_secondary","admin_device_secondary","user_device_secondary","Policies","policiesDom","domain","domainBox","CertificateDomain","Certificate","onAddDomain","acmeDomains","acme_domains","addDomain","onChangeDomain","onRemoveDomain","organizationsSelect","domains","signature_alg","public_key_alg","issuer","issued_on","expires_on","dns_names","noCerts","Certificates","certsDom","Organization","org","orgId","Organizations","orgsDom","_storages","storages","storagesM","storage","Datacenter","datacenterId","onAddStorage","addStorage","storageId","publicStorages","public_storages","onRemoveStorage","onAddOrganization","addOrganization","organizationId","onRemoveOrganization","hasStorages","privateStoragesSelect","backupStoragesSelect","publicStoragesSelect","private_storage","private_storage_class","backup_storage","backup_storage_class","match_organizations","Datacenters","datacentersDom","_alerts","alerts","alertsM","alert","_authorities","authorities","authoritiesM","authority","alertsButtons","alertsAdd","AlertDetailed","alertId","onAddIgnore","ignores","addIgnore","onRemoveIgnore","ignore","valueInt","valueStr","valueLabel","valueHelp","resource","value_int","value_str","frequency","AlertsFilter","AlertsPage","Alerts","alertIds","newOpened","alertsDom","instId","inst","Zone","Zones","zonesDom","Block","onSync","blockId","onAddSubnet6","addSubnet6","subnets6","onRemoveSubnet6","onAddExclude","addExclude","excludes","onRemoveExclude","exclude","gateway6","Blocks","blocksDom","_vpcs","vpcs","vpcsM","syncNamesId","VpcRoute","destination","VpcSubnet","VpcDetailed","onAddRoute","routes","vpcId","addVpc","onChangeSubnet","onChangeRoute","onRemoveRoute","datacenterName","subnetsElem","vpc_id","network6","Vpc","orgName","VpcsFilter","VpcsPage","groupBoxUser","selectFirst","Vpcs","vpcIds","vpcsDom","hasOrganizations","SYNC_NAME","_domains","domainsM","DomainDetailed","domainId","aws_id","aws_secret","Domain","DomainsFilter","DomainsPage","Domains","domainIds","domainsDom","_balancers","balancers","balancersM","balancer","BalancerDomain","hostnameBox","BalancerBackend","backend","BalancerDetailed","onAddBackend","backends","balancerId","onChangeBackend","onRemoveBackend","requests","websockets","states","statesMap","online","unknownHigh","unknownMid","unknownLow","offline","backendsClasses","curState","unknown_low","unknown_mid","unknown_high","check_path","Balancer","BalancersPage","BalancersFilter","Balancers","balancerIds","balancersDom","Storage","endpoint","bucket","access_key","secret_key","insecure","Storages","storagesDom","SYNC_DATACENTER","_images","images","imagesM","syncDatacenter","ImageDetailed","imageId","store","imgType","signed","storageClass","storage_class","last_modified","etag","orgClass","orgIcon","diskIcon","ImagesFilter","ImagesPage","Images","imageIds","imagesDom","_disks","disks","disksM","disk","updateMulti","diskIds","SYNC_NODE","_instances","instances","instancesM","instanceIds","syncNode","node_names","insts","DiskDetailed","resizeDisk","new_size","diskId","onRestoreBackup","restoreImage","backups","restore_image","setResizeDisk","hasInstances","instancesSelect","backupsSelect","backup","hasBackups","statusClass","backingImage","backing_image","delete_protection","Disk","DisksFilter","nodesSelect","DisksPage","PageCreate","closedDom","row","DiskNew","hiddenImages","hasNodes","imagesSelect","imagesMap","imagesVer","imgSpl","imgKey","firmware","imgVer","curImg","backing","debugButton","Disks","onForceDelete","onSnapshot","onBackup","newDiskDom","disksDom","debugClass","InstanceIscsiDevice","vncBox","InstanceDetailed","onTogleVnc","vnc","vncRfb","connectVnc","vncRef","vnc_password","vncState","vncScale","scaleViewport","onToggleVncCtrl","vncCtrl","onToggleVncAlt","vncAlt","onToggleVncSuper","vncSuper","onVncCtrlAltDel","sendCtrlAltDel","onVncTab","onVncEsc","onToggleVncFullscreen","fullscreenElement","exitFullscreen","requestFullscreen","onToggleVncScale","vncHeight","ratio","onAddDriveDevice","infoDriveDevices","drive_devices","addDriveDevice","driveDevices","onRemoveDriveDevice","onAddIso","infoIsos","isos","addIso","onRemoveIso","isoName","onAddUsbDevice","infoUsbDevices","usb_devices","addUsbDevice","product","bus","usbDevices","dev","address","onRemoveUsbDevice","onAddPciDevice","infoPciDevices","pci_devices","addPciDevice","slot","pciDevices","onRemovePciDevice","onAddIscsiDevice","iscsiDevices","iscsi_devices","instanceId","onChangeIscsiDevice","onRemoveIscsiDevice","privateIps","private_ips","privateIps6","private_ips6","gatewayIps","gateway_ips","gatewayIps6","gateway_ips6","hostIps","host_ips","oraclePrivateIps","oracle_private_ips","oraclePublicIps","oracle_public_ips","hasVpcs","vpcsSelect","hasSubnets","subnetSelect","oracleSubnetsSelect","domainsSelect","driveDevicesSelect","iso","isosSelect","usbDevicesSelect","pciDevicesSelect","class","iscsiDevicesElem","vm_state","uptime","public_mac","qemu_version","uefi","secure_boot","mtu","network_namespace","root_enabled","root_passwd","vncPort","node_public_ip","vnc_display","spice","spice_port","spice_password","firewall_rules","vncStyle","processors","oracle_subnet","cloud_type","tpm","dhcp_server","no_public_address","no_public_address6","no_host_address","skip_source_dest_check","Instance","zoneName","publicIp","privateIp","InstanceLicense","InstanceNew","onImageselect","imageName","secureBootChanged","licenseOpen","dhcpChanged","init_disk_size","onUefi","onSecureBoot","secureBoot","onDhcpServer","dhcpServer","onNode","hasImages","image_backing","shortInput","InstancesFilter","subnetsSelect","InstancesPage","Instances","VpcsNameStore","updateSelected","newInstanceDom","instancesDom","_firewalls","firewalls","firewallsM","FirewallRule","onAddSourceIp","sourceIps","source_ips","onChangeSourceIp","sourceIp","onRemoveSourceIp","sourceIpsDoms","FirewallDetailed","onAddIngress","ingress","firewallId","onChangeIngress","onRemoveIngress","Firewall","FirewallsFilter","FirewallsPage","Firewalls","firewallIds","firewallsDom","AuthorityDetailed","authorityId","Authority","AuthoritiesFilter","AuthoritiesPage","Authorities","authorityIds","authoritiesDom","authrId","authr","_logs","logs","logsM","dialogBody","LogsFilter","LogsPage","logsBox","Logs","logsDom","SettingsProvider","azure","tenant","client_id","client_secret","authzero","google","google_email","google_key","onelogin","issuer_url","saml_url","saml_cert","okta","jumpcloud","jumpcloud_app_id","jumpcloud_secret","default_roles","rls","auto_create","role_management","SettingsSecondaryProvider","duo","duo_hostname","duo_key","duo_secret","push_factor","phone_factor","passcode_factor","sms_factor","one_login_id","one_login_secret","one_login_region","okta_domain","okta_token","providersLabel","secondaryProviders","Settings","secondaryProvider","subscriptionActive","auth_providers","prvdrs","auth_secondary_providers","authProviders","auth_admin_expire","auth_admin_max_duration","auth_user_expire","auth_user_max_duration","orgsSelect","nav","navTitle","flexWrap","navGroup","Main","alt","startsWith","connected","connect","socket","oracle_license"],"sourceRoot":""} \ No newline at end of file diff --git a/www/dist/static/app.6ecce8.js b/www/dist/static/app.750268.js similarity index 74% rename from www/dist/static/app.6ecce8.js rename to www/dist/static/app.750268.js index 521290ac..ad1bb9c0 100644 --- a/www/dist/static/app.6ecce8.js +++ b/www/dist/static/app.750268.js @@ -66,5 +66,5 @@ object-assign * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var n,a,s,i;if("object"==typeof performance&&"function"==typeof performance.now){var r=performance;t.unstable_now=function(){return r.now()}}else{var o=Date,l=o.now();t.unstable_now=function(){return o.now()-l}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var c=null,h=null,d=function(){if(null!==c)try{var e=t.unstable_now();c(!0,e),c=null}catch(e){throw setTimeout(d,0),e}};n=function(e){null!==c?setTimeout(n,0,e):(c=e,setTimeout(d,0))},a=function(e,t){h=setTimeout(e,t)},s=function(){clearTimeout(h)},t.unstable_shouldYield=function(){return!1},i=t.unstable_forceFrameRate=function(){}}else{var u=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var f=!1,v=null,g=-1,b=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},i=function(){},t.unstable_forceFrameRate=function(e){0>e||125>>1,s=e[a];if(!(void 0!==s&&0k(r,n))void 0!==l&&0>k(l,r)?(e[a]=l,e[o]=n,a=o):(e[a]=r,e[i]=n,a=i);else{if(!(void 0!==l&&0>k(l,n)))break e;e[a]=l,e[o]=n,a=o}}}return t}return null}function k(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var z=[],M=[],x=1,A=null,T=3,L=!1,P=!1,H=!1;function N(e){for(var t=E(M);null!==t;){if(null===t.callback)S(M);else{if(!(t.startTime<=e))break;S(M),t.sortIndex=t.expirationTime,C(z,t)}t=E(M)}}function O(e){if(H=!1,N(e),!P)if(null!==E(z))P=!0,n(V);else{var t=E(M);null!==t&&a(O,t.startTime-e)}}function V(e,n){P=!1,H&&(H=!1,s()),L=!0;var i=T;try{for(N(n),A=E(z);null!==A&&(!(A.expirationTime>n)||e&&!t.unstable_shouldYield());){var r=A.callback;if("function"==typeof r){A.callback=null,T=A.priorityLevel;var o=r(A.expirationTime<=n);n=t.unstable_now(),"function"==typeof o?A.callback=o:A===E(z)&&S(z),N(n)}else S(z);A=E(z)}if(null!==A)var l=!0;else{var c=E(M);null!==c&&a(O,c.startTime-n),l=!1}return l}finally{A=null,T=i,L=!1}}var D=i;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){P||L||(P=!0,n(V))},t.unstable_getCurrentPriorityLevel=function(){return T},t.unstable_getFirstCallbackNode=function(){return E(z)},t.unstable_next=function(e){switch(T){case 1:case 2:case 3:var t=3;break;default:t=T}var n=T;T=t;try{return e()}finally{T=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=D,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=T;T=e;try{return t()}finally{T=n}},t.unstable_scheduleCallback=function(e,i,r){var o=t.unstable_now();switch("object"==typeof r&&null!==r?r="number"==typeof(r=r.delay)&&0o?(e.sortIndex=r,C(M,e),null===E(z)&&e===E(M)&&(H?s():H=!0,a(O,r-o))):(e.sortIndex=l,C(z,e),P||L||(P=!0,n(V))),e},t.unstable_wrapCallback=function(e){var t=T;return function(){var n=T;T=t;try{return e.apply(this,arguments)}finally{T=n}}}},2851:(e,t,n)=>{"use strict";e.exports=n(1196)},3680:(e,t,n)=>{"use strict";var a=n(1801),s=n(7615),i=n(3126),r=a("%TypeError%"),o=a("%WeakMap%",!0),l=a("%Map%",!0),c=s("WeakMap.prototype.get",!0),h=s("WeakMap.prototype.set",!0),d=s("WeakMap.prototype.has",!0),u=s("Map.prototype.get",!0),p=s("Map.prototype.set",!0),m=s("Map.prototype.has",!0),f=function(e,t){for(var n,a=e;null!==(n=a.next);a=n)if(n.key===t)return a.next=n.next,n.next=e.next,e.next=n,n};e.exports=function(){var e,t,n,a={assert:function(e){if(!a.has(e))throw new r("Side channel does not contain "+i(e))},get:function(a){if(o&&a&&("object"==typeof a||"function"==typeof a)){if(e)return c(e,a)}else if(l){if(t)return u(t,a)}else if(n)return function(e,t){var n=f(e,t);return n&&n.value}(n,a)},has:function(a){if(o&&a&&("object"==typeof a||"function"==typeof a)){if(e)return d(e,a)}else if(l){if(t)return m(t,a)}else if(n)return function(e,t){return!!f(e,t)}(n,a);return!1},set:function(a,s){o&&a&&("object"==typeof a||"function"==typeof a)?(e||(e=new o),h(e,a,s)):l?(t||(t=new l),p(t,a,s)):(n||(n={key:{},next:null}),function(e,t,n){var a=f(e,t);a?a.value=n:e.next={key:t,next:e.next,value:n}}(n,a,s))}};return a}},2858:e=>{"use strict";function t(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return n(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n{"use strict";function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}var s;"undefined"!=typeof window?s=window:"undefined"==typeof self?(console.warn("Using browser-only version of superagent in non-browser environment"),s=void 0):s=self;var i=n(1069),r=n(5799),o=n(5907),l=n(4287),c=n(1960),h=n(969),d=n(2858);function u(){}e.exports=function(e,n){return"function"==typeof n?new t.Request("GET",e).end(n):1===arguments.length?new t.Request("GET",e):new t.Request(e,n)};var p=t=e.exports;t.Request=_,p.getXHR=function(){if(s.XMLHttpRequest&&(!s.location||"file:"!==s.location.protocol||!s.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}throw new Error("Browser-only version of superagent could not find XHR")};var m="".trim?function(e){return e.trim()}:function(e){return e.replace(/(^\s*|\s*$)/g,"")};function f(e){if(!c(e))return e;var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&v(t,n,e[n]);return t.join("&")}function v(e,t,n){if(void 0!==n)if(null!==n)if(Array.isArray(n))n.forEach((function(n){v(e,t,n)}));else if(c(n))for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&v(e,"".concat(t,"[").concat(a,"]"),n[a]);else e.push(encodeURI(t)+"="+encodeURIComponent(n));else e.push(encodeURI(t))}function g(e){for(var t,n,a={},s=e.split("&"),i=0,r=s.length;i0||e instanceof Object)?t(e):null)},y.prototype.toError=function(){var e=this.req,t=e.method,n=e.url,a="cannot ".concat(t," ").concat(n," (").concat(this.status,")"),s=new Error(a);return s.status=this.status,s.method=t,s.url=n,s},p.Response=y,i(_.prototype),l(_.prototype),_.prototype.type=function(e){return this.set("Content-Type",p.types[e]||e),this},_.prototype.accept=function(e){return this.set("Accept",p.types[e]||e),this},_.prototype.auth=function(e,t,n){1===arguments.length&&(t=""),"object"===a(t)&&null!==t&&(n=t,t=""),n||(n={type:"function"==typeof btoa?"basic":"auto"});var s=function(e){if("function"==typeof btoa)return btoa(e);throw new Error("Cannot use basic auth, btoa is not a function")};return this._auth(e,t,n,s)},_.prototype.query=function(e){return"string"!=typeof e&&(e=f(e)),e&&this._query.push(e),this},_.prototype.attach=function(e,t,n){if(t){if(this._data)throw new Error("superagent can't mix .send() and .attach()");this._getFormData().append(e,t,n||t.name)}return this},_.prototype._getFormData=function(){return this._formData||(this._formData=new s.FormData),this._formData},_.prototype.callback=function(e,t){if(this._shouldRetry(e,t))return this._retry();var n=this._callback;this.clearTimeout(),e&&(this._maxRetries&&(e.retries=this._retries-1),this.emit("error",e)),n(e,t)},_.prototype.crossDomainError=function(){var e=new Error("Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.");e.crossDomain=!0,e.status=this.status,e.method=this.method,e.url=this.url,this.callback(e)},_.prototype.agent=function(){return console.warn("This is not supported in browser version of superagent"),this},_.prototype.ca=_.prototype.agent,_.prototype.buffer=_.prototype.ca,_.prototype.write=function(){throw new Error("Streaming is not supported in browser version of superagent")},_.prototype.pipe=_.prototype.write,_.prototype._isHost=function(e){return e&&"object"===a(e)&&!Array.isArray(e)&&"[object Object]"!==Object.prototype.toString.call(e)},_.prototype.end=function(e){this._endCalled&&console.warn("Warning: .end() was called twice. This is not supported in superagent"),this._endCalled=!0,this._callback=e||u,this._finalizeQueryString(),this._end()},_.prototype._setUploadTimeout=function(){var e=this;this._uploadTimeout&&!this._uploadTimeoutTimer&&(this._uploadTimeoutTimer=setTimeout((function(){e._timeoutError("Upload timeout of ",e._uploadTimeout,"ETIMEDOUT")}),this._uploadTimeout))},_.prototype._end=function(){if(this._aborted)return this.callback(new Error("The request has been aborted even before .end() was called"));var e=this;this.xhr=p.getXHR();var t=this.xhr,n=this._formData||this._data;this._setTimeouts(),t.onreadystatechange=function(){var n=t.readyState;if(n>=2&&e._responseTimeoutTimer&&clearTimeout(e._responseTimeoutTimer),4===n){var a;try{a=t.status}catch(e){a=0}if(!a){if(e.timedout||e._aborted)return;return e.crossDomainError()}e.emit("end")}};var a=function(t,n){n.total>0&&(n.percent=n.loaded/n.total*100,100===n.percent&&clearTimeout(e._uploadTimeoutTimer)),n.direction=t,e.emit("progress",n)};if(this.hasListeners("progress"))try{t.addEventListener("progress",a.bind(null,"download")),t.upload&&t.upload.addEventListener("progress",a.bind(null,"upload"))}catch(e){}t.upload&&this._setUploadTimeout();try{this.username&&this.password?t.open(this.method,this.url,!0,this.username,this.password):t.open(this.method,this.url,!0)}catch(e){return this.callback(e)}if(this._withCredentials&&(t.withCredentials=!0),!this._formData&&"GET"!==this.method&&"HEAD"!==this.method&&"string"!=typeof n&&!this._isHost(n)){var s=this._header["content-type"],i=this._serializer||p.serialize[s?s.split(";")[0]:""];!i&&b(s)&&(i=p.serialize["application/json"]),i&&(n=i(n))}for(var r in this.header)null!==this.header[r]&&Object.prototype.hasOwnProperty.call(this.header,r)&&t.setRequestHeader(r,this.header[r]);this._responseType&&(t.responseType=this._responseType),this.emit("request",this),t.send(void 0===n?null:n)},p.agent=function(){return new d},["GET","POST","OPTIONS","PATCH","PUT","DELETE"].forEach((function(e){d.prototype[e.toLowerCase()]=function(t,n){var a=new p.Request(e,t);return this._setDefaults(a),n&&a.end(n),a}})),d.prototype.del=d.prototype.delete,p.get=function(e,t,n){var a=p("GET",e);return"function"==typeof t&&(n=t,t=null),t&&a.query(t),n&&a.end(n),a},p.head=function(e,t,n){var a=p("HEAD",e);return"function"==typeof t&&(n=t,t=null),t&&a.query(t),n&&a.end(n),a},p.options=function(e,t,n){var a=p("OPTIONS",e);return"function"==typeof t&&(n=t,t=null),t&&a.send(t),n&&a.end(n),a},p.del=w,p.delete=w,p.patch=function(e,t,n){var a=p("PATCH",e);return"function"==typeof t&&(n=t,t=null),t&&a.send(t),n&&a.end(n),a},p.post=function(e,t,n){var a=p("POST",e);return"function"==typeof t&&(n=t,t=null),t&&a.send(t),n&&a.end(n),a},p.put=function(e,t,n){var a=p("PUT",e);return"function"==typeof t&&(n=t,t=null),t&&a.send(t),n&&a.end(n),a}},1960:e=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}e.exports=function(e){return null!==e&&"object"===t(e)}},4287:(e,t,n)=>{"use strict";function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}var s=n(1960);function i(e){if(e)return function(e){for(var t in i.prototype)Object.prototype.hasOwnProperty.call(i.prototype,t)&&(e[t]=i.prototype[t]);return e}(e)}e.exports=i,i.prototype.clearTimeout=function(){return clearTimeout(this._timer),clearTimeout(this._responseTimeoutTimer),clearTimeout(this._uploadTimeoutTimer),delete this._timer,delete this._responseTimeoutTimer,delete this._uploadTimeoutTimer,this},i.prototype.parse=function(e){return this._parser=e,this},i.prototype.responseType=function(e){return this._responseType=e,this},i.prototype.serialize=function(e){return this._serializer=e,this},i.prototype.timeout=function(e){if(!e||"object"!==a(e))return this._timeout=e,this._responseTimeout=0,this._uploadTimeout=0,this;for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(t){case"deadline":this._timeout=e.deadline;break;case"response":this._responseTimeout=e.response;break;case"upload":this._uploadTimeout=e.upload;break;default:console.warn("Unknown timeout option",t)}return this},i.prototype.retry=function(e,t){return 0!==arguments.length&&!0!==e||(e=1),e<=0&&(e=0),this._maxRetries=e,this._retries=0,this._retryCallback=t,this};var r=new Set(["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"]),o=new Set([408,413,429,500,502,503,504,521,522,524]);i.prototype._shouldRetry=function(e,t){if(!this._maxRetries||this._retries++>=this._maxRetries)return!1;if(this._retryCallback)try{var n=this._retryCallback(e,t);if(!0===n)return!0;if(!1===n)return!1}catch(e){console.error(e)}if(t&&t.status&&o.has(t.status))return!0;if(e){if(e.code&&r.has(e.code))return!0;if(e.timeout&&"ECONNABORTED"===e.code)return!0;if(e.crossDomain)return!0}return!1},i.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this.timedoutError=null,this._end()},i.prototype.then=function(e,t){var n=this;if(!this._fullfilledPromise){var a=this;this._endCalled&&console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"),this._fullfilledPromise=new Promise((function(e,t){a.on("abort",(function(){if(!(n._maxRetries&&n._maxRetries>n._retries))if(n.timedout&&n.timedoutError)t(n.timedoutError);else{var e=new Error("Aborted");e.code="ABORTED",e.status=n.status,e.method=n.method,e.url=n.url,t(e)}})),a.end((function(n,a){n?t(n):e(a)}))}))}return this._fullfilledPromise.then(e,t)},i.prototype.catch=function(e){return this.then(void 0,e)},i.prototype.use=function(e){return e(this),this},i.prototype.ok=function(e){if("function"!=typeof e)throw new Error("Callback required");return this._okCallback=e,this},i.prototype._isResponseOK=function(e){return!!e&&(this._okCallback?this._okCallback(e):e.status>=200&&e.status<300)},i.prototype.get=function(e){return this._header[e.toLowerCase()]},i.prototype.getHeader=i.prototype.get,i.prototype.set=function(e,t){if(s(e)){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&this.set(n,e[n]);return this}return this._header[e.toLowerCase()]=t,this.header[e]=t,this},i.prototype.unset=function(e){return delete this._header[e.toLowerCase()],delete this.header[e],this},i.prototype.field=function(e,t){if(null==e)throw new Error(".field(name, val) name can not be empty");if(this._data)throw new Error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()");if(s(e)){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&this.field(n,e[n]);return this}if(Array.isArray(t)){for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&this.field(e,t[a]);return this}if(null==t)throw new Error(".field(name, val) val can not be empty");return"boolean"==typeof t&&(t=String(t)),this._getFormData().append(e,t),this},i.prototype.abort=function(){return this._aborted||(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort")),this},i.prototype._auth=function(e,t,n,a){switch(n.type){case"basic":this.set("Authorization","Basic ".concat(a("".concat(e,":").concat(t))));break;case"auto":this.username=e,this.password=t;break;case"bearer":this.set("Authorization","Bearer ".concat(e))}return this},i.prototype.withCredentials=function(e){return void 0===e&&(e=!0),this._withCredentials=e,this},i.prototype.redirects=function(e){return this._maxRedirects=e,this},i.prototype.maxResponseSize=function(e){if("number"!=typeof e)throw new TypeError("Invalid argument");return this._maxResponseSize=e,this},i.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},i.prototype.send=function(e){var t=s(e),n=this._header["content-type"];if(this._formData)throw new Error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()");if(t&&!this._data)Array.isArray(e)?this._data=[]:this._isHost(e)||(this._data={});else if(e&&this._data&&this._isHost(this._data))throw new Error("Can't merge these send calls");if(t&&s(this._data))for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(this._data[a]=e[a]);else"string"==typeof e?(n||this.type("form"),(n=this._header["content-type"])&&(n=n.toLowerCase().trim()),this._data="application/x-www-form-urlencoded"===n?this._data?"".concat(this._data,"&").concat(e):e:(this._data||"")+e):this._data=e;return!t||this._isHost(e)||n||this.type("json"),this},i.prototype.sortQuery=function(e){return this._sort=void 0===e||e,this},i.prototype._finalizeQueryString=function(){var e=this._query.join("&");if(e&&(this.url+=(this.url.includes("?")?"&":"?")+e),this._query.length=0,this._sort){var t=this.url.indexOf("?");if(t>=0){var n=this.url.slice(t+1).split("&");"function"==typeof this._sort?n.sort(this._sort):n.sort(),this.url=this.url.slice(0,t)+"?"+n.join("&")}}},i.prototype._appendQueryString=function(){console.warn("Unsupported")},i.prototype._timeoutError=function(e,t,n){if(!this._aborted){var a=new Error("".concat(e+t,"ms exceeded"));a.timeout=t,a.code="ECONNABORTED",a.errno=n,this.timedout=!0,this.timedoutError=a,this.abort(),this.callback(a)}},i.prototype._setTimeouts=function(){var e=this;this._timeout&&!this._timer&&(this._timer=setTimeout((function(){e._timeoutError("Timeout of ",e._timeout,"ETIME")}),this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout((function(){e._timeoutError("Response timeout of ",e._responseTimeout,"ETIMEDOUT")}),this._responseTimeout))}},969:(e,t,n)=>{"use strict";var a=n(3094);function s(e){if(e)return function(e){for(var t in s.prototype)Object.prototype.hasOwnProperty.call(s.prototype,t)&&(e[t]=s.prototype[t]);return e}(e)}e.exports=s,s.prototype.get=function(e){return this.header[e.toLowerCase()]},s.prototype._setHeaderProperties=function(e){var t=e["content-type"]||"";this.type=a.type(t);var n=a.params(t);for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(this[s]=n[s]);this.links={};try{e.link&&(this.links=a.parseLinks(e.link))}catch(e){}},s.prototype._setStatusProperties=function(e){var t=e/100|0;this.statusCode=e,this.status=this.statusCode,this.statusType=t,this.info=1===t,this.ok=2===t,this.redirect=3===t,this.clientError=4===t,this.serverError=5===t,this.error=(4===t||5===t)&&this.toError(),this.created=201===e,this.accepted=202===e,this.noContent=204===e,this.badRequest=400===e,this.unauthorized=401===e,this.notAcceptable=406===e,this.forbidden=403===e,this.notFound=404===e,this.unprocessableEntity=422===e}},3094:(e,t)=>{"use strict";function n(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var s=0,i=function(){};return{s:i,n:function(){return s>=e.length?{done:!0}:{done:!1,value:e[s++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,o=!0,l=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,r=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw r}}}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n{"use strict";var t=function(){};e.exports=t},4654:()=>{}},t={};function n(a){var s=t[a];if(void 0!==s)return s.exports;var i=t[a]={exports:{}};return e[a](i,i.exports,n),i.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{"use strict";var e=n(7841),t=n(3961),a="left",s="right",i=0,r=1,o=2,l=3,c=4,h="none",d="primary",u="success",p="warning",m="danger",f="bottom",v="bottom-left",g="bottom-right",b="left",y="left-bottom",_="left-top",w="right",C="right-bottom",E="right-top",S="top",k="top-left",z="top-right";var M={}.BLUEPRINT_NAMESPACE||{}.REACT_APP_BLUEPRINT_NAMESPACE||"bp3",x=M+"-active",A=M+"-align-left",T=M+"-align-right",L=M+"-dark",P=M+"-disabled",H=M+"-fill",N=M+"-fixed",O=M+"-large",V=M+"-loading",D=M+"-minimal",I=M+"-outlined",R=M+"-round",B=M+"-small",F=M+"-vertical",X=(Ze(S),Ze(f),Ze(b),Ze(w),Qe(i),Qe(r),Qe(o),Qe(l),Qe(c),Ye(d)),K=(Ye(u),Ye(p),Ye(m),M+"-focus-disabled"),U=M+"-text-overflow-ellipsis",G=M+"-blockquote",j=M+"-code",W=M+"-code-block",Q=M+"-heading",Y=M+"-list",Z=M+"-button",q=Z+"-group",J=Z+"-spinner",$=Z+"-text",ee=M+"-control-group",te=M+"-dialog",ne=te+"-container",ae=te+"-close-button",se=te+"-header",ie=M+"-divider",re=M+"-html-select",oe=M+"-input",le=oe+"-group",ce=oe+"-left-container",he=oe+"-action",de=M+"-label",ue=M+"-menu",pe=ue+"-item",me=pe+"-label",fe=M+"-submenu",ve=ue+"-divider",ge=ue+"-header",be=M+"-numeric-input",ye=M+"-overlay",_e=ye+"-backdrop",we=ye+"-content",Ce=ye+"-inline",Ee=ye+"-open",Se=ye+"-scroll-container",ke=M+"-popover",ze=ke+"-arrow",Me=ke+"-backdrop",xe=ke+"-capturing-dismiss",Ae=ke+"-content",Te=ke+"-dismiss",Le=Te+"-override",Pe=ke+"-open",He=ke+"-target",Ne=ke+"-wrapper",Oe=M+"-transition-container",Ve=M+"-portal",De=M+"-spinner",Ie=De+"-animation",Re=De+"-head",Be=M+"-no-spin",Fe=De+"-track",Xe=M+"-toast",Ke=Xe+"-container",Ue=Xe+"-message",Ge=M+"-tooltip",je=M+"-icon";function We(e){switch(e){case a:return A;case s:return T;default:return}}function Qe(e){if(void 0!==e)return M+"-elevation-"+e}function Ye(e){if(null!=e&&e!==h)return M+"-intent-"+e.toLowerCase()}function Ze(e){if(void 0!==e)return M+"-position-"+e}var qe=function(){function e(e,t){var n=this;this.container=e,this.className=t,this.isRunning=!1,this.handleKeyDown=function(e){9===e.which&&(n.reset(),n.container.addEventListener("mousedown",n.handleMouseDown))},this.handleMouseDown=function(){n.reset(),n.container.classList.add(n.className),n.container.addEventListener("keydown",n.handleKeyDown)}}return e.prototype.isActive=function(){return this.isRunning},e.prototype.start=function(){this.container.addEventListener("mousedown",this.handleMouseDown),this.isRunning=!0},e.prototype.stop=function(){this.reset(),this.isRunning=!1},e.prototype.reset=function(){this.container.classList.remove(this.className),this.container.removeEventListener("keydown",this.handleKeyDown),this.container.removeEventListener("mousedown",this.handleMouseDown)},e}(),Je="undefined"!=typeof document?new qe(document.documentElement,K):{isActive:function(){return!0},start:function(){return!0},stop:function(){return!0}},$e=function(){return Je.start()};function et(e,t){return et=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},et(e,t)}function tt(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,et(e,t)}function nt(){return nt=Object.assign||function(e){for(var t=1;t=0;h--){var d=s[h];"."===d?st(s,h):".."===d?(st(s,h),c++):c&&(st(s,h),c--)}if(!o)for(;c--;c)s.unshift("..");!o||""===s[0]||s[0]&&at(s[0])||s.unshift("");var u=s.join("/");return n&&"/"!==u.substr(-1)&&(u+="/"),u};function rt(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const ot=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,a){return e(t,n[a])}));if("object"==typeof t||"object"==typeof n){var a=rt(t),s=rt(n);return a!==t||s!==n?e(a,s):Object.keys(Object.assign({},t,n)).every((function(a){return e(t[a],n[a])}))}return!1};var lt="Invariant failed";function ct(e,t){if(!e)throw new Error(lt)}function ht(e){return"/"===e.charAt(0)?e:"/"+e}function dt(e){return"/"===e.charAt(0)?e.substr(1):e}function ut(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function pt(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function mt(e){var t=e.pathname,n=e.search,a=e.hash,s=t||"/";return n&&"?"!==n&&(s+="?"===n.charAt(0)?n:"?"+n),a&&"#"!==a&&(s+="#"===a.charAt(0)?a:"#"+a),s}function ft(e,t,n,a){var s;"string"==typeof e?(s=function(e){var t=e||"/",n="",a="",s=t.indexOf("#");-1!==s&&(a=t.substr(s),t=t.substr(0,s));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===a?"":a}}(e),s.state=t):(void 0===(s=nt({},e)).pathname&&(s.pathname=""),s.search?"?"!==s.search.charAt(0)&&(s.search="?"+s.search):s.search="",s.hash?"#"!==s.hash.charAt(0)&&(s.hash="#"+s.hash):s.hash="",void 0!==t&&void 0===s.state&&(s.state=t));try{s.pathname=decodeURI(s.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+s.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(s.key=n),a?s.pathname?"/"!==s.pathname.charAt(0)&&(s.pathname=it(s.pathname,a.pathname)):s.pathname=a.pathname:s.pathname||(s.pathname="/"),s}function vt(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,a,s){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof a?a(i,s):s(!0):s(!1!==i)}else s(!0)},appendListener:function(e){var n=!0;function a(){n&&e.apply(void 0,arguments)}return t.push(a),function(){n=!1,t=t.filter((function(e){return e!==a}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),a=0;at?n.splice(t,n.length-t,s):n.push(s),h({action:a,location:s,index:t,entries:n})}}))},replace:function(e,t){var a="REPLACE",s=ft(e,t,d(),v.location);c.confirmTransitionTo(s,a,n,(function(e){e&&(v.entries[v.index]=s,h({action:a,location:s}))}))},go:f,goBack:function(){f(-1)},goForward:function(){f(1)},canGo:function(e){var t=v.index+e;return t>=0&&t=0||(s[n]=e[n]);return s}n(1281);var Ft=function(e){var t=Dt();return t.displayName=e,t},Xt=Ft("Router-History"),Kt=function(e){var t=Dt();return t.displayName=e,t},Ut=Kt("Router"),Gt=function(t){function n(e){var n;return(n=t.call(this,e)||this).state={location:e.history.location},n._isMounted=!1,n._pendingLocation=null,e.staticContext||(n.unlisten=e.history.listen((function(e){n._isMounted?n.setState({location:e}):n._pendingLocation=e}))),n}tt(n,t),n.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var a=n.prototype;return a.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},a.componentWillUnmount=function(){this.unlisten&&this.unlisten()},a.render=function(){return e.createElement(Ut.Provider,{value:{history:this.props.history,location:this.state.location,match:n.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},e.createElement(Xt.Provider,{children:this.props.children||null,value:this.props.history}))},n}(e.Component);e.Component;var jt=function(e){function t(){return e.apply(this,arguments)||this}tt(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(e.Component);var Wt={},Qt=0;function Yt(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(Wt[e])return Wt[e];var t=Rt().compile(e);return Qt<1e4&&(Wt[e]=t,Qt++),t}(e)(t,{pretty:!0})}function Zt(t){var n=t.computedMatch,a=t.to,s=t.push,i=void 0!==s&&s;return e.createElement(Ut.Consumer,null,(function(t){t||ct(!1);var s=t.history,r=t.staticContext,o=i?s.push:s.replace,l=ft(n?"string"==typeof a?Yt(a,n.params):nt({},a,{pathname:Yt(a.pathname,n.params)}):a);return r?(o(l),null):e.createElement(jt,{onMount:function(){o(l)},onUpdate:function(e,t){var n,a,s=ft(t.to);n=s,a=nt({},l,{key:s.key}),n.pathname===a.pathname&&n.search===a.search&&n.hash===a.hash&&n.key===a.key&&ot(n.state,a.state)||o(l)},to:a})}))}var qt={},Jt=0;function $t(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,a=n.path,s=n.exact,i=void 0!==s&&s,r=n.strict,o=void 0!==r&&r,l=n.sensitive,c=void 0!==l&&l;return[].concat(a).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var a=function(e,t){var n=""+t.end+t.strict+t.sensitive,a=qt[n]||(qt[n]={});if(a[e])return a[e];var s=[],i={regexp:Rt()(e,s,t),keys:s};return Jt<1e4&&(a[e]=i,Jt++),i}(n,{end:i,strict:o,sensitive:c}),s=a.regexp,r=a.keys,l=s.exec(e);if(!l)return null;var h=l[0],d=l.slice(1),u=e===h;return i&&!u?null:{path:n,url:"/"===n&&""===h?"/":h,isExact:u,params:r.reduce((function(e,t,n){return e[t.name]=d[n],e}),{})}}),null)}var en=function(t){function n(){return t.apply(this,arguments)||this}return tt(n,t),n.prototype.render=function(){var t=this;return e.createElement(Ut.Consumer,null,(function(n){n||ct(!1);var a=t.props.location||n.location,s=nt({},n,{location:a,match:t.props.computedMatch?t.props.computedMatch:t.props.path?$t(a.pathname,t.props):n.match}),i=t.props,r=i.children,o=i.component,l=i.render;return Array.isArray(r)&&0===r.length&&(r=null),e.createElement(Ut.Provider,{value:s},s.match?r?"function"==typeof r?r(s):r:o?e.createElement(o,s):l?l(s):null:"function"==typeof r?r(s):null)}))},n}(e.Component);function tn(e){return"/"===e.charAt(0)?e:"/"+e}function nn(e,t){if(!e)return t;var n=tn(e);return 0!==t.pathname.indexOf(n)?t:nt({},t,{pathname:t.pathname.substr(n.length)})}function an(e){return"string"==typeof e?e:mt(e)}function sn(e){return function(){ct(!1)}}function rn(){}e.Component;e.Component;e.useContext;e.Component;var on=function(t){function n(){for(var e,n=arguments.length,a=new Array(n),s=0;s=0;o--)(s=e[o])&&(r=(i<3?s(r):i>3?s(t,n,r):s(t,n))||r);return i>3&&r&&Object.defineProperty(t,n,r),r}function Cn(){for(var e=0,t=0,n=arguments.length;t0){for(var e=0,t=a.timeoutIds;e0){for(var e=0,t=a.requestIds;e0?e.createElement(n,{},t):void 0:"number"==typeof t||"symbol"==typeof t.type||Array.isArray(t)?e.createElement(n,{},t):function(e){return"object"==typeof e&&void 0!==e.type&&void 0!==e.props}(t)?t:void 0}function Vn(e,t){return null!=e&&null!=e.type&&null!=e.type.displayName&&e.type.displayName===t.displayName}function Dn(){return void 0!==e.createRef?e.createRef():{current:null}}var In=n(9018),Rn={add:["M10.99 6.99h-2v-2c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1zm-3-7c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.68 6-6 6z"],"add-column-left":["M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 14H2V2h8v12zm4 0h-3V2h3v12zM4 9h1v1c0 .55.45 1 1 1s1-.45 1-1V9h1c.55 0 1-.45 1-1s-.45-1-1-1H7V6c0-.55-.45-1-1-1s-1 .45-1 1v1H4c-.55 0-1 .45-1 1s.45 1 1 1z"],"add-column-right":["M8 9h1v1c0 .55.45 1 1 1s1-.45 1-1V9h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V6c0-.55-.45-1-1-1s-1 .45-1 1v1H8c-.55 0-1 .45-1 1s.45 1 1 1zm7-9H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 14H2V2h3v12zm9 0H6V2h8v12z"],"add-location":["M8 0a1 1 0 110 2 6 6 0 106 6 1 1 0 012 0 8 8 0 11-8-8zm0 5a3 3 0 110 6 3 3 0 010-6zm5-5a1 1 0 011 1v.999L15 2a1 1 0 010 2h-1v1a1 1 0 01-2 0V4h-1a1 1 0 010-2h1V1a1 1 0 011-1z"],"add-row-bottom":["M6 11h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1s-.45-1-1-1H9V8c0-.55-.45-1-1-1s-1 .45-1 1v1H6c-.55 0-1 .45-1 1s.45 1 1 1zm9-11H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V6h12v8zm0-9H2V2h12v3z"],"add-row-top":["M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2v-3h12v3zm0-4H2V2h12v8zM6 7h1v1c0 .55.45 1 1 1s1-.45 1-1V7h1c.55 0 1-.45 1-1s-.45-1-1-1H9V4c0-.55-.45-1-1-1s-1 .45-1 1v1H6c-.55 0-1 .45-1 1s.45 1 1 1z"],"add-to-artifact":["M14 4.01h-1v-1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1 0-.56-.45-1-1-1zm-13 2h6c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm8 6H1c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1 0-.56-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1 0-.56-.45-1-1-1z"],"add-to-folder":["M.01 7V5H16v7c0 .55-.45 1-1 1H9.005v-2.99C8.974 8.332 7.644 7 5.996 7H.01zM15 2H7.416L5.706.29a.996.996 0 00-.71-.29H1C.45 0 0 .45 0 1v3h15.99V3c.01-.55-.44-1-.99-1zM5.997 9H2c-.55 0-1 .45-1 1s.45 1 1 1h1.589L.3 14.29a1.003 1.003 0 001.42 1.42l3.287-3.29v1.59c0 .55.45 1 1 1 .549 0 .999-.45.999-1v-4A1.02 1.02 0 005.996 9z"],airplane:["M16 1.5A1.498 1.498 0 0013.44.44L9.91 3.97 2 1 1 3l5.93 3.95L3.88 10H1l-1 1 3 2 2 3 1-1v-2.88l3.05-3.05L13 15l2-1-2.97-7.91 3.53-3.53c.27-.27.44-.65.44-1.06z"],"align-center":["M4 4c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1H4zM1 3h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm13 10H2c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm1-6H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-5 5c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1h4z"],"align-justify":["M15 12.98H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-14-10h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1 0 .56.45 1 1 1zm14 4H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-3H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0 6H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],"align-left":["M13 13H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zM1 3h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm0 3h8c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 1H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM1 12h4c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1z"],"align-right":["M15 12.98H3c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm-14-10h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1 0 .56.45 1 1 1zm14 1H7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm0 6h-4c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1zm0-3H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],"alignment-bottom":["M10 12h3c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm5 2H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM3 12h3c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1z"],"alignment-horizontal-center":["M15 7h-1V6c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v1H7V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4H1c-.55 0-1 .45-1 1s.45 1 1 1h1v4c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V9h2v1c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V9h1c.55 0 1-.45 1-1s-.45-1-1-1z"],"alignment-left":["M9 9H5c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zM1 0C.45 0 0 .45 0 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm13 2H5c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"],"alignment-right":["M11 9H7c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm4-9c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-4 2H2c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"],"alignment-top":["M15 0H1C.45 0 0 .45 0 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM6 4H3c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm7 0h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z"],"alignment-vertical-center":["M13 2H9V1c0-.55-.45-1-1-1S7 .45 7 1v1H3c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4v2H6c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1H9V7h4c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"],annotation:["M15.52 2.77c.3-.29.48-.7.48-1.15C16 .73 15.27 0 14.38 0c-.45 0-.85.18-1.15.48l-1.34 1.34 2.3 2.3 1.33-1.35zM7.4 10.9l6.21-6.21-2.3-2.3L5.1 8.6l2.3 2.3zM14 14H2V2h6.34l2-2H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V5.66l-2 2V14zM3 13l3.58-1.29-2.29-2.27L3 13z"],"app-header":["M15 0a1 1 0 011 1v14a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h14zM6 4a1 1 0 00-1.993-.117L4 4v8a1 1 0 001.993.117L6 12V9h4v3a1 1 0 001.993.117L12 12V4a1 1 0 00-1.993-.117L10 4v3H6V4z"],application:["M3.5 7h7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-7c-.28 0-.5.22-.5.5s.22.5.5.5zM15 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm-1 12H2V5h12v8zM3.5 9h4c.28 0 .5-.22.5-.5S7.78 8 7.5 8h-4c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-5c-.28 0-.5.22-.5.5s.22.5.5.5z"],applications:["M3.5 11h2c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2c-.28 0-.5.22-.5.5s.22.5.5.5zm0-2h5c.28 0 .5-.22.5-.5S8.78 8 8.5 8h-5c-.28 0-.5.22-.5.5s.22.5.5.5zM11 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 10H2V7h8v7zm5-14H5c-.55 0-1 .45-1 1v2h2V2h8v7h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM3.5 13h3c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-3c-.28 0-.5.22-.5.5s.22.5.5.5z"],archive:["M13.382 0a1 1 0 01.894.553L16 4v11a1 1 0 01-1 1H1a1 1 0 01-1-1V4L1.724.553A1 1 0 012.618 0h10.764zM8 6c-.55 0-1 .45-1 1v2.59l-.29-.29-.081-.076A.97.97 0 006 9a1.003 1.003 0 00-.71 1.71l2 2 .096.084c.168.13.38.206.614.206.28 0 .53-.11.71-.29l2-2 .084-.096A1.003 1.003 0 009.29 9.29l-.29.3V7l-.007-.116A1.004 1.004 0 008 6zm5-4H3L2 4h12l-1-2z"],array:["M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm4 7a1 1 0 110 2 1 1 0 010-2zM5 7a1 1 0 110 2 1 1 0 010-2zm6 0a1 1 0 110 2 1 1 0 010-2z"],"array-boolean":["M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm7 6a1 1 0 01.993.883L12 7v2a1 1 0 01-.883.993L11 10H5a1 1 0 01-.993-.883L4 9V7a1 1 0 01.883-.993L5 6h6zm0 1H8v2h3V7z"],"array-date":["M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm6.5 4a.5.5 0 01.5.5V5a1 1 0 01.993.883L12 6v5a1 1 0 01-.883.993L11 12H5a1 1 0 01-.993-.883L4 11V6a1 1 0 01.883-.993L5 5v-.5a.5.5 0 011 0V5h4v-.5a.5.5 0 01.5-.5zm.5 3H5v4h6V7z"],"array-numeric":["M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm6.904 5c.256 0 .483.037.68.112a1.343 1.343 0 01.812.788c.072.184.108.385.108.604 0 .23-.05.441-.152.636a1.314 1.314 0 01-.456.492v.016l.08.04c.055.031.111.072.168.124.085.077.163.172.232.284a1.673 1.673 0 01.24.872c0 .25-.043.477-.128.68a1.518 1.518 0 01-.896.852 1.937 1.937 0 01-.68.116c-.427 0-.792-.101-1.096-.304a1.362 1.362 0 01-.584-.864c-.01-.053.01-.088.064-.104l.696-.16.033-.002c.03.002.051.022.063.058.059.16.155.296.288.408.133.112.312.168.536.168.256 0 .453-.076.592-.228a.827.827 0 00.208-.58c0-.277-.08-.495-.24-.652-.16-.157-.376-.236-.648-.236h-.232l-.035-.005c-.03-.01-.045-.035-.045-.075v-.632l.005-.035c.01-.03.035-.045.075-.045h.216l.138-.009a.734.734 0 00.438-.207c.144-.144.216-.336.216-.576a.745.745 0 00-.192-.532c-.128-.136-.307-.204-.536-.204-.203 0-.363.05-.48.152a.815.815 0 00-.248.408c-.016.048-.048.067-.096.056l-.68-.16-.034-.012c-.028-.016-.038-.044-.03-.084a1.347 1.347 0 01.516-.828c.136-.104.296-.185.48-.244A1.98 1.98 0 0110.904 5zm-6.152.088l.035.005c.03.01.045.035.045.075v5.28l-.005.035c-.01.03-.035.045-.075.045h-.736l-.035-.005c-.03-.01-.045-.035-.045-.075V6.16H3.92l-.832.584-.032.016C3.02 6.773 3 6.751 3 6.696V5.88l.006-.04a.157.157 0 01.05-.072l.872-.632.04-.027a.236.236 0 01.104-.021h.68zM7.344 5c.256 0 .483.04.68.12.197.08.364.188.5.324s.24.296.312.48c.072.184.108.383.108.596 0 .245-.045.47-.136.676-.09.205-.216.404-.376.596l-1.584 1.92v.016h2.016l.035.005c.03.01.045.035.045.075v.64l-.005.035c-.01.03-.035.045-.075.045H5.808l-.035-.005c-.03-.01-.045-.035-.045-.075v-.6l.004-.04a.132.132 0 01.036-.064l1.92-2.392.1-.133a1.95 1.95 0 00.156-.267.985.985 0 00.096-.432.736.736 0 00-.188-.512c-.125-.139-.303-.208-.532-.208-.219 0-.39.061-.512.184a.826.826 0 00-.224.496c-.01.053-.04.075-.088.064L5.792 6.4l-.034-.012c-.028-.016-.038-.044-.03-.084a1.425 1.425 0 01.94-1.192A1.88 1.88 0 017.344 5z"],"array-string":["M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm1.61 5c.514 0 .962.212 1.343.637.382.425.573.997.573 1.716 0 .838-.258 1.588-.773 2.252-.514.663-1.327 1.2-2.437 1.609v-.465l.233-.095a3.09 3.09 0 001.274-1.017c.366-.505.55-1.03.55-1.577a.478.478 0 00-.057-.26c-.018-.037-.043-.056-.074-.056s-.08.025-.149.075c-.198.142-.446.214-.744.214-.36 0-.675-.145-.944-.433A1.453 1.453 0 014 6.572c0-.422.155-.79.465-1.102.31-.313.692-.47 1.144-.47zm4.474 0c.514 0 .963.212 1.344.637.381.425.572.997.572 1.716 0 .838-.257 1.588-.772 2.252-.515.663-1.327 1.2-2.437 1.609v-.465l.233-.095a3.09 3.09 0 001.274-1.017c.366-.505.549-1.03.549-1.577a.478.478 0 00-.056-.26c-.019-.037-.044-.056-.075-.056-.03 0-.08.025-.149.075-.198.142-.446.214-.744.214-.36 0-.674-.145-.944-.433a1.453 1.453 0 01-.405-1.028c0-.422.155-.79.466-1.102.31-.313.691-.47 1.144-.47z"],"array-timestamp":["M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm4 3a5 5 0 110 10A5 5 0 018 3zm0 1a4 4 0 100 8 4 4 0 000-8zm2.354 1.646a.5.5 0 01.057.638l-.057.07-2 2a.5.5 0 01-.638.057l-.07-.057-1-1a.5.5 0 01.638-.765l.07.057.646.647 1.646-1.647a.5.5 0 01.708 0z"],"arrow-bottom-left":["M14 3a1.003 1.003 0 00-1.71-.71L4 10.59V6c0-.55-.45-1-1-1s-1 .45-1 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1H5.41l8.29-8.29c.19-.18.3-.43.3-.71z"],"arrow-bottom-right":["M13 5c-.55 0-1 .45-1 1v4.59l-8.29-8.3a1.003 1.003 0 00-1.42 1.42l8.3 8.29H6c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z"],"arrow-down":["M13 8c-.3 0-.5.1-.7.3L9 11.6V2c0-.5-.4-1-1-1s-1 .5-1 1v9.6L3.7 8.3C3.5 8.1 3.3 8 3 8c-.5 0-1 .5-1 1 0 .3.1.5.3.7l5 5c.2.2.4.3.7.3s.5-.1.7-.3l5-5c.2-.2.3-.4.3-.7 0-.6-.4-1-1-1z"],"arrow-left":["M13.99 6.99H4.41L7.7 3.7a1.003 1.003 0 00-1.42-1.42l-5 5a1.014 1.014 0 000 1.42l5 5a1.003 1.003 0 001.42-1.42L4.41 8.99H14c.55 0 1-.45 1-1s-.46-1-1.01-1z"],"arrow-right":["M14.7 7.29l-5-5a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l3.29 3.29H1.99c-.55 0-1 .45-1 1s.45 1 1 1h9.59l-3.29 3.29a1.003 1.003 0 001.42 1.42l5-5c.18-.18.29-.43.29-.71s-.12-.52-.3-.7z"],"arrow-top-left":["M13.71 12.29L5.41 4H10c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1s1-.45 1-1V5.41l8.29 8.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],"arrow-top-right":["M13 2H6c-.55 0-1 .45-1 1s.45 1 1 1h4.59L2.3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L12 5.41V10c0 .55.45 1 1 1s1-.45 1-1V3c0-.55-.45-1-1-1z"],"arrow-up":["M13.7 6.3l-5-5C8.5 1.1 8.3 1 8 1s-.5.1-.7.3l-5 5c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3L7 4.4V14c0 .6.4 1 1 1s1-.4 1-1V4.4l3.3 3.3c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7z"],"arrows-horizontal":["M15.7 7.3l-4-4c-.2-.2-.4-.3-.7-.3-.6 0-1 .5-1 1 0 .3.1.5.3.7L12.6 7H3.4l2.3-2.3c.2-.2.3-.4.3-.7 0-.5-.4-1-1-1-.3 0-.5.1-.7.3l-4 4c-.2.2-.3.4-.3.7s.1.5.3.7l4 4c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7L3.4 9h9.2l-2.3 2.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l4-4c.2-.2.3-.4.3-.7s-.1-.5-.3-.7z"],"arrows-vertical":["M12 10c-.3 0-.5.1-.7.3L9 12.6V3.4l2.3 2.3c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7l-4-4C8.5.1 8.3 0 8 0s-.5.1-.7.3l-4 4c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3L7 3.4v9.2l-2.3-2.3c-.2-.2-.4-.3-.7-.3-.5 0-1 .4-1 1 0 .3.1.5.3.7l4 4c.2.2.4.3.7.3s.5-.1.7-.3l4-4c.2-.2.3-.4.3-.7 0-.6-.4-1-1-1z"],asterisk:["M14.54 11.18l.01-.02L9.8 8l4.75-3.17-.01-.02c.27-.17.46-.46.46-.81 0-.55-.45-1-1-1-.21 0-.39.08-.54.18l-.01-.02L9 6.13V1c0-.55-.45-1-1-1S7 .45 7 1v5.13L2.55 3.17l-.01.01A.969.969 0 002 3c-.55 0-1 .45-1 1 0 .35.19.64.46.82l-.01.01L6.2 8l-4.75 3.17.01.02c-.27.17-.46.46-.46.81 0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02L7 9.87V15c0 .55.45 1 1 1s1-.45 1-1V9.87l4.45 2.96.01-.02c.15.11.33.19.54.19.55 0 1-.45 1-1 0-.35-.19-.64-.46-.82z"],"automatic-updates":["M8 14c-3.31 0-6-2.69-6-6 0-1.77.78-3.36 2-4.46V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1s.45 1 1 1h1.74A7.95 7.95 0 000 8c0 4.42 3.58 8 8 8 .55 0 1-.45 1-1s-.45-1-1-1zM8 2a5.9 5.9 0 012.95.81l1.47-1.47A7.893 7.893 0 008 0c-.55 0-1 .45-1 1s.45 1 1 1zm2.71 6.71l5-5a1.003 1.003 0 00-1.42-1.42L10 6.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42l2 2c.18.18.43.29.71.29s.53-.11.71-.29zM16 8c0-.55-.06-1.08-.16-1.6l-1.87 1.87A5.966 5.966 0 0112 12.45V11c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1h-1.74A7.95 7.95 0 0016 8z"],backlink:["M14 10a1 1 0 110 2h-.585l2.292 2.293a1 1 0 01-1.32 1.497l-.094-.083L12 13.415V14a1 1 0 11-2 0l.003-3.075.012-.1.012-.059.033-.108.034-.081.052-.098.067-.096.08-.09a1.01 1.01 0 01.112-.097l.11-.071.143-.065.076-.024.091-.02.116-.014L14 10zM6.036 6.136l-3.45 3.45-.117.127a2 2 0 002.818 2.818l.127-.117 3.45-3.449a4 4 0 01-.885 3.704l-.15.16-1 1A4 4 0 011.02 8.33l.15-.16 1-1a3.998 3.998 0 013.865-1.035zm4.671-1.843a1 1 0 01.083 1.32l-.083.094-5 5a1 1 0 01-1.497-1.32l.083-.094 5-5a1 1 0 011.414 0zm3.121-3.121a4 4 0 01.151 5.497l-.15.16-1 1a3.998 3.998 0 01-3.864 1.036l3.45-3.45.116-.128a2 2 0 00-2.818-2.818l-.127.117-3.45 3.45A4 4 0 017.02 2.33l.15-.16 1-1a4 4 0 015.657 0z"],badge:["M13.36 4.59c-.15-1.13.5-2.01 1.1-2.87L13.43.53c-1.72.88-4.12.65-5.63-.53-1.51 1.18-3.91 1.41-5.63.52l-1.03 1.2c.61.86 1.25 1.74 1.1 2.87-.3 2.29-2.45 4.17-1.32 6.68.45 1.14 1.44 1.9 2.72 2.2 1.56.36 3.52.72 4.16 2.53.64-1.81 2.6-2.16 4.16-2.54 1.28-.3 2.27-1.06 2.72-2.2 1.12-2.5-1.03-4.38-1.32-6.67z"],"ban-circle":["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm3 9H5c-.55 0-1-.45-1-1s.45-1 1-1h6c.55 0 1 .45 1 1s-.45 1-1 1z"],"bank-account":["M15.36 6.46l-.62-.14c-.31-1.12-.98-2.15-1.87-2.99l.4-1.77a.438.438 0 00-.49-.56c-.85.09-1.6.42-2.14.98-.84-.32-1.87-.51-2.85-.51-2.49 0-4.63 1.17-5.92 2.89-.18-.04-.36-.09-.53-.09-.76 0-1.34.61-1.34 1.4 0 .56.31 1.03.76 1.26-.05.33-.09.7-.09 1.07 0 1.68.71 3.17 1.83 4.34l-.27 1.59c-.09.56.35 1.07.89 1.07h.58c.45 0 .8-.33.89-.79l.04-.37c.94.42 2 .7 3.16.7 1.11 0 2.23-.23 3.16-.7l.05.37c.09.47.45.79.89.79h.58c.53 0 .98-.51.89-1.07l-.27-1.54c.62-.61 1.07-1.35 1.38-2.15l.8-.19c.4-.09.71-.47.71-.93V7.4c.09-.47-.22-.84-.62-.94zM12 8c-.6 0-1-.7-1-1.5S11.4 5 12 5s1 .7 1 1.5S12.6 8 12 8zM6.21 4.92c-.41.2-.91.04-1.12-.36-.21-.4-.04-.88.37-1.07 1.35-.65 2.73-.65 4.08 0 .41.2.58.68.37 1.07-.21.4-.71.56-1.12.36-.87-.43-1.71-.43-2.58 0z"],barcode:["M0 14h2V2H0v12zm6 0h1V2H6v12zm2 0h1V2H8v12zm-5 0h2V2H3v12zM15 2v12h1V2h-1zm-5 12h1V2h-1v12zm2 0h2V2h-2v12z"],blank:[],"blocked-person":["M9.39 12.69c-1.2-.53-1.04-.85-1.08-1.29-.01-.07-.01-.13-.02-.2.41-.37.75-.87.97-1.44 0 0 .01-.03.01-.04.05-.13.09-.26.13-.39.27-.06.43-.36.5-.63.01-.03.03-.08.05-.12C8.18 7.8 6.94 6.04 6.94 4c0-.32.04-.62.09-.92-.17-.03-.35-.08-.51-.08-.65 0-1.37.2-1.88.59-.5.38-.87.92-1.05 1.51-.04.14-.07.27-.09.41-.09.48-.14 1.23-.14 1.74v.06c-.19.08-.36.27-.4.68-.03.31.1.59.16.7.06.28.23.59.51.64.04.14.08.27.13.39 0 .01.01.02.01.02v.01c.22.59.57 1.1.99 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.12 1.29-1.2.53-3.01 1.1-3.38 1.95C-.12 15.5.03 16 .03 16h12.96s.15-.5-.22-1.36c-.37-.85-2.18-1.42-3.38-1.95zM11.97 0C9.75 0 7.94 1.79 7.94 4s1.8 4 4.03 4S16 6.21 16 4s-1.8-4-4.03-4zM9.96 4c0-1.1.9-2 2.01-2 .37 0 .72.11 1.02.28l-2.75 2.73c-.17-.3-.28-.64-.28-1.01zm2.01 2c-.37 0-.72-.11-1.02-.28l2.75-2.73c.18.3.28.64.28 1.01.01 1.1-.9 2-2.01 2z"],bold:["M11.7 7c.2-.4.3-1 .3-1.5v-.4V5c0-.1 0-.2-.1-.3v-.1C11.4 3.1 10.1 2 8.5 2H4c-.5 0-1 .4-1 1v10c0 .5.4 1 1 1h5c2.2 0 4-1.8 4-4 0-1.2-.5-2.3-1.3-3zM6 5h2c.6 0 1 .4 1 1s-.4 1-1 1H6V5zm3 6H6V9h3c.6 0 1 .4 1 1s-.4 1-1 1z"],book:["M2 1v14c0 .55.45 1 1 1h1V0H3c-.55 0-1 .45-1 1zm11-1h-1v7l-2-2-2 2V0H5v16h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],bookmark:["M11.2.01h-.15C11.03.01 11.02 0 11 0H5c-.02 0-.03.01-.05.01H4.8c-.44 0-.8.37-.8.82v14.75c0 .45.25.56.57.24l2.87-2.94c.31-.32.82-.32 1.13 0l2.87 2.94c.31.32.57.21.57-.24V.83C12 .38 11.64.01 11.2.01z"],box:["M6 10h4c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1zm9.93-4.37v-.02L13.94.63C13.78.26 13.42 0 13 0H3c-.42 0-.78.26-.93.63L.08 5.61l-.01.02C.03 5.74 0 5.87 0 6v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.13-.03-.26-.07-.37zM9 2h3.32l1.2 3H9V2zM3.68 2H7v3H2.48l1.2-3zM14 14H2V7h12v7z"],briefcase:["M15 3.98h-3v-2c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v4h3v-1h2v1h6v-1h2v1h3v-4c0-.55-.45-1-1-1zm-5 0H6v-1h4v1zm3 7h-2v-1H5v1H3v-1H0v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-4h-3v1z"],"bring-data":["M14 14a1 1 0 010 2H2a1 1 0 010-2h12zM7.995 3.005c.55 0 1 .45 1 .999v5.584l1.29-1.288a1.002 1.002 0 011.42 1.419l-3 2.996a1.015 1.015 0 01-1.42 0l-3-2.997A1.002 1.002 0 015.705 8.3l1.29 1.29V4.013c0-.55.45-1.009 1-1.009zM14 0a1 1 0 110 2 1 1 0 010-2zm-3 0a1 1 0 110 2 1 1 0 010-2zM8 0a1 1 0 110 2 1 1 0 010-2zM5 0a1 1 0 110 2 1 1 0 010-2zM2 0a1 1 0 110 2 1 1 0 010-2z"],build:["M15.39 12.41L7.7 6l1.07-1.1c.34-.34-.12-.63.12-1.26.88-2.17 3.41-2.35 3.41-2.35s.36-.37.71-.72C9.74-.81 7.53.53 6.54 1.4L3.12 4.9l-.71.72c-.39.4-.39 1.05 0 1.45l-.7.72c-.39-.4-1.02-.4-1.41 0s-.39 1.05 0 1.45l1.41 1.45c.39.4 1.02.4 1.41 0s.39-1.05 0-1.45l.71-.72c.39.4 1.02.4 1.41 0l.8-.82 6.39 7.67c.82.82 2.14.82 2.96 0 .81-.82.81-2.15 0-2.96z"],calculator:["M13 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM6 14H4v-2h2v2zm0-3H4V9h2v2zm0-3H4V6h2v2zm3 6H7v-2h2v2zm0-3H7V9h2v2zm0-3H7V6h2v2zm3 6h-2V9h2v5zm0-6h-2V6h2v2zm0-3H4V2h8v3z"],calendar:["M11 3c.6 0 1-.5 1-1V1c0-.6-.4-1-1-1s-1 .4-1 1v1c0 .5.4 1 1 1zm3-2h-1v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H6v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H1c-.6 0-1 .5-1 1v12c0 .6.4 1 1 1h13c.6 0 1-.4 1-1V2c0-.6-.5-1-1-1zM5 13H2v-3h3v3zm0-4H2V6h3v3zm4 4H6v-3h3v3zm0-4H6V6h3v3zm4 4h-3v-3h3v3zm0-4h-3V6h3v3zM4 3c.6 0 1-.5 1-1V1c0-.6-.4-1-1-1S3 .4 3 1v1c0 .5.4 1 1 1z"],camera:["M15 3h-2.59L10.7 1.29A.956.956 0 0010 1H6c-.28 0-.53.11-.71.29L3.59 3H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h2.56c1.1 1.22 2.67 2 4.44 2s3.34-.78 4.44-2H15c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM3 6H1V5h2v1zm5 6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"caret-down":["M12 6.5c0-.28-.22-.5-.5-.5h-7a.495.495 0 00-.37.83l3.5 4c.09.1.22.17.37.17s.28-.07.37-.17l3.5-4c.08-.09.13-.2.13-.33z"],"caret-left":["M9.5 4c-.13 0-.24.05-.33.13l-4 3.5c-.1.09-.17.22-.17.37s.07.28.17.37l4 3.5a.495.495 0 00.83-.37v-7c0-.28-.22-.5-.5-.5z"],"caret-right":["M11 8c0-.15-.07-.28-.17-.37l-4-3.5A.495.495 0 006 4.5v7a.495.495 0 00.83.37l4-3.5c.1-.09.17-.22.17-.37z"],"caret-up":["M11.87 9.17s.01 0 0 0l-3.5-4C8.28 5.07 8.15 5 8 5s-.28.07-.37.17l-3.5 4a.495.495 0 00.37.83h7a.495.495 0 00.37-.83z"],"cell-tower":["M8.97 6.76c-.01-.05-.04-.08-.06-.13-.02-.05-.03-.1-.05-.15.08-.14.14-.3.14-.48 0-.55-.45-1-1-1s-1 .45-1 1c0 .18.06.34.14.48-.03.05-.03.1-.05.15-.02.05-.05.08-.06.13l-2 8c-.13.54.19 1.08.73 1.21a.995.995 0 001.21-.73L7.53 13h.94l.56 2.24a1 1 0 001.94-.48l-2-8zM3.72 1.7C4.1 1.3 4.09.67 3.7.28S2.67-.09 2.28.3c-3.05 3.12-3.05 8.28 0 11.4a.996.996 0 101.43-1.39c-2.28-2.35-2.28-6.27.01-8.61zM11.6 3.2c-.44-.33-1.07-.24-1.4.2-.33.44-.24 1.07.2 1.4.43.32.53 1.96-.04 2.43-.42.35-.48.98-.13 1.41.35.42.98.48 1.41.13 1.59-1.33 1.39-4.5-.04-5.57z","M13.72.3c-.39-.4-1.02-.4-1.41-.02s-.41 1.02-.03 1.42c2.29 2.34 2.29 6.26 0 8.6-.39.39-.38 1.03.02 1.41s1.03.38 1.41-.02c3.05-3.11 3.05-8.27.01-11.39zM5.4 7.23c-.57-.47-.47-2.11-.04-2.43.44-.33.53-.96.2-1.4s-.96-.53-1.4-.2c-1.44 1.07-1.63 4.24-.04 5.57.42.35 1.05.3 1.41-.13.35-.42.29-1.06-.13-1.41z"],changes:["M8.29 7.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L13 7.59V1c0-.55-.45-1-1-1s-1 .45-1 1v6.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42zM14.5 13h-13c-.83 0-1.5.67-1.5 1.5S.67 16 1.5 16h13c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5zM1 5c.28 0 .53-.11.71-.29L3 3.41V10c0 .55.45 1 1 1s1-.45 1-1V3.41L6.29 4.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3C4.53.11 4.28 0 4 0s-.53.11-.71.29l-3 3A1.003 1.003 0 001 5z"],chart:["M0 15c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V9.4L0 11v4zm6-5.5V15c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-5l-1 1-3-1.5zM13 7l-1 1v7c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V7.88c-.26.07-.58.12-1 .12-1.96 0-2-1-2-1zm2-6h-3c-.55 0-1 .45-1 1s.45 1 1 1h.59L8.8 6.78 5.45 5.11v.01C5.31 5.05 5.16 5 5 5s-.31.05-.44.11V5.1l-4 2v.01C.23 7.28 0 7.61 0 8c0 .55.45 1 1 1 .16 0 .31-.05.44-.11v.01L5 7.12 8.55 8.9v-.01c.14.06.29.11.45.11.28 0 .53-.11.71-.29L14 4.41V5c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z"],chat:["M6 10c-1.1 0-2-.9-2-2V3H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1v2a1.003 1.003 0 001.71.71L5.41 13H10c.55 0 1-.45 1-1v-1.17l-.83-.83H6zm9-10H6c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h4.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V9c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],"chevron-backward":["M7.41 8l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L6 6.59V4c0-.55-.45-1-1-1s-1 .45-1 1v8c0 .55.45 1 1 1s1-.45 1-1V9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L7.41 8z"],"chevron-down":["M12 5c-.28 0-.53.11-.71.29L8 8.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0012 5z"],"chevron-forward":["M10 3c-.55 0-1 .45-1 1v2.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L7.59 8 4.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L9 9.41V12c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z"],"chevron-left":["M7.41 8l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C5.11 7.47 5 7.72 5 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L7.41 8z"],"chevron-right":["M10.71 7.29l-4-4a1.003 1.003 0 00-1.42 1.42L8.59 8 5.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],"chevron-up":["M12.71 9.29l-4-4C8.53 5.11 8.28 5 8 5s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 7.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],circle:["M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6z"],"circle-arrow-down":["M11 7c-.28 0-.53.11-.71.29L9 8.59V5c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0011 7zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"],"circle-arrow-left":["M11 7H7.41L8.7 5.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C4.11 7.47 4 7.72 4 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L7.41 9H11c.55 0 1-.45 1-1s-.45-1-1-1zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"],"circle-arrow-right":["M8.71 4.29a1.003 1.003 0 00-1.42 1.42L8.59 7H5c-.55 0-1 .45-1 1s.45 1 1 1h3.59L7.3 10.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"],"circle-arrow-up":["M8.71 4.29C8.53 4.11 8.28 4 8 4s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L7 7.41V11c0 .55.45 1 1 1s1-.45 1-1V7.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"],citation:["M15.02 5c0-1.66-1.34-3-3-3s-3 1.34-3 3a2.996 2.996 0 003.6 2.94C12.1 9.76 11.14 11 10.02 11c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5-3.13 5-7 0-.2-.02-.39-.04-.58.01-.14.04-.28.04-.42zm-11-3c-1.66 0-3 1.34-3 3a2.996 2.996 0 003.6 2.94C4.1 9.76 3.14 11 2.02 11c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5-3.13 5-7 0-.2-.02-.39-.04-.58.01-.14.04-.28.04-.42 0-1.66-1.35-3-3-3z"],clean:["M12 8l-1.2 2.796-2.8 1.2 2.8 1.197L12 16l1.2-2.807L16 12l-2.8-1.204zM5 0L3.5 3.5 0 4.995 3.5 6.5 5 10l1.5-3.5L10 5 6.5 3.5z"],clipboard:["M11 2c0-.55-.45-1-1-1h.22C9.88.4 9.24 0 8.5 0S7.12.4 6.78 1H7c-.55 0-1 .45-1 1v1h5V2zm2 0h-1v2H5V2H4c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"],cloud:["M12 6c-.03 0-.07 0-.1.01A5 5 0 002 7c0 .11.01.22.02.33A3.51 3.51 0 000 10.5C0 12.43 1.57 14 3.5 14H12c2.21 0 4-1.79 4-4s-1.79-4-4-4z"],"cloud-download":["M11 11c-.28 0-.53.11-.71.29L9 12.59V8c0-.55-.45-1-1-1s-1 .45-1 1v4.59L5.71 11.3A.965.965 0 005 11a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0011 11zm1-7c-.03 0-.07 0-.1.01A5 5 0 002 5c0 .11.01.22.02.33A3.51 3.51 0 000 8.5c0 1.41.84 2.61 2.03 3.17C2.2 10.17 3.46 9 5 9c.06 0 .13.02.19.02C5.07 8.7 5 8.36 5 8c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .36-.07.7-.19 1.02.06 0 .13-.02.19-.02 1.48 0 2.7 1.07 2.95 2.47A3.964 3.964 0 0016 8c0-2.21-1.79-4-4-4z"],"cloud-upload":["M8.71 7.29C8.53 7.11 8.28 7 8 7s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L7 10.41V15c0 .55.45 1 1 1s1-.45 1-1v-4.59l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM12 4c-.03 0-.07 0-.1.01A5 5 0 002 5c0 .11.01.22.02.33a3.495 3.495 0 00.07 6.37c-.05-.23-.09-.46-.09-.7 0-.83.34-1.58.88-2.12l3-3a2.993 2.993 0 014.24 0l3 3c.54.54.88 1.29.88 2.12 0 .16-.02.32-.05.47C15.17 10.78 16 9.5 16 8c0-2.21-1.79-4-4-4z"],code:["M15.71 7.29l-3-3a1.003 1.003 0 00-1.42 1.42L13.59 8l-2.29 2.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM5 5a1.003 1.003 0 00-1.71-.71l-3 3C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L2.41 8 4.7 5.71c.19-.18.3-.43.3-.71zm4-3c-.48 0-.87.35-.96.81l-2 10c-.01.06-.04.12-.04.19 0 .55.45 1 1 1 .48 0 .87-.35.96-.81l2-10c.01-.06.04-.12.04-.19 0-.55-.45-1-1-1z"],"code-block":["M15 3h-2V2c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1H7V2c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-8.29 8.29a1.003 1.003 0 01-1.42 1.42l-3-3C2.11 9.53 2 9.28 2 9s.11-.53.29-.71l3-3a1.003 1.003 0 011.42 1.42L4.41 9l2.3 2.29zm7-1.58l-3 3a1.003 1.003 0 01-1.42-1.42L11.59 9l-2.3-2.29a1.003 1.003 0 011.42-1.42l3 3c.18.18.29.43.29.71s-.11.53-.29.71z"],cog:["M15.19 6.39h-1.85c-.11-.37-.27-.71-.45-1.04l1.36-1.36c.31-.31.31-.82 0-1.13l-1.13-1.13a.803.803 0 00-1.13 0l-1.36 1.36c-.33-.17-.67-.33-1.04-.44V.79c0-.44-.36-.8-.8-.8h-1.6c-.44 0-.8.36-.8.8v1.86c-.39.12-.75.28-1.1.47l-1.3-1.3c-.3-.3-.79-.3-1.09 0L1.82 2.91c-.3.3-.3.79 0 1.09l1.3 1.3c-.2.34-.36.7-.48 1.09H.79c-.44 0-.8.36-.8.8v1.6c0 .44.36.8.8.8h1.85c.11.37.27.71.45 1.04l-1.36 1.36c-.31.31-.31.82 0 1.13l1.13 1.13c.31.31.82.31 1.13 0l1.36-1.36c.33.18.67.33 1.04.44v1.86c0 .44.36.8.8.8h1.6c.44 0 .8-.36.8-.8v-1.86c.39-.12.75-.28 1.1-.47l1.3 1.3c.3.3.79.3 1.09 0l1.09-1.09c.3-.3.3-.79 0-1.09l-1.3-1.3c.19-.35.36-.71.48-1.1h1.85c.44 0 .8-.36.8-.8v-1.6a.816.816 0 00-.81-.79zm-7.2 4.6c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"],"collapse-all":["M7.29 6.71c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L8 4.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4zm1.42 2.58C8.53 9.11 8.28 9 8 9s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 11.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4z"],"column-layout":["M15 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM4 13H2V3h2v10zm3 0H5V3h2v10zm7 0H8V3h6v10z"],comment:["M14 1H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h2v3a1.003 1.003 0 001.71.71L8.41 12H14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM3.5 8C2.67 8 2 7.33 2 6.5S2.67 5 3.5 5 5 5.67 5 6.5 4.33 8 3.5 8zm4 0C6.67 8 6 7.33 6 6.5S6.67 5 7.5 5 9 5.67 9 6.5 8.33 8 7.5 8zm4 0c-.83 0-1.5-.67-1.5-1.5S10.67 5 11.5 5s1.5.67 1.5 1.5S12.33 8 11.5 8z"],comparison:["M7.99-.01c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1v-14c0-.55-.45-1-1-1zm-3 3h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm10 0h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm0 3h-4v-2h4v2zm0 3h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm0 3h-4v-2h4v2zm-10-3h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1z"],compass:["M12 8c0 .14-.03.27-.08.39l-3 6.99c-.15.37-.51.62-.92.62s-.77-.25-.92-.61l-3-6.99a1.006 1.006 0 010-.79l3-6.99C7.23.25 7.59 0 8 0s.77.25.92.61l3 6.99c.05.13.08.26.08.4zM8 3.54L6.09 8h3.82L8 3.54z"],compressed:["M15.93 5.63v-.02L13.94.63C13.78.26 13.42 0 13 0H3c-.42 0-.78.26-.93.63L.08 5.61l-.01.02C.03 5.74 0 5.87 0 6v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.13-.03-.26-.07-.37zM9 2h3.32l1.2 3H9V2zM3.68 2H7v3H2.48l1.2-3zM14 14H2V7h5v2.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L9 9.59V7h5v7z"],confirm:["M8.7 4.29a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l5-5a1.003 1.003 0 00-1.42-1.42l-4.29 4.3L8.7 4.29zm5.22 3.01c.03.23.07.45.07.69 0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6c.81 0 1.59.17 2.3.46l1.5-1.5A7.998 7.998 0 00-.01 7.99c0 4.42 3.58 8 8 8s8-3.58 8-8c0-.83-.13-1.64-.36-2.39l-1.71 1.7z"],console:["M15 15H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h14c.55 0 1 .45 1 1v12c0 .55-.45 1-1 1zM14 5H2v8h12V5zM4 6c.28 0 .53.11.71.29l2 2c.18.18.29.43.29.71s-.11.53-.29.71l-2 2a1.003 1.003 0 01-1.42-1.42L4.59 9l-1.3-1.29A1.003 1.003 0 014 6zm5 4h3c.55 0 1 .45 1 1s-.45 1-1 1H9c-.55 0-1-.45-1-1s.45-1 1-1z"],contrast:["M15.2 6.4h-1.44c-.13-.47-.32-.92-.56-1.34L14.26 4c.31-.31.31-.82 0-1.13l-1.13-1.13a.803.803 0 00-1.13 0L10.94 2.8c-.42-.24-.86-.42-1.34-.56V.8c0-.44-.36-.8-.8-.8H7.2c-.44 0-.8.36-.8.8v1.44c-.5.14-.96.34-1.4.59l-1-1c-.3-.3-.79-.3-1.09 0L1.83 2.91c-.3.3-.3.79 0 1.09l1 1c-.25.44-.45.9-.59 1.4H.8c-.44 0-.8.36-.8.8v1.6c0 .44.36.8.8.8h1.44c.13.47.32.92.56 1.34L1.74 12c-.31.31-.31.82 0 1.13l1.13 1.13c.31.31.82.31 1.13 0l1.06-1.06c.42.24.86.42 1.34.56v1.44c0 .44.36.8.8.8h1.6c.44 0 .8-.36.8-.8v-1.44c.5-.14.96-.33 1.4-.59l1 1c.3.3.79.3 1.09 0l1.09-1.09c.3-.3.3-.79 0-1.09l-1-1c.25-.43.45-.9.59-1.4h1.44c.44 0 .8-.36.8-.8V7.2a.818.818 0 00-.81-.8zM8 12c-2.21 0-4-1.79-4-4s1.79-4 4-4v8z"],control:["M13 8H8v5h5V8zm0-5H8v4h5V3zm2-3H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V2h12v12zM7 3H3v10h4V3z"],"credit-card":["M14.99 2.95h-14c-.55 0-1 .45-1 1v1h16v-1c0-.55-.45-1-1-1zm-15 10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-6h-16v6zm5.5-2h5c.28 0 .5.22.5.5s-.22.5-.5.5h-5c-.28 0-.5-.22-.5-.5s.23-.5.5-.5zm-3 0h1c.28 0 .5.22.5.5s-.22.5-.5.5h-1c-.28 0-.5-.22-.5-.5s.23-.5.5-.5z"],cross:["M9.41 8l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L8 6.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L6.59 8 3.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L8 9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L9.41 8z"],crown:["M2 6l3 2 3-4 3 4 3-2-1 6H3L2 6zm6-5a1 1 0 110 2 1 1 0 010-2zM1 3a1 1 0 110 2 1 1 0 010-2zm14 0a1 1 0 110 2 1 1 0 010-2zM3 13h10v2H3v-2z"],cube:["M14.194 3.54L8 7.41 1.806 3.54 7.504.283a1 1 0 01.992 0l5.698 3.255zm.75.71a1 1 0 01.056.33v6.84a1 1 0 01-.504.868L8.5 15.714V8.277l6.444-4.027zm-13.888 0L7.5 8.277v7.437l-5.996-3.426A1 1 0 011 11.42V4.58a1 1 0 01.056-.33z"],"cube-add":["M14 2h1a1 1 0 010 2h-1v1a1 1 0 01-2 0V4h-1a1 1 0 010-2h1V1a1 1 0 012 0v1zM9.136.65a3.001 3.001 0 00.992 5.222c.018.058.038.115.059.172L8 7.41 1.806 3.54 7.504.283a1 1 0 01.992 0l.64.365zM15 7.235v4.184a1 1 0 01-.504.868L8.5 15.714V8.277l2.187-1.367A2.994 2.994 0 0013 8c.768 0 1.47-.289 2-.764zM1.056 4.25L7.5 8.277v7.437l-5.996-3.426A1 1 0 011 11.42V4.58a1 1 0 01.056-.33z"],"cube-remove":["M10.365 5.933L8 7.41 1.806 3.54 7.504.283a1 1 0 01.992 0l.64.365a3.001 3.001 0 001.228 5.283zM15 6v5.42a1 1 0 01-.504.868L8.5 15.714V8.277L12.143 6H15zM1.056 4.25L7.5 8.277v7.437l-5.996-3.426A1 1 0 011 11.42V4.58a1 1 0 01.056-.33zM11 2h4a1 1 0 010 2h-4a1 1 0 010-2z"],"curved-range-chart":["M15 12H3.12l1.81-1.39c1.73 1.01 5.53-.03 9.08-2.61l-1.22-1.5C10.3 8.3 7.86 9.37 6.65 9.29L14.3 3.4l-.6-.8-7.83 6.03c-.01-1.07 1.8-3.19 4.47-5.13L9.12 2C5.38 4.7 3.34 8.1 4.25 9.87L2 11.6V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],cut:["M13 2s.71-1.29 0-2L8.66 5.07l1.05 1.32L13 2zm.07 8c-.42 0-.82.09-1.18.26L3.31 0c-.69.71 0 2 0 2l3.68 5.02-2.77 3.24A2.996 2.996 0 000 13c0 1.66 1.34 3 3 3s3-1.34 3-3c0-.46-.11-.89-.29-1.27L8.1 8.54l2.33 3.19c-.18.39-.29.82-.29 1.27 0 1.66 1.31 3 2.93 3S16 14.66 16 13s-1.31-3-2.93-3zM3 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm10.07 0c-.54 0-.98-.45-.98-1s.44-1 .98-1 .98.45.98 1-.44 1-.98 1z"],cycle:["M13 9a3 3 0 110 6 3 3 0 010-6zM3 9a3 3 0 110 6 3 3 0 010-6zm6.169-5.27l.087.09 1.51 1.746 1.589.549a1 1 0 01.65 1.16l-.032.112a1 1 0 01-1.159.65l-.112-.032-1.843-.636a1 1 0 01-.337-.198l-.092-.093-.959-1.109L7.041 7.5l1.691 1.819a1 1 0 01.26.556L9 10v3a1 1 0 01-1.993.117L7 13l-.001-2.608-2.056-2.211a1 1 0 01-.081-1.264l.082-.1 2.825-3.026a1 1 0 011.4-.061zM13 10.5a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm-10 0a1.5 1.5 0 100 3 1.5 1.5 0 000-3zM11 1a1.5 1.5 0 110 3 1.5 1.5 0 010-3z"],dashboard:["M5 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM4 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-2c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-2 6c0 1.1.9 2 2 2s2-.9 2-2c0-.53-2-5-2-5s-2 4.47-2 5zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm4-9c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm0 2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"],"data-connection":["M1 9.52c.889.641 2.308 1.133 4.003 1.354L5 11a5.994 5.994 0 002.664 4.988c-.217.008-.44.012-.664.012-3.215 0-5.846-.85-5.993-1.906L1 14V9.52zM11 6c2.762 0 5 2.238 5 5s-2.238 5-5 5-5-2.238-5-5 2.238-5 5-5zm1 1l-4 5h2.5l-.5 3 4-5h-2.5l.5-3zm1-3.48v1.822a6.002 6.002 0 00-7.9 4.556l-.248-.03c-2.168-.28-3.733-.966-3.845-1.774L1 8V3.52C2.22 4.4 4.44 5 7 5s4.78-.6 6-1.48zM7 0c3.31 0 6 .9 6 2s-2.69 2-6 2c-3.32 0-6-.9-6-2s2.68-2 6-2z"],"data-lineage":["M1.067 0C.477 0 0 .478 0 1.067V3.2c0 .59.478 1.067 1.067 1.067h2.24a5.342 5.342 0 002.9 3.734 5.337 5.337 0 00-2.9 3.733h-2.24C.477 11.733 0 12.21 0 12.8v2.133C0 15.523.478 16 1.067 16H6.4c.59 0 1.067-.478 1.067-1.067V12.8c0-.59-.478-1.067-1.067-1.067H4.401a4.27 4.27 0 013.92-3.194l.212-.006V9.6c0 .59.478 1.067 1.067 1.067h5.333c.59 0 1.067-.478 1.067-1.067V6.4c0-.59-.478-1.067-1.067-1.067H9.6c-.59 0-1.067.478-1.067 1.067v1.067a4.268 4.268 0 01-4.132-3.2H6.4c.59 0 1.067-.478 1.067-1.067V1.067C7.467.477 6.989 0 6.4 0H1.067z"],database:["M8 4c3.31 0 6-.9 6-2s-2.69-2-6-2C4.68 0 2 .9 2 2s2.68 2 6 2zm-6-.48V8c0 1.1 2.69 2 6 2s6-.9 6-2V3.52C12.78 4.4 10.56 5 8 5s-4.78-.6-6-1.48zm0 6V14c0 1.1 2.69 2 6 2s6-.9 6-2V9.52C12.78 10.4 10.56 11 8 11s-4.78-.6-6-1.48z"],delete:["M11.99 4.99a1.003 1.003 0 00-1.71-.71l-2.29 2.3L5.7 4.29a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l2.29 2.29-2.29 2.29A1.003 1.003 0 005.7 11.7l2.29-2.29 2.29 2.29a1.003 1.003 0 001.42-1.42L9.41 7.99 11.7 5.7c.18-.18.29-.43.29-.71zm-4-5c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.68 6-6 6z"],delta:["M8 0L0 16h16L8 0zM7 5l5 10H2L7 5z"],"derive-column":["M6.08 6.67h-.84c.24-.92.56-1.6.96-2.03.24-.27.48-.4.71-.4.05 0 .08.01.11.04s.04.06.04.1c0 .04-.03.11-.1.21-.06.1-.1.2-.1.29 0 .13.05.24.15.33.1.09.23.14.39.14.17 0 .31-.06.42-.17A.58.58 0 008 4.73c0-.22-.09-.39-.26-.53-.17-.13-.44-.2-.81-.2-.59 0-1.12.16-1.59.48-.48.32-.93.85-1.36 1.59-.15.26-.29.42-.42.49s-.35.11-.64.1l-.19.65h.81l-1.19 4.37c-.2.72-.33 1.16-.4 1.33-.1.24-.26.45-.46.62-.08.07-.18.1-.3.1-.03 0-.06-.01-.08-.03l-.03-.04c0-.02.03-.06.09-.11.06-.06.09-.14.09-.26 0-.13-.05-.23-.14-.32a.6.6 0 00-.4-.13c-.21 0-.38.05-.51.16s-.21.25-.21.4c0 .16.08.3.23.42.16.12.4.18.74.18.53 0 .99-.13 1.4-.39.41-.26.76-.65 1.07-1.19.3-.54.62-1.4.94-2.59l.68-2.53h.82l.2-.63zM15 0H8c-.55 0-1 .45-1 1v2h2V2h5v12H9v-1H7v2c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM8.3 9.94c.18.52.33.89.46 1.13.13.24.28.4.44.51.17.1.37.16.62.16.24 0 .49-.08.74-.25.33-.21.66-.58 1.01-1.09l-.21-.11c-.23.31-.41.5-.52.57a.44.44 0 01-.26.07c-.12 0-.24-.07-.36-.21-.2-.24-.46-.91-.8-2 .3-.49.55-.81.75-.96.15-.11.3-.16.47-.16.06 0 .17.02.34.06.16.04.31.06.43.06.17 0 .31-.06.43-.17.1-.11.16-.25.16-.43 0-.19-.06-.33-.17-.44-.12-.11-.28-.16-.49-.16-.19 0-.37.04-.54.13-.17.09-.39.27-.65.56-.2.21-.48.58-.87 1.11-.15-.66-.41-1.26-.78-1.81l-2.05.33-.04.21c.15-.03.28-.04.39-.04.2 0 .37.08.5.25.21.26.5 1.03.88 2.33-.29.37-.49.61-.6.72-.18.18-.33.3-.44.36-.09.04-.19.07-.3.07-.09 0-.23-.04-.42-.13a.866.866 0 00-.36-.09c-.2 0-.36.06-.49.18a.59.59 0 00-.19.46c0 .17.06.32.18.43.12.11.28.16.48.16.2 0 .38-.04.55-.11.17-.08.39-.24.65-.49.24-.27.6-.66 1.06-1.21z"],desktop:["M15 0H1C.45 0 0 .45 0 1v10c0 .55.45 1 1 1h4.75l-.5 2H4c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1h-1.25l-.5-2H15c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 10H2V2h12v8z"],diagnosis:["M3.2 1a1 1 0 01.117 1.993L3.2 3H3v3a2 2 0 001.85 1.995L5 8a2 2 0 001.995-1.85L7 6V3h-.2a1 1 0 01-.993-.883L5.8 2a1 1 0 01.883-.993L6.8 1H8a1 1 0 01.993.883L9 2v4a4.002 4.002 0 01-3.007 3.876v.007L6 10a3 3 0 005.995.176L12 10V7.792a2.5 2.5 0 112 0V10a5 5 0 01-10 0c0-.042.003-.084.008-.125A4 4 0 011.005 6.2L1 6V2a1 1 0 01.883-.993L2 1h1.2z"],"diagram-tree":["M15 8v3h-2V9H9v2H7V9H3v2H1V8a1 1 0 011-1h5V5h2v2h5a1 1 0 011 1zM1 12h2a1 1 0 011 1v2a1 1 0 01-1 1H1a1 1 0 01-1-1v-2a1 1 0 011-1zm12 0h2a1 1 0 011 1v2a1 1 0 01-1 1h-2a1 1 0 01-1-1v-2a1 1 0 011-1zm-6 0h2a1 1 0 011 1v2a1 1 0 01-1 1H7a1 1 0 01-1-1v-2a1 1 0 011-1zM7 0h2a1 1 0 011 1v2a1 1 0 01-1 1H7a1 1 0 01-1-1V1a1 1 0 011-1z"],"direction-left":["M16 1.99l-16 6 16 6-4-6z"],"direction-right":["M16 7.99l-16-6 4 6-4 6z"],disable:["M7.99-.01c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm-6 8c0-3.31 2.69-6 6-6 1.3 0 2.49.42 3.47 1.12l-8.35 8.35c-.7-.98-1.12-2.17-1.12-3.47zm6 6c-1.3 0-2.49-.42-3.47-1.12l8.35-8.35c.7.98 1.12 2.17 1.12 3.47 0 3.32-2.68 6-6 6z"],document:["M9 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5L9 0zm3 14H4V2h4v4h4v8z"],"document-open":["M6 12c0 .55.45 1 1 1s1-.45 1-1V8c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1s.45 1 1 1h1.59L1.3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L6 10.41V12zm4-12H4c-.55 0-1 .45-1 1v4h2V2h4v4h4v8H5.24l-1.8 1.8c.16.12.35.2.56.2h10c.55 0 1-.45 1-1V5l-5-5z"],"document-share":["M10 14H2V2h4v4h1c0-.83.36-1.55.91-2.09l-.03-.03.9-.9C8.3 2.45 8 1.77 8 1L7 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V8.22c-.53.48-1.23.78-2 .78v5zm5-14h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.29a1.003 1.003 0 001.42 1.42L14 3.41V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z"],dollar:["M12.83 9.51c-.1-.3-.25-.58-.45-.84s-.45-.49-.75-.7c-.3-.2-.65-.36-1.05-.48-.16-.04-.43-.11-.8-.2-.35-.09-.73-.18-1.12-.28-.39-.1-.74-.19-1.06-.27-.31-.08-.49-.12-.54-.13-.43-.12-.78-.29-1.05-.52-.27-.23-.4-.55-.4-.95 0-.29.07-.53.21-.72.14-.19.32-.34.54-.46.22-.11.46-.19.72-.24.26-.05.52-.08.77-.08.74 0 1.35.15 1.83.46.48.3.75.83.81 1.56h2.14c0-.6-.13-1.13-.38-1.58-.25-.45-.59-.84-1.02-1.15-.43-.31-.93-.54-1.49-.7-.24-.06-.49-.1-.75-.14V1c0-.55-.45-1-1-1s-1 .45-1 1v1.08c-.23.03-.46.07-.68.13-.54.13-1.02.34-1.44.61-.42.28-.76.63-1.02 1.05-.26.43-.39.93-.39 1.5 0 .3.04.59.13.88.09.29.23.56.44.82.21.26.48.49.83.7.35.21.79.38 1.31.51.85.21 1.56.38 2.14.52.58.13 1.08.28 1.52.42.25.09.48.23.69.44.21.21.32.53.32.97 0 .21-.05.42-.14.63-.09.21-.24.39-.45.55-.21.16-.47.29-.81.39-.33.1-.73.15-1.2.15-.43 0-.84-.05-1.21-.14-.37-.09-.7-.24-.99-.43-.29-.2-.51-.45-.67-.76-.16-.31-.24-.68-.24-1.12H3c.01.71.15 1.32.43 1.84.27.52.64.94 1.1 1.27.46.33.99.58 1.61.74.27.07.56.12.85.16V15c0 .55.45 1 1 1s1-.45 1-1v-1.05c.3-.03.61-.08.9-.15.58-.13 1.1-.34 1.56-.63.46-.29.83-.66 1.11-1.11.28-.45.42-1 .42-1.64 0-.31-.05-.61-.15-.91z"],dot:["M8 5a3 3 0 100 6 3 3 0 100-6z"],"double-caret-horizontal":["M13.71 7.29l-3-3A1.003 1.003 0 009 5v6a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM6 4c-.28 0-.53.11-.71.29l-3 3C2.11 7.47 2 7.72 2 8c0 .28.11.53.29.71l3 3A1.003 1.003 0 007 11V5c0-.55-.45-1-1-1z"],"double-caret-vertical":["M5 7h6a1.003 1.003 0 00.71-1.71l-3-3C8.53 2.11 8.28 2 8 2s-.53.11-.71.29l-3 3A1.003 1.003 0 005 7zm6 2H5a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0011 9z"],"double-chevron-down":["M7.29 8.71c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L8 6.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4zM12 8c-.28 0-.53.11-.71.29L8 11.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0012 8z"],"double-chevron-left":["M4.41 8L7.7 4.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C2.11 7.47 2 7.72 2 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L4.41 8zm5 0l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C7.11 7.47 7 7.72 7 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L9.41 8z"],"double-chevron-right":["M9 8c0-.28-.11-.53-.29-.71l-4-4a1.003 1.003 0 00-1.42 1.42L6.59 8 3.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4C8.89 8.53 9 8.28 9 8zm4.71-.71l-4-4a1.003 1.003 0 00-1.42 1.42L11.59 8 8.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],"double-chevron-up":["M4 8c.28 0 .53-.11.71-.29L8 4.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4C8.53 2.11 8.28 2 8 2s-.53.11-.71.29l-4 4A1.003 1.003 0 004 8zm4.71-.71C8.53 7.11 8.28 7 8 7s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4z"],"doughnut-chart":["M11.86 7h4.05C15.45 3.39 12.61.52 9 .07v4.07A4 4 0 0111.86 7zM12 8c0 2.21-1.79 4-4 4s-4-1.79-4-4 1.79-4 4-4V0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8h-4z"],download:["M7.99-.01c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zM11.7 9.7l-3 3c-.18.18-.43.29-.71.29s-.53-.11-.71-.29l-3-3A1.003 1.003 0 015.7 8.28l1.29 1.29V3.99c0-.55.45-1 1-1s1 .45 1 1v5.59l1.29-1.29a1.003 1.003 0 011.71.71c0 .27-.11.52-.29.7z"],"drag-handle-horizontal":["M2 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm8-2c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-4-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"],"drag-handle-vertical":["M6 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-6c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zM6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4 8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"],draw:["M14.9 11c-.3 0-.5.1-.7.3l-3 3c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3l3-3c.2-.2.3-.4.3-.7 0-.5-.4-1-1-1zm-1-1v-.2l-1-5c-.1-.3-.3-.6-.6-.7l-11-4-.3.3 5.8 5.8c.2-.1.4-.2.6-.2.8 0 1.5.7 1.5 1.5S8.3 9 7.4 9s-1.5-.7-1.5-1.5c0-.2.1-.4.2-.6L.3 1.1l-.3.3 4 11c.1.3.4.6.7.6l5 1h.2c.3 0 .5-.1.7-.3l3-3c.2-.2.3-.4.3-.7z"],"drawer-left":["M7 0a1 1 0 011 1v14a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h6zM6 2H2v12h4V2zm2 5h4.59L11.3 5.71A.965.965 0 0111 5a1.003 1.003 0 011.71-.71l3 3c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-3 3a1.003 1.003 0 01-1.42-1.42L12.59 9H8V7z"],"drawer-left-filled":["M1 0h6a1 1 0 011 1v14a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1zm7 7h4.59L11.3 5.71A.965.965 0 0111 5a1.003 1.003 0 011.71-.71l3 3c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-3 3a1.003 1.003 0 01-1.42-1.42L12.59 9H8V7z"],"drawer-right":["M15 0a1 1 0 011 1v14a1 1 0 01-1 1H9a1 1 0 01-1-1V1a1 1 0 011-1h6zm-1 2h-4v12h4V2zM8 7H3.41L4.7 5.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 9H8V7z"],"drawer-right-filled":["M9 0h6a1 1 0 011 1v14a1 1 0 01-1 1H9a1 1 0 01-1-1V1a1 1 0 011-1zM8 7H3.41L4.7 5.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 9H8V7z"],"drive-time":["M15.12 4.76h-1.05l-.76-2.12c-.19-.53-.76-1.08-1.27-1.24 0 0-1.32-.4-4.04-.4-2.72 0-4.04.4-4.04.4-.5.16-1.07.71-1.26 1.24l-.77 2.12H.88c-.48 0-.88.42-.88.94s.4.94.88.94h.38L1 7c-.03.69 0 1.44 0 2v5c0 .66.38 1 1 1s1-.34 1-1v-1h10v1c0 .66.38 1 1 1s1-.34 1-1V9c0-.56-.01-1.37 0-2l-.26-.37h.38c.48 0 .88-.42.88-.93 0-.52-.4-.94-.88-.94zM5 10H3V8h2v2zm8 0h-2V8h2v2zm0-4H3c-.18 0-.06-.82 0-1l.73-1.63C3.79 3.19 3.82 3 4 3h8c.18 0 .21.19.27.37L13 5c.06.18.18 1 0 1z"],duplicate:["M15 0H5c-.55 0-1 .45-1 1v2h2V2h8v7h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 10H2V6h8v8z"],edit:["M3.25 10.26l2.47 2.47 6.69-6.69-2.46-2.48-6.7 6.7zM.99 14.99l3.86-1.39-2.46-2.44-1.4 3.83zm12.25-14c-.48 0-.92.2-1.24.51l-1.44 1.44 2.47 2.47 1.44-1.44c.32-.32.51-.75.51-1.24.01-.95-.77-1.74-1.74-1.74z"],eject:["M4 9h8a1.003 1.003 0 00.71-1.71l-4-4C8.53 3.11 8.28 3 8 3s-.53.11-.71.29l-4 4A1.003 1.003 0 004 9zm8 1H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1z"],emoji:["M8 0a8 8 0 110 16A8 8 0 018 0zm0 1a7 7 0 100 14A7 7 0 008 1zM4 8c.228 2.262 2 4 4 4 1.938 0 3.77-1.738 3.984-3.8L12 8h1c-.128 2.888-2.317 5-5 5a5 5 0 01-4.995-4.783L3 8h1zm2-3a1 1 0 110 2 1 1 0 010-2zm4 0a1 1 0 110 2 1 1 0 010-2z"],endorsed:["M15.86 7.5l-.81-1.42V4.5c0-.36-.19-.68-.49-.87l-1.37-.8-.81-1.41c-.19-.31-.51-.49-.86-.49H9.89L8.5.14a.948.948 0 00-1 0l-1.39.8H4.52a1 1 0 00-.86.49l-.8 1.37-1.44.83c-.3.19-.49.51-.49.87v1.65l-.8 1.37c-.08.15-.13.32-.13.49s.05.34.14.49l.8 1.37v1.65c0 .36.19.68.49.87l1.42.81.8 1.37c.19.31.51.49.86.49H6.1l1.39.8c.15.09.32.14.48.14s.34-.05.49-.14l1.39-.8h1.63a1 1 0 00.86-.49l.81-1.41 1.37-.8c.3-.19.49-.51.49-.87V9.93l.81-1.42a.89.89 0 00.04-1.01zm-4.12-.82l-4.01 4.01c-.18.18-.43.29-.71.29s-.53-.11-.71-.29l-2-2c-.18-.19-.3-.44-.3-.71a1.003 1.003 0 011.71-.71l1.3 1.3 3.3-3.3a1.003 1.003 0 011.71.71.95.95 0 01-.29.7z"],envelope:["M0 3.06v9.88L4.94 8 0 3.06zM14.94 2H1.06L8 8.94 14.94 2zm-6.41 8.53c-.14.14-.32.22-.53.22s-.39-.08-.53-.22L6 9.06 1.06 14h13.88L10 9.06l-1.47 1.47zM11.06 8L16 12.94V3.06L11.06 8z"],equals:["M3 5h10a1 1 0 010 2H3a1 1 0 110-2zm0 4h10a1 1 0 010 2H3a1 1 0 010-2z"],eraser:["M8.06 13.91l7.63-7.44c.41-.4.41-1.05 0-1.45L10.86.3c-.41-.4-1.08-.4-1.49 0L.31 9.13c-.41.4-.41 1.05 0 1.45l5.58 5.44h8.12v-.01c.55 0 1-.45 1-1s-.45-1-1-1H7.96l.1-.1zm-2.17.06L1.67 9.85l4.22-4.11 4.22 4.11-4.22 4.12z"],error:["M7.99-.01c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm1 13h-2v-2h2v2zm0-3h-2v-7h2v7z"],euro:["M6.52 3.18c.51-.27 1.12-.4 1.83-.4.48 0 .91.06 1.27.18.37.12.68.29.96.51.18.14.3.33.44.51l1.53-1.53c-.12-.11-.23-.22-.36-.32a5.61 5.61 0 00-1.74-.83c-.66-.2-1.36-.3-2.1-.3-.99 0-1.88.18-2.66.53-.79.35-1.45.82-2 1.41-.55.58-.96 1.27-1.26 2.06H2c-.55 0-1 .45-1 1s.45 1 1 1h.04c-.01.17-.04.33-.04.5 0 .17.03.33.04.5H2c-.55 0-1 .45-1 1s.45 1 1 1h.43c0 .01 0 .02.01.02a6.2 6.2 0 001.25 2.07 5.77 5.77 0 002 1.4c.78.34 1.67.51 2.66.51.81 0 1.54-.12 2.21-.36.67-.24 1.25-.59 1.75-1.03l.03-.03-1.55-1.33c-.01.01-.02.03-.03.04-.29.3-.63.53-1.02.69-.4.17-.85.25-1.37.25-.71 0-1.32-.13-1.83-.4s-.93-.62-1.25-1.07c-.19-.24-.34-.49-.46-.76H9c.55 0 1-.45 1-1s-.45-1-1-1H4.35c-.01-.17-.03-.33-.03-.5 0-.17.02-.34.03-.5H10c.55 0 1-.45 1-1s-.45-1-1-1H4.83c.13-.27.27-.52.44-.76.32-.44.74-.8 1.25-1.06zM14 8.98v0z"],exchange:["M1.99 5.99c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.89-2-2-2zm4.15 1.86a.495.495 0 10.7-.7L5.7 5.99h5.79c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H5.7l1.15-1.15a.495.495 0 10-.7-.7l-2 2c-.1.09-.16.21-.16.35s.06.26.15.35l2 2.01zm7.85-1.86c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.89-2-2-2zM9.85 8.14a.533.533 0 00-.36-.15.495.495 0 00-.35.85l1.15 1.15h-5.8c-.28 0-.5.22-.5.5s.22.5.5.5h5.79l-1.15 1.15a.495.495 0 10.7.7l2-2c.09-.09.15-.22.15-.35s-.06-.26-.15-.35l-1.98-2z"],"exclude-row":["M0 10a1.003 1.003 0 001.71.71L3 9.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 8 5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L3 6.59l-1.29-1.3A1.003 1.003 0 00.29 6.71L1.59 8 .29 9.29C.11 9.47 0 9.72 0 10zm1-7h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 10H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-1-7H9c-1.1 0-2 .9-2 2s.9 2 2 2h5c1.1 0 2-.9 2-2s-.9-2-2-2z"],"expand-all":["M4 7c.28 0 .53-.11.71-.29L8 3.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4C8.53 1.11 8.28 1 8 1s-.53.11-.71.29l-4 4A1.003 1.003 0 004 7zm8 2c-.28 0-.53.11-.71.29L8 12.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0012 9z"],export:["M4 6c.28 0 .53-.11.71-.29L7 3.41V11c0 .55.45 1 1 1s1-.45 1-1V3.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4C8.53.11 8.28 0 8 0s-.53.11-.71.29l-4 4A1.003 1.003 0 004 6zm11 5c-.55 0-1 .45-1 1v2H2v-2c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1z"],"eye-off":["M16 7.97v-.02-.01-.02-.02a.672.672 0 00-.17-.36c-.49-.63-1.07-1.2-1.65-1.72l-3.16 2.26a2.978 2.978 0 01-2.98 2.9c-.31 0-.6-.06-.88-.15L5.09 12.3c.44.19.9.36 1.37.47.97.23 1.94.24 2.92.05.88-.17 1.74-.54 2.53-.98 1.25-.7 2.39-1.67 3.38-2.75.18-.2.37-.41.53-.62.09-.1.15-.22.17-.36v-.02-.02-.01-.02-.03c.01-.02.01-.03.01-.04zm-.43-4.17c.25-.18.43-.46.43-.8 0-.55-.45-1-1-1-.22 0-.41.08-.57.2l-.01-.01-2.67 1.91c-.69-.38-1.41-.69-2.17-.87a6.8 6.8 0 00-2.91-.05c-.88.18-1.74.54-2.53.99-1.25.7-2.39 1.67-3.38 2.75-.18.2-.37.41-.53.62-.23.29-.23.63-.01.92.51.66 1.11 1.25 1.73 1.79.18.16.38.29.56.44l-2.09 1.5.01.01c-.25.18-.43.46-.43.8 0 .55.45 1 1 1 .22 0 .41-.08.57-.2l.01.01 14-10-.01-.01zm-10.41 5a3.03 3.03 0 01-.11-.8 2.99 2.99 0 012.99-2.98c.62 0 1.19.21 1.66.53L5.16 8.8z"],"eye-on":["M10.29 6.7c.18.18.43.29.71.29s.53-.11.71-.29l4-4c.17-.18.29-.43.29-.7a1.003 1.003 0 00-1.71-.71L11 4.58 9.71 3.29A.997.997 0 009 3c-.55 0-1 .44-1 1a1 1 0 00.3.7l1.99 2zM16 7.96v-.02-.01-.02-.02a.64.64 0 00-.17-.36c-.3-.4-.65-.76-1-1.12l-1.7 1.7c-.55.55-1.3.88-2.13.88-.06 0-.11-.01-.17-.02C10.42 10.15 9.32 11 8.01 11A3.005 3.005 0 016.4 5.46c-.24-.43-.39-.93-.39-1.46 0-.26.04-.5.1-.74-.7.2-1.37.5-2.01.86-1.26.7-2.4 1.68-3.4 2.77-.18.21-.36.41-.53.63-.22.29-.22.64 0 .93.51.67 1.12 1.27 1.73 1.81 1.33 1.17 2.85 2.15 4.53 2.55.97.23 1.95.24 2.92.05.89-.18 1.74-.54 2.54-.99 1.25-.71 2.4-1.69 3.39-2.78.18-.2.37-.41.54-.63.09-.1.15-.23.17-.37v-.02-.02-.01-.02-.03c.01-.01.01-.02.01-.03zM8.01 9c.48 0 .87-.35.96-.81a.55.55 0 01-.07-.09l-.02.01L7.8 7.03c-.45.1-.79.48-.79.96 0 .56.45 1.01 1 1.01z"],"eye-open":["M8.002 7.003a1.003 1.003 0 000 2.005 1.003 1.003 0 000-2.005zm7.988.972v-.02-.01-.02-.02a.675.675 0 00-.17-.36c-.509-.673-1.118-1.264-1.737-1.806-1.328-1.173-2.846-2.155-4.523-2.546a6.702 6.702 0 00-2.925-.06c-.889.18-1.738.541-2.546.992C2.84 4.837 1.692 5.81.694 6.902c-.18.211-.36.411-.53.632a.742.742 0 000 .932c.51.672 1.119 1.264 1.738 1.805 1.328 1.173 2.846 2.156 4.523 2.547.968.23 1.947.24 2.925.04.889-.18 1.738-.542 2.546-.993 1.248-.712 2.397-1.684 3.395-2.777.18-.2.37-.411.54-.632.09-.1.149-.23.169-.36v-.02-.02-.01-.02-.03c0-.01-.01-.01-.01-.02zm-7.988 3.038a2.998 2.998 0 01-2.995-3.008 2.998 2.998 0 012.995-3.008 2.998 2.998 0 012.996 3.008 2.998 2.998 0 01-2.996 3.008z"],"fast-backward":["M14 3c-.24 0-.44.09-.62.23l-.01-.01L9 6.72V4c0-.55-.45-1-1-1-.24 0-.44.09-.62.23v-.01l-5 4 .01.01C2.16 7.41 2 7.68 2 8s.16.59.38.77v.01l5 4 .01-.01c.17.14.37.23.61.23.55 0 1-.45 1-1V9.28l4.38 3.5.01-.01c.17.14.37.23.61.23.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"fast-forward":["M15 8c0-.32-.16-.59-.38-.77l.01-.01-5-4-.01.01A.987.987 0 009 3c-.55 0-1 .45-1 1v2.72l-4.38-3.5v.01A.987.987 0 003 3c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1 .24 0 .44-.09.62-.23l.01.01L8 9.28V12c0 .55.45 1 1 1 .24 0 .44-.09.62-.23l.01.01 5-4-.01-.01c.22-.18.38-.45.38-.77z"],feed:["M1.99 11.99c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.89-2-2-2zm1-4c-.55 0-1 .45-1 1s.45 1 1 1c1.66 0 3 1.34 3 3 0 .55.45 1 1 1s1-.45 1-1c0-2.76-2.24-5-5-5zm0-4c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7 3.13 7 7 0 .55.45 1 1 1s1-.45 1-1a9 9 0 00-9-9zm0-4c-.55 0-1 .45-1 1s.45 1 1 1c6.08 0 11 4.92 11 11 0 .55.45 1 1 1s1-.45 1-1c0-7.18-5.82-13-13-13z"],"feed-subscribed":["M3 2c1.06 0 2.08.16 3.06.45.13-.71.52-1.32 1.05-1.76C5.82.25 4.44 0 3 0c-.55 0-1 .45-1 1s.45 1 1 1zM2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm8.32-6.33a.99.99 0 001.4 0l3.98-3.98c.19-.18.3-.42.3-.7 0-.55-.45-.99-1-.99-.28 0-.52.11-.7.29l-3.28 3.28-1.29-1.29a.99.99 0 00-.7-.29 1 1 0 00-1 .99c0 .27.11.52.29.7l2 1.99zm3.73.53l-.93.93-.02-.02c-.17.17-.35.33-.56.45C13.47 9.16 14 11.02 14 13c0 .55.45 1 1 1s1-.45 1-1c0-2.5-.73-4.82-1.95-6.8zM3 8c-.55 0-1 .45-1 1s.45 1 1 1c1.66 0 3 1.34 3 3 0 .55.45 1 1 1s1-.45 1-1c0-2.76-2.24-5-5-5zm5.91-.91l-.03.03-2-2 .03-.03c-.11-.11-.23-.2-.33-.33A8.9 8.9 0 003 4c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7 3.13 7 7 0 .55.45 1 1 1s1-.45 1-1c0-1.87-.57-3.61-1.55-5.06-.61-.11-1.13-.42-1.54-.85z"],film:["M15 1h-5v2H6V1H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h5v-2h4v2h5c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM4 13H2v-2h2v2zm0-3H2V8h2v2zm0-3H2V5h2v2zm0-3H2V2h2v2zm6 6H6V5h4v5zm4 3h-2v-2h2v2zm0-3h-2V8h2v2zm0-3h-2V5h2v2zm0-3h-2V2h2v2z"],filter:["M13.99.99h-12a1.003 1.003 0 00-.71 1.71l4.71 4.71V14a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V7.41L14.7 2.7a1.003 1.003 0 00-.71-1.71z"],"filter-keep":["M15 10c-.28 0-.53.11-.71.29L12 12.59l-1.29-1.29A.965.965 0 0010 11a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0015 10zm-3-8c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L4 6.41V12a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V6.41l3.71-3.71c.18-.17.29-.42.29-.7z"],"filter-list":["M9 8c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1h-5c-.55 0-1 .45-1 1zm3-6c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L4 6.41V12a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V6.41l3.71-3.71c.18-.17.29-.42.29-.7zm3 8h-5c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm0 3h-5c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1z"],"filter-open":["M15.707 10.293a1 1 0 010 1.414l-3 3c-.63.63-1.707.184-1.707-.707V8c0-.89 1.077-1.337 1.707-.707l3 3zM12 2c0 .28-.11.53-.29.7L8 6.41V10c0 .28-.11.53-.29.71l-2 2A1.003 1.003 0 014 12V6.41L.29 2.71A1.003 1.003 0 011 1h10c.55 0 1 .45 1 1z"],"filter-remove":["M12 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L4 6.41V12a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V6.41l3.71-3.71c.18-.17.29-.42.29-.7zm2.41 10l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L13 10.59 11.71 9.3A.965.965 0 0011 9a1.003 1.003 0 00-.71 1.71l1.3 1.29-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l1.29-1.3 1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L14.41 12z"],flag:["M2.99 2.99c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1s1-.45 1-1v-11c0-.55-.45-1-1-1zm0-3c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm2 3.03v7.23c2.07-2.11 5.92 1.75 9 0V3.02c-3 2.07-6.94-2.03-9 0z"],flame:["M9.217 0c0 1.368.368 2.462 1.104 3.282C12.774 5.197 14 7.385 14 9.846c0 2.735-1.472 4.786-4.415 6.154 2.165-2.4 1.84-3.385-.368-6.4-2.342 1.2-1.967 2-1.592 3.6-.786 0-1.5 0-1.875-.4 0 .547.898 2 1.464 3.2-2.943-.82-6.092-5.744-4.988-6.154.736-.273 1.594-.137 2.575.41C3.575 5.333 5.047 1.915 9.217 0z"],flash:["M4 8c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1zm4-4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S7 .45 7 1v2c0 .55.45 1 1 1zM3.79 5.21a1.003 1.003 0 001.42-1.42l-1.5-1.5a1.003 1.003 0 00-1.42 1.42l1.5 1.5zm.71 5.29c-.28 0-.53.11-.71.29l-1.5 1.5a1.003 1.003 0 001.42 1.42l1.5-1.5a1.003 1.003 0 00-.71-1.71zm7-5c.28 0 .53-.11.71-.29l1.5-1.5a1.003 1.003 0 00-1.42-1.42l-1.5 1.5a1.003 1.003 0 00.71 1.71zm.71 5.29a1.003 1.003 0 00-1.42 1.42l1.5 1.5a1.003 1.003 0 001.42-1.42l-1.5-1.5zM15 7h-2c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1s-.45-1-1-1zM8 5C6.34 5 5 6.34 5 8s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0 3c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1z"],"floppy-disk":["M15.71 2.29l-2-2A.997.997 0 0013 0h-1v6H4V0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V3c0-.28-.11-.53-.29-.71zM14 15H2V9c0-.55.45-1 1-1h10c.55 0 1 .45 1 1v6zM11 1H9v4h2V1z"],"flow-branch":["M10.643 6.595c.22.418.344.894.344 1.399 0 .439-.094.855-.263 1.231l3.265 3.462-.002-1.75a.973.973 0 01.314-.68.99.99 0 011.388.048c.186.2.316.46.3.715l-.009 4.03a.959.959 0 01-.3.68.972.972 0 01-.698.266l-4.053.002a.97.97 0 01-.679-.314 1.031 1.031 0 01.05-1.42.972.972 0 01.698-.266l1.7-.001-3.305-3.35a2.998 2.998 0 01-4.228-1.653H.999a1 1 0 010-2h4.166a2.998 2.998 0 014.06-1.735l3.449-3.268-1.745.002a.979.979 0 01-.631-1.692c.199-.186.459-.316.713-.3l4.025.009c.247.008.493.1.679.3.186.2.274.451.265.7l.002 4.046a.972.972 0 01-.313.68 1.03 1.03 0 01-1.42-.05.973.973 0 01-.266-.7V3.295l-3.34 3.301z"],"flow-end":["M9.702 7.31c.176.176.293.41.293.684a.976.976 0 01-.283.695c-1.888 1.91-2.892 2.918-3.011 3.027-.179.164-.42.284-.693.284a.995.995 0 01-.997-.985c0-.274.112-.541.292-.72.12-.12.624-.551 1.514-1.293H.98c-.536 0-.975-.47-.975-1.008 0-.537.439-.996.975-.996h5.837c-.895-.752-1.4-1.187-1.514-1.304a1.03 1.03 0 01-.292-.705C5.01 4.45 5.464 4 6 4c.272 0 .52.108.695.294A535.7 535.7 0 009.702 7.31zM13 11.002c-1.657 0-3-1.347-3-3.008a3.004 3.004 0 013-3.007c1.657 0 3 1.346 3 3.007a3.004 3.004 0 01-3 3.008z"],"flow-linear":["M4.16 9.002H.977C.44 9.002 0 8.532 0 7.994c0-.537.44-.99.978-.99h3.18A3.01 3.01 0 016.995 5a3.01 3.01 0 012.839 2.004h2.98c-.898-.756-1.404-1.193-1.518-1.31a1.03 1.03 0 01-.293-.705c0-.538.454-.989.992-.989.274 0 .521.108.697.294.118.124 1.122 1.13 3.014 3.016a.96.96 0 01.293.684.975.975 0 01-.284.695l-3.018 3.027a.974.974 0 01-.694.284c-.553 0-1-.447-1-.985 0-.274.117-.545.293-.72l1.518-1.293H9.833A3.01 3.01 0 016.996 11 3.01 3.01 0 014.16 9.002z"],"flow-review":["M5.175 7.004a3.003 3.003 0 012.83-2.001c1.305 0 2.416.835 2.83 2.001h1.985c-.896-.756-1.401-1.193-1.515-1.31a1.03 1.03 0 01-.292-.705c0-.538.453-.989.99-.989a.95.95 0 01.696.294c.117.124 1.12 1.13 3.008 3.016.176.176.293.41.293.684a.976.976 0 01-.283.695l-3.013 3.027a.995.995 0 01-1.691-.702c0-.273.116-.544.292-.72l1.515-1.292h-1.98a3.003 3.003 0 01-2.835 2.016A3.003 3.003 0 015.17 9.002H3.18l1.515 1.292c.176.176.292.447.292.72a.995.995 0 01-1.69.702L.282 8.69A.976.976 0 010 7.994c0-.273.117-.508.293-.684A535.858 535.858 0 003.3 4.294.95.95 0 013.997 4c.537 0 .99.45.99.989 0 .273-.12.528-.292.705-.114.117-.62.554-1.515 1.31h1.995z"],"flow-review-branch":["M10.392 10.647A3.002 3.002 0 016.16 8.995H3.37l1.338 1.318c.172.178.287.41.282.683-.01.536-.524.995-.99.995-.465 0-.63-.187-.747-.294L.281 8.682A.956.956 0 010 7.994a.971.971 0 01.294-.687l3.01-3.028a.973.973 0 01.697-.27c.536.01.998.485.989 1.021a.971.971 0 01-.295.687L3.37 6.997h2.79a3.002 3.002 0 014.106-1.716l2.416-2.277-1.732.004a.99.99 0 01-.679-.329.978.978 0 01.05-1.378c.199-.186.459-.315.714-.3l4.012.005c.248.009.493.1.68.3.185.2.273.45.264.699L15.99 6.05a.973.973 0 01-.314.679 1.03 1.03 0 01-1.421-.048.971.971 0 01-.265-.699V4.29L11.65 6.602c.219.416.343.89.343 1.394 0 .451-.1.88-.279 1.263L14 11.68l-.004-1.73a.982.982 0 01.323-.68.978.978 0 011.378.049c.187.2.316.46.3.714l-.004 4.011a.983.983 0 01-.3.691.972.972 0 01-.7.265l-4.046-.001a.987.987 0 01-.679-.326 1.017 1.017 0 01.048-1.41.972.972 0 01.699-.265h1.693l-2.315-2.35z"],flows:["M13.5 6a2.5 2.5 0 00-2.45 2h-1.3L5.74 4l-.75.75L8.25 8h-3.3a2.5 2.5 0 100 1h3.3l-3.26 3.25.75.75 4.01-4h1.3a2.5 2.5 0 102.45-3z"],"folder-close":["M-.01 14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7h-16v7zm15-10H7.41L5.7 2.3a.965.965 0 00-.71-.3h-4c-.55 0-1 .45-1 1v3h16V5c0-.55-.45-1-1-1z"],"folder-new":["M10.165 7a3.003 3.003 0 002.827 2 3.003 3.003 0 002.827-2H16v7c0 .55-.45 1-1 1H1.01c-.55 0-1-.45-1-1V7h10.155zM8.76 6H0V3c0-.55.45-1 1-1h1.998c.28 0 .53.11.71.29L5.417 4h2.578c0 .768.29 1.469.765 2zm6.23-3c.55 0 1 .45 1 1s-.45 1-1 1h-.999v1c0 .55-.45 1-1 1-.549 0-.998-.45-.998-1V5h-1c-.55 0-1-.45-1-1s.45-1 1-1h1V2c0-.55.45-1 .999-1 .55 0 1 .45 1 1v1h.999z"],"folder-open":["M2.06 6.69c.14-.4.5-.69.94-.69h11V5c0-.55-.45-1-1-1H6.41l-1.7-1.71A.997.997 0 004 2H1c-.55 0-1 .45-1 1v9.84l2.05-6.15h.01zM16 8c0-.55-.45-1-1-1H4a.99.99 0 00-.94.69l-2 6c-.04.09-.06.2-.06.31 0 .55.45 1 1 1h11c.44 0 .81-.29.94-.69l2-6c.04-.09.06-.2.06-.31z"],"folder-shared":["M8.76 5.98c-.47-.53-.77-1.22-.77-1.99h-.58L5.7 2.29a.965.965 0 00-.71-.3h-4c-.55 0-1 .45-1 1v3h8.76l.01-.01zm6.23-2.99h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.3a.99.99 0 00-.29.7 1.003 1.003 0 001.71.71l3.29-3.29V8c0 .55.45 1 1 1s1-.45 1-1V4c0-.56-.45-1.01-1-1.01zm-1.98 7.23l-.9.9-.01-.01c-.54.55-1.28.89-2.11.89-1.66 0-3-1.34-3-3 0-.77.3-1.47.78-2H-.01v7c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.18c-.31.11-.65.18-1 .18-.76-.01-1.45-.31-1.98-.78z"],"folder-shared-open":["M13.02 10.22l-.9.9-.01-.01c-.54.55-1.28.89-2.11.89-1.66 0-3-1.34-3-3 0-.77.3-1.47.78-2H4a.99.99 0 00-.94.69l-2 6c-.04.09-.06.2-.06.31 0 .55.45 1 1 1h11c.44 0 .81-.29.94-.69l1.11-3.32c-.01 0-.03.01-.05.01-.77 0-1.45-.3-1.98-.78zM2.06 6.69c.14-.4.5-.69.94-.69h5.76l.01-.01C8.3 5.46 8 4.77 8 4H6.41l-1.7-1.71A.997.997 0 004 2H1c-.55 0-1 .45-1 1v9.84l2.05-6.15h.01zM15 3h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.29a1.003 1.003 0 001.42 1.42L14 6.41V8c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z"],follower:["M9.37 12.69c-1.2-.53-1.04-.85-1.08-1.29-.01-.06-.01-.12-.01-.19.41-.37.75-.87.97-1.44 0 0 .01-.03.01-.04.05-.13.09-.26.12-.39.28-.06.44-.36.5-.63.06-.11.19-.39.16-.7-.04-.4-.2-.59-.38-.67v-.07c0-.52-.05-1.26-.14-1.74a2.72 2.72 0 00-.09-.43 3.02 3.02 0 00-1.04-1.51C7.87 3.2 7.15 3 6.5 3c-.64 0-1.36.2-1.87.59-.5.38-.87.92-1.05 1.51-.04.13-.07.27-.09.4-.09.49-.14 1.24-.14 1.75v.06c-.19.07-.36.26-.4.68-.03.31.1.59.16.7.06.28.23.59.51.64.04.14.08.27.13.39 0 .01.01.02.01.02v.01c.22.59.57 1.1.99 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.12 1.29-1.2.53-3.01 1.1-3.38 1.95C-.13 15.5.02 16 .02 16h12.96s.15-.5-.22-1.36c-.38-.85-2.19-1.42-3.39-1.95zm6.33-10.4l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H9.99c-.55 0-1 .45-1 1s.45 1 1 1h2.58l-.29.29a1.003 1.003 0 001.42 1.42l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],following:["M9.37 12.69c-1.2-.53-1.04-.85-1.08-1.29-.01-.06-.01-.12-.01-.19.41-.37.75-.87.97-1.44 0 0 .01-.03.01-.04.05-.13.09-.26.12-.39.28-.06.44-.36.5-.63.06-.11.19-.39.16-.7-.04-.4-.2-.59-.38-.67v-.07c0-.52-.05-1.26-.14-1.74a2.72 2.72 0 00-.09-.43 3.02 3.02 0 00-1.04-1.51C7.87 3.2 7.15 3 6.5 3c-.64 0-1.36.2-1.87.59-.5.38-.87.92-1.05 1.51-.04.13-.07.27-.09.4-.09.49-.14 1.24-.14 1.75v.06c-.19.07-.36.26-.4.68-.03.31.1.59.16.7.06.28.23.59.51.64.04.14.08.27.13.39 0 .01.01.02.01.02v.01c.22.59.57 1.1.99 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.12 1.29-1.2.53-3.01 1.1-3.38 1.95C-.13 15.5.02 16 .02 16h12.96s.15-.5-.22-1.36c-.38-.85-2.19-1.42-3.39-1.95zM14.99 2h-2.58l.29-.29A1.003 1.003 0 0011.28.29l-2 2c-.17.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L12.41 4h2.58c.55 0 1-.45 1-1s-.45-1-1-1z"],font:["M13.93 14.67L8.94.67h-.01C8.79.28 8.43 0 8 0s-.79.28-.93.67h-.01l-5 14h.01c-.04.1-.07.21-.07.33 0 .55.45 1 1 1 .43 0 .79-.28.93-.67h.01L5.49 11h5.02l1.55 4.34h.01c.14.38.5.66.93.66.55 0 1-.45 1-1 0-.12-.03-.23-.07-.33zM6.2 9L8 3.97 9.8 9H6.2z"],fork:["M13.7 9.29a1.003 1.003 0 00-1.42 1.42l.29.29H11.4l-5-5h6.17l-.29.29a1.003 1.003 0 001.42 1.42l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.29.29H.99c-.55 0-1 .45-1 1s.45 1 1 1h2.59l6.71 6.71c.18.18.43.29.71.29h1.59l-.29.29a1.003 1.003 0 001.42 1.42l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71l-2.02-2z"],form:["M2 11v2h2v-2H2zM1 9h4c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1zm9-6h5c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1zM6 1a1.003 1.003 0 01.71 1.71l-3 4C3.53 6.89 3.28 7 3 7s-.53-.11-.71-.29l-2-2a1.003 1.003 0 011.42-1.42L3 4.59l2.29-3.3C5.47 1.11 5.72 1 6 1zm4 10h5c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1z"],"full-circle":["M8 0a8 8 0 100 16A8 8 0 108 0z"],"full-stacked-chart":["M13 12h1c.55 0 1-.45 1-1V8h-3v3c0 .55.45 1 1 1zM10 2c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v3h3V2zm0 4H7v3h3V6zm5-4c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v2h3V2zm0 3h-3v2h3V5zM5 5H2v3h3V5zm-2 7h1c.55 0 1-.45 1-1V9H2v2c0 .55.45 1 1 1zm12 1H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM5 2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2h3V2zm3 10h1c.55 0 1-.45 1-1v-1H7v1c0 .55.45 1 1 1z"],fullscreen:["M3.41 2H5c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v4c0 .55.45 1 1 1s1-.45 1-1V3.41L5.29 6.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L3.41 2zM6 9c-.28 0-.53.11-.71.29L2 12.59V11c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.41l3.29-3.29c.19-.18.3-.43.3-.71 0-.55-.45-1-1-1zm9 1c-.55 0-1 .45-1 1v1.59L10.71 9.3A.965.965 0 0010 9a1.003 1.003 0 00-.71 1.71l3.3 3.29H11c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm0-10h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.29a1.003 1.003 0 001.42 1.42L14 3.41V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z"],function:["M8.12 4.74H6.98c.33-1.29.75-2.24 1.28-2.84.33-.37.64-.56.95-.56.06 0 .11.02.15.05.04.04.06.09.06.15 0 .05-.04.15-.13.29-.09.14-.13.28-.13.4 0 .18.07.33.2.46.14.13.31.19.52.19.22 0 .41-.08.56-.23.15-.16.23-.37.23-.63 0-.3-.11-.55-.34-.74C10.1 1.09 9.74 1 9.24 1c-.78 0-1.49.22-2.12.67-.64.45-1.24 1.2-1.81 2.23-.2.36-.38.59-.56.69-.18.1-.46.15-.85.15l-.26.9h1.08l-1.59 6.12c-.27 1.01-.44 1.63-.54 1.86-.14.34-.34.63-.62.87-.11.1-.24.15-.4.15a.15.15 0 01-.11-.04l-.04-.05c0-.03.04-.08.12-.16.08-.08.12-.2.12-.36 0-.18-.06-.33-.19-.44-.12-.12-.3-.18-.54-.18-.28 0-.51.08-.68.23-.16.14-.25.32-.25.53 0 .22.1.42.31.59.21.17.53.25.97.25.7 0 1.32-.18 1.87-.54.54-.36 1.02-.92 1.42-1.67.41-.75.82-1.96 1.25-3.63l.91-3.54h1.1l.29-.89zm5.43 1.52c.2-.15.41-.23.62-.23.08 0 .23.03.45.09s.41.09.57.09c.23 0 .42-.08.57-.23.16-.16.24-.36.24-.61 0-.26-.08-.47-.23-.62-.15-.15-.37-.23-.66-.23-.25 0-.5.06-.72.18-.23.12-.51.38-.86.78-.26.3-.64.81-1.15 1.55-.2-.91-.55-1.75-1.05-2.51l-2.72.46-.06.29c.2-.04.37-.06.51-.06.27 0 .49.11.67.34.28.36.67 1.45 1.17 3.26-.39.52-.66.85-.8 1.01-.24.26-.44.42-.59.5-.12.06-.25.09-.41.09-.11 0-.3-.06-.56-.18-.18-.08-.34-.12-.48-.12-.27 0-.48.08-.66.25-.17.17-.26.38-.26.64 0 .25.08.44.24.6.16.15.37.23.64.23.26 0 .5-.05.73-.16.23-.11.52-.34.86-.69.35-.35.82-.9 1.43-1.67.23.73.44 1.25.61 1.58s.37.57.59.71c.22.15.5.22.83.22.32 0 .65-.11.98-.34.44-.3.88-.81 1.34-1.53l-.26-.15c-.31.43-.54.7-.69.8-.1.07-.22.1-.35.1-.16 0-.32-.1-.48-.3-.27-.34-.62-1.27-1.06-2.8.4-.68.73-1.13 1-1.34z"],"gantt-chart":["M10 10c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1zM6 7c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1zm9 5H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM4 5h3c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1z"],geofence:["M6 9c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1s-1-.45-1-1v-1.59l-3.29 3.3A1.003 1.003 0 010 15c0-.28.11-.53.3-.71L3.59 11H2c-.55 0-1-.45-1-1s.45-1 1-1zM9.088.004l.097.013.097.024.057.018.1.042.054.029.095.061.052.04 6 5 .05.046.076.08.053.07.06.095.051.11c.056.141.079.294.067.446l-.014.105-.037.143-.035.087-.043.083-4 7-.034.056-.059.08-.038.044-.096.092-.114.082-.116.062-.086.034-.109.03-.1.017-.069.006H8.83c.088-.25.144-.515.163-.79L9 13v-3a3 3 0 00-2.824-2.995L6 7H3c-.351 0-.689.06-1.002.171L2 5l.002-.07.013-.1.015-.073.025-.085.043-.104.056-.101.045-.066.079-.093.084-.078.083-.062 6-4 .07-.043.12-.056.111-.036.108-.022.083-.01h.031c.046-.002.083 0 .12.003z"],geolocation:["M-.01 6.66l7.34 2 2 7.33 6.66-16z"],geosearch:["M8.82 12.4h.66c.23 0 .36-.17.36-.4v-1.48l.19-.18c-.27.03-.55.06-.83.06-.28 0-.56-.03-.84-.07.02.04.05.08.07.13V12c0 .23.15.4.39.4zM6.4 15.1A5.51 5.51 0 01.9 9.6c0-.49.06-.98.18-1.43.03 0 .05-.01.08-.01h.08v.44c0 .19.17.34.36.34.03 0 .07-.01.1-.01l.71.7c.07.07.19.07.26 0s.07-.19 0-.26l-.7-.72c0-.02.03-.03.03-.05v-.11c0-.15.08-.2.23-.33h.42c.08 0 .15-.01.22-.04h.02c.02-.02.03-.02.04-.04.01-.01.01-.01.02-.01l.02-.01.9-.9c-.13-.26-.24-.52-.34-.8h-.5v-.43c0-.01.05.05.04-.08h.31c-.03-.13-.06-.26-.08-.39h-.57c.16-.12.34-.24.51-.36-.02-.23-.04-.46-.04-.7 0-.12.01-.23.02-.34A6.385 6.385 0 000 9.6C0 13.13 2.87 16 6.4 16c3.1 0 5.67-2.22 6.26-5.15l-.78-.88c-.21 2.85-2.58 5.13-5.48 5.13zm-1.7-2.93v-.28h.12c.23 0 .39-.19.39-.42v-.54s.01-.01 0-.01L3.77 9.45h-.62c-.23 0-.38.19-.38.42v1.6c0 .23.14.42.38.42h.26v1.61c0 .23.22.41.45.41s.45-.18.45-.41v-.97H4.3c.24 0 .4-.13.4-.36zm11.07-2.34l-2.94-2.94c.11-.17.21-.34.3-.52.01-.03.03-.06.04-.09.08-.18.16-.36.22-.55v-.01c.06-.19.1-.38.14-.58.01-.05.01-.09.02-.14.03-.2.05-.4.05-.61a4.4 4.4 0 00-4.4-4.4C6.77 0 4.8 1.97 4.8 4.4s1.97 4.4 4.4 4.4c.21 0 .41-.02.61-.05.04 0 .09-.01.14-.02.2-.03.39-.08.58-.14h.01c.19-.06.37-.14.55-.22.03-.01.06-.03.09-.04.18-.09.35-.19.52-.3l2.94 2.94a.8.8 0 00.57.23c.44 0 .8-.36.8-.8a.895.895 0 00-.24-.57zM9.2 7.6C7.43 7.6 6 6.17 6 4.4c0-1.77 1.43-3.2 3.2-3.2s3.2 1.43 3.2 3.2c0 1.77-1.43 3.2-3.2 3.2zm1.54 4.26v-.52c0-.09-.1-.17-.19-.17s-.19.07-.19.17v.52c0 .09.1.17.19.17s.19-.07.19-.17z"],"git-branch":["M12 1c-1.66 0-3 1.34-3 3 0 1.25.76 2.32 1.85 2.77A2.02 2.02 0 019 8H7c-.73 0-1.41.2-2 .55V5.82C6.16 5.4 7 4.3 7 3c0-1.66-1.34-3-3-3S1 1.34 1 3c0 1.3.84 2.4 2 2.82v4.37c-1.16.4-2 1.51-2 2.81 0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.04-.53-1.95-1.32-2.49.35-.31.81-.51 1.32-.51h2c1.92 0 3.52-1.35 3.91-3.15A2.996 2.996 0 0012 1zM4 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 12c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm8-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-commit":["M15 7h-3.14c-.45-1.72-2-3-3.86-3S4.59 5.28 4.14 7H1c-.55 0-1 .45-1 1s.45 1 1 1h3.14c.45 1.72 2 3 3.86 3s3.41-1.28 3.86-3H15c.55 0 1-.45 1-1s-.45-1-1-1zm-7 3c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"],"git-merge":["M12 6c-1.3 0-2.4.84-2.82 2H9c-1.62 0-3-.96-3.63-2.34C6.33 5.16 7 4.16 7 3c0-1.66-1.34-3-3-3S1 1.34 1 3c0 1.3.84 2.4 2 2.81v4.37C1.84 10.6 1 11.7 1 13c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V8.43A5.89 5.89 0 009 10h.18A2.996 2.996 0 0015 9c0-1.66-1.34-3-3-3zm-8 8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm8 6c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-new-branch":["M14 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3.18 4.8C10.51 7.51 9.82 8 9 8H7c-.73 0-1.41.2-2 .55V5.82C6.16 5.4 7 4.3 7 3c0-1.66-1.34-3-3-3S1 1.34 1 3c0 1.3.84 2.4 2 2.82v4.37c-1.16.4-2 1.51-2 2.81 0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.04-.53-1.95-1.32-2.49.35-.31.81-.51 1.32-.51h2c1.9 0 3.49-1.33 3.89-3.11-.29.07-.58.11-.89.11-.41 0-.8-.08-1.18-.2zM4 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 12c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-pull":["M3 1C1.34 1 0 2.34 0 4c0 1.3.84 2.4 2 2.82v3.37C.84 10.6 0 11.7 0 13c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V6.82C5.16 6.4 6 5.3 6 4c0-1.66-1.34-3-3-3zm0 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm11 5.18V6c0-1.66-1.34-3-3-3H9.41l1.29-1.29c.19-.18.3-.43.3-.71A1.003 1.003 0 009.29.29l-3 3C6.11 3.47 6 3.72 6 4c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L9.41 5H11c.55 0 1 .45 1 1v4.18A2.996 2.996 0 0013 16c1.66 0 3-1.34 3-3 0-1.3-.84-2.4-2-2.82zM13 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-push":["M4 6h1V5H4v1zm9 3c0-.28-.11-.53-.29-.71l-3-3C9.53 5.11 9.28 5 9 5s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L8 8.41V15c0 .55.45 1 1 1s1-.45 1-1V8.41l1.29 1.29c.18.19.43.3.71.3.55 0 1-.45 1-1zM5 3H4v1h1V3zm10-3H1C.45 0 0 .45 0 1v13c0 .55.45 1 1 1h5v-2H2v-1h4v-1H3V2h11v9h-2v1h2v1h-2v2h3c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],"git-repo":["M5 9H4v1h1V9zm10-9H1C.45 0 0 .45 0 1v13c0 .55.45 1 1 1h3v1l2-1 2 1v-1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM4 13H2v-1h2v1zm10 0H8v-1h6v1zm0-2H3V2h11v9zM5 3H4v1h1V3zm0 4H4v1h1V7zm0-2H4v1h1V5z"],glass:["M2 0v4c0 2.97 2.16 5.43 5 5.91V14H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1H9V9.91c2.84-.48 5-2.94 5-5.91V0H2z"],globe:["M4.45 7.83c-.26 0-.41.21-.41.46v1.75c0 .26.16.46.41.46h.29v1.77c0 .25.24.45.49.45s.49-.2.49-.45V11.2h-.01c.26 0 .44-.14.44-.4v-.3h.14c.26 0 .43-.2.43-.46v-.59s.01-.01 0-.01l-1.58-1.6h-.69zM8.51 3.9h.22c.06 0 .12-.01.12-.07 0-.06-.05-.07-.12-.07h-.22c-.06 0-.12.01-.12.07.01.06.06.07.12.07zm-2.33-.05c.07-.07.07-.19 0-.26l-.5-.5a.187.187 0 00-.26 0c-.07.07-.07.19 0 .26l.5.5c.07.07.19.07.26 0zm3.06.89c.07 0 .14-.06.14-.12v-.31c0-.07-.07-.12-.14-.12s-.14.06-.14.12v.31c0 .07.07.12.14.12zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-.55.1-1.07.23-1.57h.11v.47c0 .2.18.37.39.37.03 0 .08-.01.11-.02l.78.77c.08.08.2.08.28 0 .08-.08.08-.2 0-.28l-.75-.78c0-.02.04-.04.04-.06v-.12c0-.16.09-.22.25-.36h.46c.09 0 .17-.01.24-.05h.02c.02-.01.03-.02.05-.03.01-.01.01-.01.02-.01l.02-.02 1.59-1.58c.18-.18.18-.46 0-.64s-.47-.15-.65.03l-.3.34h-.57v-.48c0-.01.05.05.05-.09h.64c.12 0 .22-.09.22-.21s-.1-.21-.22-.21H4.1c.18-.15.34-.31.54-.44l.01-.01c.21-.14.45-.25.68-.37.15-.07.29-.15.44-.21.17-.07.35-.11.53-.17.18-.05.35-.12.53-.16a6.05 6.05 0 013.47.35c.05.02.1.05.16.08.25.11.48.24.71.39.25.16.49.34.71.55H10.6s0-.03-.01-.03c-.04 0-.09 0-.13.03l-.51.51a.17.17 0 000 .23c.06.06.17.06.23 0l.42-.44.01-.02h.25c0 .14-.07.09-.07.12v.07c0 .22-.15.37-.36.37h-.38c-.19 0-.38.21-.38.4v.17h-.1c-.12 0-.2.06-.2.18v.25h-.23c-.17 0-.3.11-.3.28 0 .17.13.26.3.26.07 0 .14.03.19-.11l.04.01.49-.46h.17l.39.37c.03.03.08.02.12-.01.03-.03.03-.12 0-.15l-.32-.35h.23l.09.12c.18.18.48.17.66-.01l.09-.1h.4c.02 0 .08.05.08.05v.24l-.05-.01h-.36c-.11 0-.21.1-.21.21 0 .11.09.21.21.21h.41v.15c-.14.21-.24.42-.45.42h-.94v-.01l-.44-.44a.47.47 0 00-.66 0l-.42.43v.01H8.6c-.26 0-.49.21-.49.46v.92c0 .26.23.45.49.45h.9c.34.14.57.35.72.69v1.68c0 .26.17.44.42.44h.72c.26 0 .4-.18.4-.44V9l.89-.86.03-.02.02-.01h.03c.07-.08.15-.19.15-.31v-.91c0-.18-.16-.32-.31-.46H13c.01.28.21.42.46.42h.42c.08.37.12.76.12 1.15 0 3.31-2.69 6-6 6zm4.54-4.27c-.1 0-.21.08-.21.18v.57c0 .1.11.18.21.18.1 0 .21-.08.21-.18v-.57c0-.1-.11-.18-.21-.18zM8.37 3.19c0-.25-.2-.42-.46-.42h-.54c-.25 0-.42.18-.42.43 0 .03-.1.04.05.08v.47c0 .15.06.27.21.27s.21-.12.21-.27v-.14h.5c.24 0 .45-.16.45-.42z"],"globe-network":["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm5.17 5h-2.44c-.21-1.11-.51-2.03-.91-2.69 1.43.46 2.61 1.43 3.35 2.69zM10 8c0 .73-.05 1.39-.12 2H6.12C6.05 9.39 6 8.73 6 8s.05-1.39.12-2h3.76c.07.61.12 1.27.12 2zM8 2c.67 0 1.36 1.1 1.73 3H6.27C6.64 3.1 7.33 2 8 2zm-1.82.31c-.4.66-.71 1.58-.91 2.69H2.83a6.025 6.025 0 013.35-2.69zM2 8c0-.7.13-1.37.35-2h2.76C5.04 6.62 5 7.28 5 8s.04 1.38.11 2H2.35C2.13 9.37 2 8.7 2 8zm.83 3h2.44c.21 1.11.51 2.03.91 2.69A6.025 6.025 0 012.83 11zM8 14c-.67 0-1.36-1.1-1.73-3h3.46c-.37 1.9-1.06 3-1.73 3zm1.82-.31c.4-.66.7-1.58.91-2.69h2.44a6.025 6.025 0 01-3.35 2.69zM13.65 10h-2.76c.07-.62.11-1.28.11-2s-.04-1.38-.11-2h2.76c.22.63.35 1.3.35 2s-.13 1.37-.35 2z"],graph:["M14 3c-1.06 0-1.92.83-1.99 1.88l-1.93.97A2.95 2.95 0 008 5c-.56 0-1.08.16-1.52.43L3.97 3.34C3.98 3.23 4 3.12 4 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.24 0 .47-.05.68-.13l2.51 2.09C5.08 7.29 5 7.63 5 8c0 .96.46 1.81 1.16 2.35l-.56 1.69c-.91.19-1.6.99-1.6 1.96 0 1.1.9 2 2 2s2-.9 2-2c0-.51-.2-.97-.51-1.32l.56-1.69A2.99 2.99 0 0011 8c0-.12-.02-.24-.04-.36l1.94-.97c.32.21.69.33 1.1.33 1.1 0 2-.9 2-2s-.9-2-2-2z"],"graph-remove":["M12.89 8.11l-.01.01-.38-.38-.38.38-.02-.02c-.54.55-1.27.9-2.1.9-1.66 0-3-1.34-3-3 0-.83.35-1.56.9-2.1l-.02-.02.38-.38-.38-.38.01-.01C7.35 2.57 7 1.83 7 1c0-.34.07-.65.17-.96A8.004 8.004 0 000 8c0 4.42 3.58 8 8 8 4.14 0 7.54-3.14 7.96-7.17-.31.1-.62.17-.96.17-.83 0-1.57-.35-2.11-.89zm1.02-4.61l1.79-1.79c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-1.79 1.8L10.71.3A.965.965 0 0010 0a1.003 1.003 0 00-.71 1.71l1.79 1.79-1.79 1.79a1.003 1.003 0 001.42 1.42l1.79-1.79 1.79 1.79a1.003 1.003 0 001.42-1.42l-1.8-1.79z"],"greater-than":["M2.713 5.958a1 1 0 01.574-1.916l10 3c.95.285.95 1.63 0 1.916l-10 3a1 1 0 01-.574-1.916L9.52 8 2.713 5.958z"],"greater-than-or-equal-to":["M2.713 3.958a1 1 0 01.574-1.916l10 3c.95.285.95 1.63 0 1.916l-10 3a1 1 0 01-.574-1.916L9.52 6 2.713 3.958zM3 12h10a1 1 0 010 2H3a1 1 0 010-2z"],grid:["M15 9c.55 0 1-.45 1-1s-.45-1-1-1h-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1H9V1c0-.55-.45-1-1-1S7 .45 7 1v1H4V1c0-.55-.45-1-1-1S2 .45 2 1v1H1c-.55 0-1 .45-1 1s.45 1 1 1h1v3H1c-.55 0-1 .45-1 1s.45 1 1 1h1v3H1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h3v1c0 .55.45 1 1 1s1-.45 1-1v-1h3v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V9h1zm-8 3H4V9h3v3zm0-5H4V4h3v3zm5 5H9V9h3v3zm0-5H9V4h3v3z"],"grid-view":["M0 1v6h7V0H1C.45 0 0 .45 0 1zm0 14c0 .55.45 1 1 1h6V9H0v6zM15 0H9v7h7V1c0-.55-.45-1-1-1zM9 16h6c.55 0 1-.45 1-1V9H9v7z"],"group-objects":["M5 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6-3H5C2.24 3 0 5.24 0 8s2.24 5 5 5h6c2.76 0 5-2.24 5-5s-2.24-5-5-5zm0 9H5c-2.21 0-4-1.79-4-4s1.79-4 4-4h6c2.21 0 4 1.79 4 4s-1.79 4-4 4zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"grouped-bar-chart":["M10 12c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1s-1 .45-1 1v8c0 .55.45 1 1 1zm3 0c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1zm2 1H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-9-1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1zm-3 0c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1v9c0 .55.45 1 1 1z"],hand:["M15 5c0-.55-.45-1-1-1-.41 0-.76.24-.91.59v.01s0 .01-.01.01L11.57 8h-.36l.78-4.84C12 3.11 12 3.05 12 3a1 1 0 00-1.99-.16v.01L9.18 8H9V1c0-.55-.45-1-1-1S7 .45 7 1v7h-.09l-.93-5.18A1 1 0 005 2c-.55 0-1 .45-1 1 0 .05 0 .11.01.16L5.26 11h-.04L2.83 7.44C2.65 7.18 2.35 7 2 7c-.55 0-1 .45-1 1 0 .17.04.33.12.47l3 5.69h.01v.01A5.002 5.002 0 0013 11v-.59l1.93-5.05c.05-.11.07-.23.07-.36z"],"hand-down":["M14.72 7.87c-1.54-.67-2.99-2.68-3.7-3.95C10.11 1.95 9.93 0 6.14 0 4.05 0 2.71.61 1.92 2.12 1.27 3.36 1 5.21 1 7.83v.79c0 .65.6 1.18 1.35 1.18.34 0 .64-.11.88-.29.17.48.68.84 1.29.84.41 0 .78-.16 1.03-.42.23.37.67.63 1.19.63.57 0 1.05-.31 1.25-.74l.01.63v4.05c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V7.9c.58.41 1.55 1.21 2.47 1.29 1.57.14 1.82-1.07 1.25-1.32z"],"hand-left":["M12.08 4.97c-1.26-.71-3.27-2.15-3.95-3.7C7.88.7 6.67.96 6.81 2.52c.09.93.89 1.9 1.3 2.48H1.5C.67 5 0 5.67 0 6.5S.67 8 1.5 8h4.05l.63.01c-.44.2-.75.69-.75 1.25 0 .52.26.96.63 1.19-.26.25-.42.61-.42 1.03 0 .61.35 1.12.84 1.29-.18.24-.29.54-.29.88 0 .75.54 1.35 1.19 1.35h.79c2.62 0 4.47-.28 5.71-.92 1.51-.79 2.12-2.14 2.12-4.22 0-3.79-1.95-3.97-3.92-4.89z"],"hand-right":["M14.5 5H7.89c.41-.58 1.21-1.55 1.3-2.47C9.34.97 8.12.71 7.87 1.28c-.67 1.54-2.68 2.99-3.95 3.7C1.95 5.89 0 6.07 0 9.86c0 2.09.61 3.43 2.12 4.22 1.24.65 3.09.92 5.71.92h.79c.65 0 1.18-.6 1.18-1.35 0-.34-.11-.64-.29-.88.48-.17.84-.68.84-1.29 0-.41-.16-.78-.42-1.03.37-.23.63-.67.63-1.19 0-.57-.31-1.05-.74-1.25l.63-.01h4.05c.83 0 1.5-.67 1.5-1.5S15.33 5 14.5 5z"],"hand-up":["M13.65 6.19c-.34 0-.64.11-.88.29-.17-.48-.68-.84-1.29-.84-.41 0-.78.16-1.03.42-.23-.37-.67-.63-1.19-.63-.57 0-1.05.31-1.25.74L8 5.55V1.5C8 .67 7.33 0 6.5 0S5 .67 5 1.5v6.61c-.58-.41-1.55-1.21-2.48-1.3C.96 6.67.7 7.88 1.28 8.13c1.54.67 2.99 2.68 3.7 3.95C5.89 14.05 6.07 16 9.86 16c2.09 0 3.43-.61 4.22-2.12.64-1.24.92-3.09.92-5.71v-.79c0-.65-.6-1.19-1.35-1.19z"],hat:["M15 10c.495 0 .933.379.993.882L16 11v.505c0 1.461-3.524 2.45-7.707 2.493L8 14c-4.31 0-8-1-8-2.495V11c0-.561.466-1 1-1 .895 0 3 1 7 1l.381-.003C12.135 10.937 14.134 10 15 10zm-4-8c1.13 0 2.02 2.153 2.671 6.46-1.063.266-2.644.652-4.887.727l-.403.01L8 9.2c-2.664 0-4.488-.444-5.673-.74C2.98 4.153 3.87 2 5 2c2 0 1.329 2 3 2s1-2 3-2z"],header:["M13 1c-.55 0-1 .45-1 1v5H4V2c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55.45 1 1 1s1-.45 1-1V9h8v5c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z"],"header-one":["M14.06 8c-.04.23-.12.44-.25.61-.13.17-.29.3-.48.41-.18.11-.39.18-.62.23-.23.04-.46.07-.71.07v1.03h1.74V16H15V8h-.94zM7 0c-.56 0-1 .45-1 1v4H2V1c0-.55-.45-1-1-1-.56 0-1 .45-1 1v10c0 .55.45 1 1 1 .56 0 1-.45 1-1V7h4v4c0 .55.45 1 1 1 .56 0 1-.45 1-1V1c0-.54-.45-1-1-1z"],"header-two":["M13.17 13.93c-.17.15-.33.29-.46.44-.13.16-.22.32-.27.49h3.55V16H11c.01-.65.16-1.22.44-1.71s.67-.91 1.17-1.27c.24-.18.49-.36.75-.54.25-.18.49-.36.71-.57.21-.2.39-.42.53-.65.14-.24.21-.51.22-.82 0-.14-.02-.29-.05-.45-.03-.16-.09-.31-.18-.45a1.13 1.13 0 00-.37-.35c-.16-.09-.37-.14-.63-.14-.24 0-.43.05-.59.15-.16.1-.29.24-.38.42-.1.17-.17.38-.21.62-.05.24-.07.5-.08.77h-1.19c0-.43.05-.83.16-1.2s.27-.69.49-.96c.21-.25.48-.46.79-.62.31-.15.67-.23 1.07-.23.45 0 .82.08 1.11.23.3.16.55.36.73.6.19.24.32.5.39.79.08.28.12.54.12.79 0 .31-.04.6-.13.85s-.22.49-.37.7c-.15.21-.32.41-.52.59s-.4.35-.61.51l-.63.45c-.21.14-.39.28-.57.42zM0 1c0-.55.44-1 1-1 .55 0 1 .46 1 1v10c0 .55-.44 1-1 1-.55 0-1-.46-1-1V1zm6 0c0-.55.44-1 1-1 .55 0 1 .46 1 1v10c0 .55-.44 1-1 1-.55 0-1-.46-1-1V1zM2 5h4v2H2V5z"],headset:["M14.85 6.34C14.18 2.72 11.37 0 8 0S1.82 2.72 1.15 6.34C.47 6.9 0 8.1 0 9.5 0 11.43.9 13 2 13c0 1.1.9 2 2 2h2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1H4c-.55 0-1-.45-1-1 .55 0 1-.45 1-1V7c0-.45-.3-.81-.71-.94C3.97 3.7 5.81 2 8 2s4.03 1.7 4.71 4.06c-.41.13-.71.49-.71.94v5c0 .55.45 1 1 1h1c1.1 0 2-1.57 2-3.5 0-1.4-.47-2.6-1.15-3.16z"],heart:["M16 5.095c0-2.255-1.88-4.083-4.2-4.083-1.682 0-3.13.964-3.8 2.352a4.206 4.206 0 00-3.8-2.352C1.88 1.012 0 2.84 0 5.095c0 .066.007.13.01.194H.004c.001.047.01.096.014.143l.013.142c.07.8.321 1.663.824 2.573C2.073 10.354 4.232 12.018 8 15c3.767-2.982 5.926-4.647 7.144-6.854.501-.905.752-1.766.823-2.562.007-.055.012-.11.016-.164.003-.043.012-.088.013-.13h-.006c.003-.066.01-.13.01-.195z"],"heart-broken":["M7.71 8.87L6.17 6.55l.02-.01A.906.906 0 016 6c0-.07.03-.13.04-.19h-.02l.78-3.92C6.09 1.34 5.19 1 4.2 1 1.88 1 0 2.83 0 5.09c0 .07.01.13.01.19H0c0 .05.01.1.01.14 0 .05.01.1.01.14.07.8.32 1.66.82 2.57 1.07 1.94 2.88 3.47 5.86 5.84l-.68-2.74h.02C6.03 11.16 6 11.08 6 11c0-.28.11-.53.29-.71l1.42-1.42zM16 5.09C16 2.83 14.12 1 11.8 1c-1.2 0-2.27.5-3.04 1.28l-.7 3.51 1.77 2.66-.01.01c.1.15.18.33.18.54 0 .28-.11.53-.29.71l-1.6 1.6.75 3.01c3.23-2.56 5.16-4.15 6.28-6.18.5-.91.75-1.77.82-2.56.01-.05.01-.11.02-.16 0-.04.01-.09.01-.13h-.01c.01-.07.02-.14.02-.2z"],"heat-grid":["M0 10h5V7H0v3zm1-2h3v1H1V8zm14-5h-4v3h5V4c0-.55-.45-1-1-1zm0 2h-3V4h3v1zM0 4v2h5V3H1c-.55 0-1 .45-1 1zm0 9c0 .55.45 1 1 1h4v-3H0v2zm6-7h4V3H6v3zm0 8h4v-3H6v3zm1-2h2v1H7v-1zm4 2h4c.55 0 1-.45 1-1v-2h-5v3zm0-4h5V7h-5v3zm-5 0h4V7H6v3z"],heatmap:["M2 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm11-7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm3 4.5A2.5 2.5 0 0013.5 6c-.98 0-1.82.57-2.23 1.39-.6-.78-1.51-1.3-2.56-1.36.18-.49.29-.99.29-1.53C9 2.01 6.99 0 4.5 0S0 2.01 0 4.5 2.01 9 4.5 9c.19 0 .37-.03.56-.06-.03.19-.06.37-.06.56C5 11.43 6.57 13 8.5 13c1.63 0 2.98-1.11 3.37-2.62.44.38 1 .62 1.63.62A2.5 2.5 0 0016 8.5zM14.5 13c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"],help:["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm1 13H7v-2h2v2zm1.93-6.52c-.14.32-.35.64-.62.97L9.25 8.83c-.12.15-.24.29-.28.42-.04.13-.09.3-.09.52V10H7.12V8.88s.05-.51.21-.71L8.4 6.73c.22-.26.35-.49.44-.68.09-.19.12-.38.12-.58 0-.3-.1-.55-.28-.75-.18-.19-.44-.28-.76-.28-.33 0-.59.1-.78.29-.19.19-.33.46-.4.81-.03.11-.1.15-.2.14l-1.7-.25c-.12-.01-.16-.08-.14-.19.12-.82.46-1.47 1.03-1.94.57-.48 1.32-.72 2.25-.72.47 0 .9.07 1.29.22s.72.34 1 .59c.28.25.49.55.65.89.15.35.22.72.22 1.12s-.07.75-.21 1.08z"],"helper-management":["M13 5h-2v2h2V5zm0 6h-2v2h2v-2zm0-3h-2v2h2V8zm2-8H1C.4 0 0 .4 0 1v14c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V1c0-.6-.4-1-1-1zm-1 14H2V2h12v12zm-7-3H5v2h2v-2zm3 0H8v2h2v-2z"],"high-priority":["M9 14v2H7v-2h2zm1-14L9 12H7L6 0h4z"],highlight:["M9.12 11.07l2-2.02.71.71 4-4.04L10.17 0l-4 4.04.71.71-2 2.02 4.24 4.3zM2 12.97h4c.28 0 .53-.11.71-.3l1-1.01-3.42-3.45-3 3.03c-.18.18-.29.44-.29.72 0 .55.45 1.01 1 1.01zm13 1.01H1c-.55 0-1 .45-1 1.01S.45 16 1 16h14c.55 0 1-.45 1-1.01s-.45-1.01-1-1.01z"],history:["M8 3c-.55 0-1 .45-1 1v4c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L9 7.59V4c0-.55-.45-1-1-1zm0-3a7.95 7.95 0 00-6 2.74V1c0-.55-.45-1-1-1S0 .45 0 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.54C4.64 2.78 6.23 2 8 2c3.31 0 6 2.69 6 6 0 2.61-1.67 4.81-4 5.63v-.01c-.63.23-1.29.38-2 .38-3.31 0-6-2.69-6-6 0-.55-.45-1-1-1s-1 .45-1 1c0 4.42 3.58 8 8 8 .34 0 .67-.03 1-.07.02 0 .04-.01.06-.01C12.98 15.4 16 12.06 16 8c0-4.42-3.58-8-8-8z"],home:["M2 10v5c0 .55.45 1 1 1h3v-5h4v5h3c.55 0 1-.45 1-1v-5L8 4l-6 6zm13.71-2.71L14 5.59V2c0-.55-.45-1-1-1s-1 .45-1 1v1.59L8.71.29C8.53.11 8.28 0 8 0s-.53.11-.71.29l-7 7a1.003 1.003 0 001.42 1.42L8 2.41l6.29 6.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],"horizontal-bar-chart":["M4 5h7c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zM1 1c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1zm14 6H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-6 5H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1z"],"horizontal-bar-chart-asc":["M1 3h5c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm0 4h7c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 6H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM1 11h10c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1z"],"horizontal-bar-chart-desc":["M15 1H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM8 9H1c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm-2 4H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm5-8H1c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z"],"horizontal-distribution":["M2 0c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm13 0c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-5 2H7c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"],"id-number":["M2 5v7h12V5H2zm0-2h12c1.1 0 2 .9 2 2v7c0 1.1-.9 2-2 2H2c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z","M7.9 10.48c-.14-.33-.84-.55-1.3-.75-.46-.2-.4-.33-.42-.5v-.07c.16-.14.29-.33.37-.56 0 0 0-.01.01-.02.02-.05.03-.1.05-.15.1-.01.16-.13.19-.23.03-.04.07-.15.06-.27-.02-.16-.08-.24-.15-.26v-.03c0-.2-.02-.48-.05-.67-.01-.05-.02-.1-.03-.16-.07-.23-.21-.44-.4-.58-.2-.15-.48-.23-.73-.23s-.53.08-.72.23c-.19.14-.33.35-.4.58-.02.05-.03.1-.03.16-.05.18-.06.47-.06.67v.03c-.07.03-.14.1-.15.26-.02.12.03.22.06.27.02.1.09.22.2.24.01.05.03.1.05.15v.01c.08.23.22.42.38.56v.07c-.02.17.03.29-.43.5-.46.2-1.16.42-1.3.75s-.09.52-.09.52H8c-.01 0 .05-.19-.1-.52zM10 6h2c.55 0 1 .45 1 1s-.45 1-1 1h-2c-.55 0-1-.45-1-1s.45-1 1-1zM10 9h2c.55 0 1 .45 1 1s-.45 1-1 1h-2c-.55 0-1-.45-1-1s.45-1 1-1z"],"image-rotate-left":["M13 2h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C8.11 2.47 8 2.72 8 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H13c.55 0 1 .45 1 1v3c0 .55.45 1 1 1s1-.45 1-1V5c0-1.66-1.34-3-3-3zm-5.5 9c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 6.33L7 12l-1 1-2-3-2 2.67V9h7v4.33z"],"image-rotate-right":["M5.71 5.71l2-2C7.89 3.53 8 3.28 8 3c0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H3C1.34 2 0 3.34 0 5v3c0 .55.45 1 1 1s1-.45 1-1V5c0-.55.45-1 1-1h1.59l-.3.29a1.003 1.003 0 001.42 1.42zM12.5 11c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM15 7H6c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 6.33L12 12l-1 1-2-3-2 2.67V9h7v4.33z"],import:["M7.29 11.71c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L9 8.59V1c0-.55-.45-1-1-1S7 .45 7 1v7.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l4 4zM15 11c-.55 0-1 .45-1 1v2H2v-2c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1z"],inbox:["M13.91 2.6c-.16-.36-.51-.61-.92-.61h-10c-.41 0-.77.25-.92.61L-.01 7.45v5.54c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7.45L13.91 2.6zm-1.92 5.39c-.55 0-1 .45-1 1v1h-6v-1c0-.55-.45-1-1-1H1.94l1.71-4h8.68l1.71 4h-2.05z"],"inbox-filtered":["M6.432 2c.094.14.202.273.324.394L8.42 4H3.66L1.95 8H4c.55 0 1 .45 1 1v1h6.557c.693 0 1.363-.262 1.837-.736l.103-.102.85-1.14a2.564 2.564 0 00.623-1.682V5.058L16 7.46V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h3.432zm9.048-2c.31 0 .52.26.52.57 0 .16-.06.3-.17.41l-2.86 2.73v2.63c0 .16-.06.3-.17.41l-.82 1.1c-.1.1-.25.17-.41.17-.31 0-.57-.26-.57-.57V3.71L8.17.98A.566.566 0 018 .57c0-.31.26-.57.57-.57h6.91z"],"inbox-geo":["M6.341 2A5.99 5.99 0 006 4H3.66L1.95 8H4c.55 0 1 .45 1 1v1h7a5.978 5.978 0 004-1.528V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h3.341zm3.679 2.145c0-.125.075-.23.205-.225h.345l.79.8c.005 0 0 .005 0 .005v.295c0 .13-.085.23-.215.23h-.07v.15c0 .13-.09.2-.215.2v.535c0 .125-.12.225-.245.225s-.245-.1-.245-.225V5.25h-.145c-.125 0-.205-.1-.205-.23v-.875zm2.235-2.195c-.03 0-.055-.005-.06-.035 0-.03.03-.035.06-.035h.11c.035 0 .06.005.06.035 0 .03-.03.035-.06.035h-.11zm-1.165-.025a.094.094 0 01-.13 0l-.25-.25a.094.094 0 010-.13.094.094 0 01.13 0l.25.25a.094.094 0 010 .13zm1.53.445c-.035 0-.07-.025-.07-.06v-.155c0-.03.035-.06.07-.06s.07.025.07.06v.155c0 .03-.035.06-.07.06zM12 0c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm0 7c1.655 0 3-1.345 3-3 0-.195-.02-.39-.06-.575h-.21c-.125 0-.225-.07-.23-.21h-.215c.075.07.155.14.155.23V3.9c0 .06-.04.115-.075.155h-.015l-.01.005-.015.01-.445.43v.815c0 .13-.07.22-.2.22h-.36c-.125 0-.21-.09-.21-.22v-.84a.627.627 0 00-.36-.345h-.45c-.13 0-.245-.095-.245-.225v-.46c0-.125.115-.23.245-.23l.13-.005.21-.215c.09-.09.24-.09.33 0l.22.225h.47c.105 0 .155-.105.225-.21v-.075h-.205a.106.106 0 01-.105-.105.11.11 0 01.105-.105h.18l.025.005v-.12s-.03-.025-.04-.025h-.2l-.045.05a.235.235 0 01-.33.005l-.045-.06h-.115l.16.175c.015.015.015.06 0 .075-.02.015-.045.02-.06.005l-.195-.185h-.085l-.245.23-.02-.005c-.025.07-.06.055-.095.055-.085 0-.15-.045-.15-.13s.065-.14.15-.14h.115v-.125c0-.06.04-.09.1-.09h.05V2.36c0-.095.095-.2.19-.2h.19c.105 0 .18-.075.18-.185V1.94c0-.015.035.01.035-.06h-.125l-.005.01-.21.22a.085.085 0 01-.115 0 .085.085 0 010-.115l.255-.255c.02-.015.045-.015.065-.015.005 0 .005.015.005.015h.64a2.327 2.327 0 00-.355-.275 2.452 2.452 0 00-.355-.195c-.03-.015-.055-.03-.08-.04a3.025 3.025 0 00-1.735-.175c-.09.02-.175.055-.265.08-.09.03-.18.05-.265.085-.075.03-.145.07-.22.105-.115.06-.235.115-.34.185l-.005.005c-.1.065-.18.145-.27.22h.455c.06 0 .11.045.11.105s-.05.105-.11.105h-.32c0 .07-.025.04-.025.045v.24h.285l.15-.17c.09-.09.235-.105.325-.015.09.09.09.23 0 .32l-.795.79-.01.01c-.005 0-.005 0-.01.005l-.025.015h-.01a.235.235 0 01-.12.025h-.23c-.08.07-.125.1-.125.18v.06c0 .01-.02.02-.02.03l.375.39c.04.04.04.1 0 .14-.04.04-.1.04-.14 0l-.39-.385a.213.213 0 01-.055.01c-.105 0-.195-.085-.195-.185v-.235h-.055A3.1 3.1 0 009 4c0 1.655 1.345 3 3 3zm2.27-2.135c.05 0 .105.04.105.09v.285c0 .05-.055.09-.105.09-.05 0-.105-.04-.105-.09v-.285c0-.05.055-.09.105-.09zm-2.085-3.27c0 .13-.105.21-.225.21h-.25v.07c0 .075-.03.135-.105.135s-.105-.06-.105-.135V1.64c-.075-.02-.025-.025-.025-.04 0-.125.085-.215.21-.215h.27c.13 0 .23.085.23.21z"],"inbox-search":["M5.639 2a5.391 5.391 0 00-.144 2H3.66L1.95 8H4c.55 0 1 .45 1 1v1h6V9c0-.088.012-.174.033-.255.12-.007.238-.019.39-.038.154-.008.252-.03.442-.077a5.34 5.34 0 00.24-.05h.05l.122-.04 1.266 1.271c.425.47 1.116.769 1.847.769.21 0 .414-.025.61-.071V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h2.639zM15.82 7.53c.1.12.17.27.18.44 0 .34-.27.61-.61.61a.57.57 0 01-.43-.18l-2.24-2.25c-.13.08-.26.16-.4.23-.02.01-.05.02-.07.03-.14.06-.27.12-.42.17h-.01c-.14.05-.29.08-.44.11-.04.01-.08.02-.11.02-.15.02-.3.04-.46.04-1.85 0-3.35-1.51-3.35-3.37S8.96.01 10.81 0c1.85 0 3.35 1.51 3.35 3.37 0 .16-.02.31-.04.47-.01.04-.01.07-.02.11-.02.15-.05.29-.1.44v.01c-.05.15-.11.28-.17.42-.01.02-.02.05-.03.07-.07.14-.14.27-.23.4l2.25 2.24zm-5.01-1.94c1.22 0 2.21-.99 2.21-2.22 0-1.23-.99-2.22-2.21-2.22S8.6 2.14 8.6 3.37c0 1.22.99 2.22 2.21 2.22z"],"inbox-update":["M8.1 2a5.023 5.023 0 000 2H3.66L1.95 8H4c.55 0 1 .45 1 1v1h6V9c0-.55.45-1 1-1h2.05c.708 0 1.352-.241 1.905-.645L16 7.46V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h5.1zM13 6a3 3 0 110-6 3 3 0 010 6z"],"info-sign":["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zM7 3h2v2H7V3zm3 10H6v-1h1V7H6V6h3v6h1v1z"],inheritance:["M5 8c0 1.66 1.34 3 3 3h4.59L11.3 9.71A.965.965 0 0111 9a1.003 1.003 0 011.71-.71l3 3c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-3 3a1.003 1.003 0 01-1.42-1.42l1.3-1.29H8c-2.76 0-5-2.24-5-5H1a1 1 0 01-1-1V1a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5zM2 2v4h4V2H2z"],"inherited-group":["M1 7c.51 0 .935.388.993.884L2 8v3c0 .51.388.935.884.993L3 12h1.59l-.3-.29a1.003 1.003 0 011.324-1.504l.096.084 2 2c.18.18.29.43.29.71 0 .233-.076.446-.206.614l-.084.096-2 2A1.003 1.003 0 014 15c0-.24.08-.458.224-.629l.076-.081.29-.29H3a2.996 2.996 0 01-2.995-2.823L0 11V8c0-.55.45-1 1-1zm5.388-7c.629 0 1.338.21 1.838.6.48.38.85.91 1.019 1.52.04.13.07.27.09.4.09.48.14 1.22.14 1.73v.07c.18.08.34.27.37.67.03.32-.09.59-.16.71-.06.28-.21.58-.48.63-.03.13-.07.26-.12.39 0 .01-.01.04-.01.04-.22.58-.55 1.08-.949 1.45v.18c.04.45-.12.77 1.059 1.3 1.179.53 2.947 1.09 3.307 1.95.37.86.22 1.36.22 1.36H9c0-.539-.21-1.045-.583-1.417l-2-2A1.997 1.997 0 005 9c-.149 0-.296-.015-.442-.045.099-.19.082-.37.101-.575 0-.05.01-.11.01-.17-.41-.35-.75-.86-.969-1.45v-.01s-.01-.01-.01-.02c-.04-.12-.09-.26-.12-.39-.28-.05-.44-.36-.5-.64-.06-.12-.19-.39-.16-.71.04-.41.21-.6.39-.68v-.06c0-.51.05-1.26.14-1.74.02-.13.05-.27.09-.4.17-.6.54-1.13 1.02-1.51C5.048.21 5.757 0 6.387 0zm4.625 2.04c.49 0 1.05.16 1.439.46.38.29.67.7.8 1.17.03.1.05.21.07.31.07.37.11.94.11 1.33v.05c.139.06.269.21.289.51.02.25-.07.45-.13.54-.05.21-.16.44-.38.48a1.711 1.711 0 01-.1.33c-.17.44-.43.83-.749 1.11v.14c.03.35-.09.59.83 1 .929.41 2.317.84 2.597 1.5.29.66.17 1.04.17 1.04H13.66v.01c-.05-.24-.14-.5-.25-.76-.36-.86-1.119-1.33-2.687-2-.14-.06-.59-.25-.6-.25-.21-.09-.36-.15-.5-.22.02-.1.02-.2.03-.31 0-.04.01-.08.01-.13-.07-.06-.13-.12-.19-.19.22-.32.4-.67.54-1.05.02-.06.02-.06.03-.1.29-.23.48-.57.59-.96.16-.33.25-.73.21-1.16-.03-.4-.16-.76-.37-1.03-.02-.53-.07-1.13-.15-1.54-.01-.06-.02-.12-.03-.19.23-.06.48-.09.72-.09z"],"inner-join":["M6.6 3.3C5.3 4.4 4.5 6.1 4.5 8s.8 3.6 2.1 4.7c-.5.2-1 .3-1.6.3-2.8 0-5-2.2-5-5s2.2-5 5-5c.6 0 1.1.1 1.6.3zm-1.96 8.68C3.92 10.83 3.5 9.46 3.5 8s.42-2.83 1.14-3.98C2.6 4.2 1 5.91 1 8s1.6 3.8 3.64 3.98zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c2.8 0 5 2.2 5 5s-2.2 5-5 5c-.6 0-1.1-.1-1.6-.3 1.3-1.1 2.1-2.9 2.1-4.7s-.8-3.5-2.1-4.7c.5-.2 1-.3 1.6-.3zm.35 1.02c.73 1.15 1.14 2.52 1.14 3.98s-.42 2.83-1.14 3.98c2.04-.18 3.64-1.9 3.64-3.98s-1.6-3.8-3.64-3.98z"],insert:["M5 9h2v2c0 .6.4 1 1 1s1-.4 1-1V9h2c.6 0 1-.4 1-1s-.4-1-1-1H9V5c0-.6-.4-1-1-1s-1 .4-1 1v2H5c-.6 0-1 .4-1 1s.4 1 1 1zm10-9H1C.4 0 0 .4 0 1v14c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V1c0-.6-.4-1-1-1zm-1 14H2V2h12v12z"],intersection:["M10 3c-.92 0-1.76.26-2.5.69C6.76 3.26 5.92 3 5 3 2.24 3 0 5.24 0 8s2.24 5 5 5c.92 0 1.76-.26 2.5-.69.74.43 1.58.69 2.5.69 2.76 0 5-2.24 5-5s-2.24-5-5-5zm-4.1 7.85c-.29.09-.59.15-.9.15-1.66 0-3-1.34-3-3s1.34-3 3-3c.31 0 .61.06.9.15C5.33 5.96 5 6.94 5 8s.33 2.04.9 2.85zM10 11c-.31 0-.61-.06-.9-.15.57-.81.9-1.79.9-2.85s-.33-2.04-.9-2.85c.29-.09.59-.15.9-.15 1.66 0 3 1.34 3 3s-1.34 3-3 3z"],"ip-address":["M5 2.66C5 4.14 8 8 8 8s3-3.86 3-5.34C10.99 1.2 9.66 0 8 0S5 1.2 5 2.66zM7 3c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1zM10.5 10H8v5h1v-4h1v1H9v1h2v-3h-.5zM2 9h12c.55 0 1 .45 1 1v5c0 .55-.45 1-1 1H2c-.55 0-1-.45-1-1v-5c0-.55.45-1 1-1zm4 1v5h1v-5H6z"],issue:["M8 16A8 8 0 118 0a8 8 0 010 16zm0-2A6 6 0 108 2a6 6 0 000 12zm1-2H7v-2h2v2zm0-3H7V4h2v5z"],"issue-closed":["M9.296.104a2.99 2.99 0 00-1.003.664 2.987 2.987 0 00-.75 1.25 6 6 0 106.28 4.527c.043-.039.085-.079.127-.12l1.456-1.456A8 8 0 119.296.105zm2.532 5.2a.997.997 0 01-.707-.294L9.707 3.596a1 1 0 011.414-1.414l.707.707 1.768-1.768a1 1 0 111.414 1.415L12.536 5.01a.997.997 0 01-.708.293zM9 12H7v-2h2v2zm0-3H7V4h2v5z"],"issue-new":["M10.568.421c-.01.04-.018.08-.026.121-.837.156-1.53.73-1.85 1.497a6 6 0 105.27 5.273 2.51 2.51 0 001.496-1.854c.04-.008.081-.016.121-.026A8 8 0 1110.568.421zM9 12H7v-2h2v2zm0-3H7V4h2v5zm1-6c0-.55.45-1 1-1h1V1c0-.55.45-1 1-1s1 .45 1 1v1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v1.005c0 .55-.45 1-1 1s-1-.45-1-1V4h-1c-.55 0-1-.45-1-1z"],italic:["M9.8 4H11c.5 0 1-.4 1-1s-.4-1-1-1H7c-.5 0-1 .4-1 1s.4 1 1 1h.8l-1.6 8H5c-.5 0-1 .4-1 1s.4 1 1 1h4c.5 0 1-.4 1-1s-.4-1-1-1h-.8l1.6-8z"],"join-table":["M15 5h-3V2c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h3v3c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-5-1v2H6V4h4zm0 6H6V7h4v3zM2 4h3v2H2V4zm0 5V7h3v2H2zm4 4v-2h4v2H6zm8 0h-3v-2h3v2zm0-3h-3V8h3v2z"],key:["M11 0C8.24 0 6 2.24 6 5c0 1.02.31 1.96.83 2.75L.29 14.29a1.003 1.003 0 001.42 1.42L3 14.41l1.29 1.29c.18.19.43.3.71.3s.53-.11.71-.29l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71L6.41 11l1.83-1.83c.8.52 1.74.83 2.76.83 2.76 0 5-2.24 5-5s-2.24-5-5-5zm0 8c-.23 0-.45-.03-.66-.08-.01 0-.02-.01-.03-.01-.21-.05-.41-.12-.6-.21a3.014 3.014 0 01-1.62-2c0-.01-.01-.02-.01-.03C8.03 5.45 8 5.23 8 5c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3z"],"key-backspace":["M15 2H6c-.28 0-.53.11-.71.29l-5 5C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l5 5c.18.18.43.29.71.29h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-2.29 7.29a1.003 1.003 0 01-1.42 1.42L10 9.41 8.71 10.7c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71L8.59 8l-1.3-1.29a1.003 1.003 0 011.42-1.42L10 6.59l1.29-1.29c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L11.41 8l1.3 1.29z"],"key-command":["M12 9h-1V7h1c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3v1H7V4c0-1.66-1.34-3-3-3S1 2.34 1 4s1.34 3 3 3h1v2H4c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3v-1h2v1c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3zm0-6c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM4 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm5 4H7V7h2v2zm3 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"key-control":["M12.71 5.29l-4-4C8.53 1.11 8.28 1 8 1s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 3.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],"key-delete":["M15.71 7.29l-5-5A.997.997 0 0010 2H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h9c.28 0 .53-.11.71-.29l5-5c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zm-7 2a1.003 1.003 0 01-1.42 1.42L6 9.41 4.71 10.7c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71L4.59 8l-1.3-1.29a1.003 1.003 0 011.42-1.42L6 6.59 7.29 5.3c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L7.41 8l1.3 1.29z"],"key-enter":["M14 2c-.55 0-1 .45-1 1v3c0 1.66-1.34 3-3 3H4.41L5.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L4.41 11H10c2.76 0 5-2.24 5-5V3c0-.55-.45-1-1-1z"],"key-escape":["M2 7c.55 0 1-.45 1-1V4.41L7.29 8.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 3H6c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm7-5.9v2A5 5 0 113.1 9h-2c.49 3.39 3.38 6 6.9 6 3.87 0 7-3.13 7-7 0-3.52-2.61-6.41-6-6.9z"],"key-option":["M11 4h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1s.45 1 1 1zm4 8h-3.43L5.86 2.49h-.02A.975.975 0 005 2H1c-.55 0-1 .45-1 1s.45 1 1 1h3.43l5.71 9.51.01-.01c.18.3.49.5.85.5h4c.55 0 1-.45 1-1s-.45-1-1-1z"],"key-shift":["M13.71 7.29l-5-5C8.53 2.11 8.28 2 8 2s-.53.11-.71.29l-5 5A1.003 1.003 0 003 9h2v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V9h2a1.003 1.003 0 00.71-1.71z"],"key-tab":["M15 10H4.41L5.7 8.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L2 9.59V8c0-.55-.45-1-1-1s-1 .45-1 1v6c0 .55.45 1 1 1s1-.45 1-1v-1.59l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 12H15c.55 0 1-.45 1-1s-.45-1-1-1zm0-9c-.55 0-1 .45-1 1v1.59L11.71 1.3A.965.965 0 0011 1a1.003 1.003 0 00-.71 1.71L11.59 4H1c-.55 0-1 .45-1 1s.45 1 1 1h10.59L10.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L14 6.41V8c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z"],"known-vehicle":["M15 3a.997.997 0 00-.707.293L12 5.586l-1.293-1.293a1 1 0 10-1.414 1.414l2 2a.997.997 0 001.414 0l3-3A1 1 0 0015 3zm-.879 6.121l-.007-.007c-.313.309-.69.552-1.114.702V10h-.998H12h-1v-.184c-.424-.15-.8-.395-1.112-.704l-.01.01-2-2 .012-.012A2.978 2.978 0 017.184 6H3c-.176 0-.06-.824 0-1l.73-1.63C3.79 3.192 3.823 3 4 3H7.78C8.328 2.39 9.115 2 10 2c.768 0 1.461.293 1.987.77l.844-.844c-.238-.244-.524-.442-.794-.524C12.037 1.402 10.72 1 8 1c-2.72 0-4.037.402-4.037.402-.508.155-1.078.711-1.268 1.237l-.763 2.117H.88c-.484 0-.88.423-.88.939s.396.939.88.939h.375L1 7c-.034.685 0 1.436 0 2v5c0 .657.384 1 1 1s1-.343 1-1v-1h10v1c0 .657.384 1 1 1s1-.343 1-1V9l-.003-.754-.876.875zM5.001 10H3V8h2v2z"],"lab-test":["M11 1a1 1 0 010 2v3l3 7v1.25a.75.75 0 01-.75.75H2.75a.75.75 0 01-.75-.75V13l3-7V3a1 1 0 110-2h6zM9 3H7v3l-1.714 4h5.428L9 6V3z"],label:["M11 2H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7l-5-5zm3 10H2V4h8v2H3v1h7v1h4v4zm-3-5V4l3 3h-3zm-8 3h10V9H3v1z"],layer:["M16 8c0-.37-.21-.68-.51-.85l.01-.01-7-4-.01.01C8.34 3.06 8.18 3 8 3s-.34.06-.49.15l-.01-.02-7 4 .01.01C.21 7.32 0 7.63 0 8s.21.68.51.85l-.01.01 7 4 .01-.01c.15.09.31.15.49.15s.34-.06.49-.15l.01.01 7-4-.01-.01c.3-.17.51-.48.51-.85z"],"layer-outline":["M7.504 3.132l-7 4a1 1 0 000 1.736l7 4a1 1 0 00.992 0l7-4a1 1 0 000-1.736l-7-4a1 1 0 00-.992 0zM8 5.152L12.983 8 8 10.847 3.016 8 8 5.152z"],layers:["M.55 4.89l7 3.5c.14.07.29.11.45.11s.31-.04.45-.11l7-3.5a.998.998 0 00-.06-1.81L8.4.08a1.006 1.006 0 00-.79 0l-6.99 3a.992.992 0 00-.07 1.81zM15 10c-.16 0-.31.04-.45.11L8 13.38 1.45 10.1c-.14-.06-.29-.1-.45-.1-.55 0-1 .45-1 1 0 .39.23.73.55.89l7 3.5c.14.07.29.11.45.11s.31-.04.45-.11l7-3.5c.32-.16.55-.5.55-.89 0-.55-.45-1-1-1zm0-3.5c-.16 0-.31.04-.45.11L8 9.88 1.45 6.61A.997.997 0 001 6.5c-.55 0-1 .45-1 1 0 .39.23.73.55.89l7 3.5c.14.07.29.11.45.11s.31-.04.45-.11l7-3.5c.32-.16.55-.5.55-.89 0-.55-.45-1-1-1z"],layout:["M14 4c-1.1 0-2 .9-2 2 0 .47.17.9.44 1.24l-.68.91A1.996 1.996 0 009.07 9.5H7.93C7.71 8.64 6.93 8 6 8c-.47 0-.9.17-1.24.44l-.91-.68c.1-.23.15-.49.15-.76 0-.37-.11-.71-.28-1.01l2.27-2.27c.3.17.64.28 1.01.28 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .37.11.71.28 1.01L3.01 5.28C2.71 5.11 2.37 5 2 5 .9 5 0 5.9 0 7s.9 2 2 2c.47 0 .9-.17 1.24-.44l.91.68c-.1.23-.15.49-.15.76 0 .37.11.71.28 1.01l-1.27 1.27C2.71 12.11 2.37 12 2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.37-.11-.71-.28-1.01l1.27-1.27c.3.17.64.28 1.01.28.93 0 1.71-.64 1.93-1.5h1.14c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2 0-.47-.17-.9-.44-1.24l.68-.91c.23.1.49.15.76.15 1.1 0 2-.9 2-2s-.9-2-2-2z"],"layout-auto":["M14 9.5c-.56 0-1.06.23-1.42.59L8.99 8l3.59-2.09A2.002 2.002 0 0016 4.5c0-1.1-.9-2-2-2s-2 .9-2 2c0 .19.03.37.08.54L8.5 7.13v-3.2c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S6 .9 6 2c0 .93.64 1.71 1.5 1.93v3.2L3.92 5.04c.05-.17.08-.35.08-.54 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.56 0 1.06-.23 1.42-.59L7.01 8l-3.59 2.09A2.002 2.002 0 000 11.5c0 1.1.9 2 2 2s2-.9 2-2c0-.19-.03-.37-.08-.54L7.5 8.87v3.2c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-3.2l3.58 2.09c-.05.17-.08.35-.08.54 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z"],"layout-balloon":["M14 11c-.2 0-.38.04-.56.09L12.42 9.4c.36-.36.58-.85.58-1.4 0-.55-.22-1.04-.58-1.4l1.01-1.69c.19.05.37.09.57.09 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .55.22 1.04.58 1.4l-1.01 1.69C11.38 6.04 11.2 6 11 6c-.93 0-1.71.64-1.93 1.5H6.93C6.71 6.64 5.93 6 5 6c-.2 0-.38.04-.56.09L3.42 4.4C3.78 4.04 4 3.55 4 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.2 0 .38-.04.56-.09L3.58 6.6C3.22 6.96 3 7.45 3 8c0 .55.22 1.04.58 1.4l-1.01 1.69C2.38 11.04 2.2 11 2 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.55-.22-1.04-.58-1.4l1.01-1.69c.19.05.37.09.57.09.93 0 1.71-.64 1.93-1.5h2.14c.22.86 1 1.5 1.93 1.5.2 0 .38-.04.56-.09l1.01 1.69c-.35.36-.57.85-.57 1.4 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z"],"layout-circle":["M14.16 6.02c-.12-.36-.26-.7-.43-1.03.17-.29.27-.63.27-.99 0-1.1-.9-2-2-2-.36 0-.7.1-.99.27-.33-.17-.67-.31-1.03-.43A1.987 1.987 0 008 0C6.95 0 6.1.81 6.02 1.84c-.36.12-.7.26-1.03.43C4.7 2.1 4.36 2 4 2c-1.1 0-2 .9-2 2 0 .36.1.7.27.99-.17.33-.31.67-.43 1.03C.81 6.1 0 6.95 0 8c0 1.05.81 1.9 1.84 1.98.12.36.26.7.43 1.03-.17.29-.27.63-.27.99 0 1.1.9 2 2 2 .36 0 .7-.1.99-.27.33.17.67.32 1.03.43C6.1 15.19 6.95 16 8 16c1.05 0 1.9-.81 1.98-1.84.36-.12.7-.26 1.03-.43.29.17.63.27.99.27 1.1 0 2-.9 2-2 0-.36-.1-.7-.27-.99.17-.33.31-.67.43-1.03C15.19 9.9 16 9.05 16 8c0-1.05-.81-1.9-1.84-1.98zm-.99 3.79c-.05.16-.11.31-.17.46-.3-.17-.64-.27-1-.27-1.1 0-2 .9-2 2 0 .36.1.7.27 1-.15.07-.3.12-.46.17C9.5 12.48 8.81 12 8 12s-1.5.48-1.81 1.17c-.16-.06-.32-.11-.46-.17.17-.3.27-.64.27-1 0-1.1-.9-2-2-2-.36 0-.7.1-1 .27-.07-.15-.12-.3-.17-.46C3.52 9.5 4 8.81 4 8s-.48-1.5-1.17-1.81c.06-.16.11-.32.17-.46.3.17.64.27 1 .27 1.1 0 2-.9 2-2 0-.36-.1-.7-.27-1 .15-.07.3-.12.46-.17C6.5 3.52 7.19 4 8 4s1.5-.48 1.81-1.17c.16.06.32.11.46.17-.17.3-.27.64-.27 1 0 1.1.9 2 2 2 .36 0 .7-.1 1-.27.07.15.12.3.17.46C12.48 6.5 12 7.19 12 8s.48 1.5 1.17 1.81z"],"layout-grid":["M2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 0C6.9 0 6 .9 6 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"layout-group-by":["M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 1C.9 1 0 1.9 0 3s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5 3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"layout-hierarchy":["M14.5 12.07V9.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2-.93 0-1.71.64-1.93 1.5H9.93c-.18-.7-.73-1.25-1.43-1.43V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S6 .9 6 2c0 .93.64 1.71 1.5 1.93v2.14c-.7.18-1.25.73-1.43 1.43H3.93C3.71 6.64 2.93 6 2 6 .9 6 0 6.9 0 8c0 .93.64 1.71 1.5 1.93v2.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93V9.93c.7-.18 1.25-.73 1.43-1.43h2.14c.18.7.73 1.25 1.43 1.43v2.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93V9.93c.7-.18 1.25-.73 1.43-1.43h2.14c.18.7.73 1.25 1.43 1.43v2.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93z"],"layout-linear":["M14 6c-.93 0-1.71.64-1.93 1.5H9.93C9.71 6.64 8.93 6 8 6s-1.71.64-1.93 1.5H3.93C3.71 6.64 2.93 6 2 6 .9 6 0 6.9 0 8s.9 2 2 2c.93 0 1.71-.64 1.93-1.5h2.13C6.29 9.36 7.07 10 8 10s1.71-.64 1.93-1.5h2.13c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2C16 6.9 15.1 6 14 6z"],"layout-skew-grid":["M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-2c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6-3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"layout-sorted-clusters":["M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],learning:["M8.441 1.104a.985.985 0 00-.882 0L.365 5c-.487.253-.487.747 0 1L7.56 9.896a.985.985 0 00.882 0L15.635 6c.487-.253.487-.747 0-1L8.44 1.104z","M14 5.5l.016 4.514c.002.548.447.99.994.99a.99.99 0 00.99-.99V5.5h-2zM3.371 9.047l4.387 2.432a.5.5 0 00.485 0l4.39-2.432a.25.25 0 01.371.218v2.955a.25.25 0 01-.134.222l-4.635 2.436a.5.5 0 01-.466 0l-4.635-2.436A.25.25 0 013 12.22V9.265a.25.25 0 01.371-.218z"],"left-join":["M6.6 3.3C6.1 3.1 5.6 3 5 3 2.2 3 0 5.2 0 8s2.2 5 5 5c.6 0 1.1-.1 1.6-.3C5.3 11.6 4.5 9.9 4.5 8s.8-3.6 2.1-4.7zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c2.8 0 5 2.2 5 5s-2.2 5-5 5c-.6 0-1.1-.1-1.6-.3 1.3-1.1 2.1-2.9 2.1-4.7s-.8-3.5-2.1-4.7c.5-.2 1-.3 1.6-.3zm.35 1.02c.73 1.15 1.14 2.52 1.14 3.98s-.42 2.83-1.14 3.98c2.04-.18 3.64-1.9 3.64-3.98s-1.6-3.8-3.64-3.98z"],"less-than":["M13.287 5.958a1 1 0 00-.574-1.916l-10 3c-.95.285-.95 1.631 0 1.916l10 3a1 1 0 00.574-1.916L6.48 8l6.807-2.042z"],"less-than-or-equal-to":["M13.287 3.958a1 1 0 00-.575-1.916l-10 3c-.95.285-.95 1.63 0 1.916l10 3a1 1 0 00.575-1.916L6.48 6l6.807-2.042zM13 12H3a1 1 0 000 2h10a1 1 0 000-2z"],lifesaver:["M9.405 11.746C8.968 11.91 8.495 12 8 12c-.494 0-.968-.09-1.405-.254l-.702 1.873C6.548 13.865 7.258 14 8 14c.742 0 1.452-.135 2.107-.38l-.702-1.874zm2.341-2.341l1.873.702C13.865 9.452 14 8.742 14 8c0-.742-.135-1.452-.38-2.107l-1.874.702c.164.437.254.91.254 1.405 0 .494-.09.968-.254 1.405zM9.405 4.254l.702-1.873A5.987 5.987 0 008 2c-.742 0-1.452.135-2.107.38l.702 1.874C7.032 4.09 7.505 4 8 4c.494 0 .968.09 1.405.254zM4.254 6.595L2.38 5.893A5.987 5.987 0 002 8c0 .742.135 1.452.38 2.107l1.874-.702A3.991 3.991 0 014 8c0-.494.09-.968.254-1.405zM8 16A8 8 0 118 0a8 8 0 010 16zm0-6a2 2 0 100-4 2 2 0 000 4z"],lightbulb:["M9.01 14h-2c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1s-.44-1-1-1zm1-3h-4c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1s-.44-1-1-1zm-2-11C5.26 0 3.03 1.95 3.03 4.35c0 2.37 1.63 2.64 1.94 5.22 0 .24.22.44.5.44h5.09c.28 0 .5-.19.5-.44C11.37 6.99 13 6.72 13 4.35 13 1.95 10.77 0 8.01 0z"],link:["M4.99 11.99c.28 0 .53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42l-6 6a1.003 1.003 0 00.71 1.71zm3.85-2.02L6.4 12.41l-1 1-.01-.01c-.36.36-.85.6-1.4.6-1.1 0-2-.9-2-2 0-.55.24-1.04.6-1.4l-.01-.01 1-1 2.44-2.44c-.33-.1-.67-.16-1.03-.16-1.1 0-2.09.46-2.81 1.19l-.02-.02-1 1 .02.02c-.73.72-1.19 1.71-1.19 2.81 0 2.21 1.79 4 4 4 1.1 0 2.09-.46 2.81-1.19l.02.02 1-1-.02-.02c.73-.72 1.19-1.71 1.19-2.81 0-.35-.06-.69-.15-1.02zm7.15-5.98c0-2.21-1.79-4-4-4-1.1 0-2.09.46-2.81 1.19l-.02-.02-1 1 .02.02c-.72.72-1.19 1.71-1.19 2.81 0 .36.06.69.15 1.02l2.44-2.44 1-1 .01.01c.36-.36.85-.6 1.4-.6 1.1 0 2 .9 2 2 0 .55-.24 1.04-.6 1.4l.01.01-1 1-2.43 2.45c.33.09.67.15 1.02.15 1.1 0 2.09-.46 2.81-1.19l.02.02 1-1-.02-.02a3.92 3.92 0 001.19-2.81z"],list:["M1 3h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 10H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],"list-columns":["M6 1c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm9-12c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5z"],"list-detail-view":["M6 9H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm9-12h-5c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM6 5H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1z"],locate:["M15 7h-.09A6.98 6.98 0 009 1.1V1c0-.55-.45-1-1-1S7 .45 7 1v.09A6.98 6.98 0 001.1 7H1c-.55 0-1 .45-1 1s.45 1 1 1h.1A6.969 6.969 0 007 14.91V15c0 .55.45 1 1 1s1-.45 1-1v-.09A6.98 6.98 0 0014.9 9h.1c.55 0 1-.45 1-1s-.45-1-1-1zm-6.02 5.9c-.05-.5-.46-.9-.98-.9s-.93.4-.98.9A5.017 5.017 0 013.1 8.98c.5-.05.9-.46.9-.98s-.4-.93-.9-.98A5.017 5.017 0 017.02 3.1c.05.5.46.9.98.9s.93-.4.98-.9c1.97.39 3.52 1.95 3.92 3.92-.5.05-.9.46-.9.98s.4.93.9.98a5.017 5.017 0 01-3.92 3.92zM8 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],lock:["M13.96 7H12V3.95C12 1.77 10.21 0 8 0S4 1.77 4 3.95V7H1.96c-.55 0-.96.35-.96.9v6.91c0 .54.41 1.19.96 1.19h12c.55 0 1.04-.65 1.04-1.19V7.9c0-.55-.49-.9-1.04-.9zM6 7V3.95c0-1.09.9-1.97 2-1.97s2 .88 2 1.97V7H6z"],"log-in":["M11 8c0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L7.59 7H1c-.55 0-1 .45-1 1s.45 1 1 1h6.59L6.3 10.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71zm4-8H9c-.55 0-1 .45-1 1s.45 1 1 1h5v12H9c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],"log-out":["M7 14H2V2h5c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm8.71-6.71l-3-3a1.003 1.003 0 00-1.42 1.42L12.59 7H6c-.55 0-1 .45-1 1s.45 1 1 1h6.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],manual:["M15.99 1.13c-.02-.41-.33-.77-.78-.87C12.26-.36 9.84.13 8 1.7 6.16.13 3.74-.36.78.26.33.35.03.72.01 1.13H0v12c0 .08 0 .17.02.26.12.51.65.82 1.19.71 2.63-.55 4.59-.04 6.01 1.57.02.03.06.04.08.06.02.02.03.04.05.06.04.03.09.04.13.07.05.03.09.05.14.07.11.04.23.07.35.07h.04c.12 0 .24-.03.35-.07.05-.02.09-.05.14-.07.04-.02.09-.04.13-.07.02-.02.03-.04.05-.06.03-.02.06-.03.08-.06 1.42-1.6 3.39-2.12 6.01-1.57.54.11 1.07-.21 1.19-.71.04-.09.04-.18.04-.26l-.01-12zM7 12.99c-1.4-.83-3.07-1.14-5-.93V1.96c2.11-.28 3.75.2 5 1.46v9.57zm7-.92c-1.93-.21-3.6.1-5 .93V3.42c1.25-1.26 2.89-1.74 5-1.46v10.11z"],"manually-entered-data":["M1 8h3.76l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm14.49-4.01c.31-.32.51-.76.51-1.24C16 1.78 15.22 1 14.25 1c-.48 0-.92.2-1.24.51l-1.44 1.44 2.47 2.47 1.45-1.43zM1 4h7.76l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm0 6c-.55 0-1 .45-1 1 0 .48.35.86.8.96L2.76 10H1zm9.95-6.43l-6.69 6.69 2.47 2.47 6.69-6.69-2.47-2.47zm4.25 2.47L13.24 8H15c.55 0 1-.45 1-1 0-.48-.35-.86-.8-.96zM2 15l3.86-1.39-2.46-2.44L2 15zm13-5h-3.76l-2 2H15c.55 0 1-.45 1-1s-.45-1-1-1z"],map:["M15.55 3.17l-4.49-3A.975.975 0 009.99.15L5.53 2.82 1.56.17A1.003 1.003 0 000 1v11c0 .35.18.65.45.83l4.49 3a.975.975 0 001.07.02l4.46-2.67 3.97 2.65A1.003 1.003 0 0016 15V4c0-.35-.18-.65-.45-.83zM5 13.46l-3-2v-8.6l2.94 1.96c.02.02.04.03.06.04v8.6zm5-2.32s-.01 0-.01.01L6 13.53V4.86s.01 0 .01-.01L10 2.47v8.67zm4 1.99l-2.94-1.96c-.02-.01-.04-.02-.05-.03v-8.6l3 2v8.59z"],"map-create":["M14 6.82v6.32l-2.94-1.96c-.02-.01-.04-.02-.05-.03V6.22c-.08-.07-.15-.16-.22-.24-.28-.02-.54-.08-.79-.16v5.32s-.01 0-.01.01L6 13.53V4.86s.01 0 .01-.01l2.05-1.23C8.02 3.42 8 3.21 8 3c0-.98.47-1.84 1.2-2.39l-3.67 2.2L1.56.17A1.003 1.003 0 000 1v11c0 .35.18.65.45.83l4.49 3a.975.975 0 001.07.02l4.46-2.67 3.97 2.65A1.003 1.003 0 0016 15V5.82c-.25.09-.52.14-.8.16-.33.36-.73.67-1.2.84zm-9 6.64l-3-2v-8.6l2.94 1.96c.02.02.04.03.06.04v8.6zM11 4h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1z"],"map-marker":["M8.46 0C5.42 0 2.95 2.39 2.95 5.33 2.95 8.28 8.46 16 8.46 16s5.51-7.72 5.51-10.67C13.96 2.39 11.5 0 8.46 0zm0 8a2.5 2.5 0 010-5 2.5 2.5 0 010 5z"],maximize:["M5.99 8.99c-.28 0-.53.11-.71.29l-3.29 3.29v-1.59c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.41L6.7 10.7a1.003 1.003 0 00-.71-1.71zm9-9h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.3a.99.99 0 00-.29.7 1.003 1.003 0 001.71.71l3.29-3.29V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.56-.45-1.01-1-1.01z"],media:["M11.99 6.99c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm3-5h-14c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-10c0-.55-.45-1-1-1zm-1 9l-5-3-1 2-3-4-3 5v-7h12v7z"],menu:["M1 4h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 8H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-5H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],"menu-closed":["M14.99 6.99h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm-12-2c-.28 0-.53.11-.71.29l-2 2a1.014 1.014 0 000 1.42l2 2a1.003 1.003 0 001.71-.71v-4c0-.55-.45-1-1-1zm3-1h9c.55 0 1-.45 1-1s-.45-1-1-1h-9c-.55 0-1 .45-1 1s.45 1 1 1zm9 8h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1z"],"menu-open":["M9.99 11.99h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm0-5h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm0-5h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm5.71 5.3l-2-2a1.003 1.003 0 00-1.71.71v4a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71z"],"merge-columns":["M5.71 5.29a1.003 1.003 0 00-1.42 1.42l.3.29H2V2h3v1.51c.52.06.99.29 1.34.65l.66.66V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3.82l-.66.66c-.35.35-.82.59-1.34.65V14H2V9h2.59l-.3.29a1.003 1.003 0 001.42 1.42l2-2C7.89 8.53 8 8.28 8 8c0-.28-.11-.53-.29-.71l-2-2zM15 0h-5c-.55 0-1 .45-1 1v3.82l.66-.66c.35-.35.82-.59 1.34-.65V2h3v5h-2.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C8.11 7.47 8 7.72 8 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H14v5h-3v-1.51c-.52-.06-.99-.29-1.34-.65L9 11.18V15c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],"merge-links":["M8 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6 3c-.93 0-1.71.64-1.93 1.5H11V3c0-1.66-1.34-3-3-3S5 1.34 5 3v4.5H3.93C3.71 6.64 2.93 6 2 6 .9 6 0 6.9 0 8s.9 2 2 2c.93 0 1.71-.64 1.93-1.5H5V13c0 1.66 1.34 3 3 3s3-1.34 3-3V8.5h1.07c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2s-.9-2-2-2zm-4 7c0 1.1-.9 2-2 2s-2-.9-2-2V3c0-1.1.9-2 2-2s2 .9 2 2v10z"],minimize:["M15.99.99a1.003 1.003 0 00-1.71-.71l-3.29 3.29V1.99c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H12.4l3.3-3.29c.18-.18.29-.43.29-.71zm-10 8h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59L.29 14.28a1.003 1.003 0 001.42 1.42L5 12.41V14c0 .55.45 1 1 1s1-.45 1-1v-4a1.02 1.02 0 00-1.01-1.01z"],minus:["M13 7H3c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z"],"mobile-phone":["M12 0H4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM8 15c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3-3H5V3h6v9z"],"mobile-video":["M15 4c-.28 0-.53.11-.71.29L12 6.59V4c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V9.41l2.29 2.29c.18.19.43.3.71.3.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z"],modal:["M15 1a1 1 0 011 1v12a1 1 0 01-1 1H1a1 1 0 01-1-1V2a1 1 0 011-1h14zm-1 4H2v8h12V5zm-3-3H9v2h2V2zm3 0h-2v2h2V2z"],"modal-filled":["M15 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm1 4H0V3h16v2zm-3-2h-2V1h2v2z"],moon:["M15 11.38A7.835 7.835 0 017.85 16C3.51 16 0 12.49 0 8.15 0 4.97 1.89 2.23 4.62 1c-.45.99-.7 2.08-.7 3.23a7.85 7.85 0 007.85 7.85c1.15 0 2.24-.25 3.23-.7z"],more:["M2 6.03a2 2 0 100 4 2 2 0 100-4zM14 6.03a2 2 0 100 4 2 2 0 100-4zM8 6.03a2 2 0 100 4 2 2 0 100-4z"],mountain:["M16 13H3l6-9h1l2 2h1l3 7zm-2.5-3.5l-1-2.5h-1l-2-2-3 4.5L9 8l1 1 1-1 2.5 1.5zM5.94 7l-4.122 6H0l5-6h.94z"],move:["M15.71 7.29l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H9V3.41l.29.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2C8.53.11 8.28 0 8 0s-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l.29-.3V7H3.41l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L3.41 9H7v3.59l-.29-.29A.965.965 0 006 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2a1.003 1.003 0 00-1.42-1.42l-.29.3V9h3.59l-.29.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],mugshot:["M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14h-.15c-.03-.09-.04-.16-.08-.25-.34-.79-2.01-1.31-3.12-1.8-1.11-.49-.96-.79-1-1.2-.01-.06-.01-.12-.01-.18.38-.34.69-.8.89-1.33 0 0 .01-.03.01-.04.04-.12.08-.24.11-.36.25-.05.4-.33.46-.59.06-.1.18-.36.15-.65-.04-.37-.19-.55-.35-.62v-.06c0-.48-.04-1.16-.13-1.61-.02-.12-.05-.25-.08-.37-.16-.55-.51-1.05-.96-1.39C9.26 3.19 8.6 3 8 3c-.59 0-1.26.19-1.73.55-.45.35-.8.84-.96 1.39-.04.13-.06.25-.08.38-.09.45-.13 1.13-.13 1.61v.06c-.18.06-.33.24-.37.62-.03.29.09.54.15.65.06.26.21.54.47.59.03.12.07.25.11.36 0 .01.01.02.01.02v.01c.21.54.53 1.01.92 1.35 0 .05-.01.11-.01.16-.04.41.08.7-1.03 1.2-1.11.49-2.77 1.01-3.12 1.8-.04.09-.05.16-.08.25H2V2h12v12z"],"multi-select":["M12 3.98H4c-.55 0-1 .45-1 1v1h8v5h1c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm3-3H7c-.55 0-1 .45-1 1v1h8v5h1c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm-6 6H1c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm-1 5H2v-3h6v3z"],music:["M15 0c-.07 0-.13.03-.19.04V.02l-10 2v.02C4.35 2.13 4 2.52 4 3v9.12c-.31-.07-.65-.12-1-.12-1.66 0-3 .9-3 2s1.34 2 3 2 3-.9 3-2V6.32l8-1.6v5.4c-.31-.07-.65-.12-1-.12-1.66 0-3 .9-3 2s1.34 2 3 2 3-.9 3-2V1c0-.55-.45-1-1-1z"],"new-drawing":["M14.9 11c.6 0 1 .5 1 1 0 .257-.073.44-.22.614l-.08.086-3 3c-.2.2-.4.3-.7.3-.5 0-1-.4-1-1 0-.257.073-.44.22-.614l.08-.086 3-3c.2-.2.4-.3.7-.3zM1.3.1l6.734 2.45a3.005 3.005 0 002.095 3.322 3.005 3.005 0 003.401 2.081L13.9 9.8v.2c0 .257-.073.44-.22.614l-.08.086-3 3c-.171.171-.343.27-.577.294L9.9 14h-.2l-5-1-.1-.01c-.231-.05-.45-.26-.56-.49L4 12.4l-4-11 .3-.3 5.8 5.8c-.1.2-.2.4-.2.6 0 .8.6 1.5 1.5 1.5s1.5-.7 1.5-1.5S8.2 6 7.4 6c-.16 0-.32.064-.48.14l-.12.06L1 .4l.3-.3zM13 0c.55 0 1 .45 1 1v1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v1c0 .503-.376.922-.861.99l-.013.002A.999.999 0 0113 6l.097-.006-.027.004a1 1 0 01-.037.001L13 6c-.55 0-1-.45-1-1V4h-1a.993.993 0 01-.855-.482A1 1 0 0110 3c0-.55.45-1 1-1h1V1c0-.55.45-1 1-1z"],"new-grid-item":["M6 0H1C.45 0 0 .45 0 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm5 14c0-.55-.45-1-1-1s-1 .45-1 1v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1s-.45-1-1-1zM6 9H1c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm9 4c-.55 0-1 .45-1 1-.55 0-1 .45-1 1s.45 1 1 1h1c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm-4-4h-1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1s1-.45 1-1c.55 0 1-.45 1-1s-.45-1-1-1zm4-9h-5c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm0 9h-1c-.55 0-1 .45-1 1s.45 1 1 1c0 .55.45 1 1 1s1-.45 1-1v-1c0-.55-.45-1-1-1z"],"new-layer":["M13.982 6.272l1.518.868-.01.01c.3.17.51.48.51.85s-.21.68-.51.85l.01.01-7 4-.01-.01A.94.94 0 018 13a.94.94 0 01-.49-.15l-.01.01-7-4 .01-.01A.977.977 0 010 8c0-.37.21-.68.51-.86L.5 7.13l7-4 .01.02A.94.94 0 018 3c.086 0 .168.014.246.038a2 2 0 105.736 3.234zM14 3c.55 0 1 .45 1 1s-.45 1-1 1h-1v1c0 .55-.45 1-1 1s-1-.45-1-1V5h-1c-.55 0-1-.45-1-1s.45-1 1-1h1V2c0-.55.45-1 1-1s1 .45 1 1v1h1z"],"new-layers":["M13 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5H9a1 1 0 110-2h2V1a1 1 0 012 0v2zm-3-1.983V2H9a2 2 0 100 4h1v1c0 .279.057.544.16.785l-1.71.855c-.14.07-.29.11-.45.11-.16 0-.31-.04-.45-.11l-7-3.5a.992.992 0 01.07-1.81l6.99-3a1.006 1.006 0 01.79 0l1.6.687zm.91 7.66a2 2 0 003.085-1.54l.555-.277c.14-.07.29-.11.45-.11.55 0 1 .45 1 1 0 .39-.23.73-.55.89l-7 3.5c-.14.07-.29.11-.45.11-.16 0-.31-.04-.45-.11l-7-3.5C.23 8.48 0 8.14 0 7.75c0-.55.45-1 1-1 .16 0 .31.04.45.11L8 10.13l2.91-1.453zM15 10.25c.55 0 1 .45 1 1 0 .39-.23.73-.55.89l-7 3.5c-.14.07-.29.11-.45.11-.16 0-.31-.04-.45-.11l-7-3.5c-.32-.16-.55-.5-.55-.89 0-.55.45-1 1-1 .16 0 .31.04.45.1L8 13.63l6.55-3.27c.14-.07.29-.11.45-.11z"],"new-link":["M15 3h-1V2c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V5h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3.5 6a2.5 2.5 0 00-2.45 2h-4.1a2.5 2.5 0 100 1h4.1a2.5 2.5 0 102.45-3z"],"new-object":["M8 4c0 .6.4 1 1 1h2v2c0 .6.4 1 1 1s1-.4 1-1V5h2c.6 0 1-.4 1-1s-.4-1-1-1h-2V1c0-.6-.4-1-1-1s-1 .4-1 1v2H9c-.6 0-1 .5-1 1zm6.5 2.5V7c0 1.4-1.1 2.5-2.5 2.5S9.5 8.4 9.5 7v-.5H9C7.6 6.5 6.5 5.4 6.5 4S7.6 1.5 9 1.5h.5V1c0-.3.1-.6.1-.8C9.1.1 8.6 0 8 0 3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8c0-.6-.1-1.3-.2-1.9-.4.3-.8.4-1.3.4z"],"new-person":["M9.12 12.69c-1.17-.53-1.01-.85-1.05-1.29-.01-.06-.01-.12-.01-.19.4-.37.73-.87.94-1.44 0 0 .01-.03.01-.04.05-.14.09-.27.12-.4.27-.06.43-.36.49-.63.06-.11.19-.39.16-.7-.04-.41-.2-.6-.38-.68v-.07c0-.51-.05-1.25-.14-1.74-.02-.13-.05-.27-.09-.4-.17-.6-.53-1.14-1.01-1.52C7.66 3.2 6.96 3 6.33 3c-.62 0-1.33.2-1.82.59-.49.38-.85.92-1.02 1.52-.04.13-.07.26-.09.4-.09.49-.13 1.23-.13 1.74v.06c-.19.08-.35.27-.39.68-.03.31.1.59.16.7.06.28.22.59.5.64.03.14.07.27.11.4 0 .01.01.02.01.02v.01c.22.59.55 1.1.96 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.09 1.29-1.17.53-2.93 1.1-3.29 1.95-.35.87-.2 1.37-.2 1.37h12.6s.15-.5-.22-1.36c-.36-.85-2.12-1.42-3.29-1.95zM14.89 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1z"],"new-prescription":["M9.82 11.66l2.48-2.87c.12-.2.13-.37.04-.53-.11-.19-.3-.26-.52-.26h-1.29c-.27 0-.49.13-.63.34L8.44 9.9 6.95 8a.482.482 0 00-.08-.1L5.82 6.55c.57-.24 1.04-.57 1.42-1.01.49-.57.74-1.27.74-2.08 0-.51-.1-.99-.32-1.42-.21-.43-.51-.8-.89-1.11A4.1 4.1 0 005.42.24C4.91.08 4.34 0 3.72 0H.61C.26 0 0 .23 0 .56v9.89c0 .33.26.55.61.55h.8c.36 0 .61-.23.61-.56V6.99H3.3l3.73 4.74-2.71 3.48c-.12.2-.13.37-.04.53.11.19.3.26.52.26h1.27c.27 0 .51-.12.64-.34l1.69-2.15 1.66 2.14c.12.21.34.35.62.35h1.43c.2 0 .39-.08.5-.25.12-.18.09-.38-.02-.55l-2.77-3.54zM4.18 5H1.99V2.02h2.19c.62 0 1.08.13 1.38.37.29.22.44.62.44 1.08 0 .45-.15.94-.44 1.17-.31.23-.76.36-1.38.36zM15 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1zM9.99 3.01c0 .02.01.04.01.06V2.95c0 .02-.01.04-.01.06z"],"new-text-box":["M5 6.5c0 .28.22.5.5.5H7v3.5c0 .28.22.5.5.5s.5-.22.5-.5V7h1.5c.28 0 .5-.22.5-.5S9.78 6 9.5 6h-4c-.28 0-.5.22-.5.5zM15 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1zm-2 5c-.55 0-1 .45-1 1v5H3V4h5c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1z"],ninja:["M16 5s-2.52 2.11-4.96 1.99C11.03 4.89 10.39.23 5 0c0 0 2.11 2.54 1.96 4.99C4.86 5.01.23 5.65 0 11c0 0 2.56-2.12 5.02-1.95.02 2.11.67 6.72 5.98 6.95 0 0-2.09-2.54-1.94-4.99 2.11-.02 6.71-.68 6.94-6.01zM8 9.5c-.83 0-1.5-.67-1.5-1.5S7.17 6.5 8 6.5s1.5.67 1.5 1.5S8.83 9.5 8 9.5z"],"not-equal-to":["M7.58 5l.44-2.196a1 1 0 011.96.392L9.62 5H13a1 1 0 010 2H9.22l-.4 2H13a1 1 0 010 2H8.42l-.44 2.196a1 1 0 01-1.96-.392L6.38 11H3a1 1 0 010-2h3.78l.4-2H3a1 1 0 110-2h4.58z"],notifications:["M8 16c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zm6-5c-.55 0-1-.45-1-1V6c0-2.43-1.73-4.45-4.02-4.9 0-.04.02-.06.02-.1 0-.55-.45-1-1-1S7 .45 7 1c0 .04.02.06.02.1A4.992 4.992 0 003 6v4c0 .55-.45 1-1 1s-1 .45-1 1 .45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1z"],"notifications-snooze":["M9 14c0 1.1-.9 2-2 2s-2-.9-2-2zM7 0c.404 0 .755.243.912.59L7.9.6c-.7.6-.9 1.36-.9 1.9 0 .8.267 1.433.8 1.9-.533.6-.795 1.222-.784 1.867l.004.358A2.8 2.8 0 009.82 9.4L12 9.399V10c0 .51.388.935.884.993L13 11c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1 1-.45 1-1V6c0-2.43 1.73-4.45 4.02-4.9L6 1c0-.55.45-1 1-1z","M13 6.702a.632.632 0 00-.632-.632h-1.743l2.208-2.734A.75.75 0 0013 2.864v-.3A.565.565 0 0012.435 2H9.561a.561.561 0 100 1.123h1.814L9.221 5.795A1 1 0 009 6.423v.279c0 .349.283.631.632.631h2.736A.632.632 0 0013 6.702z"],"notifications-updated":["M8 16c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zm3.399-13.667l-.413.412A2.99 2.99 0 009 1.99a3 3 0 00-3 2.99c0 .8.32 1.558.876 2.114l2.002 1.992A2.99 2.99 0 0013 9.184V10c0 .55.45 1 1 1s1 .45 1 1-.45 1-1 1H2c-.55 0-1-.45-1-1s.45-1 1-1 1-.45 1-1V6c0-2.43 1.73-4.45 4.02-4.9 0-.04-.02-.06-.02-.1 0-.55.45-1 1-1s1 .45 1 1c0 .04-.02.06-.02.1a4.97 4.97 0 012.419 1.233zM10.29 7.67l-2-1.99a.99.99 0 01-.29-.7 1 1 0 011-.99c.27 0 .52.11.7.29l1.29 1.29 3.28-3.28c.18-.18.42-.29.7-.29.55 0 1 .44 1 .99 0 .28-.11.52-.3.7l-3.98 3.98a.99.99 0 01-1.4 0z"],"numbered-list":["M2.76 7h1.26V0h-.94c-.04.21-.12.39-.25.54-.13.15-.29.27-.48.36-.18.09-.39.16-.62.2-.23.04-.46.06-.71.06v.9h1.74V7zm-.59 7.17c.18-.12.37-.25.58-.37a10.763 10.763 0 001.24-.83c.2-.16.37-.33.52-.51.15-.19.28-.39.37-.61.09-.22.14-.47.14-.74 0-.22-.04-.45-.12-.7-.08-.26-.21-.49-.4-.69-.18-.21-.43-.39-.72-.52-.3-.14-.68-.21-1.12-.21-.41 0-.77.07-1.08.2-.32.14-.58.32-.8.56-.22.23-.38.51-.49.84-.11.32-.16.67-.16 1.05h1.19c.01-.24.03-.47.08-.67.05-.21.11-.39.21-.54.09-.15.22-.27.38-.36.16-.09.35-.13.59-.13.26 0 .47.04.63.12.16.08.29.18.38.3.09.12.15.25.18.39s.05.27.05.4c-.01.27-.08.5-.22.71-.14.21-.32.4-.53.57-.22.18-.45.34-.71.49-.26.15-.51.31-.74.47-.5.31-.89.68-1.17 1.11-.3.41-.44.91-.45 1.48h5v-1H1.43c.05-.15.14-.29.27-.43.14-.13.29-.26.47-.38zM15.01 1.99h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.44-1-1-1zm0 9h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.44-1-1-1z"],numerical:["M2.79 4.61c-.13.17-.29.3-.48.41-.18.11-.39.18-.62.23-.23.04-.46.07-.71.07v1.03h1.74V12h1.26V4h-.94c-.04.23-.12.44-.25.61zm4.37 5.31c.18-.14.37-.28.58-.42l.63-.45c.21-.16.41-.33.61-.51s.37-.38.52-.59c.15-.21.28-.45.37-.7.09-.25.13-.54.13-.85 0-.25-.04-.52-.12-.8-.07-.29-.2-.55-.39-.79a2.18 2.18 0 00-.73-.6c-.29-.15-.66-.23-1.11-.23-.41 0-.77.08-1.08.23-.31.16-.58.37-.79.64-.22.27-.38.59-.49.96-.11.37-.16.77-.16 1.2h1.19c.01-.27.03-.53.08-.77.04-.24.11-.45.21-.62.09-.18.22-.32.38-.42.16-.1.35-.15.59-.15.26 0 .47.05.63.14.15.09.28.21.37.35.09.14.15.29.18.45.03.16.05.31.05.45-.01.31-.08.58-.22.82-.14.23-.32.45-.53.65-.22.21-.46.39-.71.57-.26.18-.51.36-.75.54-.5.36-.89.78-1.17 1.27-.28.49-.43 1.06-.44 1.71h5v-1.15H6.43c.05-.17.14-.33.27-.49.13-.15.29-.29.46-.44zm8.5-1.56c-.23-.35-.54-.57-.95-.65v-.02c.34-.13.6-.34.76-.63.16-.29.24-.63.24-1.02 0-.34-.06-.64-.19-.9s-.3-.47-.51-.64c-.21-.17-.45-.3-.72-.38-.27-.09-.54-.13-.82-.13-.36 0-.68.07-.96.2-.28.13-.53.32-.72.55-.2.23-.36.51-.47.83-.11.32-.18.66-.19 1.04h1.15c-.01-.2.01-.39.06-.58.05-.19.12-.36.22-.51.1-.15.22-.27.37-.36.15-.09.32-.13.53-.13.32 0 .59.1.79.3.21.2.31.46.31.79 0 .23-.05.43-.14.59-.09.16-.21.29-.35.38-.15.09-.32.16-.51.19-.19.04-.38.05-.57.04v.93c.23-.01.45 0 .67.02.22.02.42.08.59.17.18.09.32.23.43.4.11.18.16.41.16.71 0 .44-.13.78-.39 1.02s-.58.36-.97.36c-.45 0-.79-.16-1.02-.47-.23-.31-.33-.7-.32-1.17H11c.01.4.06.77.17 1.1.11.33.26.61.47.85.21.23.46.42.77.54.31.13.67.19 1.08.19.34 0 .66-.05.96-.16.3-.11.57-.27.8-.47.23-.2.41-.45.55-.74.13-.27.2-.6.2-.97 0-.5-.11-.92-.34-1.27z"],office:["M15 5h-3V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h3v-4h4v4h7c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM5 10H2V7h3v3zm0-5H2V2h3v3zm5 5H7V7h3v3zm0-5H7V2h3v3zm4 9h-2v-2h2v2zm0-4h-2V7h2v3z"],offline:["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zM6 14l1-5H4l6-7-1 5h3l-6 7z"],"oil-field":["M15 14h-1.35l-3.34-7.51 2.46-.95 1.45 3.21c.09.2.36.3.6.23.1-.03.18-.08.24-.15.05-.08 1.23-1.56.87-4.2-.11-.79-.52-4.62-3.26-4.62-.93 0-1.68.62-1.67 1.37 0 .14.03.28.09.42l.87 1.92L.64 8.07v.01A.98.98 0 000 9c0 .55.45 1 1 1 .13 0 .25-.03.36-.07v.01l1.04-.4L3.67 14H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM4.27 8.81L7.14 7.7 5.2 12.08l-.93-3.27zM6.54 14L9 8.46 11.46 14H6.54z"],"one-column":["M11.99-.01h-3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-14c0-.55-.45-1-1-1zm-6 5c-.28 0-.53.11-.71.29l-2 2a1.014 1.014 0 000 1.42l2 2a1.003 1.003 0 001.71-.71v-4c0-.55-.45-1-1-1z"],outdated:["M8 0c4.42 0 8 3.58 8 8 0 4.06-3.02 7.4-6.94 7.92-.02 0-.04.01-.06.01-.33.04-.66.07-1 .07-4.42 0-8-3.58-8-8 0-.55.45-1 1-1s1 .45 1 1c0 3.31 2.69 6 6 6 .71 0 1.37-.15 2-.38v.01c2.33-.82 4-3.02 4-5.63 0-3.31-2.69-6-6-6-1.78 0-3.36.78-4.46 2H5c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v1.74A7.95 7.95 0 018 0zm1 12H7v-2h2v2zm0-3H7V4h2v5z"],"page-layout":["M15 .95H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-12c0-.55-.45-1-1-1zm-9 12H2v-6h4v6zm8 0H7v-6h7v6zm0-7H2v-3h12v3z"],"panel-stats":["M10 4h3v1h-3zM10 6h3v1h-3zM10 8h3v1h-3zM10 10h3v1h-3z","M15 1H1c-.6 0-1 .4-1 1v11c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zM8 12H2V3h6v9zm6 0H9V3h5v9z"],"panel-table":["M15 1H1c-.6 0-1 .4-1 1v11c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zM8 9H6V7h2v2zm0-3H6V4h2v2zm-6 6V3h3v9H2zm4 0v-2h2v2H6zm8 0H9v-2h5v2zm0-3H9V7h5v2zm0-3H9V4h5v2z"],paperclip:["M14.68 2.31A4.54 4.54 0 0011.46.99c-1.15 0-2.31.44-3.19 1.32L.95 9.63c-.63.63-.95 1.46-.95 2.28a3.21 3.21 0 003.23 3.22c.83 0 1.66-.31 2.3-.95l7.31-7.32c.76-.77.76-1.98.01-2.73s-1.99-.76-2.75 0l-6.07 6.08c-.24.25-.24.65.01.9s.65.25.91.01l6.07-6.08c.25-.25.67-.25.91-.01.25.25.25.67 0 .92l-7.31 7.32c-.75.75-2.04.74-2.76.01-.75-.75-.73-2.02.01-2.76L9.2 3.21c1.24-1.24 3.35-1.26 4.58-.03 1.24 1.24 1.24 3.36 0 4.6l-7.12 7.13c-.24.25-.24.64.01.88.24.24.63.24.88.01v.01l7.13-7.13A4.41 4.41 0 0016 5.51c0-1.16-.44-2.32-1.32-3.2z"],paragraph:["M13 1H6C3.8 1 2 2.8 2 5s1.8 4 4 4v5c0 .6.4 1 1 1s1-.5 1-1V3h2v11c0 .6.4 1 1 1s1-.5 1-1V3h1c.5 0 1-.4 1-1s-.4-1-1-1z"],path:["M14.5 0h-13C.67 0 0 .67 0 1.5S.67 3 1.5 3H7v3H3.5C2.67 6 2 6.67 2 7.5S2.67 9 3.5 9H7v3H5.5c-.83 0-1.5.67-1.5 1.5S4.67 15 5.5 15h5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5H9V9h3.5c.83 0 1.5-.67 1.5-1.5S13.33 6 12.5 6H9V3h5.5c.83 0 1.5-.67 1.5-1.5S15.33 0 14.5 0z"],"path-search":["M15 14.62l-4-2.4V9.77c-.32.09-.66.15-1 .18v2.27l-4 2.4V8.71c-.38-.31-.72-.66-1-1.06v6.97l-4-2.4V8c.55 0 1-.45 1-1s-.45-1-1-1V1.38l3.15 1.89c.08-.34.18-.66.32-.97L.76.07v.01A.496.496 0 00.5 0C.22 0 0 .22 0 .5v12c0 .18.1.33.25.42v.01l5 3v-.01c.07.05.16.08.25.08s.18-.03.25-.08v.01l4.74-2.85 4.74 2.85v-.01c.09.05.18.08.27.08.28 0 .5-.22.5-.5v-3.78c-.3.17-.63.28-1 .28v2.62zM2 5c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1zm6-1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm7.75-.92l-1.19-.72c.18.43.29.9.36 1.38l.08.04v3.39l1 1V3.5c0-.18-.1-.33-.25-.42zM10 2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3.3 4.89c.44-.7.7-1.51.7-2.39C14 2.01 11.99 0 9.5 0S5 2.01 5 4.5 7.01 9 9.5 9c.88 0 1.69-.26 2.39-.7l2.41 2.41c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71l-2.41-2.4zM9.5 8C7.57 8 6 6.43 6 4.5S7.57 1 9.5 1 13 2.57 13 4.5 11.43 8 9.5 8z"],pause:["M6 3H4c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm6 0h-2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],people:["M13.69 13.98c-.05-.24-.14-.5-.25-.76-.36-.86-1.12-1.33-2.69-2-.14-.06-.59-.25-.6-.25-.21-.09-.36-.15-.5-.22.02-.1.02-.2.03-.31 0-.04.01-.08.01-.13-.07-.06-.13-.12-.19-.19.22-.32.4-.67.54-1.05.02-.06.02-.06.03-.1.29-.23.48-.57.59-.96.16-.33.25-.73.21-1.16-.03-.4-.16-.76-.37-1.03-.02-.53-.07-1.13-.15-1.54-.01-.06-.02-.12-.03-.19.23-.06.48-.09.72-.09.49 0 1.05.16 1.44.46.38.29.67.7.8 1.17.03.1.05.21.07.31.07.37.11.94.11 1.33v.05c.14.06.27.21.29.51.02.25-.07.45-.13.54-.05.21-.16.44-.38.48-.02.1-.05.2-.09.3 0 .01-.01.03-.01.03-.17.44-.43.83-.75 1.11v.14c.03.35-.09.59.83 1 .93.41 2.32.84 2.6 1.5.29.66.17 1.04.17 1.04h-2.3zm-1.17-.38c.37.86.22 1.36.22 1.36H.06s-.14-.5.22-1.36 2.13-1.43 3.31-1.96c1.17-.54 1.05-.86 1.09-1.3 0-.05.01-.11.01-.17-.41-.35-.75-.86-.97-1.45v-.01s-.01-.01-.01-.02c-.04-.12-.09-.26-.12-.39-.28-.05-.44-.36-.5-.64-.06-.12-.19-.39-.16-.71.04-.41.21-.6.39-.68v-.06c0-.51.05-1.26.14-1.74.02-.13.05-.27.09-.4.17-.6.54-1.13 1.02-1.51.5-.39 1.21-.6 1.84-.6s1.34.21 1.84.6c.48.38.85.91 1.02 1.52.04.13.07.27.09.4.09.48.14 1.22.14 1.73v.07c.18.08.34.27.37.67.03.32-.09.59-.16.71-.06.28-.21.58-.48.63-.03.13-.07.26-.12.39 0 .01-.01.04-.01.04-.22.58-.55 1.08-.95 1.45v.18c.04.45-.12.77 1.06 1.3 1.18.53 2.95 1.09 3.31 1.95z"],percentage:["M6 6V4c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1c1.1 0 2-.9 2-2zM3.5 6c-.28 0-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5s.5.22.5.5v1c0 .28-.22.5-.5.5zM13 8h-1c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2zm0 3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5s.5.22.5.5v1zM12 3a1.003 1.003 0 00-1.87-.5l-5.99 9.98c-.09.15-.14.33-.14.52a1.003 1.003 0 001.87.5l5.99-9.98c.09-.15.14-.33.14-.52z"],person:["M15.68 14.32c-.46-1.05-2.68-1.75-4.16-2.4-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15A3.671 3.671 0 0010.32.72C9.68.25 8.79-.01 8-.01c-.79 0-1.68.25-2.31.73-.61.47-1.06 1.13-1.28 1.86-.05.17-.09.33-.11.5-.12.6-.17 1.51-.17 2.15v.08c-.24.09-.45.32-.5.83-.03.38.13.72.2.86.08.35.28.72.63.78.04.17.09.33.15.49 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.37 1.59-1.48.65-3.7 1.35-4.16 2.4-.46 1.05-.27 1.67-.27 1.67h15.92c-.01.01.18-.61-.28-1.66z"],phone:["M15.9 12.41c-.06-.06-3.37-2-3.48-2.05a.794.794 0 00-.32-.08c-.15 0-.34.11-.57.32-.23.22-.94 1.19-1.15 1.4-.21.22-.38.32-.52.32-.07 0-.15-.02-.25-.06-.1-.04-1.16-.58-3.36-2.52-2.2-1.93-2.49-3.2-2.5-3.55 0-.14.11-.31.32-.52.22-.21.45-.41.7-.6.25-.19.49-.4.7-.62.22-.23.32-.42.32-.57 0-.11-.03-.21-.08-.32C5.66 3.46 3.66.15 3.59.08 3.44-.07 2.85 0 2.55.16.16 1.46-.03 3.2 0 3.89c.04.71.49 4.46 4.16 7.95C8.72 16.17 11.89 16 12.1 16c.69 0 2.82-.38 3.72-2.55.13-.32.25-.87.08-1.04z"],"pie-chart":["M7 1.08c-3.37.5-5.97 3.4-5.97 6.92 0 3.87 3.13 7 6.98 7 3.52 0 6.42-2.61 6.91-6H7V1.08z","M8 0v8h8c0-4.42-3.58-8-8-8z"],pin:["M9.41.92c-.51.51-.41 1.5.15 2.56L4.34 7.54C2.8 6.48 1.45 6.05.92 6.58l3.54 3.54-3.54 4.95 4.95-3.54 3.54 3.54c.53-.53.1-1.88-.96-3.42l4.06-5.22c1.06.56 2.04.66 2.55.15L9.41.92z"],pivot:["M4.57 7.02L.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4.27-4.27c-.58-.35-1.07-.84-1.41-1.42zM15 8c-.55 0-1 .45-1 1v.59l-2.57-2.57c-.34.58-.83 1.07-1.41 1.41L12.59 11H12c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-4-3c0-1.66-1.34-3-3-3S5 3.34 5 5s1.34 3 3 3 3-1.34 3-3zM8 6c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"pivot-table":["M2 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm0-4H1C.45 0 0 .45 0 1v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm11.71 4.29C13.53 4.11 13.28 4 13 4s-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l.29-.3V9c0 1.66-1.34 3-3 3H7.41l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H9c2.76 0 5-2.24 5-5V7.41l.29.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2zM15 0H5c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],play:["M12 8c0-.35-.19-.64-.46-.82l.01-.02-6-4-.01.02A.969.969 0 005 3c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02 6-4-.01-.02c.27-.18.46-.47.46-.82z"],plus:["M13 7H9V3c0-.55-.45-1-1-1s-1 .45-1 1v4H3c-.55 0-1 .45-1 1s.45 1 1 1h4v4c0 .55.45 1 1 1s1-.45 1-1V9h4c.55 0 1-.45 1-1s-.45-1-1-1z"],"polygon-filter":["M14 5c-.24 0-.47.05-.68.13L9.97 2.34c.01-.11.03-.22.03-.34 0-1.1-.9-2-2-2S6 .9 6 2c0 .04.01.08.01.12L2.88 4.21C2.61 4.08 2.32 4 2 4 .9 4 0 4.9 0 6c0 .74.4 1.38 1 1.72v4.55c-.6.35-1 .99-1 1.73 0 1.1.9 2 2 2 .74 0 1.38-.4 1.72-1h4.55c.35.6.98 1 1.72 1 1.1 0 2-.9 2-2 0-.37-.11-.7-.28-1L14 9c1.11-.01 2-.9 2-2s-.9-2-2-2zm-4.01 7c-.73 0-1.37.41-1.71 1H3.73c-.18-.3-.43-.55-.73-.72V7.72c.6-.34 1-.98 1-1.72 0-.04-.01-.08-.01-.12l3.13-2.09c.27.13.56.21.88.21.24 0 .47-.05.68-.13l3.35 2.79c-.01.11-.03.22-.03.34 0 .37.11.7.28 1l-2.29 4z"],power:["M8 8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S7 .45 7 1v6c0 .55.45 1 1 1zm3-5.32v2.34c1.21.91 2 2.35 2 3.98 0 2.76-2.24 5-5 5s-5-2.24-5-5c0-1.63.79-3.06 2-3.98V2.68C2.64 3.81 1 6.21 1 9c0 3.87 3.13 7 7 7s7-3.13 7-7c0-2.79-1.64-5.19-4-6.32z"],"predictive-analysis":["M16 6.41c0-1.01-.49-1.94-1.29-2.49-.43-1.92-2.07-3.28-4-3.28-.46 0-.92.08-1.35.24C8.83.31 8.11 0 7.34 0c-.9 0-1.74.44-2.28 1.16-.12-.01-.24-.02-.36-.02-1.31 0-2.42.89-2.77 2.17C.78 3.72 0 4.84 0 6.13c0 .38.07.76.21 1.12C.07 7.6 0 7.98 0 8.36c0 1.11.58 2.11 1.51 2.63.54.56 1.27.87 2.03.87.49 0 .95-.12 1.37-.36a2.85 2.85 0 002.18 1.04c.52 0 1.03-.14 1.47-.42.49.39 1.07.65 1.69.73 1.04 1.15 1.84 2.63 1.84 2.64 0 0 .28.49.26.49.77 0 1.41-.16 1.32-1.04 0 .02-.73-2.31-.73-2.31.41-.21.75-.55.97-.98.9-.52 1.47-1.53 1.47-2.61 0-.24-.03-.48-.08-.71.45-.52.7-1.21.7-1.92zm-1.23 1.02l-.15-.16-.61-.67c-.27-.29-.54-.94-.58-1.39l-.1-1.01c-.05-.59-.94-.58-.91.11 0 .02.1 1.01.1 1.01.03.29.12.62.24.93-.06-.01-.12-.02-.18-.02 0 0-2.06-.1-2.05-.11-.58-.02-.71.97-.04 1l2.05.11c.42.02 1.04.3 1.29.58l.49.54.02.05c.08.21.12.44.12.66 0 .74-.41 1.41-1.07 1.75l-.16.08-.07.18c-.15.38-.48.66-.88.74l-.54.11.7 2.2c-.38-.61-.95-1.43-1.62-2.14l-.12-.13-.17-.01c-.41-.03-.8-.17-1.14-.38l1.36-1.18c.35-.31.83-.44.99-.39 0 0 .63.17.62.18.63.16.83-.74.23-.97l-.62-.18c-.55-.16-1.33.18-1.79.58l-1.53 1.33-.31.26c-.35.29-.75.44-1.2.44-.64 0-1.23-.33-1.58-.86V9.15c0-.4.17-.79.27-.85 0 0 .52-.34.51-.35.71-.53.18-1.23-.49-.89 0-.01-.52.35-.52.35-.26.15-.45.44-.58.77-.11-.11-.22-.2-.34-.28 0 0-1.53-1.01-1.53-1.02-.65-.45-1.2.51-.49.89 0-.01 1.51 1.02 1.51 1.02.37.24.62.78.62 1.09v.67c-.34.19-.63.29-.99.29-.54 0-1.05-.23-1.41-.63l-.05-.06-.07-.04c-.65-.34-1.05-1-1.05-1.73 0-.3.07-.6.2-.87l.12-.25L1.15 7c-.13-.27-.2-.56-.2-.87 0-.9.61-1.68 1.48-1.89l.31-.08.05-.34a1.926 1.926 0 012.38-1.58l.32.08.18-.31c.35-.6.99-.97 1.67-.97.44 0 .86.15 1.2.42l-.36.36v-.01l-.25.26c-.33.27-.74.42-.89.4 0 0-.67-.1-.67-.11-.67-.13-.87.86-.14 1.02.01 0 .67.11.67.11.02 0 .05 0 .07.01-.11.37-.15.77-.1 1.12 0 0 .17.99.15.99.11.52 1.06.36.93-.18 0-.01-.15-.99-.15-.99-.05-.37.12-.94.36-1.19l.39-.4c.05-.05.1-.09.15-.14l.74-.76c.4-.18.83-.27 1.27-.27 1.55 0 2.86 1.12 3.11 2.67l.04.25.21.12c.61.35.98 1 .98 1.7 0 .36-.1.7-.28 1.01z"],prescription:["M10.91 8.34c.14-.21.36-.34.63-.34h1.29c.22 0 .41.07.52.26.09.16.08.33-.04.53l-2.49 2.87 2.77 3.54c.12.17.14.37.02.55-.11.17-.3.25-.5.25h-1.44a.69.69 0 01-.61-.35L9.4 13.51l-1.69 2.15c-.13.21-.36.34-.63.34H5.8c-.22 0-.41-.07-.52-.26-.09-.16-.08-.33.04-.53l2.71-3.48L4.3 6.99H3.03v3.47c0 .33-.26.56-.62.56h-.8c-.35-.01-.61-.23-.61-.56V.56c0-.33.26-.56.62-.56h3.11c.62 0 1.19.08 1.7.24.51.16.96.39 1.34.69a3.194 3.194 0 011.21 2.53c0 .81-.25 1.5-.74 2.08-.37.44-.84.77-1.42 1.01L7.88 7.9c.04.04.07.08.08.1l1.49 1.9 1.46-1.56zM5.18 5c.62 0 1.08-.13 1.39-.37.29-.23.44-.71.44-1.16s-.15-.87-.44-1.1C6.26 2.12 5.8 2 5.18 2H2.99v3h2.19z"],presentation:["M15 1H9c0-.55-.45-1-1-1S7 .45 7 1H1c-.55 0-1 .45-1 1s.45 1 1 1v8c0 .55.45 1 1 1h3.59L3.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 13.41V15c0 .55.45 1 1 1s1-.45 1-1v-1.59l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L10.41 12H14c.55 0 1-.45 1-1V3c.55 0 1-.45 1-1s-.45-1-1-1zm-2 9H3V3h10v7z"],print:["M12 2.02c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v1h8v-1zm3 2H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1v-3h12v3h1c.55 0 1-.45 1-1v-6c0-.56-.45-1-1-1zm-1 3h-2v-1h2v1zm-3 6H5v-3H3v4c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-4h-2v3z"],projects:["M14 3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v1h12V3zm-2-3H4c-.55 0-1 .45-1 1h10c0-.55-.45-1-1-1zm3 5H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-3 6c0 .55-.45 1-1 1H5c-.55 0-1-.45-1-1V9h1v2h6V9h1v2z"],properties:["M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-3h9c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1zm-4 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm13-5H6c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm0 6H6c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],property:["M3 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-.5-6.5a2.5 2.5 0 000 5 2.5 2.5 0 000-5zM7 3h8c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zm8 10H7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zM3 0C1.9 0 1 .9 1 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 6H7c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z"],"publish-function":["M12.16 3.76c.15-.11.3-.16.47-.16.06 0 .17.02.34.06.16.04.31.06.43.06a.58.58 0 00.6-.6c0-.19-.06-.33-.17-.44-.11-.11-.28-.16-.49-.16-.19 0-.37.04-.54.13-.17.09-.39.27-.65.55-.2.21-.48.58-.87 1.11a5.22 5.22 0 00-.78-1.79l-2.05.32-.04.21c.15-.03.28-.04.39-.04.2 0 .37.08.5.25.21.26.5 1.03.88 2.33-.29.36-.49.6-.6.71-.18.19-.33.31-.45.36-.09.04-.19.07-.3.07-.09 0-.23-.04-.42-.13a.904.904 0 00-.36-.09c-.2 0-.36.06-.49.18a.59.59 0 00-.19.46c0 .18.06.32.18.43.12.11.28.16.48.16.2 0 .38-.04.55-.12.17-.08.39-.24.65-.49s.62-.65 1.07-1.19c.18.52.33.89.46 1.13.13.24.28.4.44.51.17.1.37.16.62.16.24 0 .49-.08.74-.25.33-.21.66-.58 1.01-1.09l-.21-.11c-.23.31-.41.5-.52.57a.44.44 0 01-.26.07c-.12 0-.24-.07-.36-.21-.2-.24-.46-.91-.8-2 .29-.49.54-.81.74-.96zM6.37 5.83l.68-2.53h.83l.2-.64h-.84c.24-.91.56-1.59.96-2.01.24-.27.48-.4.71-.4.05 0 .08.01.11.04s.04.06.04.1c0 .04-.03.11-.1.21-.06.1-.1.2-.1.29 0 .13.05.24.15.33.1.09.23.14.39.14.17 0 .31-.06.42-.17.12-.12.18-.27.18-.46 0-.21-.08-.39-.25-.52C9.57.07 9.3 0 8.93 0c-.59 0-1.12.16-1.59.48-.48.32-.93.85-1.36 1.59-.15.26-.29.42-.42.49s-.35.11-.64.1l-.19.65h.81L4.35 7.68c-.2.72-.33 1.16-.4 1.33-.1.24-.26.45-.46.62a.48.48 0 01-.31.1c-.03 0-.06-.01-.08-.03l-.03-.03c0-.02.03-.06.09-.11.06-.06.09-.15.09-.26 0-.13-.05-.23-.14-.32-.1-.09-.23-.13-.41-.13-.21 0-.38.05-.51.16A.52.52 0 002 9.4c0 .16.08.3.23.42.16.12.4.18.74.18.53 0 .99-.13 1.4-.39.41-.26.76-.65 1.07-1.19.3-.53.61-1.39.93-2.59zm2.34 3.46A.997.997 0 008 9c-.28 0-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l.29-.3V15c0 .55.45 1 1 1s1-.45 1-1v-2.59l.29.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2z"],pulse:["M15 8h-1.46l-1.7-2.55-.02.01A.984.984 0 0011 5c-.43 0-.79.27-.93.65h-.01l-1.69 4.51-1.38-8.32h-.02A.989.989 0 006 1c-.41 0-.77.25-.92.61L2.34 8H1c-.55 0-1 .45-1 1s.45 1 1 1h2c.41 0 .77-.25.92-.61l1.65-3.86 1.44 8.63h.02c.08.47.47.84.97.84.43 0 .79-.27.93-.65h.01l2.31-6.17.92 1.38.02-.01c.17.26.46.45.81.45h2c.55 0 1-.45 1-1s-.45-1-1-1z"],random:["M11.48 4h1.11l-.29.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H11c-.32 0-.59.16-.77.38l-.01-.01L8.28 4.8l1.28 1.6L11.48 4zm2.23 6.29a1.003 1.003 0 00-1.42 1.42l.3.29h-1.11l-7.7-9.62h-.01A.996.996 0 003 2H1c-.55 0-1 .45-1 1s.45 1 1 1h1.52l7.7 9.62.01-.01c.18.23.45.39.77.39h1.59l-.29.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2zM2.52 12H1c-.55 0-1 .45-1 1s.45 1 1 1h2c.32 0 .59-.16.77-.38l.01.01 1.94-2.42L4.44 9.6 2.52 12z"],record:["M8 3a5 5 0 100 10A5 5 0 108 3z"],redo:["M12 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm3.71-6.71l-3-3a1.003 1.003 0 00-1.42 1.42L12.59 4H5C2.24 4 0 6.24 0 9s2.24 5 5 5h4v-2H5c-1.66 0-3-1.34-3-3s1.34-3 3-3h7.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],refresh:["M14.99 6.99c-.55 0-1 .45-1 1 0 3.31-2.69 6-6 6-1.77 0-3.36-.78-4.46-2h1.46c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1s1-.45 1-1v-1.74a7.95 7.95 0 006 2.74c4.42 0 8-3.58 8-8 0-.55-.45-1-1-1zm0-7c-.55 0-1 .45-1 1v1.74a7.95 7.95 0 00-6-2.74c-4.42 0-8 3.58-8 8 0 .55.45 1 1 1s1-.45 1-1c0-3.31 2.69-6 6-6 1.77 0 3.36.78 4.46 2h-1.46c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z"],"regression-chart":["M13 6.5c0 .83.67 1.5 1.5 1.5S16 7.33 16 6.5 15.33 5 14.5 5 13 5.67 13 6.5zM8.5 5c.83 0 1.5-.67 1.5-1.5S9.33 2 8.5 2 7 2.67 7 3.5 7.67 5 8.5 5zM9 9.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5S11.33 8 10.5 8 9 8.67 9 9.5zM4.5 8C5.33 8 6 7.33 6 6.5S5.33 5 4.5 5 3 5.67 3 6.5 3.67 8 4.5 8zM15 12H3.26l12.03-8.59-.58-.81L2 11.67V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],remove:["M10.99 6.99h-6c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm-3-7c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.68 6-6 6z"],"remove-column":["M14 0H4c-.55 0-1 .45-1 1v3h2V2h3v12H5v-2H3v3c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14h-3V2h3v12zm-8.71-3.29a1.003 1.003 0 001.42-1.42L4.41 8 5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L3 6.59l-1.29-1.3A1.003 1.003 0 00.29 6.71L1.59 8 .29 9.29a1.003 1.003 0 001.42 1.42L3 9.41l1.29 1.3z"],"remove-column-left":["M4 9h4c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm11-9H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 14H2V2h8v12zm4 0h-3V2h3v12z"],"remove-column-right":["M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 14H2V2h3v12zm9 0H6V2h8v12zM8 9h4c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1z"],"remove-row-bottom":["M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V6h12v8zm0-9H2V2h12v3zm-8 6h4c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1z"],"remove-row-top":["M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2v-3h12v3zm0-4H2V2h12v8zM6 7h4c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1z"],repeat:["M10 5c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1.74A7.95 7.95 0 008 0C3.58 0 0 3.58 0 8c0 4.06 3.02 7.4 6.94 7.92.02 0 .04.01.06.01.33.04.66.07 1 .07 4.42 0 8-3.58 8-8 0-.55-.45-1-1-1s-1 .45-1 1c0 3.31-2.69 6-6 6-.71 0-1.37-.15-2-.38v.01C3.67 12.81 2 10.61 2 8c0-3.31 2.69-6 6-6 1.77 0 3.36.78 4.46 2H11c-.55 0-1 .45-1 1z"],reset:["M6 5c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v1.74A7.95 7.95 0 018 0c4.42 0 8 3.58 8 8 0 4.06-3.02 7.4-6.94 7.92-.02 0-.04.01-.06.01-.33.04-.66.07-1 .07-4.42 0-8-3.58-8-8 0-.55.45-1 1-1s1 .45 1 1c0 3.31 2.69 6 6 6 .71 0 1.37-.15 2-.38v.01c2.33-.82 4-3.02 4-5.63 0-3.31-2.69-6-6-6-1.77 0-3.36.78-4.46 2H5c.55 0 1 .45 1 1z"],resolve:["M6.6 3.3C6.1 3.1 5.6 3 5 3 2.2 3 0 5.2 0 8s2.2 5 5 5c.6 0 1.1-.1 1.6-.3C5.3 11.6 4.5 9.9 4.5 8s.8-3.6 2.1-4.7zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c-.6 0-1.1.1-1.6.3 1.3 1.2 2.1 2.9 2.1 4.7s-.8 3.6-2.1 4.7c.5.2 1 .3 1.6.3 2.8 0 5-2.2 5-5s-2.2-5-5-5z"],rig:["M5.71 3c0 1.1.96 2 2.14 2C9.04 5 10 3.96 10 3c0-1.96-1.47-3-2.14-3H5c0 1.96 2.68 1.4.71 3zm2.5 3l.01.01s0-.01-.01-.01zm6.5 8.29L10 9.59V7c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v2.58l-4.71 4.7c-.18.19-.29.44-.29.72a1.003 1.003 0 001.71.71L6 12.42V15c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.58l3.29 3.29a1.003 1.003 0 001.42-1.42z"],"right-join":["M6.6 3.3C5.3 4.4 4.5 6.1 4.5 8s.8 3.6 2.1 4.7c-.5.2-1 .3-1.6.3-2.8 0-5-2.2-5-5s2.2-5 5-5c.6 0 1.1.1 1.6.3zm-1.96 8.68C3.92 10.83 3.5 9.46 3.5 8s.42-2.83 1.14-3.98C2.6 4.2 1 5.91 1 8s1.6 3.8 3.64 3.98zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c2.8 0 5 2.2 5 5s-2.2 5-5 5c-.6 0-1.1-.1-1.6-.3 1.3-1.1 2.1-2.9 2.1-4.7s-.8-3.5-2.1-4.7c.5-.2 1-.3 1.6-.3z"],ring:["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 12c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"],"rotate-document":["M12 2h-1.59l.29-.29c.19-.18.3-.43.3-.71A1.003 1.003 0 009.29.29l-2 2C7.11 2.47 7 2.72 7 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H12c.55 0 1 .45 1 1v3c0 .55.45 1 1 1s1-.45 1-1V5c0-1.66-1.34-3-3-3zM5.71 5.29A.997.997 0 005 5H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V9c0-.28-.11-.53-.29-.71l-3-3zM7 14H2V7h2v2c0 .55.45 1 1 1h2v4z"],"rotate-page":["M8 6H2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zm-1 8H3V8h4v6zm5-12h-1.59l.29-.29c.19-.18.3-.43.3-.71A1.003 1.003 0 009.29.29l-2 2C7.11 2.47 7 2.72 7 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H12c.55 0 1 .45 1 1v3c0 .55.45 1 1 1s1-.45 1-1V5c0-1.66-1.34-3-3-3z"],route:["M11.669 5.066l.099.189c.113.213.236.434.367.661.226.39.468.78.709 1.151l-.198-.004-.48-.004c-1.745.003-2.369.233-2.369.688 0 .053.226.19 1.038.436l.84.24C13.9 9.064 15 9.83 15 11.63c0 2.123-1.607 3.122-4.027 3.366-.651.065-1.266.075-2.043.05l-.958-.035H5.196l.268-.406c.336-.517.672-1.052.998-1.593h1.636l.572.023c.857.036 1.475.034 2.103-.03 1.526-.153 2.227-.59 2.227-1.375 0-.531-.402-.84-1.66-1.22l-.691-.198c-1.04-.293-1.764-.562-2.222-.946C8.8 8.366 9 7.612 9 6.997a5.03 5.03 0 00-.184-1.334c.645-.395 1.598-.562 2.853-.597zM4 3a4.007 4.007 0 014 3.997C8 9.21 4 15 4 15l-.416-.62C2.56 12.827 0 8.767 0 6.997A4.002 4.002 0 014 3zm0 2a2 2 0 10.001 4.001A2 2 0 004 5zm10-4c1.103 0 1.996.896 2 1.999C16 4.105 14 7 14 7l-.293-.44C13.15 5.707 12 3.838 12 2.999 12 1.896 12.897 1 14 1z"],satellite:["M3 9c0-.6.4-1 1-1s1 .4 1 1c0 1.1.9 2 2 2 .6 0 1 .4 1 1s-.4 1-1 1c-2.2 0-4-1.8-4-4zM0 9c0-.6.4-1 1-1s1 .4 1 1c0 2.8 2.2 5 5 5 .6 0 1 .4 1 1s-.4 1-1 1c-3.9 0-7-3.1-7-7zm7 1c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1zm1.3-2.8c-.4-.4-.4-1 0-1.4l4.5-4.5c.4-.4 1-.4 1.4 0l.5.5c.4.4.4 1 0 1.4l-4.5 4.5c-.4.4-1 .4-1.4 0l-.5-.5zM5.2.3c.4-.4 1-.4 1.4 0l2.1 2.1c.4.4.4 1 0 1.4l-.9.9c-.4.4-1 .4-1.4 0L4.3 2.6c-.4-.4-.4-1 0-1.4l.9-.9zm7 7c.4-.4 1-.4 1.4 0l2.1 2.1c.4.4.4 1 0 1.4l-.9.9c-.4.4-1 .4-1.4 0l-2.1-2.1c-.4-.4-.4-1 0-1.4l.9-.9z"],saved:["M6.71 9.29a1.003 1.003 0 00-1.42 1.42l2 2a.997.997 0 001.6-.27h.01l2-4h-.01c.06-.13.11-.28.11-.44 0-.55-.45-1-1-1-.39 0-.72.23-.89.56H9.1l-1.38 2.76-1.01-1.03zM9 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5L9 0zm3 14H4V2h4v4h4v8z"],"scatter-plot":["M15 12H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-.5-7c.83 0 1.5-.67 1.5-1.5S15.33 2 14.5 2 13 2.67 13 3.5 13.67 5 14.5 5zm-3 4c.83 0 1.5-.67 1.5-1.5S12.33 6 11.5 6 10 6.67 10 7.5 10.67 9 11.5 9zm-4-2C8.33 7 9 6.33 9 5.5S8.33 4 7.5 4 6 4.67 6 5.5 6.67 7 7.5 7zm-3 4c.83 0 1.5-.67 1.5-1.5S5.33 8 4.5 8 3 8.67 3 9.5 3.67 11 4.5 11z"],search:["M15.55 13.43l-2.67-2.68a6.94 6.94 0 001.11-3.76c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.42 3.76-1.11l2.68 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"],"search-around":["M13.5 11c-.51 0-.98.15-1.38.42l-2.4-2.41c.17-.3.28-.64.28-1.01s-.11-.71-.28-1.01l2.41-2.41c.39.27.86.42 1.37.42a2.5 2.5 0 000-5A2.5 2.5 0 0011 2.5c0 .51.15.98.42 1.38l-2.41 2.4C8.71 6.11 8.37 6 8 6s-.71.11-1.01.28l-2.41-2.4c.27-.4.42-.87.42-1.38a2.5 2.5 0 00-5 0A2.5 2.5 0 002.5 5c.51 0 .98-.15 1.38-.42l2.41 2.41C6.11 7.29 6 7.63 6 8s.11.71.28 1.01l-2.41 2.41c-.39-.27-.86-.42-1.37-.42a2.5 2.5 0 000 5A2.5 2.5 0 005 13.5c0-.51-.15-.98-.42-1.38l2.41-2.41c.3.18.64.29 1.01.29s.71-.11 1.01-.28l2.41 2.41c-.27.39-.42.86-.42 1.37a2.5 2.5 0 005 0 2.5 2.5 0 00-2.5-2.5zm0-10c.83 0 1.5.67 1.5 1.5S14.33 4 13.5 4 12 3.33 12 2.5 12.67 1 13.5 1zm-11 3C1.67 4 1 3.33 1 2.5S1.67 1 2.5 1 4 1.67 4 2.5 3.33 4 2.5 4zm0 11c-.83 0-1.5-.67-1.5-1.5S1.67 12 2.5 12s1.5.67 1.5 1.5S3.33 15 2.5 15zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"],"search-template":["M15.55 13.43l-2.67-2.67c.7-1.09 1.11-2.38 1.11-3.77 0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.41 3.77-1.11l2.67 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm2.5-6h-5c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zm0-2h-5c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zm0 4h-5c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5z"],"search-text":["M9 4H5c-.55 0-1 .45-1 1s.45 1 1 1h1v3c0 .55.45 1 1 1s1-.45 1-1V6h1c.55 0 1-.45 1-1s-.45-1-1-1zm6.56 9.44l-2.67-2.67C13.59 9.68 14 8.39 14 7c0-3.87-3.13-7-7-7S0 3.13 0 7s3.13 7 7 7c1.39 0 2.68-.41 3.77-1.11l2.67 2.67a1.498 1.498 0 102.12-2.12zM7 12c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"],"segmented-control":["M15 4H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 6H8V6h6v4z"],select:["M16 15c0-.28-.12-.52-.31-.69l.02-.02-3.12-3.12 3.41-.84-8.05-2.86c.03-.09.05-.17.05-.27V2c0-.55-.45-1-1-1H3c0-.55-.45-1-1-1S1 .45 1 1c-.55 0-1 .45-1 1s.45 1 1 1v4c0 .55.45 1 1 1h5.2c.1 0 .18-.02.27-.05L10.33 16l.85-3.41 3.12 3.12.02-.02c.16.19.4.31.68.31.04 0 .07-.02.1-.02s.06.02.1.02c.44 0 .8-.36.8-.8 0-.04-.02-.07-.02-.1s.02-.06.02-.1zM6 6H3V3h3v3z"],selection:["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-9C6.34 5 5 6.34 5 8s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"],"send-message":["M15.398 9.01l-13.87 6.865c-.536.267-1.176.081-1.422-.427A.953.953 0 010 15v-4.838l8.67-2.168L0 5.923V1.001C0 .47.407 0 1.004 0c.169 0 .416.04.567.116L15.403 7.07a1.084 1.084 0 01-.005 1.939z"],"send-to":["M15 7.5c-.8 0-1.5-.4-2-1l-1.2 1.2c-.4.5-1.1.7-1.8.7-1.4.1-2.5-1-2.5-2.4 0-.7.3-1.3.7-1.8L9.5 3c-.6-.5-1-1.2-1-2 0-.3.1-.7.2-1H8C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8v-.7c-.3.1-.6.2-1 .2zM15 0h-4c-.6 0-1 .5-1 1s.4 1 1 1h1.6L9.3 5.3c-.2.2-.3.4-.3.7 0 .5.4 1 1 1 .3 0 .5-.1.7-.3L14 3.4V5c0 .6.4 1 1 1 .5 0 1-.4 1-1V1c0-.5-.4-1-1-1z"],"send-to-graph":["M6 9H2c-.55 0-1 .45-1 1s.45 1 1 1h1.59L.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L5 12.41V14c0 .55.45 1 1 1s1-.45 1-1v-4c0-.55-.45-1-1-1zm8 .5c-.56 0-1.06.23-1.42.59l-2.13-1.24L8.99 8l3.59-2.09A2.002 2.002 0 0016 4.5c0-1.1-.9-2-2-2s-2 .9-2 2c0 .19.03.37.08.54L8.5 7.13v-3.2c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S6 .9 6 2c0 .93.64 1.71 1.5 1.93v3.2l-.88-.52-2.7-1.57c.05-.17.08-.35.08-.54 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.56 0 1.06-.23 1.42-.59l2.13 1.24 3.84 2.24 2.7 1.57c-.06.17-.09.35-.09.54 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z"],"send-to-map":["M6 9H2c-.55 0-1 .45-1 1s.45 1 1 1h1.59L.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L5 12.41V14c0 .55.45 1 1 1s1-.45 1-1v-4c0-.55-.45-1-1-1zm9.55-5.83l-4.49-3A.975.975 0 009.99.15L5.53 2.82 1.56.17A1.003 1.003 0 000 1v6h2V2.87l2.94 1.96.06.03V7h1V4.86s.01 0 .01-.01L10 2.47v8.67s-.01 0-.01.01l-.99.58v2.33l1.47-.88 3.97 2.65A1.003 1.003 0 0016 15V4c0-.35-.18-.65-.45-.83zM14 13.13l-2.94-1.96c-.02-.01-.04-.02-.05-.03v-8.6l3 2v8.59z"],"series-add":["M10.68 7.9c.44.54 1.07.92 1.79 1.05l-2.76 2.76c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L5 8.41l-3 3V13h13c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 6.11 4.72 6 5 6s.53.11.71.29L9 9.59l1.68-1.69zM15 3c.55 0 1 .45 1 1s-.45 1-1 1h-1v1c0 .55-.45 1-1 1s-1-.45-1-1V5h-1c-.55 0-1-.45-1-1s.45-1 1-1h1V2c0-.55.45-1 1-1s1 .45 1 1v1h1z"],"series-configuration":["M9.94 9.64c.65.23 1.34.36 2.06.36.14 0 .29-.01.43-.01L9.7 12.71c-.18.18-.43.29-.71.29-.28 0-.53-.11-.71-.3L5 9.41l-3 3V14h12.99c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 7.11 4.72 7 5 7c.28 0 .53.11.71.29L9 10.59l.94-.95zm4.73-6.44h.92c.22 0 .4.18.4.4v.8c0 .22-.18.4-.4.4h-.93c-.06.2-.14.38-.24.55l.66.65c.15.15.15.4 0 .55l-.54.55c-.15.15-.4.15-.55 0l-.65-.65c-.17.1-.36.18-.55.24v.91c0 .22-.18.4-.4.4h-.8c-.22 0-.4-.18-.4-.4v-.93c-.18-.06-.36-.13-.52-.22l-.68.68c-.15.16-.41.16-.57 0l-.56-.56a.417.417 0 010-.57l.68-.68c-.08-.16-.16-.33-.22-.52h-.93c-.22 0-.4-.18-.4-.4v-.8c0-.22.18-.4.4-.4h.93c.06-.2.14-.38.24-.55l-.65-.64a.392.392 0 010-.55l.54-.55a.38.38 0 01.54 0l.65.65c.18-.1.36-.18.55-.24V.4c0-.22.18-.4.4-.4h.8c.22 0 .4.18.4.4v.93c.18.06.35.14.52.22l.68-.68c.15-.16.41-.16.57 0l.57.57c.15.16.15.41 0 .57l-.68.68c.09.16.16.33.22.51zm-4.18.8c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5c-.82 0-1.5.67-1.5 1.5z"],"series-derived":["M10.66 7.92c.44.54 1.07.91 1.8 1.03L9.71 11.7c-.18.19-.43.3-.71.3s-.53-.11-.71-.3L5 8.41l-3 3V13h13c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 6.11 4.72 6 5 6s.53.11.71.29L9 9.59l1.66-1.67zM12.3 5.3l.3-.3H8c-.6 0-1-.4-1-1s.4-1 1-1h4.6l-.3-.3c-.2-.2-.3-.4-.3-.7 0-.6.5-1 1-1 .3 0 .5.1.7.3l2 2c.2.2.3.4.3.7s-.1.5-.3.7l-2 2c-.2.2-.4.3-.7.3-.6 0-1-.4-1-1 0-.3.1-.5.3-.7z"],"series-filtered":["M9.29 9.3c.3.62.8 1.12 1.42 1.41l-1 1c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L5 8.41l-3 3V13h13c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 6.11 4.72 6 5 6s.53.11.71.29L9 9.59l.29-.29zM15.48 1c.31 0 .52.26.52.57 0 .16-.06.3-.17.41l-2.86 2.73v2.63c0 .16-.06.3-.17.41l-.82 1.1c-.1.1-.25.17-.41.17-.31 0-.57-.26-.57-.57V4.71L8.17 1.98A.566.566 0 018 1.57c0-.31.26-.57.57-.57h6.91z"],"series-search":["M9.6 8.94a4.937 4.937 0 001.82.01c.1-.01.22-.04.39-.08l.23-.07c.04-.01.08-.02.11-.04l.22.22-2.7 2.72c-.18.19-.43.3-.71.3s-.53-.11-.71-.3L4.98 8.41l-2.99 3V13h12.94c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V3.99c0-.55.45-1 1-1s1 .45 1 1v4.59l2.28-2.3c.17-.18.42-.29.7-.29s.53.11.7.29l3.28 3.3.64-.64zm6.22-.41c.1.12.17.27.18.44 0 .34-.27.61-.61.61a.57.57 0 01-.43-.18l-2.24-2.25c-.13.08-.26.16-.4.23-.02.01-.05.02-.07.03-.14.06-.27.12-.42.17h-.01c-.14.05-.29.08-.44.11-.04.01-.08.02-.11.02-.15.02-.3.04-.46.04-1.85 0-3.35-1.51-3.35-3.37S8.96 1.01 10.81 1c1.85 0 3.35 1.51 3.35 3.37 0 .16-.02.31-.04.47-.01.04-.01.07-.02.11-.02.15-.05.29-.1.44v.01c-.05.15-.11.28-.17.42-.01.02-.02.05-.03.07-.07.14-.14.27-.23.4l2.25 2.24zm-5.01-1.94c1.22 0 2.21-.99 2.21-2.22 0-1.23-.99-2.22-2.21-2.22S8.6 3.14 8.6 4.37c0 1.22.99 2.22 2.21 2.22z"],settings:["M3 1c0-.55-.45-1-1-1S1 .45 1 1v3h2V1zm0 4H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm12-4c0-.55-.45-1-1-1s-1 .45-1 1v2h2V1zM9 1c0-.55-.45-1-1-1S7 .45 7 1v6h2V1zM1 15c0 .55.45 1 1 1s1-.45 1-1v-5H1v5zM15 4h-2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-2 11c0 .55.45 1 1 1s1-.45 1-1V9h-2v6zM9 8H7c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-2 7c0 .55.45 1 1 1s1-.45 1-1v-2H7v2z"],shapes:["M5.92 8.139c.44-.282 1.006-.121 1.264.358l2.689 4.988c.083.155.127.33.127.51C10 14.55 9.587 15 9.077 15H3.924a.864.864 0 01-.438-.12c-.449-.263-.617-.873-.376-1.362l2.465-4.989c.08-.162.2-.297.346-.39zM12 4a3 3 0 110 6 3 3 0 010-6zM6 1a1 1 0 011 1v4a1 1 0 01-1 1H2a1 1 0 01-1-1V2a1 1 0 011-1h4z"],share:["M10.99 13.99h-9v-9h4.76l2-2H.99c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V7.24l-2 2v4.75zm4-14h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L7.29 7.28a1 1 0 00-.3.71 1.003 1.003 0 001.71.71l5.29-5.29V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.56-.45-1.01-1-1.01z"],"shared-filter":["M13.843 15.163c.232.53.138.837.138.837H6.017s-.088-.308.138-.837c.226-.53 1.338-.88 2.079-1.206.735-.332.66-.53.685-.8 0-.03.006-.068.006-.105a2.171 2.171 0 01-.61-.892v-.006s-.006-.006-.006-.012c-.025-.074-.056-.16-.075-.24-.176-.031-.276-.222-.314-.394a.8.8 0 01-.1-.437c.025-.253.131-.37.244-.419v-.037c0-.313.032-.775.088-1.07A1.835 1.835 0 018.85 8.37c.315-.24.76-.37 1.156-.37.396 0 .842.13 1.156.37.301.233.534.56.64.935.026.08.045.166.057.246.057.295.088.75.088 1.064v.043c.113.05.214.167.232.413a.75.75 0 01-.1.437c-.038.172-.132.357-.301.387a1.77 1.77 0 01-.076.24.136.136 0 01-.006.025 2.346 2.346 0 01-.597.892v.111c.025.277-.075.474.666.8.741.326 1.853.67 2.079 1.2z","M14.852 15h1.131s.083-.27-.12-.732c-.16-.373-.82-.641-1.411-.88a15.328 15.328 0 01-.409-.17c-.565-.25-.57-.412-.577-.61-.001-.03-.002-.06-.005-.09v-.097c.22-.2.401-.469.522-.781 0 0 .005-.016.005-.022.028-.07.05-.14.066-.21.149-.026.231-.188.264-.339a.655.655 0 00.088-.382c-.016-.215-.104-.318-.203-.36v-.039c0-.274-.028-.673-.077-.931a1.598 1.598 0 00-.61-1.034 1.736 1.736 0 00-1.285-.3c.236.285.42.622.529.996.038.124.065.248.083.36.048.257.079.578.093.867a1.736 1.736 0 01.08 1.624 1.65 1.65 0 01-.217.453 1.42 1.42 0 01-.176.209c-.08.204-.178.4-.292.585l.202.083c.285.117.64.261.9.387.226.11.475.245.698.414.213.161.476.408.63.764.034.08.065.159.091.235zM12.14 14.12l.09.037zM11 1c.55 0 1 .45 1 1 0 .28-.11.53-.29.7L8 6.41v1.374a2.813 2.813 0 00-.833 1.589 6.925 6.925 0 00-.092.86 1.64 1.64 0 00-.25.739l-.001.004c-.02.217.006.413.046.573L5.71 12.71A1.003 1.003 0 014 12V6.41L.29 2.71A1.003 1.003 0 011 1h10z"],shield:["M8 16c4.667-3.048 7-7.238 7-12.571-1.556 0-3.889-1.143-7-3.429-3.111 2.286-5.444 3.429-7 3.429C1 8.762 3.333 12.952 8 16zM8 2.121c2.005 1.388 3.715 2.304 5.186 2.735-.342 3.702-2.05 6.683-5.186 9.038V2.121z"],shop:["M3 2h10c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1s.45 1 1 1zm9 11H4v-3H2v5c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-5h-2v3zm4-6l-1.01-3.17C14.9 3.36 14.49 3 14 3H2c-.49 0-.9.36-.98.83L.01 7H0c0 1.1.9 2 2 2s2-.9 2-2c0 1.1.9 2 2 2s2-.9 2-2c0 1.1.9 2 2 2s2-.9 2-2c0 1.1.9 2 2 2s2-.9 2-2z"],"shopping-cart":["M14 10H7.72l-.33-1H13c.39 0 .72-.23.89-.56h.01l2-4h-.01c.06-.13.11-.28.11-.44 0-.55-.45-1-1-1H5.39l-.44-1.32h-.01C4.8 1.29 4.44 1 4 1H1c-.55 0-1 .45-1 1s.45 1 1 1h2.28l2.33 7H4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2h6c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2zM6.05 5h7.33l-1 2H6.72l-.67-2z"],"signal-search":["M5.474 7.971A5.31 5.31 0 006.66 8.9l.007.019.018.056c.015.038.038.06.045.098l1.5 5.999a.75.75 0 01-1.455.36l-.42-1.68h-.704l-.42 1.68a.746.746 0 01-.907.547.746.746 0 01-.547-.907l1.5-6c.007-.037.03-.06.044-.097.015-.037.015-.075.038-.112a.722.722 0 01-.105-.36c0-.207.084-.394.22-.53zM2.795 5.277a.763.763 0 00-.015-1.065.756.756 0 00-1.065.015c-2.286 2.34-2.286 6.21 0 8.549a.747.747 0 101.072-1.042c-1.709-1.763-1.709-4.702.008-6.457zM7.808 9.388a5.318 5.318 0 001.58.211 2.236 2.236 0 01-.656.98.756.756 0 01-1.057-.098.756.756 0 01.097-1.057l.036-.036zM11.544 9.105l.378.378a6.02 6.02 0 01-1.638 3.285c-.285.3-.757.3-1.057.015a.74.74 0 01-.015-1.057 4.52 4.52 0 001.185-2.24c.4-.083.785-.212 1.147-.381z","M4.054 9.424c-.427-.352-.352-1.582-.03-1.822a.752.752 0 00.15-1.05.752.752 0 00-1.05-.15c-1.079.802-1.221 3.18-.03 4.177a.75.75 0 10.96-1.155zM9.318 0a4.318 4.318 0 014.317 4.318c0 .206-.02.402-.049.598-.01.05-.01.088-.02.138-.039.196-.078.382-.137.569v.01c-.059.186-.137.363-.216.54l-.039.087a5.285 5.285 0 01-.294.51l2.884 2.886a.878.878 0 01.236.559.787.787 0 01-.785.785.785.785 0 01-.56-.226L11.772 7.89a5.285 5.285 0 01-.51.295l-.089.039c-.176.079-.353.157-.54.216h-.01a3.701 3.701 0 01-.568.137c-.05.01-.099.02-.138.02-.196.03-.392.049-.598.049A4.318 4.318 0 015 4.327 4.332 4.332 0 019.318 0zm-.02 1.1A3.195 3.195 0 006.1 4.298a3.195 3.195 0 003.198 3.198 3.195 3.195 0 003.198-3.198A3.195 3.195 0 009.298 1.1z"],"sim-card":["M13.71 4.29l-4-4A.997.997 0 009 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5c0-.28-.11-.53-.29-.71zM7 6h2v2H7V6zM4 6h2v2H4V6zm2 8H4v-2h2v2zm3 0H7v-2h2v2zm3 0h-2v-2h2v2zm0-3H4V9h8v2zm0-3h-2V6h2v2z"],slash:["M10 2a.99.99 0 00-.96.73l-2.99 9.96A1.003 1.003 0 007 14c.46 0 .85-.31.96-.73l2.99-9.96A1.003 1.003 0 0010 2z"],"small-cross":["M9.41 8l2.29-2.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L8 6.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42L6.59 8 4.3 10.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L8 9.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L9.41 8z"],"small-minus":["M11 7H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1z"],"small-plus":["M11 7H9V5c0-.55-.45-1-1-1s-1 .45-1 1v2H5c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V9h2c.55 0 1-.45 1-1s-.45-1-1-1z"],"small-tick":["M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z"],snowflake:["M13.364 9l.879.879a1 1 0 11-1.415 1.414l-2.12-2.121A1.003 1.003 0 0110.568 9H9v1.604c.042.03.083.065.121.103l2.122 2.121a1 1 0 01-1.415 1.415L9 13.414V15a1 1 0 01-2 0v-1.636l-.879.879a1 1 0 11-1.414-1.415l2.121-2.12c.054-.054.111-.1.172-.139V9H5.38c-.038.06-.084.118-.137.172l-2.122 2.12A1 1 0 111.707 9.88L2.586 9H1a1 1 0 110-2h1.536l-.829-.828a1 1 0 011.414-1.415L5.243 6.88c.038.038.072.079.103.121H7V5.38a1.003 1.003 0 01-.172-.137L4.708 3.12A1 1 0 016.12 1.707L7 2.586V1a1 1 0 112 0v1.536l.828-.829a1 1 0 011.415 1.414L9.12 5.243A1.007 1.007 0 019 5.346V7h1.604c.03-.042.065-.083.103-.121l2.121-2.122a1 1 0 011.415 1.415L13.414 7H15a1 1 0 010 2h-1.636z"],"social-media":["M9.5 4c.4 0 .8-.1 1.1-.3C12 4.5 12.9 6 13 7.6c0 .5.5.9 1 .9.6 0 1-.4 1-1v-.2c-.2-2.4-1.5-4.4-3.5-5.5-.1-1-.9-1.8-2-1.8s-2 .9-2 2 .9 2 2 2zM4 8.5c0-.7-.4-1.3-.9-1.7.3-1.4 1.2-2.6 2.5-3.3.3-.1.6-.4.6-.9s-.4-1-1-1c-.2 0-.3 0-.5.1-1.9 1-3.2 2.8-3.6 5C.4 7.1 0 7.8 0 8.5c0 1.1.9 2 2 2s2-.9 2-2zm8.8 1.2c-1.1 0-2 .9-2 2v.3c-.8.6-1.8.9-2.8.9-1.2 0-2.3-.4-3.2-1.1-.2-.2-.4-.3-.7-.3-.6 0-1 .4-1 1 0 .3.1.6.3.8C4.6 14.4 6.2 15 8 15c1.5 0 3-.5 4.1-1.3.2.1.5.1.7.1 1.1 0 2-.9 2-2s-.9-2.1-2-2.1z"],sort:["M5 12c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 001 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 005 12zm3-9h7c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm7 2H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm0 8H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z"],"sort-alphabetical":["M6 12c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 002 12a1.003 1.003 0 00-.71 1.71l2 2c.19.18.44.29.71.29.28 0 .53-.11.71-.29l2-2c.18-.18.29-.43.29-.71a.99.99 0 00-1-1zm7.93-.95v-1.04H9.25v1.11h2.94L9 14.96V16h5.02v-1.11h-3.27l3.18-3.84zm-1.42-4.84l.62 1.78H15L11.94.01H10.1L7 7.99h1.81l.64-1.78h3.06zm-1.52-4.24h.02l1.03 2.93H9.92l1.07-2.93z"],"sort-alphabetical-desc":["M5.99 11.99c-.28 0-.53.11-.71.29l-.29.29V8.99c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29a1.003 1.003 0 00-1.42 1.42l2 2c.18.18.43.29.71.29.28 0 .53-.11.71-.29l2-2c.18-.18.29-.43.29-.71 0-.56-.45-1.01-1-1.01zM12.7 10h-1.38L9 15.99h1.36l.48-1.33h2.3l.46 1.33H15L12.7 10zm-1.51 3.67l.8-2.2h.02l.77 2.2h-1.59zm3.8-7.17h-4.57l4.45-5.12V0H8.34v1.48h4.1L7.99 6.59v1.39h7V6.5z"],"sort-asc":["M8 7h3c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h1c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm0 8h5c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm-3 1c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 001 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 005 12zm10 1H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z"],"sort-desc":["M5 12c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 001 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 005 12zm4 1H8c-.55 0-1 .45-1 1s.45 1 1 1h1c.55 0 1-.45 1-1s-.45-1-1-1zm4-8H8c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm-2 4H8c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm4-8H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z"],"sort-numerical":["M6 11.99c-.28 0-.53.11-.71.29l-.29.3V8.99c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29.28 0 .53-.11.71-.29l2-2A1.003 1.003 0 006 11.99zm7.91-.08c-.06-.36-.17-.68-.33-.96-.16-.28-.37-.51-.64-.69-.27-.17-.61-.26-1.03-.26-.28 0-.54.06-.78.17-.23.11-.43.26-.6.45-.17.19-.3.41-.39.67a2.492 2.492 0 00-.04 1.52 1.623 1.623 0 00.89 1.03c.22.11.45.16.68.16.26 0 .5-.05.7-.15s.38-.26.53-.5l.02.02c-.01.16-.03.34-.07.54-.03.2-.09.4-.17.57-.08.18-.18.33-.31.45s-.29.19-.5.19a.63.63 0 01-.48-.21c-.13-.14-.21-.31-.25-.5H10.1c.03.25.1.48.19.68.1.2.22.37.38.5.16.14.33.24.54.31s.42.1.65.1c.39 0 .72-.09.99-.27.27-.18.49-.41.66-.7.17-.29.29-.61.37-.97.08-.36.12-.72.12-1.07 0-.36-.03-.72-.09-1.08zm-1.14.54c-.04.13-.09.24-.16.34a.78.78 0 01-.27.24c-.11.06-.24.09-.39.09a.75.75 0 01-.37-.09.777.777 0 01-.26-.25c-.07-.1-.12-.22-.15-.35-.03-.13-.05-.26-.05-.4 0-.13.02-.26.05-.39.04-.13.09-.24.16-.34.07-.1.16-.18.26-.24s.22-.09.35-.09c.14 0 .26.03.37.09.11.06.2.14.28.24a1.32 1.32 0 01.23.74c0 .15-.02.28-.05.41zm-1.56-4.47H13V0h-1.42c-.05.3-.16.56-.31.76-.16.21-.35.37-.58.5-.23.13-.49.21-.78.26-.3.05-.6.07-.91.06V2.8h2.21v5.18z"],"sort-numerical-desc":["M6 11.99c-.28 0-.53.11-.71.29l-.29.3V8.99c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29a.982.982 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 006 11.99zm7.86-9.45c-.09-.48-.26-.9-.5-1.28S12.8.58 12.4.35C12 .12 11.49 0 10.86 0c-.43 0-.82.07-1.17.22s-.65.35-.9.6-.44.55-.58.89c-.14.34-.2.71-.2 1.11 0 .31.05.61.15.91.1.3.26.57.48.8.23.24.52.43.85.58.33.14.68.21 1.03.21.4 0 .75-.07 1.05-.2.3-.13.57-.35.79-.66l.02.02c-.02.21-.05.45-.1.73-.05.27-.13.53-.25.76-.12.24-.27.44-.47.6-.19.16-.44.25-.75.25a.98.98 0 01-.72-.29c-.19-.18-.31-.4-.37-.66H8.15c.05.34.14.64.29.9.15.26.34.49.57.67.23.18.5.32.8.41.31.1.63.15.98.15.58 0 1.08-.12 1.48-.36.4-.24.73-.55.99-.93.26-.39.44-.82.56-1.29.12-.48.18-.96.18-1.44s-.05-.96-.14-1.44zm-1.71.72c-.05.17-.14.32-.24.46-.11.13-.24.24-.41.31-.16.08-.36.12-.58.12-.21 0-.39-.04-.55-.13-.16-.08-.29-.19-.39-.33-.12-.14-.19-.29-.24-.46-.05-.17-.08-.35-.08-.54 0-.18.03-.35.08-.52.06-.16.14-.31.25-.44.11-.13.24-.24.4-.32.16-.08.33-.12.52-.12.21 0 .4.04.56.12.16.08.3.19.41.32.11.14.2.29.26.46.06.17.09.35.09.52 0 .2-.03.38-.08.55zm-.46 7.31c-.12.15-.26.28-.44.37-.17.09-.37.16-.58.2-.22.04-.44.05-.67.05v.92h1.65v3.88h1.33V10h-1.06c-.03.23-.11.42-.23.57z"],"split-columns":["M12 10a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H9V2h3v1.71c.31-.13.64-.21 1-.21s.69.08 1 .21V1c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2.71c.31-.13.64-.21 1-.21s.69.08 1 .21V2h3v5H3.41l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L3.41 9H7v5H4v-1.71c-.31.13-.64.21-1 .21s-.69-.08-1-.21V15c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-2.71c-.31.13-.64.21-1 .21s-.69-.08-1-.21V14H9V9h3.59l-.29.29c-.19.18-.3.43-.3.71z"],square:["M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V2h12v12z"],"stacked-chart":["M10 2c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v3h3V2zm3 10h1c.55 0 1-.45 1-1V8h-3v3c0 .55.45 1 1 1zm2-7c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v2h3V5zm-5 1H7v3h3V6zM5 7c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v1h3V7zm3 5h1c.55 0 1-.45 1-1v-1H7v1c0 .55.45 1 1 1zm7 1H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM3 12h1c.55 0 1-.45 1-1V9H2v2c0 .55.45 1 1 1z"],star:["M8 0l2.5 5.3 5.5.8-4 4.1.9 5.8L8 13.3 3.1 16l.9-5.8-4-4.1 5.5-.8z"],"star-empty":["M16 6.11l-5.53-.84L8 0 5.53 5.27 0 6.11l4 4.1L3.06 16 8 13.27 12.94 16 12 10.21l4-4.1zM4.91 13.2l.59-3.62L3 7.02l3.45-.53L8 3.2l1.55 3.29 3.45.53-2.5 2.56.59 3.62L8 11.49 4.91 13.2z"],"step-backward":["M12 3c-.24 0-.44.09-.62.23l-.01-.01L7 6.72V4c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V9.28l4.38 3.5.01-.01c.17.14.37.23.61.23.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"step-chart":["M15 12H2v-2h3c.55 0 1-.45 1-1V7h2v1c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V5h1c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1v3h-2V6c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v2H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],"step-forward":["M12 3h-1c-.55 0-1 .45-1 1v2.72l-4.38-3.5v.01A.987.987 0 005 3c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1 .24 0 .44-.09.62-.23l.01.01L10 9.28V12c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],stop:["M12 3H4c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],stopwatch:["M9 2v1.083A6.002 6.002 0 018 15 6 6 0 017 3.083V2H6a1 1 0 110-2h4a1 1 0 010 2H9zM8 5a4 4 0 104 4H8V5z"],strikethrough:["M14 7H8.65c-.38-.09-.73-.18-1.04-.26-.31-.08-.49-.13-.54-.14-.43-.11-.79-.29-1.05-.52-.27-.23-.4-.55-.4-.95 0-.29.07-.53.21-.72s.32-.34.54-.46c.22-.11.46-.19.72-.24.26-.05.52-.07.77-.07.74 0 1.36.15 1.84.46.32.2.55.5.68.9h2.22c-.06-.33-.17-.64-.32-.92-.25-.45-.59-.84-1.02-1.15-.43-.31-.93-.54-1.49-.7S8.59 2 7.95 2c-.55 0-1.1.07-1.63.2-.54.13-1.02.34-1.45.62-.42.28-.76.63-1.02 1.05-.26.42-.39.92-.39 1.5 0 .3.04.59.13.88.08.26.21.51.39.75H2c-.55 0-1 .45-1 1s.45 1 1 1h7.13c.25.07.49.14.71.22.25.09.48.23.7.44.21.21.32.53.32.97 0 .21-.05.43-.14.63-.09.21-.24.39-.45.55-.21.16-.48.29-.81.39-.33.1-.73.15-1.2.15-.44 0-.84-.05-1.21-.14-.37-.09-.7-.24-.99-.43-.29-.2-.51-.45-.67-.76-.01 0-.01-.01-.02-.02H3.14a3.68 3.68 0 001.39 2.03c.46.34 1 .58 1.62.74.61.15 1.27.23 1.97.23.61 0 1.2-.07 1.79-.2.58-.13 1.11-.34 1.56-.63.46-.29.83-.66 1.11-1.11.28-.45.42-1 .42-1.64 0-.3-.05-.6-.15-.9-.05-.19-.13-.36-.22-.52H14c.55 0 1-.45 1-1s-.45-1-1-1z"],style:["M14 14H2V2h8.76l2-2H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6.24l-2 2V14zm1.4-14L9.7 5.7l2.1 2.1L16 3.6V0h-.6zM4 11.92c2.33.15 4.42.15 6.15-1.5.82-.83.82-2.25 0-3.08-.45-.38-.98-.6-1.5-.6-.53 0-1.05.22-1.43.6-.82.91-1.27 3.38-3.22 4.58z"],"swap-horizontal":["M0 7.02L.05 7H0v.02zm2-2.03h9.57l-1.29 1.29A1.003 1.003 0 0011.7 7.7l2.99-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2.99-3a1.07 1.07 0 00-.71-.28 1.003 1.003 0 00-.71 1.71L11.57 3H2c-.55 0-1 .45-1 1a1 1 0 001 .99zM15.96 9H16v-.02l-.04.02zM14 11.01H4.43l1.29-1.29A1.003 1.003 0 004.3 8.3l-2.99 3a.99.99 0 00-.29.7c0 .28.11.53.29.71l2.99 3a1.003 1.003 0 001.42-1.42L4.43 13H14c.55 0 1-.45 1-1s-.45-.99-1-.99z"],"swap-vertical":["M9 0h-.02L9 .04V0zM7 16h.02L7 15.95V16zM4.7 1.31c-.18-.18-.43-.29-.7-.29s-.53.11-.71.29l-3 2.99a1.003 1.003 0 001.42 1.42L3 4.43V14c0 .55.45 1 1 1s1-.45 1-1V4.43l1.29 1.29c.18.18.43.29.7.29A1.003 1.003 0 007.7 4.3l-3-2.99zM15 9.99c-.28 0-.53.11-.71.29L13 11.57V2c0-.55-.45-1-1-1s-1 .45-1 1v9.57l-1.29-1.29a.99.99 0 00-.7-.29 1.003 1.003 0 00-.71 1.71l3 2.99c.18.18.43.29.71.29.28 0 .53-.11.71-.29l3-2.99c.18-.18.29-.43.29-.71-.01-.55-.46-1-1.01-1z"],switch:["M9.293 2.293l1.414 1.414-4.999 5a3 3 0 11-1.415-1.415l5-5zM13 7a3 3 0 110 6 3 3 0 010-6zM3 9a1 1 0 100 2 1 1 0 000-2zm10 0a1 1 0 100 2 1 1 0 000-2z"],"symbol-circle":["M8 3.01a5 5 0 100 10 5 5 0 100-10z"],"symbol-cross":["M12 6.01h-2v-2c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v2H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2h2c.55 0 1-.45 1-1v-2c0-.56-.45-1-1-1z"],"symbol-diamond":["M12 8.01c0-.19-.07-.36-.16-.51l.01-.01-3-5-.01.01c-.17-.29-.48-.49-.84-.49s-.67.2-.84.49l-.02-.01-3 5 .02.01c-.09.15-.16.32-.16.51s.07.36.16.51h-.02l3 5 .01-.01c.18.29.49.5.85.5s.67-.2.84-.49l.01.01 3-5-.01-.01c.09-.16.16-.32.16-.51z"],"symbol-square":["M12 3.01H4c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-8c0-.56-.45-1-1-1z"],"symbol-triangle-down":["M13 4.01c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 .16.05.31.11.44H3.1l4 8h.01c.16.33.49.56.89.56s.72-.23.89-.56h.01l4-8h-.01c.06-.14.11-.28.11-.44z"],"symbol-triangle-up":["M12.89 11.56l-3.99-8h-.01c-.17-.32-.5-.55-.89-.55s-.72.23-.89.55H7.1l-4 8h.01c-.06.14-.11.29-.11.45 0 .55.45 1 1 1h8c.55 0 1-.45 1-1 0-.16-.05-.31-.11-.45z"],tag:["M1 3a2 2 0 012-2h4.584a2 2 0 011.414.586l5.413 5.412a2 2 0 010 2.829L9.827 14.41a2 2 0 01-2.829 0L1.586 8.998A2 2 0 011 7.584V3zm3.487-.007a1.494 1.494 0 100 2.988 1.494 1.494 0 000-2.988z"],"take-action":["M9 11a1.003 1.003 0 001.71.71l4-4a1.003 1.003 0 00-1.42-1.42l-4 4c-.18.18-.29.43-.29.71zM4 6c.28 0 .53-.11.71-.29l4-4A1.003 1.003 0 007.29.29l-4 4A1.003 1.003 0 004 6zm4 4l5-5-.79-.79.5-.5a1.003 1.003 0 00-1.42-1.42l-.5.5L10 2 5 7l.79.79-5.5 5.5a1.003 1.003 0 001.42 1.42l5.5-5.5L8 10zm7 4H7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1z"],taxi:["M15.12 6.63h-.38L15 7c-.01.3-.01.64 0 .98V8c0 .07-.03.13-.04.19h.02L14 13.1v.9c0 .55-.45 1-1 1s-1-.45-1-1v-1H4v1c0 .55-.45 1-1 1s-1-.45-1-1v-.9l-.98-4.9h.02C1.03 8.13 1 8.07 1 8H.99c0-.33 0-.67.01-1l.26-.37H.88C.4 6.63 0 6.21 0 5.69s.4-.94.88-.94h1.05l.77-2.11c.19-.53.76-1.08 1.26-1.24 0 0 .68-.2 2.05-.32C6.01 1.05 6 1.03 6 1c0-.55.45-1 1-1h2c.55 0 1 .45 1 1 0 .03-.01.05-.02.08 1.37.12 2.05.32 2.05.32.51.15 1.08.71 1.27 1.24l.76 2.12h1.05c.49 0 .89.42.89.93 0 .52-.4.94-.88.94zM11 10h2V8h-2v2zm-8 0h2V8H3v2zm10-5l-.73-1.63C12.21 3.19 12.18 3 12 3H4c-.18 0-.21.19-.27.37L3 5c-.06.18-.18 1 0 1h10c.18 0 .06-.82 0-1z"],"text-highlight":["M9 10H2V6h7V4H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h8v-2zm4 3h-1V3h1c.55 0 1-.45 1-1s-.45-1-1-1h-1c-.37 0-.7.11-1 .28-.3-.17-.63-.28-1-.28H9c-.55 0-1 .45-1 1s.45 1 1 1h1v10H9c-.55 0-1 .45-1 1s.45 1 1 1h1c.37 0 .7-.11 1-.28.3.17.63.28 1 .28h1c.55 0 1-.45 1-1s-.45-1-1-1zm2-9h-2v2h1v4h-1v2h2c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z"],th:["M15 1H1c-.6 0-1 .5-1 1v12c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1zM6 13H2v-2h4v2zm0-3H2V8h4v2zm0-3H2V5h4v2zm8 6H7v-2h7v2zm0-3H7V8h7v2zm0-3H7V5h7v2z"],"th-derived":["M5.6 10l-.3.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l2-2c.2-.2.3-.4.3-.7s-.1-.5-.3-.7l-2-2C6.5 6.1 6.3 6 6 6c-.5 0-1 .4-1 1 0 .3.1.5.3.7l.3.3H1c-.6 0-1 .4-1 1s.4 1 1 1h4.6zM15 1H2c-.5 0-1 .5-1 1v5h2V5h11v2H8.8l.6.6c.1.1.2.3.3.4H14v2H9.7c-.1.1-.2.3-.3.4l-.6.6H14v2H3v-2H1v3c0 .5.5 1 1 1h13c.6 0 1-.5 1-1V2c0-.5-.4-1-1-1z"],"th-disconnect":["M12 1h3c.6 0 1 .5 1 1v12c0 .6-.4 1-1 1h-4.97l.286-2H14v-2h-3.398l.143-1H14V8h-2.97l.143-1H14V5h-2.541l.51-3.576C11.99 1.282 12 1.14 12 1zM5.97 1l-.572 4H2v2h3.112L4.97 8H2v2h2.684l-.143 1H2v2h2.255l-.225 1.576c-.02.142-.03.284-.03.424H1c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1h4.97zM8.01.859a1 1 0 111.98.282l-2 14a1 1 0 11-1.98-.282l2-14z"],"th-filtered":["M10 10h3l1.78-2.226a1 1 0 00.22-.625V4.3l1-.9V14c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1h4.333L9 4.3V5H7v2h2v1H7v2h3zm-4 3v-2H2v2h4zm0-3V8H2v2h4zm0-3V5H2v2h4zm8 6v-2H7v2h7z","M15.48 0c.31 0 .52.26.52.57 0 .16-.06.3-.17.41l-2.86 2.73v2.63c0 .16-.06.3-.17.41l-.82 1.1c-.1.1-.25.17-.41.17-.31 0-.57-.26-.57-.57V3.71L8.17.98A.566.566 0 018 .57c0-.31.26-.57.57-.57h6.91z"],"th-list":["M15 1H1c-.6 0-1 .5-1 1v12c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1zm-1 12H2v-2h12v2zm0-3H2V8h12v2zm0-3H2V5h12v2z"],"thumbs-down":["M2 2H0v7h2c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm13.99 4.38c.08-.58-.44-1.02-1.15-1.05-.25-.01-.52-.03-.81-.05.02 0 .05-.01.07-.01.7-.1 1.34-.49 1.41-1.07.06-.58-.46-.97-1.17-1.04-.25-.02-.52-.04-.79-.06.47-.15.84-.42.87-.93.04-.58-.79-1.03-1.5-1.09-.27-.02-.51-.04-.73-.05h-.09c-.23-.02-.43-.02-.62-.03C8.35.95 5.66 1.47 4 2.51v6c2.14 1.29 4.76 3.59 4.21 5.51-.18.59.31 1.05.98.98.81-.09 1.37-.91 1.4-1.78.04-1-.15-2.01-.5-2.91-.04-.25.01-.5.37-.53.49-.03 1.11-.06 1.59-.08.26 0 .51-.01.75-.02h.01c.41-.02.8-.05 1.13-.09.7-.09 1.35-.47 1.43-1.05.08-.58-.44-.97-1.15-1.05-.05-.01-.11-.01-.16-.02.17-.01.33-.03.49-.05.72-.08 1.37-.46 1.44-1.04z"],"thumbs-up":["M15.99 9.62c-.08-.58-.73-.96-1.43-1.05-.15-.02-.32-.04-.49-.05.06-.01.11-.01.16-.02.71-.08 1.23-.47 1.15-1.05-.08-.58-.73-.96-1.43-1.05-.34-.04-.72-.07-1.13-.09h-.01c-.24-.01-.49-.02-.75-.02-.48-.02-1.11-.04-1.59-.08-.36-.03-.41-.28-.37-.53.35-.9.54-1.91.5-2.91-.04-.85-.6-1.68-1.41-1.77-.67-.07-1.16.39-.99.98C8.76 3.91 6.13 6.2 4 7.49v6c1.66 1.03 4.35 1.56 7.48 1.5.19 0 .39-.01.62-.02h.09c.22-.01.46-.03.73-.05.71-.06 1.54-.51 1.5-1.09-.03-.51-.4-.79-.87-.93.27-.02.54-.04.79-.06.71-.06 1.24-.45 1.17-1.04-.06-.58-.7-.97-1.41-1.07-.02 0-.05-.01-.07-.01.29-.02.57-.03.81-.05.71-.03 1.23-.47 1.15-1.05zM2 7H0v7h2c.55 0 1-.45 1-1V8c0-.56-.45-1-1-1z"],tick:["M14 3c-.28 0-.53.11-.71.29L6 10.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l8-8A1.003 1.003 0 0014 3z"],"tick-circle":["M8 16c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm4-11c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z"],time:["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm1-6.41V4c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L9 7.59z"],"timeline-area-chart":["M15 2.59L9.91 7.68 6.6 5.2l-.01.01C6.42 5.09 6.23 5 6 5c-.24 0-.44.09-.62.23v-.01L3 7.12V11h12V2.59zM15 12H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],"timeline-bar-chart":["M8 12h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1zm5 0h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1zm2 1H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM3 12h1c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1z"],"timeline-events":["M8 11H7v1h1v-1zm-4 0H3v1h1v-1zm7-8c.6 0 1-.5 1-1V1c0-.5-.4-1-1-1s-1 .5-1 1v1c0 .5.5 1 1 1zM4 3c.5 0 1-.5 1-1V1c0-.5-.5-1-1-1S3 .5 3 1v1c0 .5.5 1 1 1zm10-2h-1v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H6v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H1c-.5 0-1 .5-1 1v12c0 .5.5 1 1 1h13c.6 0 1-.5 1-1V2c0-.5-.4-1-1-1zM5 13H2v-3h3v3zm0-4H2V6h3v3zm4 4H6v-3h3v3zm0-4H6V6h3v3zm4 4h-3v-3h3v3zm0-4h-3V6h3v3zm-1-2h-1v1h1V7z"],"timeline-line-chart":["M15 12H2V9.41l3-3L8.29 9.7c.18.19.43.3.71.3s.53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42L9 7.59l-3.29-3.3C5.53 4.11 5.28 4 5 4s-.53.11-.71.29L2 6.59V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],tint:["M7.88 1s-4.9 6.28-4.9 8.9c.01 2.82 2.34 5.1 4.99 5.1 2.65-.01 5.03-2.3 5.03-5.13C12.99 7.17 7.88 1 7.88 1z"],torch:["M5 15c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H5v1zm7-15H4c-.55 0-1 .45-1 1v1h10V1c0-.55-.45-1-1-1zM5 7v6h6V7l2-4H3l2 4zm2 0c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1s-1-.45-1-1V7z"],tractor:["M3.5 9a3.5 3.5 0 110 7 3.5 3.5 0 010-7zm9.5 1a3 3 0 110 6 3 3 0 010-6zm-9.5 1a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm9.5 1a1 1 0 100 2 1 1 0 000-2zM5 0c1.46 0 2.527.668 3 2l.815 3.255a78.9 78.9 0 012.186.195L11 2h2l.001 3.688c.698.095 1.37.198 2.013.312.623.11.986.479.986 1v3.354a4.001 4.001 0 00-6.873 1.645H7.999l-.026-.002A4.5 4.5 0 00.659 9.01l-.654.001v-.829C.003 7.386.002 6.423 0 6.022 0 5.5.376 4.99 1 4.99V1a1 1 0 011-1h3zm1 2H3v2.99c1.29.024 2.554.069 3.781.135L6 2z"],train:["M13 14h-1l1 2H3l1-2H3c-1.1 0-2-.9-2-2V2C1 .9 4.13 0 8 0s7 .9 7 2v10c0 1.1-.9 2-2 2zm-2-2h2v-2h-2v2zM9 7h4V3H9v4zm-6 5h2v-2H3v2zm0-5h4V3H3v4z"],translate:["M15.89 14.56l-3.99-8h-.01c-.17-.33-.5-.56-.89-.56s-.72.23-.89.56h-.01L9 8.76 7.17 7.38l.23-.18C8.37 6.47 9 5.31 9 4V3h1c.55 0 1-.45 1-1s-.45-1-1-1H7c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H1c-.55 0-1 .45-1 1s.45 1 1 1h6v1c0 .66-.32 1.25-.82 1.61l-.68.51-.68-.5C4.32 5.25 4 4.66 4 4H2c0 1.31.63 2.47 1.6 3.2l.23.17L1.4 9.2l.01.01C1.17 9.4 1 9.67 1 10c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01 2.9-2.17 2.6 1.95-1.99 3.98h.01c-.07.13-.12.28-.12.44 0 .55.45 1 1 1 .39 0 .72-.23.89-.56h.01L8.62 14h4.76l.72 1.45h.01c.17.32.5.55.89.55.55 0 1-.45 1-1 0-.16-.05-.31-.11-.44zM9.62 12L11 9.24 12.38 12H9.62z"],trash:["M14.49 3.99h-13c-.28 0-.5.22-.5.5s.22.5.5.5h.5v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-10h.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zm-8.5 9c0 .55-.45 1-1 1s-1-.45-1-1v-6c0-.55.45-1 1-1s1 .45 1 1v6zm3 0c0 .55-.45 1-1 1s-1-.45-1-1v-6c0-.55.45-1 1-1s1 .45 1 1v6zm3 0c0 .55-.45 1-1 1s-1-.45-1-1v-6c0-.55.45-1 1-1s1 .45 1 1v6zm2-12h-4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1h-4c-.55 0-1 .45-1 1v1h14v-1c0-.55-.45-1-1-1z"],tree:["M9 11.857V16H7v-4.143L1 13l3.885-4.44L3 9l3.07-4.297L5 5l3-5 3 5-1.07-.297L13 9l-1.885-.44L15 13l-6-1.143z"],"trending-down":["M15 7c-.55 0-1 .45-1 1v.59l-4.29-4.3A.997.997 0 009 4c-.16 0-.31.05-.44.11V4.1L5 5.88 1.45 4.11v.01C1.31 4.05 1.16 4 1 4c-.55 0-1 .45-1 1 0 .39.23.72.56.89v.01l4 2v-.01c.13.06.28.11.44.11s.31-.05.44-.11v.01L8.8 6.22 12.59 10H12c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1z"],"trending-up":["M15 4h-3c-.55 0-1 .45-1 1s.45 1 1 1h.59L8.8 9.78 5.45 8.11v.01C5.31 8.05 5.16 8 5 8s-.31.05-.44.11V8.1l-4 2v.01c-.33.17-.56.5-.56.89 0 .55.45 1 1 1 .16 0 .31-.05.44-.11v.01L5 10.12l3.55 1.78v-.01c.14.06.29.11.45.11.28 0 .53-.11.71-.29L14 7.41V8c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1z"],truck:["M12.5 0a.5.5 0 01.5.5V9a1 1 0 011 1v2h.5a.5.5 0 01.5.5v1a.5.5 0 01-.5.5H13v1a1 1 0 01-2 0v-1H5v1a1 1 0 01-2 0v-1H1.5a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5H2v-2a1 1 0 011-1V.5a.5.5 0 011 0V3a2 2 0 012-2h4a2 2 0 012 2V.5a.5.5 0 01.5-.5zM9 8H7a1 1 0 00-1 1v2a1 1 0 001 1h2a1 1 0 001-1V9a1 1 0 00-1-1zm3.5 3h-1a.5.5 0 100 1h1a.5.5 0 100-1zm-8 0h-1a.5.5 0 100 1h1a.5.5 0 100-1zM9 9a.5.5 0 01.5.5v1l-.008.09A.5.5 0 019 11H7l-.09-.008a.5.5 0 01-.41-.492v-1l.008-.09A.5.5 0 017 9zm2-5H5v2h6V4z"],"two-columns":["M3.99-.01h-3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-14c0-.55-.45-1-1-1zm11.71 7.3l-2-2a1.003 1.003 0 00-1.71.71v4a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71zM9.99-.01h-3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-14c0-.55-.45-1-1-1z"],unarchive:["M13.382 0a1 1 0 01.894.553L16 4v11a1 1 0 01-1 1H1a1 1 0 01-1-1V4L1.724.553A1 1 0 012.618 0h10.764zM8 6c-.28 0-.53.11-.71.29l-2 2-.084.096A1.003 1.003 0 006.71 9.71l.29-.3V12l.007.116c.058.496.482.884.993.884.55 0 1-.45 1-1V9.41l.29.29.081.076A.97.97 0 0010 10a1.003 1.003 0 00.71-1.71l-2-2-.096-.084A1.002 1.002 0 008 6zm5-4H3L2 4h12l-1-2z"],underline:["M8 14c2.8 0 5-2.2 5-5V3c0-.6-.4-1-1-1s-1 .4-1 1v6c0 1.7-1.3 3-3 3s-3-1.3-3-3V3c0-.6-.4-1-1-1s-1 .4-1 1v6c0 2.8 2.2 5 5 5zM13.5 15h-11c-.3 0-.5.2-.5.5s.2.5.5.5h11c.3 0 .5-.2.5-.5s-.2-.5-.5-.5z"],undo:["M4 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7-7H3.41L4.7 2.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 4.47 0 4.72 0 5c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 6H11c1.66 0 3 1.34 3 3s-1.34 3-3 3H7v2h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"],"ungroup-objects":["M3.5 5C1.57 5 0 6.57 0 8.5S1.57 12 3.5 12 7 10.43 7 8.5 5.43 5 3.5 5zm9 0C10.57 5 9 6.57 9 8.5s1.57 3.5 3.5 3.5S16 10.43 16 8.5 14.43 5 12.5 5z"],"unknown-vehicle":["M10.507 9.75v-3.5c0-.089.023-.171.051-.25h-7.55c-.176 0-.061-.824 0-1l.729-1.63c.06-.177.095-.37.27-.37h4.5V1.01c-.166-.003-.32-.01-.5-.01-2.72 0-4.036.402-4.036.402-.508.155-1.079.711-1.268 1.237L1.94 4.756H.887c-.483 0-.88.423-.88.939s.397.939.88.939h.376L1.008 7c-.034.685 0 1.436 0 2v5c0 .657.384 1 1 1s1-.343 1-1v-1h10v1c0 .657.383 1 1 1s1-.343 1-1v-3.5h-3.75a.75.75 0 01-.75-.75zm-5.5.25h-2V8h2v2zm11-4.305zM15.34.826a2.807 2.807 0 00-.932-.598c-.386-.16-.868-.241-1.445-.241-.447 0-.851.076-1.213.228-.362.153-.67.364-.926.636s-.456.592-.598.963a3.535 3.535 0 00-.218 1.144V3h1.789c.003-.208.023-.405.069-.588.049-.193.124-.362.225-.506.102-.144.232-.259.39-.345.159-.087.348-.13.567-.13.325 0 .58.09.762.272.183.18.275.46.275.839.008.222-.031.407-.116.555a1.654 1.654 0 01-.335.408 7.4 7.4 0 01-.452.37c-.162.123-.316.27-.463.438a2.556 2.556 0 00-.384.611c-.11.239-.177.535-.2.889V6h1.645v-.1c.032-.248.111-.453.237-.618.126-.164.27-.31.433-.438.163-.128.335-.255.518-.383a2.413 2.413 0 00.878-1.117c.102-.255.152-.58.152-.975A2.241 2.241 0 0015.34.826zM12.007 7v2h2V7h-2z"],unlock:["M11.99-.01c-2.21 0-4 1.79-4 4v3h-7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-7c0-.55-.45-1-1-1h-3v-3c0-1.1.9-2 2-2s2 .9 2 2v1c0 .55.45 1 1 1s1-.45 1-1v-1c0-2.21-1.79-4-4-4z"],unpin:["M9.39 1c-.5.5-.4 1.48.15 2.53L4.38 7.54C2.85 6.5 1.52 6.07 1 6.59l3.5 3.5c-.02.02-1.4 2.8-1.4 2.8l2.8-1.4 3.5 3.5c.53-.53.1-1.86-.95-3.38l4.02-5.16c1.04.55 2.01.65 2.51.14L9.39 1z"],unresolve:["M11 3c-.55 0-1.07.09-1.57.26a6.46 6.46 0 010 9.48c.5.17 1.02.26 1.57.26 2.76 0 5-2.24 5-5s-2.24-5-5-5zM9.78 9.38l.09-.27c.08-.36.13-.73.13-1.11s-.05-.75-.13-1.11l-.09-.27a5.32 5.32 0 00-.29-.79l-.12-.21c-.14-.27-.31-.52-.51-.76a.7.7 0 00-.08-.1c-.24-.27-.49-.52-.78-.74-.43-.32-.92-.58-1.45-.75l.01-.01c-.1-.03-.2-.05-.3-.08-.12-.03-.23-.07-.36-.09A5.28 5.28 0 005 3C2.24 3 0 5.24 0 8s2.24 5 5 5c.31 0 .61-.04.9-.09.12-.02.24-.06.36-.09.1-.03.21-.04.3-.08l-.01-.01c.88-.29 1.64-.8 2.22-1.49.03-.03.06-.07.09-.1.19-.24.36-.49.51-.76.04-.07.08-.14.11-.21.13-.25.23-.52.3-.79z"],updated:["M8 0a7.95 7.95 0 00-6 2.74V1c0-.55-.45-1-1-1S0 .45 0 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.54C4.64 2.78 6.22 2 8 2c3.31 0 6 2.69 6 6 0 2.61-1.67 4.81-4 5.63-.63.22-1.29.37-2 .37-3.31 0-6-2.69-6-6 0-.55-.45-1-1-1s-1 .45-1 1c0 4.42 3.58 8 8 8 .34 0 .67-.03 1-.07.02 0 .04-.01.06-.01C12.98 15.4 16 12.06 16 8c0-4.42-3.58-8-8-8zm3 5c-.28 0-.53.11-.71.29L7 8.58 5.71 7.29a1.003 1.003 0 00-1.42 1.42l2 2c.18.18.43.29.71.29.28 0 .53-.11.71-.29l4-4A1.003 1.003 0 0011 5z"],upload:["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm3 8c-.28 0-.53-.11-.71-.29L9 6.41V12c0 .55-.45 1-1 1s-1-.45-1-1V6.41l-1.29 1.3a1.003 1.003 0 01-1.42-1.42l3-3C7.47 3.11 7.72 3 8 3s.53.11.71.29l3 3A1.003 1.003 0 0111 8z"],user:["M7.99-.01A7.998 7.998 0 00.03 8.77c.01.09.03.18.04.28.02.15.04.31.07.47.02.11.05.22.08.34.03.13.06.26.1.38.04.12.08.25.12.37.04.11.08.21.12.32a6.583 6.583 0 00.3.65c.07.14.14.27.22.4.04.07.08.13.12.2l.27.42.1.13a7.973 7.973 0 003.83 2.82c.03.01.05.02.07.03.37.12.75.22 1.14.29l.2.03c.39.06.79.1 1.2.1s.81-.04 1.2-.1l.2-.03c.39-.07.77-.16 1.14-.29.03-.01.05-.02.07-.03a8.037 8.037 0 003.83-2.82c.03-.04.06-.08.09-.13.1-.14.19-.28.28-.42.04-.07.08-.13.12-.2.08-.13.15-.27.22-.41.04-.08.08-.17.12-.26.06-.13.11-.26.17-.39.04-.1.08-.21.12-.32.04-.12.08-.24.12-.37.04-.13.07-.25.1-.38.03-.11.06-.22.08-.34.03-.16.05-.31.07-.47.01-.09.03-.18.04-.28.02-.26.04-.51.04-.78-.03-4.41-3.61-7.99-8.03-7.99zm0 14.4c-1.98 0-3.75-.9-4.92-2.31.67-.36 1.49-.66 2.14-.95 1.16-.52 1.04-.84 1.08-1.27.01-.06.01-.11.01-.17-.41-.36-.74-.86-.96-1.44v-.01c0-.01-.01-.02-.01-.02-.05-.13-.09-.26-.12-.39-.28-.05-.44-.35-.5-.63-.06-.11-.18-.38-.15-.69.04-.41.2-.59.38-.67v-.06c0-.51.05-1.24.14-1.72.02-.13.05-.26.09-.39.17-.59.53-1.12 1.01-1.49.49-.38 1.19-.59 1.82-.59.62 0 1.32.2 1.82.59.48.37.84.9 1.01 1.49.04.13.07.26.09.4.09.48.14 1.21.14 1.72v.07c.18.08.33.26.37.66.03.31-.1.58-.16.69-.06.27-.21.57-.48.62-.03.13-.07.26-.12.38 0 .01-.01.04-.01.04-.21.57-.54 1.06-.94 1.42 0 .06.01.13.01.19.04.43-.12.75 1.05 1.27.65.29 1.47.6 2.14.95a6.415 6.415 0 01-4.93 2.31z"],variable:["M3.94 3.15c.47-.66 1.05-1.24 1.76-1.73l.13-.4c-1.11.45-2.05 1.01-2.84 1.7-1.02.88-1.8 1.9-2.32 3.05C.22 6.76 0 7.75 0 8.75c0 1.75.66 3.5 1.99 5.25l.13-.42c-.39-.94-.59-1.82-.59-2.63 0-1.28.22-2.64.67-4.1.45-1.45 1.03-2.69 1.74-3.7zm7.51 6.41l-.27-.15c-.3.41-.52.66-.66.77-.09.06-.21.1-.33.1-.15 0-.3-.1-.45-.28-.25-.33-.59-1.22-1.01-2.69.38-.65.69-1.08.95-1.28.19-.15.39-.22.59-.22.08 0 .22.03.43.08.2.06.39.08.54.08.22 0 .4-.07.54-.22.15-.15.22-.34.22-.57 0-.25-.07-.45-.22-.59-.15-.15-.35-.22-.63-.22-.24 0-.47.06-.69.17-.21.11-.49.36-.82.74-.25.28-.61.78-1.1 1.48a6.72 6.72 0 00-.97-2.38l-2.59.44-.05.27c.19-.04.36-.06.49-.06.26 0 .47.11.64.33.26.34.63 1.38 1.11 3.12-.37.49-.63.81-.77.96-.23.24-.41.4-.56.47-.11.06-.24.09-.39.09-.11 0-.29-.06-.53-.18-.17-.07-.32-.11-.45-.11-.25 0-.46.08-.62.24-.16.16-.24.37-.24.61 0 .23.08.42.23.57.15.15.35.22.61.22.25 0 .48-.05.7-.15.22-.1.49-.32.82-.65.33-.33.78-.86 1.36-1.59.22.69.42 1.19.58 1.51.16.31.35.54.56.68.21.14.47.21.79.21.31 0 .62-.11.93-.33.4-.29.82-.77 1.26-1.47zm2.56-8.54l-.12.42c.39.95.59 1.82.59 2.64 0 1.09-.17 2.26-.5 3.51-.26.96-.6 1.87-1.02 2.71-.42.85-.82 1.51-1.21 1.98-.39.48-.87.92-1.44 1.32l-.14.4c1.11-.45 2.05-1.02 2.84-1.7 1.03-.89 1.81-1.91 2.33-3.05.44-.99.66-1.99.66-3 0-1.73-.66-3.48-1.99-5.23z"],"vertical-bar-chart-asc":["M6 7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1s1-.45 1-1V8c0-.55-.45-1-1-1zM2 9c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zm8-5c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1zm4-4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z"],"vertical-bar-chart-desc":["M6 4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1zM2 0c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm8 7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1s1-.45 1-1V8c0-.55-.45-1-1-1zm4 2c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1z"],"vertical-distribution":["M1 2h14c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1s.45 1 1 1zm14 11H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM3 5c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1H3z"],video:["M15 2H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM5 11V5l6 3-6 3z"],virus:["M11.918 11.107l.737.737.052-.051A1 1 0 0114.2 13.12l-.078.087-1.414 1.414a1 1 0 01-1.492-1.327l.029-.033-.863-.863c-.426.231-.89.402-1.38.502L9 14l.117.007A1 1 0 019 16H7l-.117-.007A1 1 0 017 14v-1.1a4.967 4.967 0 01-1.447-.539l-.846.846.078.087a1 1 0 01-1.492 1.327l-1.414-1.414-.078-.087a1 1 0 011.492-1.327l.744-.744A4.986 4.986 0 013.23 9.5H2a1 1 0 01-1.993.117L0 9.5v-2a1 1 0 011.993-.117L2 7.5h1.025a4.973 4.973 0 01.905-2.405l-.512-.513-.125.125A1 1 0 011.8 3.38l.078-.087 1.414-1.414a1 1 0 011.529 1.277l.573.575a4.969 4.969 0 011.604-.63V2l-.116-.007a1 1 0 010-1.986L7 0h2a1 1 0 01.117 1.993L9 2l.001 1.1c.639.13 1.233.381 1.757.73l.535-.537-.078-.087a1 1 0 011.492-1.327l1.414 1.414.078.087a1 1 0 01-1.492 1.327l-.535.536a4.97 4.97 0 01.803 2.257H14l.007-.117A1 1 0 0116 7.5v2l-.007.117A1 1 0 0114 9.5h-1.229a4.987 4.987 0 01-.853 1.607zM10 9a1 1 0 100 2 1 1 0 000-2zM6.5 5a1.5 1.5 0 100 3 1.5 1.5 0 000-3z"],"volume-down":["M9 2c-.28 0-.53.11-.71.29L5.59 5H3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm3.57 1.44l-1.59 1.22C11.62 5.61 12 6.76 12 8s-.38 2.39-1.02 3.34l1.59 1.22C13.47 11.27 14 9.7 14 8c0-1.7-.53-3.27-1.43-4.56z"],"volume-off":["M11 2c-.28 0-.53.11-.71.29L7.59 5H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"],"volume-up":["M7 1.86c-.28 0-.53.11-.71.29l-2.7 2.71H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2.59l2.71 2.71a1.003 1.003 0 001.71-.71v-10c-.01-.55-.46-1-1.01-1zm6.74-.99l-1.58 1.22A9.985 9.985 0 0114 7.86c0 2.16-.69 4.15-1.85 5.78l1.58 1.22c1.42-1.97 2.26-4.38 2.26-7 .01-2.61-.84-5.02-2.25-6.99zM8.98 4.52C9.62 5.48 10 6.63 10 7.86s-.38 2.39-1.02 3.34l1.59 1.22c.9-1.29 1.43-2.86 1.43-4.56 0-1.7-.53-3.27-1.43-4.56L8.98 4.52z"],walk:["M13 8h-2c-.16 0-.31-.05-.44-.11v.01l-1.02-.51-.37 1.86 1.38.92-.01.02c.27.17.46.46.46.81v4c0 .55-.45 1-1 1s-1-.45-1-1v-3.46l-1.27-.85-1.8 4.67h-.01A.98.98 0 015 16c-.55 0-1-.45-1-1 0-.13.03-.25.07-.36h-.01L7.39 6H5.62l-.73 1.45h-.01C4.72 7.77 4.39 8 4 8c-.55 0-1-.45-1-1 0-.16.05-.31.11-.44H3.1l1-2h.01c.17-.33.5-.56.89-.56h3.16l.29-.75C8.17 2.9 8 2.47 8 2c0-1.1.9-2 2-2s2 .9 2 2c0 1-.73 1.82-1.69 1.97l-.5 1.32 1.43.71H13c.55 0 1 .45 1 1s-.45 1-1 1z"],"warning-sign":["M15.84 13.5l.01-.01-7-12-.01.01c-.17-.3-.48-.5-.85-.5s-.67.2-.85.5l-.01-.01-7 12 .01.01c-.09.15-.15.31-.15.5 0 .55.45 1 1 1h14c.55 0 1-.45 1-1 0-.19-.06-.35-.15-.5zm-6.85-.51h-2v-2h2v2zm0-3h-2v-5h2v5z"],"waterfall-chart":["M8 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-4 4h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1zm7-6c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1s-1 .45-1 1v1c0 .55.45 1 1 1zm4-3h-1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 10H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],widget:["M13 11h2V5h-2v6zM3 5H1v6h2V5zm11-1c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM5 3h6V1H5v2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm3 15h6v-2H5v2z"],"widget-button":["M1 3h14c.55 0 1 .45 1 1v8c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1zm1 2v6h12V5H2zm3 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"widget-footer":["M14 0H2c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H3v-3h10v3zm0-4H3V2h10v8z"],"widget-header":["M14 0H2c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H3V6h10v8zm0-9H3V2h10v3z"],wrench:["M15.83 3.7l-3.06 3.05-2.84-.7-.7-2.83L12.29.17a5.004 5.004 0 00-4.83 1.29 4.967 4.967 0 00-1.12 5.36L.58 12.58c-.36.36-.58.86-.58 1.41 0 1.1.9 2 2 2 .55 0 1.05-.22 1.41-.59l5.77-5.77c1.79.69 3.91.33 5.35-1.12 1.32-1.3 1.74-3.15 1.3-4.81z"],"zoom-in":["M7.99 5.99v-2c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2zm7.56 7.44l-2.67-2.68a6.94 6.94 0 001.11-3.76c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.42 3.76-1.11l2.68 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"],"zoom-out":["M3.99 5.99c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1h-6zm11.56 7.44l-2.67-2.68a6.94 6.94 0 001.11-3.76c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.42 3.76-1.11l2.68 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"],"zoom-to-fit":["M11 10a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42L12.59 8 11.3 9.29c-.19.18-.3.43-.3.71zM1 5c.55 0 1-.45 1-1V2h2c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v3c0 .55.45 1 1 1zm4 1a1.003 1.003 0 00-1.71-.71l-2 2C1.11 7.47 1 7.72 1 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L3.41 8 4.7 6.71c.19-.18.3-.43.3-.71zm1-1c.28 0 .53-.11.71-.29L8 3.41 9.29 4.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2C8.53 1.11 8.28 1 8 1s-.53.11-.71.29l-2 2A1.003 1.003 0 006 5zm9 6c-.55 0-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm0-11h-3c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zM4 14H2v-2c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm6-3c-.28 0-.53.11-.71.29L8 12.59 6.71 11.3A.965.965 0 006 11a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 0010 11z"]},Bn={add:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm5-9h-4V5c0-.55-.45-1-1-1s-1 .45-1 1v4H5c-.55 0-1 .45-1 1s.45 1 1 1h4v4c0 .55.45 1 1 1s1-.45 1-1v-4h4c.55 0 1-.45 1-1s-.45-1-1-1z"],"add-column-left":["M4 11h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1H8V7c0-.55-.45-1-1-1s-1 .45-1 1v2H4c-.55 0-1 .45-1 1s.45 1 1 1zM19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-7 18H2V2h10v16zm6 0h-5V2h5v16z"],"add-column-right":["M10 11h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V7c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1zm9-11H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 18H2V2h5v16zm11 0H8V2h10v16z"],"add-location":["M10 0a1 1 0 010 2 8 8 0 108 8 1 1 0 012 0c0 5.523-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0zm0 6a4 4 0 110 8 4 4 0 010-8zm6-6c.6 0 1 .4 1 1v2h2c.6 0 1 .4 1 1s-.4 1-1 1h-2v2c0 .6-.4 1-1 1s-1-.4-1-1V5h-2c-.6 0-1-.4-1-1 0-.5.4-1 1-1h2V1c0-.6.4-1 1-1z"],"add-row-bottom":["M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V8h16v10zm0-11H2V2h16v5zM7 14h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2v-2c0-.55-.45-1-1-1s-1 .45-1 1v2H7c-.55 0-1 .45-1 1s.45 1 1 1z"],"add-row-top":["M7 8h2v2c0 .55.45 1 1 1s1-.45 1-1V8h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V4c0-.55-.45-1-1-1s-1 .45-1 1v2H7c-.55 0-1 .45-1 1s.45 1 1 1zm12-8H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2v-5h16v5zm0-6H2V2h16v10z"],"add-to-artifact":["M13 12H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zM1 6h9c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm12 2H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm6-4h-2V2c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V6h2c.55 0 1-.45 1-1s-.45-1-1-1z"],"add-to-folder":["M.01 10V6H20v10c0 .55-.45 1-1 1H9.995v-3.99C9.965 11.332 8.635 10 6.987 10H.01zM19 3c.55 0 1 .45.99 1v1H0V2c0-.55.45-1 1-1h5.997c.28 0 .53.11.71.29L9.414 3H19zM6.987 12c.55 0 .999.45 1.009 1.01v5c0 .55-.45 1-1 1s-.999-.45-.999-1v-2.59l-4.288 4.29a1.003 1.003 0 01-1.42-1.42L4.579 14H1.989c-.55 0-1-.45-1-1s.45-1 1-1h4.998z"],airplane:["M20 2c0-1.1-.9-2-2-2-.55 0-1.05.22-1.41.59l-4.84 4.84L2 1 1 3l7.53 5.64L4.17 13H1l-1 1 4 2 2 4 1-1v-3.17l4.36-4.36L17 19l2-1-4.43-9.74 4.84-4.84c.37-.37.59-.87.59-1.42z"],"align-center":["M5 5c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1H5zM1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm12 12c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h6zm4 2H3c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm2-8H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],"align-justify":["M1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 14H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0-12H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],"align-left":["M1 7h10c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 14H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm4-8H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM1 15h6c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1z"],"align-right":["M19 17H5c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 10h-6c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H9c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z"],"alignment-bottom":["M12 16h4c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1zm7 2H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM4 16h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1z"],"alignment-horizontal-center":["M19 9h-2V7c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v2H9V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v6H1c-.55 0-1 .45-1 1s.45 1 1 1h2v6c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-6h2v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1z"],"alignment-left":["M1 0C.45 0 0 .45 0 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm11 11H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm7-8H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"alignment-right":["M19 0c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-4 11H8c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm0-8H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"alignment-top":["M8 4H4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm11-4H1C.45 0 0 .45 0 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm-3 4h-4c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z"],"alignment-vertical-center":["M17 3h-6V1c0-.55-.45-1-1-1S9 .45 9 1v2H3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h6v2H7c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1h-2V9h6c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],annotation:["M9.41 13.41l7.65-7.65-2.83-2.83-7.65 7.65 2.83 2.83zm10-10c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2-.55 0-1.05.22-1.41.59l-1.65 1.65 2.83 2.83 1.64-1.66zM18 18H2V2h8.93l2-2H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7.07l-2 2V18zM4 16l4.41-1.59-2.81-2.79L4 16z"],"app-header":["M19 0a1 1 0 011 1v18a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h18zM8 6a1 1 0 00-1.993-.117L6 6v8a1 1 0 001.993.117L8 14v-3h4v3a1 1 0 001.993.117L14 14V6a1 1 0 00-1.993-.117L12 6v3H8V6z"],application:["M3.5 9h9c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-9c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-5c-.28 0-.5.22-.5.5s.22.5.5.5zM19 1H1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm-1 16H2V6h16v11zM3.5 13h7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-7c-.28 0-.5.22-.5.5s.22.5.5.5z"],applications:["M15 5H1c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-1 13H2V8h12v10zM3.5 10h7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-7c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h3c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-3c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-5c-.28 0-.5.22-.5.5s.22.5.5.5zM19 0H5c-.55 0-1 .45-1 1v3h2V3h12v10h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],archive:["M16.434 0a1 1 0 01.857.486L20 5v14a1 1 0 01-1 1H1a1 1 0 01-1-1V5L2.709.486A1 1 0 013.566 0h12.868zM10 8c-.55 0-1 .45-1 1v4.58l-1.29-1.29-.081-.073A.996.996 0 007 11.99a1.003 1.003 0 00-.71 1.71l3 3 .096.084c.168.13.38.206.614.206.28 0 .53-.11.71-.29l3-3 .084-.096a1.003 1.003 0 00-1.504-1.324L11 13.58V9l-.007-.116A1.004 1.004 0 0010 8zm6-6H4L2 5.002h16L16 2z"],array:["M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm5 9a1 1 0 110 2 1 1 0 010-2zM6 9a1 1 0 110 2 1 1 0 010-2zm8 0a1 1 0 110 2 1 1 0 010-2z"],"array-boolean":["M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm10 7a1 1 0 01.993.883L16 8v4a1 1 0 01-.883.993L15 13H5a1 1 0 01-.993-.883L4 12V8a1 1 0 01.883-.993L5 7h10zm0 1h-5v4h5V8z"],"array-date":["M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm2.5 5a.5.5 0 01.5.5V6h4v-.5a.5.5 0 01.5-.5h1a.5.5 0 01.5.5V6h1a1 1 0 01.993.883L16 7v7a1 1 0 01-.883.993L15 15H5a1 1 0 01-.993-.883L4 14V7a1 1 0 01.883-.993L5 6h1v-.5a.5.5 0 01.5-.5h1zM15 9H5v5h10V9z"],"array-numeric":["M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm8.995 6.09c.32 0 .603.047.85.14a1.679 1.679 0 011.015.985c.09.23.135.482.135.755 0 .287-.063.552-.19.795a1.642 1.642 0 01-.57.615v.02l.101.05c.068.039.138.09.209.155.107.097.203.215.29.355a2.09 2.09 0 01.3 1.09c0 .313-.053.597-.16.85a1.898 1.898 0 01-1.12 1.065 2.42 2.42 0 01-.85.145c-.533 0-.99-.127-1.37-.38a1.702 1.702 0 01-.73-1.08c-.013-.067.013-.11.08-.13l.87-.2.041-.003c.038.004.064.028.079.073.073.2.193.37.36.51.167.14.39.21.67.21.32 0 .567-.095.74-.285.173-.19.26-.432.26-.725 0-.347-.1-.618-.3-.815-.2-.197-.47-.295-.81-.295h-.29l-.044-.006c-.037-.013-.056-.044-.056-.094V9.1l.006-.044c.013-.037.044-.056.094-.056h.27l.145-.008a.925.925 0 00.575-.262c.18-.18.27-.42.27-.72 0-.273-.08-.495-.24-.665-.16-.17-.383-.255-.67-.255-.253 0-.453.063-.6.19-.147.127-.25.297-.31.51-.02.06-.06.083-.12.07l-.85-.2-.042-.015c-.035-.02-.048-.055-.038-.105a1.684 1.684 0 01.645-1.035c.17-.13.37-.232.6-.305.23-.073.482-.11.755-.11zm-7.99.11l.044.006c.037.013.056.044.056.094v6.6l-.006.044c-.013.037-.044.056-.094.056h-.92l-.044-.006c-.037-.013-.056-.044-.056-.094V7.54h-.02l-1.04.73-.04.02c-.047.016-.07-.01-.07-.08V7.19l.008-.051a.196.196 0 01.062-.089l1.09-.79.051-.033a.295.295 0 01.129-.027h.85zm3.34-.11c.32 0 .603.05.85.15.247.1.455.235.625.405.17.17.3.37.39.6.09.23.135.478.135.745 0 .307-.057.588-.17.845a3.16 3.16 0 01-.47.745l-1.98 2.4V12h2.52l.044.006c.037.013.056.044.056.094v.8l-.006.044c-.013.037-.044.056-.094.056h-3.82l-.044-.006c-.037-.013-.056-.044-.056-.094v-.75l.006-.05a.165.165 0 01.044-.08l2.4-2.99.124-.167c.077-.11.143-.222.196-.333.08-.167.12-.347.12-.54a.92.92 0 00-.235-.64c-.157-.173-.378-.26-.665-.26-.273 0-.487.077-.64.23-.153.153-.247.36-.28.62-.013.067-.05.093-.11.08l-.88-.18-.043-.015c-.035-.02-.047-.055-.037-.105a1.78 1.78 0 01.56-1.115c.167-.157.372-.282.615-.375a2.35 2.35 0 01.845-.14z"],"array-string":["M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm2.012 6c.643 0 1.203.266 1.68.797.477.53.715 1.246.715 2.145a4.472 4.472 0 01-.965 2.814c-.644.83-1.66 1.5-3.047 2.011v-.581l.26-.104a3.87 3.87 0 001.624-1.285c.457-.632.686-1.29.686-1.971 0-.148-.023-.256-.07-.326-.023-.047-.054-.07-.093-.07-.038 0-.1.031-.186.093-.248.179-.558.268-.93.268-.45 0-.843-.18-1.18-.541A1.817 1.817 0 015 7.965c0-.527.194-.986.581-1.378A1.934 1.934 0 017.011 6zm5.593 0c.643 0 1.203.266 1.68.797.477.53.715 1.246.715 2.145a4.472 4.472 0 01-.965 2.814c-.644.83-1.659 1.5-3.047 2.011v-.581l.26-.104a3.87 3.87 0 001.624-1.285c.457-.632.686-1.29.686-1.971 0-.148-.023-.256-.07-.326-.023-.047-.054-.07-.093-.07-.038 0-.1.031-.186.093-.248.179-.558.268-.93.268-.45 0-.843-.18-1.18-.541a1.817 1.817 0 01-.506-1.285c0-.527.194-.986.581-1.378A1.934 1.934 0 0112.604 6z"],"array-timestamp":["M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm5 4a6 6 0 110 12 6 6 0 010-12zm0 1a5 5 0 100 10 5 5 0 000-10zm2.854 2.146a.5.5 0 01.057.638l-.057.07-2.5 2.5a.5.5 0 01-.638.057l-.07-.057-1.5-1.5a.5.5 0 01.638-.765l.07.057L10 9.293l2.146-2.147a.5.5 0 01.708 0z"],"arrow-bottom-left":["M18 3a1.003 1.003 0 00-1.71-.71L4 14.59V7c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1H5.41l12.3-12.29c.18-.18.29-.43.29-.71z"],"arrow-bottom-right":["M17 6c-.55 0-1 .45-1 1v7.59L3.71 2.29a1.003 1.003 0 00-1.42 1.42L14.59 16H7c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z"],"arrow-down":["M16 11c-.3 0-.5.1-.7.3L11 15.6V2c0-.5-.4-1-1-1s-1 .5-1 1v13.6l-4.3-4.3c-.2-.2-.4-.3-.7-.3-.5 0-1 .4-1 1 0 .3.1.5.3.7l6 6c.2.2.4.3.7.3s.5-.1.7-.3l6-6c.2-.2.3-.4.3-.7 0-.6-.5-1-1-1z"],"arrow-left":["M18 9H4.41L8.7 4.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L4.41 11H18c.55 0 1-.45 1-1s-.45-1-1-1z"],"arrow-right":["M18.71 9.29l-6-6a1.003 1.003 0 00-1.42 1.42L15.59 9H2c-.55 0-1 .45-1 1s.45 1 1 1h13.59l-4.29 4.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],"arrow-top-left":["M17.71 16.29L5.41 4H13c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1s1-.45 1-1V5.41L16.29 17.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],"arrow-top-right":["M17 2H7c-.55 0-1 .45-1 1s.45 1 1 1h7.59L2.29 16.29a1.003 1.003 0 001.42 1.42L16 5.41V13c0 .55.45 1 1 1s1-.45 1-1V3c0-.55-.45-1-1-1z"],"arrow-up":["M16.7 7.3l-6-6c-.2-.2-.4-.3-.7-.3s-.5.1-.7.3l-6 6c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3L9 4.4V18c0 .5.4 1 1 1s1-.5 1-1V4.4l4.3 4.3c.2.2.4.3.7.3.5 0 1-.4 1-1 0-.3-.1-.5-.3-.7z"],"arrows-horizontal":["M19.7 9.3l-5-5c-.2-.2-.4-.3-.7-.3-.6 0-1 .4-1 1 0 .3.1.5.3.7L16.6 9H3.4l3.3-3.3c.2-.2.3-.4.3-.7 0-.6-.4-1-1-1-.3 0-.5.1-.7.3l-5 5c-.2.2-.3.4-.3.7s.1.5.3.7l5 5c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7L3.4 11h13.2l-3.3 3.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l5-5c.2-.2.3-.4.3-.7s-.1-.5-.3-.7z"],"arrows-vertical":["M15 13c-.3 0-.5.1-.7.3L11 16.6V3.4l3.3 3.3c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7l-5-5c-.2-.2-.4-.3-.7-.3s-.5.1-.7.3l-5 5c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3L9 3.4v13.2l-3.3-3.3c-.2-.2-.4-.3-.7-.3-.6 0-1 .4-1 1 0 .3.1.5.3.7l5 5c.2.2.4.3.7.3s.5-.1.7-.3l5-5c.2-.2.3-.4.3-.7 0-.5-.4-1-1-1z"],asterisk:["M18.52 14.17l.01-.02L11.89 10l6.64-4.15-.01-.02A.97.97 0 0019 5c0-.55-.45-1-1-1-.2 0-.37.07-.52.17l-.01-.02L11 8.2V1c0-.55-.45-1-1-1S9 .45 9 1v7.2L2.53 4.15l-.01.02A.922.922 0 002 4c-.55 0-1 .45-1 1 0 .36.2.66.48.83l-.01.02L8.11 10l-6.64 4.15.01.02A.97.97 0 001 15c0 .55.45 1 1 1 .2 0 .37-.07.52-.17l.01.02L9 11.8V19c0 .55.45 1 1 1s1-.45 1-1v-7.2l6.47 4.04.01-.02c.15.11.32.18.52.18.55 0 1-.45 1-1 0-.36-.2-.66-.48-.83z"],"automatic-updates":["M10 18c-4.42 0-8-3.58-8-8 0-2.52 1.18-4.76 3-6.22V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1h2.06C1.61 3.82 0 6.71 0 10c0 5.52 4.48 10 10 10 .55 0 1-.45 1-1s-.45-1-1-1zm0-16c1.64 0 3.15.49 4.42 1.34l1.43-1.43A9.869 9.869 0 0010 0c-.55 0-1 .45-1 1s.45 1 1 1zm10 8c0-1.13-.2-2.21-.54-3.22L17.84 8.4A7.962 7.962 0 0115 16.22V15c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1h-2.06c2.45-1.82 4.06-4.71 4.06-8zm0-7a1.003 1.003 0 00-1.71-.71L12 8.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7c.18-.18.29-.43.29-.71z"],backlink:["M18.387 19.79l-.094-.083L14 15.415V18a1 1 0 01-2 0l.003-5.075.017-.126.03-.111.044-.111.052-.098.067-.096.08-.09a1.01 1.01 0 01.112-.097l.11-.071.114-.054.105-.035.15-.03L13 12h5a1 1 0 110 2h-2.585l4.292 4.293a1 1 0 01-1.32 1.497zM7.036 9.136l-4.45 4.45-.117.127a2 2 0 002.818 2.818l.127-.117 4.45-4.449a4 4 0 01-.885 3.704l-.15.16-2 2A4 4 0 011.02 12.33l.15-.16 2-2a3.998 3.998 0 013.865-1.035zm6.671-3.843a1 1 0 01.083 1.32l-.083.094-7 7a1 1 0 01-1.497-1.32l.083-.094 7-7a1 1 0 011.414 0zm4.121-4.121a4 4 0 01.151 5.497l-.15.16-2 2a3.998 3.998 0 01-3.864 1.036l4.45-4.45.116-.128a2 2 0 00-2.818-2.818l-.127.117-4.45 4.45a4 4 0 01.885-3.705l.15-.16 2-2a4 4 0 015.657 0z"],badge:["M16.94 5.73c-.19-1.41.62-2.52 1.38-3.59L17.03.65C14.89 1.76 11.88 1.48 10 0 8.12 1.48 5.11 1.76 2.97.65L1.68 2.14c.76 1.07 1.57 2.18 1.38 3.59C2.68 8.59 0 10.94 1.4 14.08c.56 1.43 1.81 2.37 3.4 2.75 1.95.46 4.4.91 5.2 3.17.8-2.26 3.25-2.71 5.2-3.17 1.6-.38 2.84-1.32 3.4-2.75 1.4-3.14-1.28-5.49-1.66-8.35z"],"ban-circle":["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm5 11H5c-.55 0-1-.45-1-1s.45-1 1-1h10c.55 0 1 .45 1 1s-.45 1-1 1z"],"bank-account":["M19.2 8.02l-.78-.18C18.03 6.4 17.2 5.08 16.08 4l.5-2.28c.11-.42-.22-.78-.61-.72-1.06.12-2 .54-2.67 1.26-1.06-.42-2.34-.66-3.56-.66-3.12 0-5.79 1.5-7.4 3.72-.23-.05-.45-.11-.67-.11C.72 5.21 0 5.98 0 7c0 .72.39 1.32.95 1.62-.06.42-.12.9-.12 1.38 0 2.16.89 4.08 2.28 5.58l-.33 2.04c-.11.72.45 1.38 1.12 1.38h.72c.56 0 1-.42 1.11-1.02l.06-.48c1.17.54 2.5.9 3.95.9 1.39 0 2.78-.3 3.95-.9l.06.48c.11.6.56 1.02 1.11 1.02h.72c.67 0 1.22-.66 1.11-1.38l-.33-1.98c.78-.78 1.34-1.74 1.73-2.76l1-.24c.5-.12.89-.6.89-1.2V9.22c.11-.6-.28-1.08-.78-1.2zM15 10c-.6 0-1-.7-1-1.5S14.4 7 15 7s1 .7 1 1.5-.4 1.5-1 1.5zM7.55 5.83a.99.99 0 01-1.38-.28.99.99 0 01.28-1.38c2.34-1.56 4.77-1.56 7.11 0 .46.31.58.93.28 1.39-.31.46-.93.58-1.39.28-1.67-1.12-3.23-1.12-4.9-.01z"],barcode:["M6 16.98h2v-14H6v14zm3 0h1v-14H9v14zm-6 0h2v-14H3v14zm-3 0h2v-14H0v14zm16 0h2v-14h-2v14zm-4 0h1v-14h-1v14zm7-14v14h1v-14h-1zm-5 14h1v-14h-1v14z"],blank:[],"blocked-person":["M11.55 15.92c-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.06-.11.14-.35.17-.62C10.33 9.42 8.92 7.38 8.92 5c0-.3.05-.58.09-.87-.33-.08-.67-.13-.99-.13-.79 0-1.68.25-2.31.73-.61.47-1.07 1.13-1.29 1.86-.05.16-.09.33-.11.5-.12.6-.17 1.51-.17 2.14v.08c-.24.09-.45.32-.49.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59C3 16.56.77 17.26.32 18.31-.15 19.38.04 20 .04 20h15.95s.18-.62-.27-1.67c-.46-1.06-2.69-1.75-4.17-2.41zM14.97 0c-2.78 0-5.03 2.24-5.03 5s2.25 5 5.03 5S20 7.76 20 5s-2.25-5-5.03-5zm-3.03 5c0-1.66 1.35-3 3.02-3 .47 0 .9.11 1.29.3l-4.01 3.99c-.18-.4-.3-.83-.3-1.29zm3.03 3c-.47 0-.9-.11-1.29-.3l4.01-3.99c.19.39.3.82.3 1.29 0 1.66-1.36 3-3.02 3z"],bold:["M14.3 9c.4-.8.7-1.6.7-2.5C15 4 13 2 10.5 2H5c-.6 0-1 .4-1 1v13c0 .6.4 1 1 1h6.5c2.5 0 4.5-2 4.5-4.5 0-1.4-.7-2.7-1.7-3.5zM7 5h3.5c.8 0 1.5.7 1.5 1.5S11.3 8 10.5 8H7V5zm4.5 9H7v-3h4.5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5z"],book:["M3 1v18c0 .55.45 1 1 1h2V0H4c-.55 0-1 .45-1 1zm14-1h-2v8l-2-2-2 2V0H7v20h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],bookmark:["M6 0c-.55 0-1 .45-1 1v18c0 .55.32.68.71.29L9.3 15.7a.996.996 0 011.41 0l3.59 3.59c.38.39.7.26.7-.29v-8-4.5V1c0-.55-.45-1-1-1H6z"],box:["M19.89 6.56l-2.99-6h-.01C16.72.23 16.39 0 16 0H4c-.39 0-.72.23-.89.56H3.1l-3 6h.01C.05 6.69 0 6.84 0 7v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7c0-.16-.05-.31-.11-.44zM11 2h4.38l2 4H11V2zM4.62 2H9v4H2.62l2-4zM18 18H2V8h16v10zM8 12h4c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1z"],briefcase:["M19 5h-4V2c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v3H1c-.55 0-1 .45-1 1v5h4v-1h2v1h8v-1h2v1h4V6c0-.55-.45-1-1-1zm-6 0H7V3h6v2zm3 8h-2v-1H6v1H4v-1H0v6c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-6h-4v1z"],"bring-data":["M18 18a1 1 0 010 2H2a1 1 0 010-2h16zM9.995 3.005c.55 0 1 .45 1 .999v9.584l1.29-1.288a1.002 1.002 0 011.42 1.419l-3 2.996a1.015 1.015 0 01-1.42 0l-3-2.997a1.002 1.002 0 011.42-1.419l1.29 1.29V4.013c0-.55.45-1.009 1-1.009zM16 0a1 1 0 110 2 1 1 0 010-2zm-3 0a1 1 0 110 2 1 1 0 010-2zm-3 0a1 1 0 110 2 1 1 0 010-2zM7 0a1 1 0 110 2 1 1 0 010-2zM4 0a1 1 0 110 2 1 1 0 010-2z"],build:["M19.43 16.67L9.31 7.81l1.47-1.56c.41-.44-.15-.8.15-1.6 1.08-2.76 4.19-2.99 4.19-2.99s.45-.47.87-.92C11.98-1 9.26.7 8.04 1.8L3.83 6.25l-.86.92c-.48.51-.48 1.33 0 1.84l-.87.92c-.48-.51-1.26-.51-1.74 0s-.48 1.33 0 1.84l1.74 1.84c.48.51 1.26.51 1.74 0s.48-1.33 0-1.84l.87-.92c.48.51 1.26.51 1.74 0l1.41-1.49 8.81 10.07c.76.76 2 .76 2.76 0 .76-.76.76-2 0-2.76z"],calculator:["M16 0H4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 18H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V8h2v2zm4 8H9v-2h2v2zm0-4H9v-2h2v2zm0-4H9V8h2v2zm4 8h-2v-6h2v6zm0-8h-2V8h2v2zm0-4H5V2h10v4z"],calendar:["M15 5c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zM5 5c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zm13-2h-1v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H7v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H2c-.5 0-1 .5-1 1v14c0 .5.5 1 1 1h16c.5 0 1-.5 1-1V4c0-.5-.5-1-1-1zM7 17H3v-4h4v4zm0-5H3V8h4v4zm5 5H8v-4h4v4zm0-5H8V8h4v4zm5 5h-4v-4h4v4zm0-5h-4V8h4v4z"],camera:["M10 8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm9-4h-3.59L13.7 2.29A.956.956 0 0013 2H7c-.28 0-.53.11-.71.29L4.59 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h4.11c1.26 1.24 2.99 2 4.89 2s3.63-.76 4.89-2H19c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM4 8H2V6h2v2zm6 8c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"],"caret-down":["M16 7c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1 0 .24.1.46.24.63l-.01.01 5 6 .01-.01c.19.22.45.37.76.37s.57-.15.76-.37l.01.01 5-6-.01-.01c.14-.17.24-.39.24-.63z"],"caret-left":["M13 4c-.24 0-.46.1-.63.24l-.01-.01-6 5 .01.01c-.22.19-.37.45-.37.76s.15.57.37.76l-.01.01 6 5 .01-.01c.17.14.39.24.63.24.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z"],"caret-right":["M14 10c0-.31-.15-.57-.37-.76l.01-.01-6-5-.01.01C7.46 4.1 7.24 4 7 4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1 .24 0 .46-.1.63-.24l.01.01 6-5-.01-.01c.22-.19.37-.45.37-.76z"],"caret-up":["M15.76 12.37l.01-.01-5-6-.01.01C10.57 6.15 10.31 6 10 6s-.57.15-.76.37l-.01-.01-5 6 .01.01c-.14.17-.24.39-.24.63 0 .55.45 1 1 1h10c.55 0 1-.45 1-1 0-.24-.1-.46-.24-.63z"],"cell-tower":["M11.5 8.32c.31-.35.51-.81.51-1.32 0-1.1-.9-2-2-2s-2 .9-2 2c0 .51.2.97.51 1.32L5.06 18.69c-.17.52.11 1.09.63 1.26s1.09-.11 1.26-.63L8.39 15h3.23l1.44 4.32c.17.52.74.81 1.26.63s.81-.74.63-1.26L11.5 8.32zM10.95 13H9.06l.95-2.84.94 2.84zM5.31 10.73a.996.996 0 101.37-1.45c-1.4-1.33-1.28-3.35-.01-4.54.4-.38.43-1.01.05-1.41-.36-.41-1-.43-1.4-.06-2.09 1.95-2.28 5.3-.01 7.46z","M4.6 12.2C3 11.1 2 9 2 7c0-2.1.9-3.9 2.6-5.2.5-.3.5-1 .2-1.4-.3-.5-1-.5-1.4-.2C1.2 1.9-.1 4.2 0 7c.1 2.7 1.4 5.3 3.4 6.8.2.1.4.2.6.2.3 0 .6-.1.8-.4.4-.5.3-1.1-.2-1.4zM13.27 10.69c.38.4 1.01.42 1.41.04 2.27-2.16 2.08-5.51-.01-7.46a.996.996 0 10-1.36 1.46c1.28 1.19 1.39 3.21-.01 4.54-.39.39-.41 1.02-.03 1.42z","M16.6.2c-.4-.3-1.1-.3-1.4.2-.3.4-.3 1.1.2 1.4C17.1 3.1 18 4.9 18 7c0 2-1 4.1-2.6 5.2-.5.3-.6.9-.2 1.4.2.3.5.4.8.4.2 0 .4-.1.6-.2C18.7 12.3 20 9.7 20 7c.09-2.8-1.2-5.1-3.4-6.8z"],changes:["M18 16H2c-1.1 0-2 .9-2 2s.9 2 2 2h16c1.1 0 2-.9 2-2s-.9-2-2-2zM3 5c.28 0 .53-.11.71-.29L5 3.41V13c0 .55.45 1 1 1s1-.45 1-1V3.41L8.29 4.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3C6.53.11 6.28 0 6 0s-.53.11-.71.29l-3 3A1.003 1.003 0 003 5zm7.29 5.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L15 10.59V1c0-.55-.45-1-1-1s-1 .45-1 1v9.59L11.71 9.3A.965.965 0 0011 9a1.003 1.003 0 00-.71 1.71z"],chart:["M7 11v8c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-8l-2 2-4-2zm-7 8c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-8l-6 3v5zM17 7l-3 3v9c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V8.74c-.26.15-.58.26-1 .26-1.92 0-2-2-2-2zm2-6h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59L10.8 8.78 7.45 7.11v.01C7.31 7.05 7.16 7 7 7s-.31.05-.44.11V7.1l-6 3v.01c-.33.17-.56.5-.56.89 0 .55.45 1 1 1 .16 0 .31-.05.44-.11v.01L7 9.12l3.55 1.78v-.01c.14.06.29.11.45.11.28 0 .53-.11.71-.29L18 4.41V6c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z"],chat:["M19 0H7c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h5.59l3.71 3.71c.17.18.42.29.7.29.55 0 1-.45 1-1v-3h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 13c-1.1 0-2-.9-2-2V4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h1v3a1.003 1.003 0 001.71.71L7.41 16H13c.55 0 1-.45 1-1v-.17L12.17 13H7z"],"chevron-backward":["M8.41 10l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L7 8.59V4c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55.45 1 1 1s1-.45 1-1v-4.59l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L8.41 10z"],"chevron-down":["M16 6c-.28 0-.53.11-.71.29L10 11.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0016 6z"],"chevron-forward":["M13 3c-.55 0-1 .45-1 1v4.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l5.29-5.3V16c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z"],"chevron-left":["M8.41 10l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L8.41 10z"],"chevron-right":["M13.71 9.29l-6-6a1.003 1.003 0 00-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],"chevron-up":["M16.71 12.29l-6-6C10.53 6.11 10.28 6 10 6s-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42L10 8.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],circle:["M10 0C4.5 0 0 4.5 0 10s4.5 10 10 10 10-4.5 10-10S15.5 0 10 0zm0 18c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z"],"circle-arrow-down":["M14 10c-.28 0-.53.11-.71.29L11 12.59V5c0-.55-.45-1-1-1s-1 .45-1 1v7.59L6.71 10.3A.965.965 0 006 10a1.003 1.003 0 00-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0014 10zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"],"circle-arrow-left":["M15 9H7.41L9.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L7.41 11H15c.55 0 1-.45 1-1s-.45-1-1-1zm-5-9C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"],"circle-arrow-right":["M15.71 9.29l-4-4a1.003 1.003 0 00-1.42 1.42L12.59 9H5c-.55 0-1 .45-1 1s.45 1 1 1h7.59l-2.29 2.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"],"circle-arrow-up":["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.71-13.71C10.53 4.11 10.28 4 10 4s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L9 7.41V15c0 .55.45 1 1 1s1-.45 1-1V7.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4z"],citation:["M4 1C1.79 1 0 2.79 0 5s1.79 4 4 4c.1 0 .2-.01.3-.02C3.82 11.32 2.53 13 1 13c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7-4.48 7-10 0-2.21-1.79-4-4-4zM16 1c-2.21 0-4 1.79-4 4s1.79 4 4 4c.1 0 .2-.01.3-.02C15.82 11.32 14.53 13 13 13c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7-4.48 7-10 0-2.21-1.79-4-4-4z"],clean:["M7 0L5 5 0 6.998 5 9l2 5 2-5 5-1.995L9 5zM15 10l-1.5 3.496-3.5 1.499 3.5 1.498L15 20l1.5-3.507L20 15l-3.5-1.504z"],clipboard:["M13 2c0-.55-.45-1-1-1h-.78a1.98 1.98 0 00-3.44 0H7c-.55 0-1 .45-1 1v2h7V2z","M16 2h-2v3H5V2H3c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"],cloud:["M15 7c-.12 0-.24.03-.36.04C13.83 4.69 11.62 3 9 3 5.69 3 3 5.69 3 9c0 .05.01.09.01.14A3.98 3.98 0 000 13c0 2.21 1.79 4 4 4h11c2.76 0 5-2.24 5-5s-2.24-5-5-5z"],"cloud-download":["M15 4c-.12 0-.24.03-.36.04C13.83 1.69 11.62 0 9 0 5.69 0 3 2.69 3 6c0 .05.01.09.01.14A3.98 3.98 0 000 10c0 2.21 1.79 4 4 4h.78c.55-.61 1.34-1 2.22-1v-2c0-1.66 1.34-3 3-3s3 1.34 3 3v2c.88 0 1.66.38 2.2.98C17.87 13.87 20 11.69 20 9c0-2.76-2.24-5-5-5zm-2 11c-.28 0-.53.11-.71.29L11 16.59V11c0-.55-.45-1-1-1s-1 .45-1 1v5.59L7.71 15.3A.965.965 0 007 15a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0013 15z"],"cloud-upload":["M10.71 10.29c-.18-.18-.43-.29-.71-.29s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L9 13.41V19c0 .55.45 1 1 1s1-.45 1-1v-5.59l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM15 4c-.12 0-.24.03-.36.04C13.83 1.69 11.62 0 9 0 5.69 0 3 2.69 3 6c0 .05.01.09.01.14A3.98 3.98 0 000 10c0 2.21 1.79 4 4 4 0-.83.34-1.58.88-2.12l3-3a2.993 2.993 0 014.24 0l3 3-.01.01c.52.52.85 1.23.87 2.02C18.28 13.44 20 11.42 20 9c0-2.76-2.24-5-5-5z"],code:["M6 6a1.003 1.003 0 00-1.71-.71l-4 4C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L2.41 10 5.7 6.71c.19-.18.3-.43.3-.71zm6-4c-.46 0-.83.31-.95.73l-4 14c-.02.09-.05.17-.05.27 0 .55.45 1 1 1 .46 0 .83-.31.95-.73l4-14c.02-.09.05-.17.05-.27 0-.55-.45-1-1-1zm7.71 7.29l-4-4a1.003 1.003 0 00-1.42 1.42l3.3 3.29-3.29 3.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],"code-block":["M19 5h-2V3c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v2H9V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM8.71 15.29a1.003 1.003 0 01-1.42 1.42l-4-4C3.11 12.53 3 12.28 3 12s.11-.53.29-.71l4-4a1.003 1.003 0 011.42 1.42L5.41 12l3.3 3.29zm8-2.58l-4 4a1.003 1.003 0 01-1.42-1.42l3.3-3.29-3.29-3.29A.965.965 0 0111 8a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71s-.11.53-.29.71z"],cog:["M19 8h-2.31c-.14-.46-.33-.89-.56-1.3l1.7-1.7a.996.996 0 000-1.41l-1.41-1.41a.996.996 0 00-1.41 0l-1.7 1.7c-.41-.22-.84-.41-1.3-.55V1c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v2.33c-.48.14-.94.34-1.37.58L5 2.28a.972.972 0 00-1.36 0L2.28 3.64c-.37.38-.37.99 0 1.36L3.9 6.62c-.24.44-.44.89-.59 1.38H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2.31c.14.46.33.89.56 1.3L2.17 15a.996.996 0 000 1.41l1.41 1.41c.39.39 1.02.39 1.41 0l1.7-1.7c.41.22.84.41 1.3.55V19c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.33c.48-.14.94-.35 1.37-.59L15 17.72c.37.37.98.37 1.36 0l1.36-1.36c.37-.37.37-.98 0-1.36l-1.62-1.62c.24-.43.45-.89.6-1.38H19c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-9 6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"],"collapse-all":["M9.29 8.71c.18.18.43.29.71.29s.53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42L10 6.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6zm1.42 2.58c-.18-.18-.43-.29-.71-.29s-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42l5.29-5.3 5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6z"],"column-layout":["M19 1H1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM5 17H2V3h3v14zm4 0H6V3h3v14zm9 0h-8V3h8v14z"],comment:["M19 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3v4a1.003 1.003 0 001.71.71l4.7-4.71H19c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM4 10c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6 0c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6 0c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"],comparison:["M6 8H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm13-6h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 3h-5V3h5v2zM6 14H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zM6 2H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm4-2c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm9 14h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm0 3h-5v-2h5v2zm0-9h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm0 3h-5V9h5v2z"],compass:["M15 10c0 .14-.03.28-.09.4l-3.99 8.98-.01.02a.991.991 0 01-1.82 0l-.01-.02-3.99-8.98c-.06-.12-.09-.26-.09-.4s.03-.28.09-.4L9.08.62 9.09.6a.991.991 0 011.82 0l.01.02 3.99 8.98c.06.12.09.26.09.4zm-5-6.54L7.09 10h5.81L10 3.46z"],compressed:["M19.89 6.56l-2.99-6h-.01C16.72.23 16.39 0 16 0H4c-.39 0-.72.23-.89.56H3.1l-3 6h.01C.05 6.69 0 6.84 0 7v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7c0-.16-.05-.31-.11-.44zM11 2h4.38l2 4H11V2zM4.62 2H9v4H2.62l2-4zM18 18H2V8h7v4.59L6.71 10.3A.965.965 0 006 10a1.003 1.003 0 00-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L11 12.59V8h7v10z"],confirm:["M9.71 5.29a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7a1.003 1.003 0 00-1.42-1.42L12 7.59l-2.29-2.3zm7.93 2.32c.23.75.36 1.56.36 2.39 0 4.42-3.58 8-8 8s-8-3.58-8-8a7.998 7.998 0 0111.8-7.04l1.46-1.46C13.73.56 11.93 0 10 0 4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10c0-1.4-.29-2.73-.81-3.95l-1.55 1.56z"],console:["M19 19H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h18c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1zM18 6H2v11h16V6zM4 8c.28 0 .53.11.71.29l2 2c.18.18.29.43.29.71s-.11.53-.29.71l-2 2a1.003 1.003 0 01-1.42-1.42L4.59 11l-1.3-1.29A1.003 1.003 0 014 8zm5 4h3c.55 0 1 .45 1 1s-.45 1-1 1H9c-.55 0-1-.45-1-1s.45-1 1-1z"],contrast:["M19 8h-1.26c-.19-.73-.48-1.42-.85-2.06l.94-.94a.996.996 0 000-1.41l-1.41-1.41a.996.996 0 00-1.41 0l-.94.94c-.65-.38-1.34-.67-2.07-.86V1c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v1.26c-.76.2-1.47.5-2.13.89L5 2.28a.972.972 0 00-1.36 0L2.28 3.64c-.37.38-.37.98 0 1.36l.87.87c-.39.66-.69 1.37-.89 2.13H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h1.26c.19.73.48 1.42.85 2.06l-.94.94a.996.996 0 000 1.41l1.41 1.41c.39.39 1.02.39 1.41 0l.94-.94c.64.38 1.33.66 2.06.85V19c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1.26c.76-.2 1.47-.5 2.13-.89l.88.87c.37.37.98.37 1.36 0l1.36-1.36c.37-.38.37-.98 0-1.36l-.87-.87c.4-.65.7-1.37.89-2.13H19c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-9 7c-2.76 0-5-2.24-5-5s2.24-5 5-5v10z"],control:["M17 10h-7v7h7v-7zm0-7h-7v6h7V3zM9 3H3v14h6V3zm10-3H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V2h16v16z"],"credit-card":["M19 3H1c-.55 0-1 .45-1 1v2h20V4c0-.55-.45-1-1-1zM0 16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V8H0v8zm6.5-2h7c.28 0 .5.22.5.5s-.22.5-.5.5h-7c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm-4 0h2c.28 0 .5.22.5.5s-.22.5-.5.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5z"],cross:["M11.41 10l4.29-4.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L10 8.59l-4.29-4.3a1.003 1.003 0 00-1.42 1.42L8.59 10 4.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4.29-4.3 4.29 4.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L11.41 10z"],crown:["M2 8l4 2 4-5 4 5 4-2-1 7H3L2 8zm8-6a1 1 0 110 2 1 1 0 010-2zM1 5a1 1 0 110 2 1 1 0 010-2zm18 0a1 1 0 110 2 1 1 0 010-2zM3 16h14v2H3v-2z"],cube:["M1.953 4.481l7.41-4.02c.394-.215.88-.215 1.275 0l7.409 4.02L10 9.22 1.953 4.48zm-.817.68L9.5 10.085v9.281a1.316 1.316 0 01-.138-.064l-7.714-4.186A1.211 1.211 0 011 14.057v-8.35c0-.193.048-.38.136-.547zm17.728 0c.088.166.136.353.136.546v8.35c0 .438-.247.842-.648 1.06l-7.714 4.186c-.045.024-.091.046-.138.064v-9.281l8.364-4.926z"],"cube-add":["M17 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5h-2a1 1 0 010-2h2V1a1 1 0 012 0v2zm-3.969 4.435L10 9.22 1.953 4.48l7.41-4.02c.394-.215.88-.215 1.275 0l1.33.721A3.001 3.001 0 0013 7c0 .148.01.293.031.435zm.319.972A3 3 0 0019 7v7.057c0 .438-.247.842-.648 1.06l-7.714 4.186c-.045.024-.091.046-.138.064v-9.281l2.85-1.679zM1.136 5.16L9.5 10.086v9.281a1.316 1.316 0 01-.138-.064l-7.714-4.186A1.211 1.211 0 011 14.057v-8.35c0-.193.048-.38.136-.547z"],"cube-remove":["M11.968 1.182A3.001 3.001 0 0013 7h.77L10 9.22 1.953 4.48l7.41-4.02c.394-.215.88-.215 1.275 0l1.33.721zM19 7v7.057c0 .438-.247.842-.648 1.06l-7.714 4.186c-.045.024-.091.046-.138.064v-9.281L15.74 7H19zM1.136 5.16L9.5 10.086v9.281a1.316 1.316 0 01-.138-.064l-7.714-4.186A1.211 1.211 0 011 14.057v-8.35c0-.193.048-.38.136-.547zM13 3h6a1 1 0 010 2h-6a1 1 0 010-2z"],"curved-range-chart":["M19 16H3.02l2.14-1.74c2.25 1.7 7.33.46 11.83-2.99l-1.29-1.5c-3.56 2.74-7.31 4.03-8.93 3.19l10.55-8.57-.63-.78-10.59 8.6c-.64-1.64 1.46-4.91 5.09-7.7L9.9 3.01c-4.6 3.54-6.91 8.12-5.41 10.51L2 15.54V3c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],cut:["M16 2s.72-1.28 0-2l-5.29 6.25 1.28 1.54L16 2zm.08 10c-.55 0-1.07.12-1.54.32L4.31 0c-.7.72 0 2 0 2l4.45 6.56-3.19 3.77C5.09 12.12 4.56 12 4 12c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.65-.17-1.26-.45-1.8l2.54-3.67 2.49 3.67c-.27.54-.44 1.15-.44 1.8 0 2.21 1.76 4 3.92 4 2.17 0 3.92-1.79 3.92-4 .02-2.21-1.74-4-3.9-4zM4 18c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm12.08 0c-1.08 0-1.96-.9-1.96-2s.88-2 1.96-2 1.96.9 1.96 2-.88 2-1.96 2z"],cycle:["M16 10a4 4 0 110 8 4 4 0 010-8zM4 10a4 4 0 110 8 4 4 0 010-8zm7.299-5.543l.087.089 1.93 2.232 2.048.708a1 1 0 01.65 1.16l-.031.112a1 1 0 01-1.16.65l-.112-.031-2.302-.796a1 1 0 01-.337-.197l-.092-.094-1.387-1.603-1.891 1.982 2.046 2.274a1 1 0 01.25.547l.007.122v4.24a1 1 0 01-1.993.117l-.007-.117-.001-3.857-2.408-2.676a1 1 0 01-.063-1.26l.082-.099 3.29-3.45a1 1 0 011.394-.053zM16 12a2 2 0 100 4 2 2 0 000-4zM4 12a2 2 0 100 4 2 2 0 000-4zm9.5-10a1.5 1.5 0 110 3 1.5 1.5 0 010-3z"],dashboard:["M6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM4 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-5C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm6-9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-8 5c0 1.1.9 2 2 2s2-.9 2-2c0-.33-2-8-2-8s-2 7.67-2 8zm6-9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"],"data-connection":["M2 11.9c.935.674 2.339 1.217 4.023 1.536A6.996 6.996 0 009.393 20c-3.988-.019-7.231-1.083-7.387-2.4L2 17.5v-5.6zM13 8c3.315 0 6 2.685 6 6s-2.685 6-6 6-6-2.685-6-6 2.685-6 6-6zm1 1l-4 6h2.5l-.5 4 4-6h-2.5l.5-4zm3-4.6v3.855a7.003 7.003 0 00-10.779 3.992c-2.408-.391-4.097-1.202-4.214-2.142L2 10V4.4c1.525 1.1 4.3 1.85 7.5 1.85S15.475 5.5 17 4.4zM9.5 0C13.637 0 17 1.125 17 2.5S13.637 5 9.5 5C5.35 5 2 3.875 2 2.5S5.35 0 9.5 0z"],"data-lineage":["M1.053 0C.47 0 0 .471 0 1.053V4.21c0 .58.471 1.052 1.053 1.052h3.275a6.332 6.332 0 003.728 4.738 6.33 6.33 0 00-3.728 4.737l-3.275-.001C.47 14.737 0 15.208 0 15.789v3.158C0 19.53.471 20 1.053 20h7.435c.581 0 1.053-.471 1.053-1.053V15.79c0-.58-.472-1.052-1.053-1.052H5.406a5.293 5.293 0 015.195-4.21v2.105c0 .58.471 1.052 1.052 1.052h7.294c.582 0 1.053-.471 1.053-1.052V7.368c0-.58-.471-1.052-1.053-1.052h-7.294c-.581 0-1.052.471-1.052 1.052v2.106a5.293 5.293 0 01-5.194-4.21h3.081c.581 0 1.053-.472 1.053-1.053V1.053C9.54.47 9.069 0 8.488 0H1.053z"],database:["M2.01 5.1v5.4c0 1.38 3.58 2.5 8 2.5s8-1.12 8-2.5V5.1c-1.49 1.13-4.51 1.9-8 1.9-3.48 0-6.5-.77-8-1.9zm8 .9c4.42 0 8-1.12 8-2.5s-3.58-2.5-8-2.5-8 1.12-8 2.5S5.6 6 10.01 6zm-8 6.1v5.4c0 1.38 3.58 2.5 8 2.5s8-1.12 8-2.5v-5.4c-1.49 1.13-4.51 1.9-8 1.9-3.48 0-6.5-.77-8-1.9z"],delete:["M15 6a1.003 1.003 0 00-1.71-.71L10 8.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L8.59 10 5.3 13.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3.29-3.3 3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L11.41 10l3.29-3.29c.19-.18.3-.43.3-.71zm-5-6C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"],delta:["M10 0L0 20h20L10 0zM9 6l6 12H3L9 6z"],"derive-column":["M7.1 8.2h-.99c.28-1.11.66-1.92 1.12-2.43.28-.32.56-.48.83-.48.05 0 .1.02.13.05.03.03.05.07.05.12 0 .04-.04.13-.11.25a.64.64 0 00-.12.35c0 .15.06.28.18.39.12.11.27.16.45.16.2 0 .36-.07.49-.2s.2-.31.2-.54c0-.26-.1-.47-.3-.63-.19-.16-.51-.24-.95-.24-.68 0-1.3.19-1.85.58-.56.38-1.09 1.02-1.59 1.91-.17.3-.34.5-.49.59-.15.08-.4.13-.74.12l-.23.77h.95l-1.39 5.24c-.23.86-.39 1.39-.47 1.59-.12.29-.3.54-.54.75-.1.08-.21.12-.35.12-.04 0-.07-.01-.1-.03l-.03-.04c0-.02.03-.07.1-.13.07-.07.1-.17.1-.31 0-.15-.05-.28-.16-.38-.11-.1-.27-.15-.47-.15-.25 0-.44.07-.59.2-.15.12-.23.28-.23.46 0 .19.09.36.27.5.19.14.47.21.86.21.61 0 1.16-.15 1.63-.46.48-.31.89-.78 1.25-1.43.35-.64.72-1.68 1.09-3.11l.8-3.03h.96l.24-.77zM19 0h-9c-.55 0-1 .45-1 1v3h2V2h7v16h-7v-2H9v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-8.79 13.49c.15.28.32.49.52.61.19.12.44.19.73.19.28 0 .57-.1.86-.3.38-.25.77-.69 1.17-1.31l-.25-.14c-.27.37-.48.6-.61.69-.09.06-.19.09-.31.09-.14 0-.28-.09-.42-.26-.23-.29-.54-1.09-.93-2.4.35-.59.64-.97.87-1.15.17-.13.35-.2.55-.2.07 0 .2.03.39.08s.36.08.5.08c.2 0 .37-.07.5-.2.15-.14.22-.31.22-.52 0-.22-.07-.4-.2-.53s-.33-.2-.58-.2c-.22 0-.43.05-.63.15-.2.1-.45.32-.75.67-.23.25-.56.7-1.01 1.33a6.52 6.52 0 00-.91-2.15l-2.39.39-.05.25c.18-.03.33-.05.45-.05.24 0 .43.1.59.3.25.31.59 1.24 1.02 2.8-.34.44-.58.73-.7.87-.21.22-.38.36-.52.43-.1.05-.22.08-.35.08-.1 0-.26-.05-.49-.16a1.01 1.01 0 00-.42-.11c-.23 0-.42.07-.57.22-.15.14-.23.33-.23.55 0 .21.07.38.21.51.14.13.33.2.56.2.23 0 .44-.05.64-.14.2-.09.45-.29.75-.59s.72-.78 1.25-1.43c.21.61.39 1.06.54 1.35z"],desktop:["M19 0H1C.45 0 0 .45 0 1v13c0 .55.45 1 1 1h5.67l-.5 3H5c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1h-1.17l-.5-3H19c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 13H2V2h16v11z"],diagnosis:["M4 2a1 1 0 01.117 1.993L4 4v5a2 2 0 001.85 1.995L6 11a2 2 0 001.995-1.85L8 9V4a1 1 0 01-.117-1.993L8 2h1a1 1 0 01.993.883L10 3v6a4.002 4.002 0 01-3 3.874V13a3 3 0 003 3 4 4 0 003.995-3.8L14 12V8.792a2.5 2.5 0 112 0V12a6 6 0 01-6 6 5 5 0 01-4.995-4.783L5 13v-.126A4.002 4.002 0 012.005 9.2L2 9V3a1 1 0 01.883-.993L3 2h1z"],"diagram-tree":["M19 10v5h-2v-4h-6v4H9v-4H3v4H1v-5a1 1 0 011-1h7V5h2v4h7a1 1 0 011 1zM1 16h2a1 1 0 011 1v2a1 1 0 01-1 1H1a1 1 0 01-1-1v-2a1 1 0 011-1zm16 0h2a1 1 0 011 1v2a1 1 0 01-1 1h-2a1 1 0 01-1-1v-2a1 1 0 011-1zm-8 0h2a1 1 0 011 1v2a1 1 0 01-1 1H9a1 1 0 01-1-1v-2a1 1 0 011-1zM9 0h2a1 1 0 011 1v2a1 1 0 01-1 1H9a1 1 0 01-1-1V1a1 1 0 011-1z"],"direction-left":["M20 3.02l-20 7 20 7-5-7z"],"direction-right":["M20 10.02l-20-7 5 7-5 7z"],disable:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM2 10c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L3.69 14.9A7.902 7.902 0 012 10zm8 8c-1.85 0-3.55-.63-4.9-1.69L16.31 5.1A7.902 7.902 0 0118 10c0 4.42-3.58 8-8 8z"],document:["M11.98 0h-8c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V6l-6-6zm4 18h-11V2h6v5h5v11z"],"document-open":["M8 15c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1h2.59L1.3 16.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L8 12.41V15zm5-15H5c-.55 0-1 .45-1 1v6h2V2h6v5h5v11H6v-.76L4.04 19.2c.1.45.48.8.96.8h13c.55 0 1-.45 1-1V6l-6-6z"],"document-share":["M14.09 10.09c-.31.31-.67.57-1.09.72V18H2V2h6v5h1.18c.15-.42.39-.8.7-1.11v-.01l2.45-2.45c-.42-.29-.78-.65-1.01-1.11L9 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V9.24l-.88.88-.03-.03zM19 0h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 3.41V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z"],dollar:["M15.57 11.19c-.27-.51-.63-.93-1.07-1.26-.44-.33-.95-.6-1.51-.79-.56-.2-1.14-.36-1.72-.5-.6-.14-1.19-.26-1.75-.38-.57-.13-1.07-.27-1.51-.44-.44-.17-.8-.38-1.07-.63s-.41-.59-.41-1c0-.33.09-.6.28-.81.19-.21.42-.36.69-.47.27-.11.57-.18.88-.22.31-.04.58-.06.8-.06.71 0 1.35.14 1.9.41.55.27.91.81 1.06 1.62h3.36c-.09-.84-.32-1.56-.69-2.16-.37-.6-.83-1.08-1.38-1.45-.56-.37-1.18-.64-1.86-.81-.19-.05-.38-.07-.57-.1V1c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v1.1c-.22.03-.43.05-.66.1-.73.13-1.39.37-1.98.71-.6.34-1.09.8-1.47 1.35-.39.56-.58 1.25-.58 2.08 0 .76.13 1.41.4 1.93.26.52.62.95 1.06 1.28.44.33.94.6 1.5.79.55.2 1.13.36 1.74.5.58.14 1.16.26 1.72.38s1.07.26 1.51.43c.44.17.8.39 1.09.66.28.27.43.63.45 1.06.02.43-.08.78-.3 1.04-.22.26-.49.47-.83.6-.34.14-.7.23-1.09.28-.39.05-.73.07-1.03.07-.87 0-1.61-.2-2.23-.59-.62-.39-.98-1.08-1.07-2.06H3c.02.9.19 1.68.52 2.34.33.66.78 1.21 1.35 1.65.57.44 1.25.77 2.03.98.35.1.71.16 1.08.21V19c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.13c.25-.04.5-.07.76-.13.77-.18 1.47-.46 2.1-.85.63-.39 1.14-.9 1.54-1.53.4-.63.59-1.39.59-2.29.01-.75-.13-1.37-.4-1.88z"],dot:["M10 6a4 4 0 100 8 4 4 0 100-8z"],"double-caret-horizontal":["M8 4c-.24 0-.46.1-.63.24l-.01-.01-6 5 .01.01c-.22.19-.37.45-.37.76s.15.57.37.76l-.01.01 6 5 .01-.01c.17.14.39.24.63.24.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm11 6c0-.31-.15-.57-.37-.76l.01-.01-6-5-.01.01C12.46 4.1 12.24 4 12 4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1 .24 0 .46-.1.63-.24l.01.01 6-5-.01-.01c.22-.19.37-.45.37-.76z"],"double-caret-vertical":["M5 9h10c.55 0 1-.45 1-1 0-.24-.1-.46-.24-.63l.01-.01-5-6-.01.01C10.57 1.15 10.31 1 10 1s-.57.15-.76.37l-.01-.01-5 6 .01.01C4.1 7.54 4 7.76 4 8c0 .55.45 1 1 1zm10 2H5c-.55 0-1 .45-1 1 0 .24.1.46.24.63l-.01.01 5 6 .01-.01c.19.22.45.37.76.37s.57-.15.76-.37l.01.01 5-6-.01-.01c.14-.17.24-.39.24-.63 0-.55-.45-1-1-1z"],"double-chevron-down":["M9.29 10.71c.18.18.43.29.71.29s.53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42L10 8.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6zM16 9c-.28 0-.53.11-.71.29L10 14.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0016 9z"],"double-chevron-left":["M5.41 10l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L5.41 10zm6 0l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L11.41 10z"],"double-chevron-right":["M11 10c0-.28-.11-.53-.29-.71l-6-6a1.003 1.003 0 00-1.42 1.42L8.59 10 3.3 15.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71zm5.71-.71l-6-6a1.003 1.003 0 00-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],"double-chevron-up":["M4 11c.28 0 .53-.11.71-.29L10 5.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6A.997.997 0 0010 3c-.28 0-.53.11-.71.29l-6 6A1.003 1.003 0 004 11zm6.71-1.71A.997.997 0 0010 9c-.28 0-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42l5.29-5.3 5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6z"],"doughnut-chart":["M16 10c0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6V0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10h-4zm-.09-1h4.04C19.48 4.28 15.72.52 11 .05V4.1A5.98 5.98 0 0115.91 9z"],download:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm4.71 11.71l-4 4c-.18.18-.43.29-.71.29s-.53-.11-.71-.29l-4-4a1.003 1.003 0 011.42-1.42L9 12.59V5c0-.55.45-1 1-1s1 .45 1 1v7.59l2.29-2.29c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71z"],"drag-handle-horizontal":["M7.5 11c-.83 0-1.5.67-1.5 1.5S6.67 14 7.5 14 9 13.33 9 12.5 8.33 11 7.5 11zm-5-5C1.67 6 1 6.67 1 7.5S1.67 9 2.5 9 4 8.33 4 7.5 3.33 6 2.5 6zm0 5c-.83 0-1.5.67-1.5 1.5S1.67 14 2.5 14 4 13.33 4 12.5 3.33 11 2.5 11zm15-2c.83 0 1.5-.67 1.5-1.5S18.33 6 17.5 6 16 6.67 16 7.5 16.67 9 17.5 9zm-5 2c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm5 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm-10-5C6.67 6 6 6.67 6 7.5S6.67 9 7.5 9 9 8.33 9 7.5 8.33 6 7.5 6zm5 0c-.83 0-1.5.67-1.5 1.5S11.67 9 12.5 9 14 8.33 14 7.5 13.33 6 12.5 6z"],"drag-handle-vertical":["M7.5 6C6.67 6 6 6.67 6 7.5S6.67 9 7.5 9 9 8.33 9 7.5 8.33 6 7.5 6zm0 5c-.83 0-1.5.67-1.5 1.5S6.67 14 7.5 14 9 13.33 9 12.5 8.33 11 7.5 11zm0 5c-.83 0-1.5.67-1.5 1.5S6.67 19 7.5 19 9 18.33 9 17.5 8.33 16 7.5 16zm5-12c.83 0 1.5-.67 1.5-1.5S13.33 1 12.5 1 11 1.67 11 2.5 11.67 4 12.5 4zm-5-3C6.67 1 6 1.67 6 2.5S6.67 4 7.5 4 9 3.33 9 2.5 8.33 1 7.5 1zm5 10c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-10c-.83 0-1.5.67-1.5 1.5S11.67 9 12.5 9 14 8.33 14 7.5 13.33 6 12.5 6z"],draw:["M17.7 12.7c0-.1 0-.2-.1-.3l-2-7c-.1-.3-.3-.6-.6-.7L1.8 0l-.6.5L7.7 7c.3-.2.6-.3 1-.3 1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2c0-.4.1-.7.3-1L.5 1.2l-.5.6L4.7 15c.1.3.4.5.7.6l7 2c.1 0 .2.1.3.1.3 0 .5-.1.7-.3l4-4c.2-.2.3-.5.3-.7zm1 1c-.3 0-.5.1-.7.3l-4 4c-.2.2-.3.4-.3.7 0 .5.4 1 1 1 .3 0 .5-.1.7-.3l4-4c.2-.2.3-.4.3-.7 0-.6-.5-1-1-1z"],"drawer-left":["M9 0a1 1 0 011 1v18a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h8zM8 2H2v16h6V2zm2 7h6.59L14.3 6.71A.965.965 0 0114 6a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-4 4a1.003 1.003 0 01-1.42-1.42l2.3-2.29H10V9z"],"drawer-left-filled":["M1 0h8a1 1 0 011 1v18a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1zm9 9h6.59L14.3 6.71A.965.965 0 0114 6a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-4 4a1.003 1.003 0 01-1.42-1.42l2.3-2.29H10V9z"],"drawer-right":["M19 0a1 1 0 011 1v18a1 1 0 01-1 1h-8a1 1 0 01-1-1V1a1 1 0 011-1h8zm-1 2h-6v16h6V2zm-8 7H3.41L5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L3.41 11H10V9z"],"drawer-right-filled":["M11 0h8a1 1 0 011 1v18a1 1 0 01-1 1h-8a1 1 0 01-1-1V1a1 1 0 011-1zm-1 9H3.41L5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L3.41 11H10V9z"],"drive-time":["M20.01 7.7c0-.63-.5-1.14-1.1-1.14h-1.32l-.95-2.57c-.24-.64-.95-1.31-1.59-1.5 0 0-1.65-.49-5.05-.49s-5.04.49-5.04.49c-.63.19-1.35.86-1.59 1.5l-.95 2.57H1.1C.5 6.56 0 7.07 0 7.7c0 .63.5 1.14 1.1 1.14h.47l-.34.91c-.24.64-.43 1.72-.43 2.4v5.39c0 .8.63 1.45 1.4 1.45.77 0 1.4-.65 1.4-1.45v-.83h12.8v.83c0 .8.63 1.45 1.4 1.45s1.4-.65 1.4-1.45v-5.39c0-.68-.19-1.77-.43-2.4l-.34-.91h.47c.61 0 1.11-.51 1.11-1.14zm-16.47.34l1.12-3.16c.08-.22.32-.39.54-.39h9.6c.22 0 .46.17.54.39l1.12 3.16c.08.21-.04.39-.26.39H3.8c-.22-.01-.34-.18-.26-.39zm.96 4.94c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.68 1.5 1.5c0 .83-.67 1.5-1.5 1.5zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"],duplicate:["M15 4H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 14H2V6h12v12zm5-18H5c-.55 0-1 .45-1 1v2h2V2h12v12h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],edit:["M4.59 12.59l2.83 2.83 7.65-7.65-2.83-2.83-7.65 7.65zM2 18l4.41-1.59-2.81-2.79L2 18zM16 2c-.55 0-1.05.22-1.41.59l-1.65 1.65 2.83 2.83 1.65-1.65A2.006 2.006 0 0016 2z"],eject:["M4 12h12c.55 0 1-.45 1-1 0-.25-.1-.47-.25-.64l.01-.01-6-7-.01.01C10.57 3.14 10.3 3 10 3s-.57.14-.75.36l-.01-.01-6 7 .01.01c-.15.17-.25.39-.25.64 0 .55.45 1 1 1zm12 1H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1z"],emoji:["M10 0c5.523 0 10 4.477 10 10s-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0zm0 2a8 8 0 100 16 8 8 0 000-16zm-4 8l.015.215C6.219 12.42 7.925 14 10 14a4 4 0 003.995-3.8L14 10h2l-.013.238C15.754 13.552 13.163 16 10 16a6 6 0 01-5.996-5.775L4 10h2zm1.5-4a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm5 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3z"],endorsed:["M19.83 9.38L18.81 7.6V5.62c0-.45-.23-.85-.61-1.08l-1.71-1-1.02-1.76a1.25 1.25 0 00-1.08-.61h-2.03l-1.74-1c-.38-.23-.87-.23-1.25 0l-1.74 1H5.65c-.44 0-.85.23-1.08.61L3.58 3.5l-1.8 1.04c-.38.24-.62.64-.62 1.08v2.06L.17 9.4c-.11.19-.17.4-.17.61s.06.42.17.61l.99 1.72v2.06c0 .45.23.85.61 1.08l1.78 1.02.99 1.72c.23.38.63.61 1.08.61h1.99l1.74 1c.19.11.41.17.62.17.21 0 .42-.06.61-.17l1.74-1h2.03c.44 0 .85-.23 1.08-.61l1.02-1.76 1.71-1c.38-.23.61-.64.61-1.08v-1.97l1.02-1.78c.27-.38.27-.85.04-1.25zm-5.08-.71l-5.01 5.01c-.18.18-.43.29-.71.29-.28 0-.53-.11-.71-.29l-3.01-3.01a1.003 1.003 0 011.42-1.42l2.3 2.3 4.31-4.3a1.003 1.003 0 011.71.71c0 .28-.12.53-.3.71z"],envelope:["M0 4.01v11.91l6.27-6.27L0 4.01zm18.91-1.03H1.09L10 10.97l8.91-7.99zm-5.18 6.66L20 15.92V4.01l-6.27 5.63zm-3.23 2.9c-.13.12-.31.19-.5.19s-.37-.07-.5-.19l-2.11-1.89-6.33 6.33h17.88l-6.33-6.33-2.11 1.89z"],equals:["M4 7h12a1 1 0 010 2H4a1 1 0 110-2zm0 4h12a1 1 0 010 2H4a1 1 0 010-2z"],eraser:["M18.71 8.43c.39-.4.39-1.05 0-1.45l-5.53-5.72a.967.967 0 00-1.4 0L1.29 12.1c-.39.4-.39 1.05 0 1.45l4.25 4.39 2.13 2.05h9.27c.02 0 .03.01.05.01.55 0 1-.45 1-1s-.45-1-1-1H9.46l.05-.05h.01l.81-.84 8.38-8.68zM7.52 17.94l-4.95-5.12 4.46-4.61 4.95 5.12-4.46 4.61z"],error:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm1 16H9v-2h2v2zm0-3H9V4h2v9z"],euro:["M8.89 4.47c.56-.31 1.23-.47 2.03-.47.44 0 .85.07 1.25.22.4.14.76.35 1.07.6.17.14.33.3.47.47l2.32-2.32c-.16-.15-.3-.32-.47-.46-.62-.49-1.33-.87-2.12-1.13-.8-.25-1.64-.38-2.52-.38-1.24 0-2.35.22-3.33.66-.99.44-1.82 1.05-2.49 1.82-.68.78-1.2 1.68-1.56 2.72-.09.26-.13.54-.2.8H2c-.55 0-1 .45-1 1s.45 1 1 1h1.04c-.01.2-.04.38-.04.58 0 .15.03.28.03.42H2c-.55 0-1 .45-1 1s.45 1 1 1h1.31c.07.3.13.6.23.89.36 1.02.88 1.92 1.56 2.67.68.76 1.51 1.35 2.49 1.79.98.43 2.09.65 3.33.65.99 0 1.9-.15 2.73-.46.83-.3 1.55-.74 2.17-1.32.03-.03.05-.06.08-.09l-2.41-2.15c-.01.01-.02.02-.02.03-.61.67-1.46 1-2.54 1-.8 0-1.47-.16-2.03-.47-.56-.31-1.01-.72-1.35-1.24-.28-.38-.47-.83-.63-1.3H12c.55 0 1-.45 1-1s-.45-1-1-1H6.56c0-.14-.02-.28-.02-.42 0-.2.02-.39.03-.58H13c.55 0 1-.45 1-1s-.45-1-1-1H6.94c.15-.46.34-.9.59-1.28.35-.52.8-.94 1.36-1.25zM18 11.38v0z"],exchange:["M2.5 8a2.5 2.5 0 000 5 2.5 2.5 0 000-5zm10.35 3.15a.495.495 0 10-.7.7L13.3 13H5.5c-.28 0-.5.22-.5.5s.22.5.5.5h7.79l-1.15 1.15c-.08.09-.14.21-.14.35a.495.495 0 00.85.35l2-2c.09-.09.15-.21.15-.35s-.06-.26-.15-.35l-2-2zM17.5 8a2.5 2.5 0 000 5 2.5 2.5 0 000-5zM7.15 9.85a.495.495 0 10.7-.7L6.71 8h7.79c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H6.71l1.15-1.15c.08-.09.14-.21.14-.35a.495.495 0 00-.85-.35l-2 2c-.09.09-.15.21-.15.35s.06.26.15.35l2 2z"],"exclude-row":["M1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zM0 13a1.003 1.003 0 001.71.71L4 11.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L5.41 10 7.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L4 8.59l-2.29-2.3A1.003 1.003 0 00.29 7.71L2.59 10 .3 12.29c-.19.18-.3.43-.3.71zm18-5h-7c-1.1 0-2 .9-2 2s.9 2 2 2h7c1.1 0 2-.9 2-2s-.9-2-2-2zm1 9H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],"expand-all":["M4 9c.28 0 .53-.11.71-.29L10 3.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6C10.53 1.11 10.28 1 10 1s-.53.11-.71.29l-6 6A1.003 1.003 0 004 9zm12 2c-.28 0-.53.11-.71.29L10 16.59 4.71 11.3A.965.965 0 004 11a1.003 1.003 0 00-.71 1.71l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0016 11z"],export:["M5 7c.28 0 .53-.11.71-.29L9 3.41V15c0 .55.45 1 1 1s1-.45 1-1V3.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-5-5C10.53.11 10.28 0 10 0s-.53.11-.71.29l-5 5A1.003 1.003 0 005 7zm14 7c-.55 0-1 .45-1 1v3H2v-3c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z"],"eye-off":["M20 9.96v-.03-.01-.02-.02a.794.794 0 00-.21-.43c-.55-.69-1.19-1.3-1.85-1.87l-3.93 2.62a3.966 3.966 0 01-3.96 3.77c-.47 0-.91-.1-1.33-.24l-2.24 1.49c.52.21 1.05.39 1.6.51 1.21.27 2.43.28 3.64.05 1.11-.21 2.17-.64 3.17-1.18 1.56-.84 2.99-2 4.23-3.3.23-.24.46-.49.67-.75a.87.87 0 00.21-.43v-.02-.02-.01-.03V10v-.04zm-.46-5.14c.27-.18.46-.47.46-.82 0-.55-.45-1-1-1-.21 0-.39.08-.54.18l-.01-.02L15 5.46c-.95-.53-1.95-.96-3.01-1.2a9.158 9.158 0 00-3.65-.04c-1.11.21-2.17.64-3.17 1.18-1.56.84-2.99 2-4.23 3.3-.23.24-.46.48-.67.75-.27.34-.27.76 0 1.1.64.79 1.39 1.5 2.16 2.15.26.21.52.41.79.61L.44 15.16l.01.02A1 1 0 000 16c0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02 18-12-.01-.02zm-8.67 3.4c-.25-.12-.53-.2-.83-.2-1.1 0-1.99.89-1.99 1.99 0 .03.02.06.02.09l-1.78 1.19c-.14-.4-.22-.83-.22-1.28 0-2.19 1.78-3.97 3.98-3.97 1.01 0 1.91.38 2.61 1l-1.79 1.18z"],"eye-on":["M13.3 8.71c.18.18.43.29.71.29s.53-.11.71-.29l4.99-5a1.003 1.003 0 00-1.42-1.42L14 6.58l-2.29-2.29a.956.956 0 00-.7-.29 1.003 1.003 0 00-.71 1.71l3 3zM20 9.96v-.03-.01-.02-.02a.823.823 0 00-.21-.44c-.44-.55-.94-1.05-1.46-1.52l-2.2 2.2c-.55.54-1.3.88-2.12.88-.05 0-.09-.01-.14-.01a3.978 3.978 0 01-3.86 3.02 4.007 4.007 0 01-1.66-7.65A2.97 2.97 0 018.02 5c0-.28.05-.54.12-.8-1.05.22-2.07.64-3.02 1.15-1.57.85-3 2.02-4.24 3.33-.23.25-.46.5-.67.76-.28.35-.28.77 0 1.12.64.8 1.4 1.52 2.17 2.17 1.66 1.41 3.56 2.58 5.66 3.06 1.21.27 2.43.29 3.65.05 1.11-.21 2.18-.65 3.18-1.19 1.57-.85 3-2.02 4.24-3.33.23-.24.46-.49.67-.76.11-.12.18-.27.21-.44v-.02-.02-.01-.03V10c.01-.01.01-.03.01-.04zm-9.99 2.05c1.03 0 1.87-.79 1.98-1.8l-.09-.09-.01.01-2.1-2.11c-1 .11-1.77.95-1.77 1.98-.01 1.11.89 2.01 1.99 2.01z"],"eye-open":["M10.01 7.984A2.008 2.008 0 008.012 9.99c0 1.103.9 2.006 1.998 2.006a2.008 2.008 0 001.998-2.006c0-1.103-.9-2.006-1.998-2.006zM20 9.96v-.03-.01-.02-.02a.827.827 0 00-.21-.442c-.64-.802-1.398-1.514-2.168-2.166-1.658-1.404-3.566-2.587-5.664-3.058a8.982 8.982 0 00-3.656-.05c-1.11.2-2.178.641-3.177 1.183-1.569.852-2.997 2.016-4.246 3.33-.23.25-.46.49-.67.761-.279.351-.279.773 0 1.124.64.802 1.4 1.514 2.169 2.166 1.658 1.404 3.566 2.577 5.664 3.058 1.209.271 2.438.281 3.656.05 1.11-.21 2.178-.651 3.177-1.193 1.569-.852 2.997-2.016 4.246-3.33.23-.24.46-.49.67-.751.11-.12.179-.271.209-.442v-.02-.02-.01-.03V10v-.04zM10.01 14A4.003 4.003 0 016.014 9.99a4.003 4.003 0 013.996-4.011 4.003 4.003 0 013.996 4.011 4.003 4.003 0 01-3.996 4.011z"],"fast-backward":["M18 3c-.23 0-.42.09-.59.21l-.01-.01L11 8V4c0-.55-.45-1-1-1-.23 0-.42.09-.59.21L9.4 3.2l-8 6 .01.01C1.17 9.4 1 9.67 1 10s.17.6.41.79l-.01.01 8 6 .01-.01c.17.12.36.21.59.21.55 0 1-.45 1-1v-4l6.4 4.8.01-.01c.17.12.36.21.59.21.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"fast-forward":["M19 10c0-.33-.17-.6-.41-.79l.01-.01-8-6-.01.01C10.42 3.09 10.23 3 10 3c-.55 0-1 .45-1 1v4L2.6 3.2l-.01.01C2.42 3.09 2.23 3 2 3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01L9 12v4c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01 8-6-.01-.01c.24-.19.41-.46.41-.79z"],feed:["M2.5 15a2.5 2.5 0 000 5 2.5 2.5 0 000-5zm.5-5c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5 2.24 5 5 0 .55.45 1 1 1s1-.45 1-1c0-3.87-3.13-7-7-7zM3 0c-.55 0-1 .45-1 1s.45 1 1 1c8.28 0 15 6.72 15 15 0 .55.45 1 1 1s1-.45 1-1C20 7.61 12.39 0 3 0zm0 5c-.55 0-1 .45-1 1s.45 1 1 1c5.52 0 10 4.48 10 10 0 .55.45 1 1 1s1-.45 1-1C15 10.37 9.63 5 3 5z"],"feed-subscribed":["M2.5 15a2.5 2.5 0 000 5 2.5 2.5 0 000-5zM3 2c1.76 0 3.44.31 5.01.87.03-.71.31-1.35.75-1.85C6.96.37 5.03 0 3 0c-.55 0-1 .45-1 1s.45 1 1 1zm10.32 4.67a.99.99 0 001.4 0l4.98-4.98c.19-.17.3-.42.3-.7 0-.55-.45-1-1-1a.99.99 0 00-.7.29l-4.27 4.27-2.28-2.28a.99.99 0 00-.7-.29c-.55 0-.99.45-.99 1 0 .28.11.52.29.7l2.97 2.99zM3 10c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5 2.24 5 5 0 .55.45 1 1 1s1-.45 1-1c0-3.87-3.13-7-7-7zm13.94-2.69l-.82.82-.02-.02c-.2.2-.42.37-.67.51A14.8 14.8 0 0118 17c0 .55.45 1 1 1s1-.45 1-1c0-3.61-1.14-6.94-3.06-9.69zM3 5c-.55 0-1 .45-1 1s.45 1 1 1c5.52 0 10 4.48 10 10 0 .55.45 1 1 1s1-.45 1-1C15 10.37 9.63 5 3 5z"],film:["M19 2h-5v3H6V2H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h5v-3h8v3h5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM4 17H2v-2h2v2zm0-3H2v-2h2v2zm0-3H2V9h2v2zm0-3H2V6h2v2zm0-3H2V3h2v2zm10 8H6V7h8v6zm4 4h-2v-2h2v2zm0-3h-2v-2h2v2zm0-3h-2V9h2v2zm0-3h-2V6h2v2zm0-3h-2V3h2v2z"],filter:["M18 1H2a1.003 1.003 0 00-.71 1.71L7 8.41V18a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71V8.41l5.71-5.71c.18-.17.29-.42.29-.7 0-.55-.45-1-1-1z"],"filter-keep":["M15 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L5 7.41V16a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71V7.41l4.71-4.71c.18-.17.29-.42.29-.7zm4 11c-.28 0-.53.11-.71.29L15 16.59l-1.29-1.29A.965.965 0 0013 15a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0019 13z"],"filter-list":["M15 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L5 7.41V16a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71V7.41l4.71-4.71c.18-.17.29-.42.29-.7zm-4 8c0 .55.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1h-7c-.55 0-1 .45-1 1zm8 7h-7c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm0-4h-7c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z"],"filter-open":["M15 2c0 .28-.11.53-.29.7L10 7.41V13c0 .28-.11.53-.29.71l-3 3A1.003 1.003 0 015 16V7.41L.29 2.71A1.003 1.003 0 011 1h13c.55 0 1 .45 1 1zm4.707 11.293a1 1 0 010 1.414l-4 4c-.63.63-1.707.184-1.707-.707v-8c0-.89 1.077-1.337 1.707-.707l4 4z"],"filter-remove":["M15 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L5 7.41V16a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71V7.41l4.71-4.71c.18-.17.29-.42.29-.7zm2.91 13.5l1.79-1.79c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-1.79 1.79-1.79-1.79a1.003 1.003 0 00-1.42 1.42l1.79 1.79-1.79 1.79a1.003 1.003 0 001.42 1.42l1.79-1.79 1.79 1.79a1.003 1.003 0 001.42-1.42l-1.8-1.79z"],flag:["M3 3c-.55 0-1 .45-1 1v15c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1zm0-3c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm2 4.08v8.28c3.01-2.41 8.67 2.64 13 0V4.08C13.61 7.14 8.01 1 5 4.08z"],flame:["M11.622 0c0 1.71.49 3.077 1.472 4.103C16.364 6.496 18 9.23 18 12.308c0 3.418-1.962 5.983-5.887 7.692 2.887-3 2.453-4.23-.49-8C8.5 13.5 9 14.5 9.5 16.5c-1.048 0-2 0-2.5-.5 0 .684 1.197 2.5 1.952 4-3.924-1.026-8.123-7.18-6.651-7.692.981-.342 2.126-.171 3.434.513C4.1 6.667 6.062 2.393 11.622 0z"],flash:["M4.96 6.37a1.003 1.003 0 001.42-1.42l-2-2a1.07 1.07 0 00-.71-.28 1.003 1.003 0 00-.71 1.71l2 1.99zm9.37.3c.28 0 .53-.11.71-.29l2-2a1.003 1.003 0 00-1.42-1.42l-2 2a1.003 1.003 0 00.71 1.71zM10 5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S9 .45 9 1v3c0 .55.45 1 1 1zm-5 5c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1zm14-1h-3c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm-9-3c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm5.04 1.63a1.003 1.003 0 00-1.42 1.42l2 2a1.003 1.003 0 001.42-1.42l-2-2zM10 15c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1s1-.45 1-1v-3c0-.55-.45-1-1-1zm-4.33-1.67c-.28 0-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l2-2a1.003 1.003 0 00-.71-1.71z"],"floppy-disk":["M14 1h-3v5h3V1zm5.71 2.29l-3-3A.997.997 0 0016 0h-1v7H5V0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V4c0-.28-.11-.53-.29-.71zM17 19H3v-8c0-.55.45-1 1-1h12c.55 0 1 .45 1 1v8z"],"flow-branch":["M14.425 7.953a3.98 3.98 0 01.562 2.045 3.98 3.98 0 01-.583 2.08L18 15.671V12.98c0-.248.097-.496.29-.689.379-.379 1.047-.38 1.426 0a.94.94 0 01.283.696l-.001 5.049a.957.957 0 01-.276.69.955.955 0 01-.69.273h-5.059a.971.971 0 01-.689-.289 1.026 1.026 0 010-1.417.972.972 0 01.69-.29h2.702l-3.634-3.573a3.998 3.998 0 01-5.924-2.431H1a1 1 0 010-2h6.12a3.998 3.998 0 015.96-2.409L16.665 3l-2.694-.001a.972.972 0 01-.689-.29 1.035 1.035 0 010-1.425.94.94 0 01.696-.283l5.05.001c.248 0 .497.083.69.276a.954.954 0 01.272.69l.001 5.052a.971.971 0 01-.29.689 1.028 1.028 0 01-1.419 0 .972.972 0 01-.29-.69V4.323l-3.567 3.63z"],"flow-end":["M12 9.919a3.998 3.998 0 014-3.92c2.21 0 4 1.79 4 3.997a3.998 3.998 0 01-4 3.996 3.998 3.998 0 01-4-3.916.967.967 0 01-.28.612L7.685 14.71a.958.958 0 01-.686.285c-.536 0-.994-.461-.994-.997 0-.273.107-.528.283-.704l2.379-2.302H.98c-.537 0-.976-.46-.976-.996s.44-.992.976-.992h7.676L6.287 6.687a.957.957 0 01-.283-.686c0-.536.458-.996.994-.996.274 0 .51.1.686.285l4.027 4.024c.159.158.27.365.29.605z"],"flow-linear":["M5.125 10.997H.976C.439 10.997 0 10.537 0 10c0-.536.44-.993.976-.993h4.148a4.002 4.002 0 017.752 0h3.776L14.293 6.69a.962.962 0 01-.285-.687c0-.537.46-1.001.996-1.001a.96.96 0 01.698.3l4.005 4.015c.176.176.293.41.293.683a.972.972 0 01-.283.693L15.702 14.7a.997.997 0 01-.698.297c-.537 0-.996-.453-.996-.99 0-.273.107-.517.283-.692l2.371-2.318h-3.787a4.002 4.002 0 01-7.75 0z"],"flow-review":["M6.13 9.004A4.005 4.005 0 0110.012 6c1.87 0 3.44 1.278 3.881 3.005h2.768l-2.354-2.317a.97.97 0 01-.283-.691c0-.536.462-.995 1-.995.273 0 .517.107.693.283l4 4.041a.97.97 0 01.284.692.956.956 0 01-.293.682l-3.991 3.997a.944.944 0 01-.694.292c-.537 0-1-.46-1-.997a.97.97 0 01.284-.692l2.345-2.29h-2.765a4.005 4.005 0 01-3.875 2.981 4.005 4.005 0 01-3.874-2.981H3.349l2.376 2.308a.97.97 0 01.283.691 1 1 0 01-.994.983.989.989 0 01-.713-.291L.293 10.699A.956.956 0 010 10.017a.97.97 0 01.283-.692l4.03-4.037a.996.996 0 01.701-.283c.537 0 .994.464.994 1a.97.97 0 01-.283.691L3.34 9.004h2.79z"],"flow-review-branch":["M13.04 13.424c-.6.36-1.302.568-2.052.568a4 4 0 01-3.868-2.999H3.342l2.372 2.31c.176.176.283.42.283.694 0 .537-.452.998-.988.998a.935.935 0 01-.691-.289L.292 10.683A.96.96 0 010 9.999c0-.274.107-.518.283-.694l4.035-4.04a.973.973 0 01.691-.288c.536 0 .988.47.988 1.007a.975.975 0 01-.283.694L3.332 8.984h3.786a4 4 0 013.87-3.006c.771 0 1.492.22 2.102.599l3.565-3.57-2.538-.003a.974.974 0 01-.69-.29c-.38-.38-.38-1.052-.002-1.431A.94.94 0 0114.122 1l4.896.005a.96.96 0 01.69.277c.193.193.27.442.27.69l.005 4.9a.971.971 0 01-.289.69 1.023 1.023 0 01-1.416 0 .975.975 0 01-.29-.691l-.003-2.54-3.554 3.62c.351.596.553 1.291.553 2.034 0 .763-.213 1.477-.583 2.084l3.595 3.595.003-2.54c0-.249.097-.497.29-.69.38-.38 1.05-.381 1.429-.002a.94.94 0 01.282.697l-.005 4.9a.927.927 0 01-.277.675.974.974 0 01-.69.291L13.974 19a.97.97 0 01-.69-.29 1.03 1.03 0 01.002-1.42.974.974 0 01.69-.29l2.696-.003-3.632-3.573z"],flows:["M17.5 7.93a2.5 2.5 0 00-2.45 2h-2.3l-4.01-4-.75.75 3.26 3.25h-6.3a2.5 2.5 0 100 1h6.3l-3.26 3.25.75.75 4.01-4h2.3a2.5 2.5 0 102.45-3z"],"folder-close":["M0 17c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7H0v10zM19 4H9.41l-1.7-1.71A.997.997 0 007 2H1c-.55 0-1 .45-1 1v3h20V5c0-.55-.45-1-1-1z"],"folder-new":["M12.994 7c0 1.655 1.344 3 2.998 3a3.002 3.002 0 002.999-3H20v10c0 .55-.45 1-1 1H1.01c-.55 0-1-.45-1-1V7h12.984zM10.76 6H0V3c0-.55.45-1 1-1h3.998c.28 0 .53.11.71.29L7.415 4h2.579c0 .768.29 1.469.765 2zm8.23-3c.55 0 1 .45 1 1s-.45 1-1 1h-1.998v2c0 .55-.45 1-1 1s-1-.45-1-1V5h-1.998c-.55 0-1-.45-1-1s.45-1 1-1h1.999V1c0-.55.45-1 .999-1 .55 0 1 .45 1 1v2h1.999z"],"folder-open":["M20 9c0-.55-.45-1-1-1H5c-.43 0-.79.27-.93.65h-.01l-3 8h.01c-.04.11-.07.23-.07.35 0 .55.45 1 1 1h14c.43 0 .79-.27.93-.65h.01l3-8h-.01c.04-.11.07-.23.07-.35zM3.07 7.63C3.22 7.26 3.58 7 4 7h14V5c0-.55-.45-1-1-1H8.41l-1.7-1.71A.997.997 0 006 2H1c-.55 0-1 .45-1 1v12.31l3.07-7.68z"],"folder-shared":["M11 4H9.41l-1.7-1.71A.997.997 0 007 2H1c-.55 0-1 .45-1 1v3h11.78C11.3 5.47 11 4.77 11 4zm8-1h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L12.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 6.41V9c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1zm-2.46 7.7l-1.42 1.42a2.996 2.996 0 11-4.24-4.24l.88-.88H0v10c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-5.18c-.31.11-.65.18-1 .18-1.02 0-1.92-.52-2.46-1.3z"],"folder-shared-open":["M3.07 7.63C3.22 7.26 3.58 7 4 7h7.76l.54-.54A2.97 2.97 0 0111 4H8.41l-1.7-1.71A.997.997 0 006 2H1c-.55 0-1 .45-1 1v12.31l3.07-7.68zm13.47 3.07l-1.42 1.42A2.996 2.996 0 0110 10c0-.77.3-1.47.78-2H5c-.43 0-.79.27-.93.65h-.01l-3 8h.01c-.04.11-.07.23-.07.35 0 .55.45 1 1 1h14c.43 0 .79-.27.93-.65h.01l2.01-5.36c-1-.01-1.88-.52-2.41-1.29zM19 3h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L12.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 6.41V9c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z"],follower:["M11.54 15.92c-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5a3.69 3.69 0 00-1.29-1.86C9.69 4.25 8.8 4 8.01 4c-.8 0-1.69.25-2.32.73-.61.47-1.06 1.13-1.28 1.86-.05.17-.09.33-.11.5-.12.6-.18 1.51-.18 2.14v.08c-.23.09-.44.32-.49.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59-1.48.65-3.71 1.35-4.16 2.4C-.16 19.38.02 20 .02 20h15.95s.18-.62-.27-1.67c-.46-1.06-2.68-1.75-4.16-2.41zm8.15-12.63l-3-3a.956.956 0 00-.7-.29 1.003 1.003 0 00-.71 1.71L16.58 3H13c-.55 0-1 .45-1 1s.45 1 1 1h3.58l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.3-.71z"],following:["M11.55 15.92c-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5a3.69 3.69 0 00-1.29-1.86C9.7 4.25 8.81 4 8.02 4c-.79 0-1.68.25-2.31.73-.61.47-1.07 1.13-1.29 1.86-.05.16-.09.33-.11.5-.12.6-.18 1.51-.18 2.14v.08c-.23.09-.44.32-.48.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59C3 16.56.77 17.26.32 18.31-.15 19.38.04 20 .04 20h15.95s.18-.62-.27-1.67c-.46-1.06-2.69-1.75-4.17-2.41zM19 3h-3.58l1.29-1.29A1.003 1.003 0 0015.29.29l-3 3c-.17.18-.28.43-.28.71 0 .28.11.53.29.71l3 3c.18.18.43.29.7.29a1.003 1.003 0 00.71-1.71L15.42 5H19c.55 0 1-.45 1-1s-.45-1-1-1z"],font:["M17.93 18.64l-7-18C10.78.27 10.42 0 10 0s-.78.27-.93.64l-7 18c-.04.11-.07.23-.07.36 0 .55.45 1 1 1 .42 0 .78-.27.93-.64L6.41 13h7.19l2.47 6.36c.15.37.51.64.93.64.55 0 1-.45 1-1 0-.13-.03-.25-.07-.36zM7.18 11L10 3.76 12.82 11H7.18z"],fork:["M16.71 11.29a1.003 1.003 0 00-1.42 1.42l1.3 1.29h-2.17l-8-8h10.17L15.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 4H1c-.55 0-1 .45-1 1s.45 1 1 1h2.59l9.71 9.71c.17.18.42.29.7.29h2.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3z"],form:["M2 13v4h4v-4H2zm-1-2h6c.55 0 1 .45 1 1v6c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-6c0-.55.45-1 1-1zm11-7h7c.55 0 1 .45 1 1s-.45 1-1 1h-7c-.55 0-1-.45-1-1s.45-1 1-1zM8 1a1.003 1.003 0 01.71 1.71l-5 6C3.53 8.89 3.28 9 3 9s-.53-.11-.71-.29l-2-2a1.003 1.003 0 011.42-1.42L3 6.59l4.29-5.3C7.47 1.11 7.72 1 8 1zm4 13h7c.55 0 1 .45 1 1s-.45 1-1 1h-7c-.55 0-1-.45-1-1s.45-1 1-1z"],"full-circle":["M9.96 0a10 10 0 100 20 10 10 0 100-20z"],"full-stacked-chart":["M15 16h2c.55 0 1-.45 1-1v-5h-4v5c0 .55.45 1 1 1zM12 2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v4h4V2zm6 4h-4v3h4V6zm0-4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v3h4V2zm-6 5H8v5h4V7zm-9 9h2c.55 0 1-.45 1-1v-3H2v3c0 .55.45 1 1 1zm6 0h2c.55 0 1-.45 1-1v-2H8v2c0 .55.45 1 1 1zm10 1H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM6 2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v3h4V2zm0 4H2v5h4V6z"],fullscreen:["M3.41 2H6c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v5c0 .55.45 1 1 1s1-.45 1-1V3.41L7.29 8.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L3.41 2zM8 11c-.28 0-.53.11-.71.29L2 16.59V14c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1H3.41l5.29-5.29c.19-.18.3-.43.3-.71 0-.55-.45-1-1-1zM19 0h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 3.41V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm0 13c-.55 0-1 .45-1 1v2.59l-5.29-5.29A.965.965 0 0012 11a1.003 1.003 0 00-.71 1.71l5.3 5.29H14c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1z"],function:["M10.14 5.82H8.73c.4-1.66.94-2.87 1.6-3.64.4-.48.8-.72 1.18-.72.08 0 .14.02.19.07.05.05.07.1.07.18 0 .07-.05.19-.16.37s-.16.36-.16.52c0 .23.08.43.25.59a.9.9 0 00.64.25c.28 0 .51-.1.7-.3.19-.2.28-.47.28-.81 0-.39-.14-.7-.42-.94-.28-.24-.74-.36-1.36-.36-.97 0-1.86.29-2.65.87-.79.56-1.54 1.52-2.26 2.85-.24.46-.48.75-.7.88-.22.13-.57.19-1.06.19l-.32 1.15H5.9l-1.99 7.85c-.33 1.29-.56 2.09-.67 2.39-.17.44-.43.81-.77 1.12a.74.74 0 01-.5.19c-.05 0-.1-.02-.14-.05l-.04-.07c0-.03.05-.1.15-.2.1-.1.15-.26.15-.47 0-.23-.08-.42-.23-.57-.16-.15-.38-.23-.67-.23-.35 0-.63.1-.85.29-.21.2-.32.43-.32.7 0 .29.13.54.39.75.25.22.65.33 1.2.33.88 0 1.66-.23 2.33-.69.68-.46 1.27-1.17 1.78-2.14.51-.96 1.03-2.52 1.56-4.66l1.14-4.54H9.8l.34-1.15zm6.8 1.95c.25-.2.51-.29.78-.29.1 0 .29.04.56.11.27.08.51.11.72.11.29 0 .52-.1.72-.3.18-.19.28-.45.28-.77 0-.33-.1-.6-.29-.8-.19-.2-.47-.29-.82-.29-.32 0-.62.08-.9.23-.28.15-.64.49-1.08 1-.33.38-.81 1.05-1.44 2a9.712 9.712 0 00-1.31-3.22l-3.4.59-.07.37c.25-.05.47-.08.64-.08.34 0 .62.15.84.44.35.46.84 1.85 1.46 4.19-.49.66-.82 1.09-1 1.3-.3.33-.55.54-.74.64-.15.08-.32.12-.51.12-.14 0-.38-.08-.7-.24-.22-.1-.42-.16-.59-.16-.33 0-.6.11-.82.32-.21.22-.32.49-.32.83 0 .31.1.57.3.77.2.2.47.29.8.29.32 0 .63-.07.92-.21.29-.14.64-.43 1.08-.88.43-.45 1.03-1.16 1.79-2.14.29.93.55 1.61.76 2.03.21.42.46.73.74.91.28.19.62.28 1.04.28.4 0 .81-.15 1.23-.44.55-.38 1.1-1.04 1.68-1.97l-.35-.21c-.39.55-.68.89-.87 1.03-.12.09-.27.13-.44.13-.2 0-.4-.13-.59-.38-.33-.43-.77-1.63-1.33-3.6.47-.86.89-1.44 1.23-1.71z"],"gantt-chart":["M4 7h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm3 2v1c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1zm12 3h-6c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm0 4H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],geofence:["M8 11l.075.003.126.017.111.03.111.044.098.052.096.067.09.08c.036.035.068.073.097.112l.071.11.054.114.035.105.03.148L9 12V18a1 1 0 01-1.993.117L7 18v-3.586l-5.293 5.293a1 1 0 01-1.497-1.32l.083-.094L5.584 13h-3.58a1 1 0 01-.117-1.993L2.004 11H8zm3.018-11a1.003 1.003 0 01.39.087l.12.063.031.02.1.078 8.027 7.026.062.064.068.086.044.068.064.128.04.117.024.113.011.108v.1l-.007.073-.019.103-.037.121-.039.09-.05.087-4.996 7.994c-.06.097-.137.183-.226.254l-.093.067-.095.053-.087.037-.125.037a1.018 1.018 0 01-.218.026H11v-5a3 3 0 00-2.824-2.995L8 9H3V6a1 1 0 01.321-.734l.098-.08 7-5a1.01 1.01 0 01.45-.178L11.018 0z"],geolocation:["M0 8.33l9.17 2.5 2.5 9.17L20 0z"],geosearch:["M8 18.88c-3.79 0-6.88-3.09-6.88-6.88 0-.61.08-1.22.23-1.79.03.01.06-.01.1-.01h.09v.55c0 .23.21.42.44.42.04 0 .09-.01.12-.02l.9.88c.09.09.23.09.32 0s.09-.23 0-.32l-.86-.9c0-.02.05-.04.05-.07v-.13c0-.18.1-.25.29-.41h.53c.1 0 .19-.01.27-.05.01-.01.02 0 .03-.01.02-.01.03-.02.05-.04.01-.01.02-.01.02-.02l.02-.02 1.13-1.13c-.16-.32-.3-.65-.42-.99h-.64v-.53c0-.01.06.06.06-.1h.38c-.04-.16-.08-.32-.1-.48h-.71c.2-.16.42-.31.64-.45C4.02 6.09 4 5.8 4 5.5c0-.14.01-.28.02-.43C1.62 6.46 0 9.04 0 12c0 4.41 3.59 8 8 8 3.87 0 7.09-2.77 7.82-6.44l-.97-1.1c-.26 3.57-3.23 6.42-6.85 6.42zm-2.12-3.67v-.35h.15c.29 0 .49-.23.49-.53v-.68c0-.01.01-.01 0-.02L4.71 11.8h-.77c-.29 0-.47.24-.47.53v2c0 .29.18.53.47.53h.33v2.02c0 .28.28.51.56.51s.56-.23.56-.51v-1.22h-.01c.29 0 .5-.16.5-.45zm13.83-2.92l-3.68-3.68c.14-.21.27-.42.38-.65.02-.04.04-.07.05-.11.11-.22.2-.45.28-.69v-.01c.07-.24.13-.48.17-.73l.03-.17c.04-.24.06-.49.06-.75C17 2.46 14.54 0 11.5 0S6 2.46 6 5.5 8.46 11 11.5 11c.26 0 .51-.02.76-.06l.17-.03c.25-.04.49-.1.73-.17h.01c.24-.08.47-.17.69-.28.04-.02.07-.04.11-.05.23-.11.44-.24.65-.38l3.68 3.68c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71zM11.5 9.5c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm1.93 5.33v-.65c0-.11-.13-.21-.24-.21-.11 0-.24.09-.24.21v.65c0 .11.13.21.24.21.11 0 .24-.1.24-.21zm-2.41.67h.83c.29 0 .46-.21.46-.5v-1.86l.23-.22c-.34.05-.69.08-1.04.08-.36 0-.7-.03-1.05-.08.03.05.06.1.08.16V15c.01.29.2.5.49.5z"],"git-branch":["M15 2c-1.66 0-3 1.34-3 3 0 1.3.84 2.4 2 2.82V9c0 1.1-.9 2-2 2H8c-.73 0-1.41.21-2 .55V5.82C7.16 5.4 8 4.3 8 3c0-1.66-1.34-3-3-3S2 1.34 2 3c0 1.3.84 2.4 2 2.82v8.37C2.84 14.6 2 15.7 2 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.25-.77-2.3-1.85-2.75C6.45 13.52 7.16 13 8 13h4c2.21 0 4-1.79 4-4V7.82C17.16 7.4 18 6.3 18 5c0-1.66-1.34-3-3-3zM5 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 16c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM15 6c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-commit":["M19 9h-4.1a5 5 0 00-9.8 0H1c-.55 0-1 .45-1 1s.45 1 1 1h4.1a5 5 0 009.8 0H19c.55 0 1-.45 1-1s-.45-1-1-1zm-9 4c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"],"git-merge":["M15 8c-1.3 0-2.4.84-2.82 2H11c-2.49 0-4.54-1.83-4.92-4.21A2.995 2.995 0 005 0C3.34 0 2 1.34 2 3c0 1.3.84 2.4 2 2.81v8.37C2.84 14.6 2 15.7 2 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V9.86C7.27 11.17 9.03 12 11 12h1.18A2.996 2.996 0 0018 11c0-1.66-1.34-3-3-3zM5 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM5 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm10 8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-new-branch":["M17 3h-1V2c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V5h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3 4.86V9c0 1.1-.9 2-2 2H8c-.73 0-1.41.21-2 .55V5.82C7.16 5.4 8 4.3 8 3c0-1.66-1.34-3-3-3S2 1.34 2 3c0 1.3.84 2.4 2 2.82v8.37C2.84 14.6 2 15.7 2 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.25-.77-2.3-1.85-2.75C6.45 13.52 7.16 13 8 13h4c2.21 0 4-1.79 4-4V7.86c-.32.08-.65.14-1 .14s-.68-.06-1-.14zM5 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 16c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-pull":["M17 14.18V7c0-2.21-1.79-4-4-4h-2.59l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C7.11 3.47 7 3.72 7 4c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L10.41 5H13c1.1 0 2 .9 2 2v7.18A2.996 2.996 0 0016 20c1.66 0 3-1.34 3-3 0-1.3-.84-2.4-2-2.82zM16 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4 1C2.34 1 1 2.34 1 4c0 1.3.84 2.4 2 2.82v7.37C1.84 14.6 1 15.7 1 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V6.82C6.16 6.4 7 5.3 7 4c0-1.66-1.34-3-3-3zm0 17c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4 5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-push":["M15 11c0-.28-.11-.53-.29-.71l-3-3C11.53 7.11 11.28 7 11 7s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42l1.29-1.3V19c0 .55.45 1 1 1s1-.45 1-1v-8.59l1.29 1.29c.18.19.43.3.71.3.55 0 1-.45 1-1zm4-11H1C.45 0 0 .45 0 1v16c0 .55.45 1 1 1h7v-2H2v-2h6v-1H4V2h14v11h-4v1h4v2h-4v2h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 8h2V6H5v2zm2-5H5v2h2V3z"],"git-repo":["M7 3H5v2h2V3zm0 6H5v2h2V9zm0-3H5v2h2V6zm12-6H1C.45 0 0 .45 0 1v16c0 .55.45 1 1 1h4v2l2-1 2 1v-2h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 16H9v-1H5v1H2v-2h16v2zm0-3H4V2h14v11z"],glass:["M17 6V0H3v6c0 3.53 2.61 6.43 6 6.92V18H6c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1h-3v-5.08c3.39-.49 6-3.39 6-6.92z"],globe:["M7.53 4.37c.1-.1.1-.26 0-.35l-.68-.68c-.1-.1-.25-.1-.35 0-.1.1-.1.26 0 .35l.68.68c.1.1.25.1.35 0zm3.17.06h.3c.09 0 .16-.01.16-.1 0-.09-.07-.1-.16-.1h-.3c-.09 0-.16.01-.16.1s.07.1.16.1zm.98 1.15c.09 0 .19-.08.19-.17v-.42c0-.09-.1-.17-.19-.17s-.19.08-.19.17v.42c0 .09.1.17.19.17zm-6.5 4.19c-.35 0-.56.28-.56.63v2.37c0 .35.21.62.56.62h.39v2.4c0 .34.33.61.67.61s.67-.27.67-.61v-1.44h-.02c.35 0 .6-.19.6-.54v-.41h.18c.35 0 .58-.28.58-.62v-.81c0-.01.01-.01 0-.02L6.1 9.77h-.92zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8 0-.74.11-1.46.3-2.14h.03v.65c0 .28.25.5.53.5.05 0 .1-.01.15-.02l1.05 1.05c.1.11.28.11.38 0 .1-.1.11-.27 0-.38L3.42 8.59c0-.03.05-.05.05-.08v-.16c0-.22.12-.3.34-.49h.63c.12 0 .23-.01.32-.07.01-.01.02 0 .03-.01.02-.02.04-.03.06-.04.01-.01.02-.01.03-.02l.02-.02 2.15-2.15c.24-.24.24-.63 0-.86-.23-.24-.62-.19-.86.04l-.41.46H5v-.64c0-.01.07.07.07-.12h.87c.17 0 .3-.12.3-.29 0-.17-.13-.29-.3-.29H4.88C6.27 2.7 8.05 2 10 2s3.73.7 5.12 1.86h-1.58l-.01-.04c-.06 0-.12 0-.17.04l-.71.7c-.09.09-.09.23 0 .31.09.09.23.09.32 0l.56-.6.01-.03h.34c0 .19-.1.13-.1.16v.1c0 .29-.2.5-.49.5h-.51c-.25 0-.52.28-.52.54v.23h-.12c-.16 0-.27.08-.27.24v.33h-.32c-.23 0-.41.15-.41.38 0 .22.18.35.41.35.1 0 .19.04.26-.16l.06.01.66-.59h.23l.53.5c.04.04.11.03.16-.01.04-.04.04-.16 0-.2L13 6.15h.32l.12.16c.25.25.65.23.89-.02l.12-.14H15c.02 0 .11.07.11.07v.33s-.06-.01-.07-.01h-.49c-.16 0-.28.13-.28.29 0 .16.13.29.28.29h.49c.01 0 .07-.01.07-.01v.2c-.19.28-.33.57-.62.57h-1.28s0-.01-.01-.01l-.58-.58a.622.622 0 00-.89 0l-.58.58s0 .01-.01.01h-.34c-.35 0-.67.28-.67.63v1.25c0 .35.32.61.67.61h1.22c.46.19.78.48.97.94v2.28c0 .35.23.6.58.6h.98c.35 0 .54-.25.54-.6v-2.2l1.21-1.17.04-.02.02-.01h.04c.1-.11.2-.26.2-.42V8.49c0-.25-.22-.44-.42-.63h.58c.02.38.29.57.63.57h.43c.13.51.18 1.03.18 1.57 0 4.42-3.58 8-8 8zm6.16-5.65c-.14 0-.29.11-.29.25v.77c0 .14.15.25.29.25.14 0 .29-.11.29-.25v-.77c0-.14-.15-.25-.29-.25zM10.5 3.48c0-.34-.28-.57-.62-.57h-.74c-.34 0-.57.25-.57.59 0 .05-.13.06.06.1v.64c0 .2.09.36.29.36.2 0 .29-.16.29-.36v-.19h.68c.33 0 .61-.23.61-.57z"],"globe-network":["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm7.39 7h-3.63c-.31-1.99-.92-3.66-1.72-4.73 2.45.65 4.41 2.42 5.35 4.73zM13 10c0 .69-.04 1.36-.11 2H7.11a18.419 18.419 0 010-4h5.77c.08.64.12 1.31.12 2zm-3-8c1.07 0 2.25 2.05 2.75 5h-5.5c.5-2.95 1.68-5 2.75-5zm-2.04.27C7.16 3.34 6.55 5.01 6.24 7H2.61c.94-2.31 2.9-4.08 5.35-4.73zM2 10c0-.69.11-1.36.28-2h3.83a18.419 18.419 0 000 4H2.28c-.17-.64-.28-1.31-.28-2zm.61 3h3.63c.31 1.99.92 3.66 1.72 4.73A7.996 7.996 0 012.61 13zM10 18c-1.07 0-2.25-2.05-2.75-5h5.5c-.5 2.95-1.68 5-2.75 5zm2.04-.27c.79-1.07 1.4-2.74 1.72-4.73h3.63a7.996 7.996 0 01-5.35 4.73zM13.89 12a18.419 18.419 0 000-4h3.83c.17.64.28 1.31.28 2s-.11 1.36-.28 2h-3.83z"],graph:["M17.5 4A2.5 2.5 0 0015 6.5c0 .06.01.12.02.18l-1.9.84C12.38 6.6 11.27 6 10 6c-.83 0-1.59.25-2.23.68L4.91 4.14c.05-.21.09-.42.09-.64a2.5 2.5 0 00-5 0A2.5 2.5 0 002.5 6c.42 0 .81-.11 1.16-.3l2.79 2.48C6.17 8.73 6 9.34 6 10c0 1.41.73 2.64 1.83 3.35l-.56 1.67A2.498 2.498 0 005 17.5a2.5 2.5 0 005 0c0-.74-.32-1.39-.83-1.85l.56-1.68c.09.01.18.03.27.03 2.21 0 4-1.79 4-4 0-.22-.03-.44-.07-.65l2.02-.9c.43.34.96.55 1.55.55a2.5 2.5 0 000-5z"],"graph-remove":["M17.41 4l2.29-2.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L16 2.59 13.71.3A.965.965 0 0013 0a1.003 1.003 0 00-.71 1.71L14.59 4 12.3 6.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L16 5.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L17.41 4zM19 10c-.83 0-1.55-.36-2.09-.91l-.03.03-.88-.88-.88.88a2.996 2.996 0 11-4.24-4.24l.88-.88-.88-.88.03-.03C10.36 2.55 10 1.83 10 1c0-.35.07-.68.18-.99-.06 0-.12-.01-.18-.01C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10c0-.06-.01-.12-.01-.18-.31.11-.64.18-.99.18z"],"greater-than":["M12.838 10l-9.154 3.051a1 1 0 00.632 1.898l12-4c.912-.304.912-1.594 0-1.898l-12-4a1 1 0 00-.632 1.898L12.838 10z"],"greater-than-or-equal-to":["M3.684 11.051a1 1 0 00.632 1.898l12-4c.912-.304.912-1.594 0-1.898l-12-4a1 1 0 00-.632 1.898L12.838 8l-9.154 3.051zM4 15h12a1 1 0 110 2H4a1 1 0 010-2z"],grid:["M19 11c.55 0 1-.45 1-1s-.45-1-1-1h-2V5h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-4V1c0-.55-.45-1-1-1S9 .45 9 1v2H5V1c0-.55-.45-1-1-1S3 .45 3 1v2H1c-.55 0-1 .45-1 1s.45 1 1 1h2v4H1c-.55 0-1 .45-1 1s.45 1 1 1h2v4H1c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h4v2c0 .55.45 1 1 1s1-.45 1-1v-2h4v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2v-4h2zM9 15H5v-4h4v4zm0-6H5V5h4v4zm6 6h-4v-4h4v4zm0-6h-4V5h4v4z"],"grid-view":["M0 19c0 .55.45 1 1 1h8v-9H0v8zM0 1v8h9V0H1C.45 0 0 .45 0 1zm19-1h-8v9h9V1c0-.55-.45-1-1-1zm-8 20h8c.55 0 1-.45 1-1v-8h-9v9z"],"group-objects":["M6 7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm8-3H6c-3.31 0-6 2.69-6 6s2.69 6 6 6h8c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 11H6c-2.76 0-5-2.24-5-5s2.24-5 5-5h8c2.76 0 5 2.24 5 5s-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"],"grouped-bar-chart":["M12 16h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1zm7 1H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm-3-1h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1zm-9 0h1c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1zm-4 0h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1z"],hand:["M17 5c-.42 0-.79.27-.93.64L14.38 10h-.77l1.34-6.67c.03-.1.05-.21.05-.33a.998.998 0 00-1.98-.19h-.01L11.57 10H11V1c0-.55-.45-1-1-1S9 .45 9 1v9h-.2L6.97 2.76a.997.997 0 00-1.73-.41l-.03.03c-.01.02-.02.03-.03.04-.01.02-.01.03-.02.04v.01c-.01.01-.02.02-.02.03v.01c-.02.01-.02.02-.03.03 0 0 0 .01-.01.01 0 .01 0 .02-.01.03 0 0 0 .01-.01.01 0 .01-.01.02-.01.03 0 0 0 .01-.01.01 0 .01-.01.02-.01.03 0 .01 0 .01-.01.02 0 .01-.01.02-.01.03 0 .01 0 .01-.01.02 0 .01-.01.02-.01.03v.02c0 .01 0 .02-.01.03V3c0 .05 0 .09.01.14l1.45 10.25L6 12.7v.01L3.84 9.45h-.01A.98.98 0 003 9c-.55 0-1 .45-1 1 0 .2.06.39.17.55L6 18.44C7.06 19.4 8.46 20 10 20c3.31 0 6-2.69 6-6v-1.84l.01-.03v-.06l1.94-5.75A1.003 1.003 0 0017 5z"],"hand-down":["M17.68 9.84C15.91 9 14.27 6.49 13.45 4.9 12.41 2.43 12.21 0 7.87 0 5.49 0 3.95.76 3.05 2.65 2.31 4.2 2 5.48 2 9.79v.99c0 .82.69 1.48 1.54 1.48.38 0 .73-.14 1-.36.19.6.78 1.05 1.47 1.05.47 0 .89-.2 1.17-.52.26.47.77.79 1.36.79.65 0 1.2-.39 1.43-.93l.03.77v5.44c0 .48.23.91.59 1.18.21.19.5.32.85.32h.06c.83 0 1.5-.67 1.5-1.5v-8.24l.01-.67c.85.98 1.92 1.76 3.24 1.89 1.79.19 2.09-1.33 1.43-1.64z"],"hand-left":["M15.1 6.54c-1.58-.81-4.09-2.46-4.94-4.23-.31-.65-1.82-.35-1.64 1.43.13 1.33.91 2.4 1.89 3.24L9.74 7H1.5C.67 7 0 7.67 0 8.5v.06c0 .36.13.64.32.85.27.36.7.59 1.18.59h5.44l.78.01c-.54.23-.93.78-.93 1.43 0 .59.32 1.1.79 1.36-.32.28-.52.7-.52 1.17 0 .69.44 1.28 1.05 1.47-.22.27-.36.62-.36 1 0 .85.66 1.54 1.48 1.54h.99c4.31 0 5.59-.31 7.14-1.05 1.89-.9 2.65-2.44 2.65-4.82-.01-4.32-2.44-4.52-4.91-5.57z"],"hand-right":["M20 8.5c0-.83-.67-1.5-1.5-1.5h-8.24l-.67-.01c.98-.85 1.76-1.92 1.89-3.24.18-1.79-1.33-2.08-1.65-1.43-.84 1.76-3.35 3.41-4.93 4.23C2.43 7.59 0 7.79 0 12.13c0 2.38.76 3.92 2.65 4.82C4.2 17.69 5.48 18 9.79 18h.99c.82 0 1.48-.69 1.48-1.54 0-.38-.14-.73-.36-1 .6-.19 1.05-.78 1.05-1.47 0-.47-.2-.89-.52-1.17.47-.26.79-.77.79-1.36 0-.65-.39-1.2-.93-1.43l.77-.03h5.44c.48 0 .91-.23 1.18-.59.19-.21.32-.49.32-.85v-.03-.03z"],"hand-up":["M16.46 7.74c-.38 0-.73.14-1 .36-.19-.6-.78-1.05-1.47-1.05-.47 0-.89.2-1.17.52-.26-.47-.77-.79-1.36-.79-.65 0-1.2.39-1.43.93L10 6.94V1.5c0-.48-.23-.91-.59-1.18C9.2.13 8.92 0 8.56 0H8.5C7.67 0 7 .67 7 1.5v8.24l-.01.67c-.84-.98-1.92-1.76-3.24-1.89-1.79-.18-2.08 1.33-1.43 1.65 1.77.84 3.41 3.35 4.23 4.94 1.05 2.47 1.25 4.9 5.58 4.9 2.38 0 3.92-.76 4.82-2.65.74-1.56 1.05-2.84 1.05-7.15v-.99c0-.81-.69-1.48-1.54-1.48z"],hat:["M18.5 13c1.118 0 1.466.534 1.498 1.366L20 14.5v.5c0 1.945-5.69 3-10 3S0 16.945 0 15v-.5c0-.908.323-1.5 1.5-1.5.895 0 3.5 1.2 8.5 1.2l.411-.003C15.143 14.134 17.631 13 18.5 13zm-5-10c1.725 0 2.954 2.729 3.688 8.186-1.455.263-3.805.72-6.392.801l-.434.01L10 12c-2.896 0-5.585-.524-7.189-.814C3.546 5.73 4.775 3 6.5 3 8.6 3 8.329 5.5 10 5.5S11.5 3 13.5 3z"],header:["M16 1c-.55 0-1 .45-1 1v7H5V2c0-.55-.45-1-1-1s-1 .45-1 1v16c0 .55.45 1 1 1s1-.45 1-1v-7h10v7c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z"],"header-one":["M10 0c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1s-1-.45-1-1V9H2v6c0 .55-.45 1-1 1s-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v6h7V1c0-.55.45-1 1-1zm7.4 10.77c.17-.2.29-.46.34-.77H19v10h-1.5v-7.11H15v-1.24c.32 0 .63-.03.93-.08.31-.06.58-.16.83-.29.26-.12.47-.3.64-.51z"],"header-two":["M16.6 17.41c-.22.17-.4.36-.56.55-.16.19-.27.4-.33.61h4.28V20H14c.01-.81.18-1.52.53-2.13.35-.6.81-1.13 1.41-1.58.28-.23.58-.46.89-.68.31-.22.59-.46.85-.71.26-.26.48-.53.63-.83.16-.3.25-.64.26-1.02 0-.18-.02-.37-.06-.57-.04-.2-.11-.39-.22-.56s-.26-.31-.45-.43-.44-.18-.75-.18c-.28 0-.52.06-.71.19s-.34.3-.45.52c-.11.22-.2.48-.25.78-.05.3-.08.62-.09.97h-1.43c0-.54.07-1.04.2-1.5.13-.47.32-.87.58-1.2.26-.34.58-.6.95-.78.37-.19.81-.29 1.3-.29.54 0 .99.09 1.35.29.36.19.65.44.87.74.22.29.38.62.47.97.09.35.14.68.14 1 0 .4-.05.75-.16 1.07-.11.32-.26.61-.44.88-.19.27-.4.52-.63.74-.24.22-.48.43-.73.63s-.5.38-.75.56c-.26.17-.5.35-.71.53zM10 0c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1s-1-.45-1-1V9H2v6c0 .55-.45 1-1 1s-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v6h7V1c0-.55.45-1 1-1z"],headset:["M18.97 9H19A9 9 0 001 9h.03C.41 9.73 0 10.8 0 12c0 1.74.84 3.2 2 3.76V16c0 1.66 1.34 3 3 3h3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1H5c-.55 0-1-.45-1-1 .55 0 1-.45 1-1V9c0-.55-.45-1-1-1h-.92C3.57 4.61 6.47 2 10 2s6.43 2.61 6.92 6H16c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1c1.66 0 3-1.79 3-4 0-1.2-.41-2.27-1.03-3z"],heart:["M20 6.25C20 3.35 17.65 1 14.75 1c-1.02 0-1.95.31-2.75.82v-.04c-.09.06-.17.12-.26.19-.04.03-.09.06-.14.1-.68.51-1.24 1.18-1.6 1.96-.4-.86-1.04-1.57-1.8-2.1-.04-.02-.07-.05-.1-.08a7 7 0 00-.6-.33c-.13-.04-.23-.1-.35-.15-.05-.02-.1-.05-.15-.07v.02C6.45 1.13 5.87 1 5.25 1A5.25 5.25 0 000 6.25c0 .09.01.17.01.25H0c0 .06.01.12.02.18s.01.12.02.18C.13 7.89.44 9 1.07 10.17 2.23 12.33 4.1 14.11 7 16.53v.01c.9.75 1.89 1.55 3 2.46.71-.58 1.38-1.12 2-1.63 3.48-2.86 5.64-4.78 6.93-7.18.63-1.17.94-2.27 1.03-3.3.01-.07.01-.14.02-.21 0-.06.01-.11.02-.17h-.01c0-.09.01-.17.01-.26z"],"heart-broken":["M8.11 7.45C8.05 7.31 8 7.16 8 7c0-.07.03-.13.04-.19h-.02l.86-4.32A5.159 5.159 0 005.25 1 5.25 5.25 0 000 6.25c0 .09.01.17.01.25H0c0 .06.01.12.02.18s.01.12.02.18C.13 7.89.44 9 1.07 10.17c1.38 2.58 3.76 4.6 7.71 7.83l-.76-3.8h.02c-.01-.07-.04-.13-.04-.2 0-.21.08-.39.18-.54l-.02-.01 1.68-2.52-1.73-3.48zM20 6.25C20 3.35 17.65 1 14.75 1c-1.54 0-2.92.67-3.88 1.73l-.83 4.13 1.85 3.69h-.01c.07.14.12.29.12.45 0 .21-.08.39-.18.54l.02.01-1.77 2.66.81 4.07c4.16-3.39 6.63-5.45 8.05-8.1.63-1.17.94-2.27 1.03-3.3.01-.07.01-.14.02-.21 0-.06.01-.11.02-.17h-.01c0-.08.01-.16.01-.25z"],"heat-grid":["M14 12h6V8h-6v4zM0 12h6V8H0v4zm1-3h4v2H1V9zm-1 7c0 .55.45 1 1 1h5v-4H0v3zM19 3h-5v4h6V4c0-.55-.45-1-1-1zm0 3h-4V4h4v2zM0 4v3h6V3H1c-.55 0-1 .45-1 1zm7 3h6V3H7v4zm7 10h5c.55 0 1-.45 1-1v-3h-6v4zm-7 0h6v-4H7v4zm1-3h4v2H8v-2zm-1-2h6V8H7v4z"],heatmap:["M6 0a6 6 0 100 12A6 6 0 106 0z","M10.5 8a4.5 4.5 0 100 9 4.5 4.5 0 100-9z","M16.5 7a3.5 3.5 0 100 7 3.5 3.5 0 100-7zM18 16a2 2 0 100 4 2 2 0 100-4zM2.5 14a2.5 2.5 0 100 5 2.5 2.5 0 100-5zM16.5 0a2.5 2.5 0 100 5 2.5 2.5 0 100-5z"],help:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM7.41 4.62c.65-.54 1.51-.82 2.56-.82.54 0 1.03.08 1.48.25.44.17.83.39 1.14.68.32.29.56.63.74 1.02.17.39.26.82.26 1.27s-.08.87-.24 1.23c-.16.37-.4.73-.71 1.11l-1.21 1.58c-.14.17-.28.33-.32.48-.05.15-.11.35-.11.6v.97H9v-2s.06-.58.24-.81l1.21-1.64c.25-.3.41-.56.51-.77s.14-.44.14-.67c0-.35-.11-.63-.32-.85s-.5-.33-.88-.33c-.37 0-.67.11-.89.33-.22.23-.37.54-.46.94-.03.12-.11.17-.23.16l-1.95-.29c-.12-.01-.16-.08-.14-.22.13-.93.52-1.67 1.18-2.22zM9 14h2.02L11 16H9v-2z"],"helper-management":["M17 10h-3v3h3v-3zm0 4h-3v3h3v-3zm0-8h-3v3h3V6zm2-6H1C.4 0 0 .4 0 1v18c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V1c0-.6-.5-1-1-1zm-1 18H2V2h16v16zm-9-4H6v3h3v-3zm4 0h-3v3h3v-3z"],"high-priority":["M12 16v4H8v-4h4zm1-16l-1 14H8L7 0h6z"],highlight:["M11.22 14.09l3.03-3.03.71.71L20 6.73l-5.71-5.71-5.04 5.04.71.71-3.02 3.04 4.28 4.28zm6.8 3.91h-16c-.55 0-1 .45-1 1s.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1zm-15-1h4.04c.28 0 .53-.11.71-.3l2.02-2.02-3.44-3.45-4.04 4.04c-.18.18-.3.44-.3.71.01.57.46 1.02 1.01 1.02z"],history:["M10 0C6.71 0 3.82 1.6 2 4.05V2c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.76C5.23 3.17 7.47 2 10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8c0-.55-.45-1-1-1s-1 .45-1 1c0 5.52 4.48 10 10 10s10-4.48 10-10S15.52 0 10 0zm0 3c-.55 0-1 .45-1 1v6c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L11 9.59V4c0-.55-.45-1-1-1z"],home:["M2 12v7c0 .55.45 1 1 1h5v-7h4v7h5c.55 0 1-.45 1-1v-7l-8-8-8 8zm17.71-2.71L17 6.59V3c0-.55-.45-1-1-1s-1 .45-1 1v1.59L10.71.3C10.53.11 10.28 0 10 0s-.53.11-.71.29l-9 9a1.003 1.003 0 001.42 1.42L10 2.41l8.29 8.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],"horizontal-bar-chart":["M1 1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1zm3 5h11c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1zm8 8H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm7-6H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h15c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1z"],"horizontal-bar-chart-asc":["M1 9h11c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm0-5h9c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm18 12H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM1 14h14c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1z"],"horizontal-bar-chart-desc":["M10 16H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm2-5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h11c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm3-5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zm4-5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1z"],"horizontal-distribution":["M12 2H8c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM1 0C.45 0 0 .45 0 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm18 0c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z"],"id-number":["M2 5v10h16V5H2zm0-2h16c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2H2c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z","M8.88 12.38c-.17-.39-1.01-.66-1.56-.9-.56-.24-.48-.39-.5-.6v-.09c.19-.17.35-.4.45-.67 0 0 0-.02.01-.02l.06-.18c.13-.03.2-.17.23-.29.03-.05.09-.18.08-.33-.04-.18-.11-.27-.2-.3v-.03c0-.24-.02-.58-.06-.81-.01-.06-.02-.12-.04-.19-.08-.27-.25-.52-.48-.7C6.63 7.09 6.3 7 6 7s-.63.09-.87.27c-.23.17-.4.42-.48.7-.02.06-.03.13-.04.19-.04.22-.06.57-.06.81V9c-.09.03-.17.12-.19.31-.01.14.05.27.08.32.03.14.1.27.23.3.02.06.03.12.06.18v.01c.11.27.27.51.47.68v.08c-.02.2.04.35-.51.6-.56.24-1.39.51-1.56.9-.19.39-.12.62-.12.62h5.98c-.01 0 .06-.23-.11-.62zM12 7h4c.55 0 1 .45 1 1s-.45 1-1 1h-4c-.55 0-1-.45-1-1s.45-1 1-1zM12 11h4c.55 0 1 .45 1 1s-.45 1-1 1h-4c-.55 0-1-.45-1-1s.45-1 1-1z"],"image-rotate-left":["M10.5 13c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM14 7H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 10l-5-3-1 2-2-4-3 4.5V9h11v8zm3-15h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H16c1.1 0 2 .9 2 2v3c0 .55.45 1 1 1s1-.45 1-1V6c0-2.21-1.79-4-4-4z"],"image-rotate-right":["M5.29 4.29a1.003 1.003 0 001.42 1.42l2-2C8.89 3.53 9 3.28 9 3c0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H4C1.79 2 0 3.79 0 6v3c0 .55.45 1 1 1s1-.45 1-1V6c0-1.1.9-2 2-2h1.59l-.3.29zM15.5 13c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM19 7H6c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 10l-5-3-1 2-2-4-3 4.5V9h11v8z"],import:["M9.29 15.71c.18.18.43.29.71.29s.53-.11.71-.29l5-5a1.003 1.003 0 00-1.42-1.42L11 12.59V1c0-.55-.45-1-1-1S9 .45 9 1v11.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l5 5zM19 14c-.55 0-1 .45-1 1v3H2v-3c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z"],inbox:["M16.92 3.56l-.01-.02c-.16-.35-.5-.6-.91-.6H4c-.41 0-.76.25-.91.6l-.01.02L0 10.49v6.46c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-6.46l-3.08-6.93zM15 10.95c-.55 0-1 .45-1 1v1H6v-1c0-.55-.45-1-1-1H1.98l2.67-6h10.7l2.67 6H15z"],"inbox-filtered":["M10.262 3l1.958 1.958v.05H4.65l-2.67 5.997H5c.55 0 1 .45 1 .999v1h8v-1c0-.55.45-1 1-1h3.02l-.635-1.426.625-.63c.354-.353.598-.8.707-1.289L20 10.545v6.456c0 .55-.45.999-1 .999H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h6.262zm9.088-3a.642.642 0 01.46 1.1l-3.03 3.03v2.95c0 .18-.07.34-.19.46l-1.28 1.29c-.11.1-.27.17-.45.17-.35 0-.64-.29-.64-.64V4.13L11.19 1.1a.642.642 0 01.45-1.1h7.71z"],"inbox-geo":["M7.427 3a7.467 7.467 0 00-.411 2.009H4.65l-2.67 5.996H5c.55 0 1 .45 1 .999v1h8V13c.165.01.332 0 .5 0a7.48 7.48 0 005.5-2.4V17c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h3.427zm5.715-.596a.133.133 0 01-.193 0l-.374-.374a.133.133 0 010-.193.133.133 0 01.193 0l.373.374a.133.133 0 010 .193zm1.743.033c-.05 0-.088-.006-.088-.055 0-.05.038-.056.088-.056h.165c.05 0 .088.006.088.055 0 .05-.038.056-.088.056h-.165zm.539.632c-.05 0-.104-.044-.104-.094v-.23c0-.05.054-.094.104-.094.05 0 .104.044.104.094v.23c0 .05-.055.094-.104.094zm-3.575 2.304h.506l1.182 1.2c.006.005 0 .005 0 .01v.446c0 .187-.126.341-.319.341h-.098v.226c0 .192-.138.296-.33.296h.01v.792c0 .188-.181.336-.368.336s-.369-.149-.369-.335v-1.32h-.214c-.193 0-.308-.149-.308-.341V5.72c0-.192.115-.346.308-.346zM14.5 0C17.536 0 20 2.464 20 5.5S17.536 11 14.5 11A5.502 5.502 0 019 5.5C9 2.464 11.464 0 14.5 0zm0 9.9c2.431 0 4.4-1.969 4.4-4.4 0-.297-.027-.583-.099-.864h-.236c-.188 0-.336-.104-.347-.313h-.319c.11.104.231.209.231.346v.705c0 .088-.055.17-.11.23h-.022l-.011.006-.022.011-.666.643v1.21c0 .193-.104.33-.296.33h-.54c-.192 0-.319-.137-.319-.33V6.221a.915.915 0 00-.533-.518h-.671c-.192 0-.368-.143-.368-.335V4.68c0-.192.176-.346.368-.346l.193-.005.319-.32a.342.342 0 01.489 0l.319.32c.005 0 .005.005.005.005h.704c.16 0 .237-.16.341-.313v-.11l-.038.005h-.27a.159.159 0 01-.153-.16c0-.087.066-.159.154-.159h.269l.039.006V3.42s-.05-.038-.061-.038h-.302l-.067.076a.342.342 0 01-.489.011l-.066-.088h-.176l.248.259c.021.022.021.088 0 .11-.028.022-.067.028-.088.006l-.292-.276h-.127l-.363.325-.033-.006c-.038.11-.087.089-.143.089-.126 0-.225-.072-.225-.193 0-.127.099-.209.225-.209h.176v-.182c0-.088.061-.131.149-.131h.066v-.127c0-.143.149-.297.286-.297h.28c.16 0 .27-.115.27-.275V2.42c0-.016.055.017.055-.088h-.187l-.005.017-.308.33a.123.123 0 01-.177 0c-.049-.044-.049-.121 0-.171l.391-.385c.027-.022.06-.022.094-.022l.005.022h.869A4.376 4.376 0 0014.5 1.1a4.402 4.402 0 00-2.816 1.018h.583c.094 0 .165.066.165.159s-.072.16-.165.16h-.478c0 .104-.039.06-.039.066v.351h.429l.226-.252c.132-.127.346-.155.473-.022a.332.332 0 010 .473l-1.183 1.182-.011.011c-.005.005-.011.005-.016.011a.115.115 0 00-.034.022c-.005.006-.01 0-.016.006a.309.309 0 01-.176.038h-.347c-.12.104-.187.148-.187.27v.088c0 .016-.027.027-.027.043l.561.589c.06.06.055.154 0 .209a.143.143 0 01-.209 0l-.578-.578a.425.425 0 01-.082.011c-.154 0-.292-.12-.292-.274v-.358h-.016c-.104.374-.165.77-.165 1.177 0 2.431 1.969 4.4 4.4 4.4zm3.388-3.107c.077 0 .16.06.16.137v.424c0 .077-.083.137-.16.137s-.16-.06-.16-.137V6.93c0-.077.083-.137.16-.137zm-3.113-4.879c0 .187-.154.314-.335.314h-.374v.104c0 .11-.05.198-.16.198s-.16-.088-.16-.198V1.98c-.104-.022-.033-.028-.033-.055 0-.187.127-.325.314-.325h.407c.187 0 .341.127.341.314z"],"inbox-search":["M7.136 3a6.327 6.327 0 00-.098 2.009H4.65l-2.67 5.996H5c.55 0 1 .45 1 .999v1h8v-1c0-.55.45-1 1-1h1.076l1.14 1.14a2.767 2.767 0 001.974.806c.282 0 .554-.042.81-.12V17c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h3.136zm3.244 1.33c0 1.62 1.31 2.93 2.93 2.93s2.93-1.31 2.93-2.93-1.31-2.93-2.93-2.93-2.93 1.31-2.93 2.93zm6.47 2.43l2.89 2.85c.13.15.22.35.23.56 0 .43-.35.78-.78.78-.23 0-.42-.08-.56-.22l-2.87-2.87c-.17.1-.33.2-.51.29-.03.01-.06.03-.09.04-.18.07-.35.15-.55.21-.19.06-.37.11-.57.14-.05.01-.1.02-.14.02-.2.03-.39.05-.6.05A4.3 4.3 0 019 4.31C9 1.93 10.93.01 13.3 0c2.37 0 4.3 1.93 4.3 4.3 0 .21-.02.4-.05.6-.01.05-.01.09-.02.14-.04.2-.08.38-.14.58-.05.19-.13.36-.21.54-.01.03-.03.06-.04.09-.08.18-.18.34-.29.51z"],"inbox-update":["M10.083 3a6.04 6.04 0 00.001 2.009H4.65l-2.67 5.996H5c.55 0 1 .45 1 .999v1h8v-1c0-.55.45-1 1-1h3.02l-.53-1.19a5.97 5.97 0 001.824-.811L20 10.545v6.456c0 .55-.45.999-1 .999H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h6.083zM16 8a4 4 0 110-8 4 4 0 010 8z"],"info-sign":["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM9 4h2v2H9V4zm4 12H7v-1h2V8H8V7h3v8h2v1z"],inheritance:["M6 10c0 2.21 1.79 4 4 4h6.59l-2.29-2.29A.965.965 0 0114 11a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-4 4a1.003 1.003 0 01-1.42-1.42l2.3-2.29H10c-3.31 0-6-2.69-6-6H1a1 1 0 01-1-1V1a1 1 0 011-1h8a1 1 0 011 1v8a1 1 0 01-1 1H6zM2 2v6h6V2H2z"],"inherited-group":["M1 9c.55 0 1 .45 1 1v4c0 1.1.9 2 2 2h2.59l-.3-.29a1.003 1.003 0 011.42-1.42l2 2c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-2 2A1.003 1.003 0 016 19c0-.28.11-.53.3-.71l.29-.29H4c-2.21 0-4-1.79-4-4v-4c0-.55.45-1 1-1zm6.996-9c.79 0 1.68.25 2.309.73a3.63 3.63 0 011.4 2.36c.11.6.17 1.52.17 2.15v.09c.22.09.42.32.47.82.03.39-.12.73-.2.87-.07.34-.27.71-.61.78-.04.16-.09.33-.15.48-.01.01-.02.05-.02.05-.27.71-.68 1.33-1.19 1.78 0 .08 0 .16.01.23.05.55-.15.95 1.33 1.6 1.469.66 3.698 1.35 4.178 2.39.45 1.05.27 1.67.27 1.67h-5.227a1.982 1.982 0 00-.319-.417l-2-2A2.003 2.003 0 005 15H4c-.548 0-1-.452-1-1v-1.462c.511-.213 1.023-.413 1.468-.608 1.479-.65 1.329-1.05 1.379-1.59l.01-.21c-.52-.45-.95-1.08-1.22-1.8l-.01-.01-.01-.03c-.07-.15-.12-.32-.16-.49-.34-.06-.54-.43-.62-.78-.08-.14-.24-.48-.2-.87.05-.51.26-.74.49-.83v-.08c0-.64.05-1.55.17-2.15a3.648 3.648 0 011.4-2.36C6.317.25 7.207 0 7.996 0zm5.997 3c.59 0 1.26.19 1.73.55.46.35.8.85.97 1.4.04.13.07.25.08.38.08.45.13 1.14.13 1.61v.07c.16.07.31.24.35.62.02.29-.09.55-.15.65-.05.26-.2.53-.46.59-.03.12-.07.25-.11.36-.01.01-.01.04-.01.04-.2.53-.51 1-.89 1.34 0 .06 0 .12.01.17.04.41-.11.71 1 1.19 1.099.5 2.768 1.01 3.128 1.79.34.79.2 1.25.2 1.25h-3.039V15c-.06-.33-.17-.69-.33-1.06-.45-.97-1.37-1.52-3.238-2.3-.17-.07-.76-.31-.77-.32-.1-.04-.2-.08-.28-.12.05-.14.04-.29.06-.45l.01-.16c-.25-.21-.47-.48-.65-.79.22-.34.41-.71.56-1.12l.028-.078-.002.013-.006.035.06-.15c.36-.26.6-.67.72-1.13.18-.37.29-.82.25-1.3-.05-.5-.21-.92-.47-1.22-.02-.53-.06-1.11-.12-1.59.38-.17.83-.26 1.24-.26z"],"inner-join":["M8.7 4.7C7.4 6 6.5 7.9 6.5 10s.8 4 2.2 5.3c-.8.5-1.7.7-2.7.7-3.3 0-6-2.7-6-6s2.7-6 6-6c1 0 1.9.2 2.7.7zm-3.34 9.25c-.55-1.2-.86-2.54-.86-3.95s.31-2.75.86-3.95a4.001 4.001 0 000 7.9zM14 4c3.3 0 6 2.7 6 6s-2.7 6-6 6c-1 0-1.9-.2-2.7-.7 1.3-1.3 2.2-3.2 2.2-5.3s-.8-3.9-2.2-5.3C12.1 4.2 13 4 14 4zm.6 2.05c.55 1.2.86 2.54.86 3.95s-.31 2.75-.86 3.95c1.9-.31 3.36-1.96 3.36-3.95S16.5 6.36 14.6 6.05zM10 5.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z"],insert:["M19 0H1C.4 0 0 .4 0 1v18c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V1c0-.6-.5-1-1-1zm-1 18H2V2h16v16zM5 11h4v4c0 .6.4 1 1 1s1-.4 1-1v-4h4c.6 0 1-.4 1-1s-.4-1-1-1h-4V5c0-.6-.4-1-1-1s-1 .4-1 1v4H5c-.6 0-1 .4-1 1s.4 1 1 1z"],intersection:["M13 4c-1.31 0-2.51.43-3.5 1.14A5.977 5.977 0 006 4c-3.31 0-6 2.69-6 6s2.69 6 6 6c1.31 0 2.51-.43 3.5-1.14.99.71 2.19 1.14 3.5 1.14 3.31 0 6-2.69 6-6s-2.69-6-6-6zm-4.93 9.41c-.61.37-1.31.59-2.07.59-2.21 0-4-1.79-4-4s1.79-4 4-4c.76 0 1.46.22 2.07.59C7.4 7.56 7 8.73 7 10s.4 2.44 1.07 3.41zM13 14c-.76 0-1.46-.22-2.07-.59C11.6 12.44 12 11.27 12 10s-.4-2.44-1.07-3.41C11.54 6.22 12.24 6 13 6c2.21 0 4 1.79 4 4s-1.79 4-4 4z"],"ip-address":["M6 3.66C6 5.69 10 11 10 11s4-5.31 4-7.34C13.99 1.64 12.21 0 10 0S6 1.64 6 3.66zM8 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zM14 13.5V13h-4v1h3v2h-2v1h3v-3.5zM3 12h14c.55 0 1 .45 1 1v6c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1v-6c0-.55.45-1 1-1zm4 1v6h1v-6H7zm3 1v5h1v-5h-1z"],issue:["M10 20C4.477 20 0 15.523 0 10S4.477 0 10 0s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 100-16 8 8 0 000 16zm1-2H9v-2h2v2zm0-3H9V4h2v9z"],"issue-closed":["M15.364 5.9a.997.997 0 01-.707-.293l-2.121-2.122a1 1 0 111.414-1.414l1.414 1.414L18.192.657a1 1 0 011.414 1.414l-3.535 3.536a.997.997 0 01-.707.292zM11.78.157a3.002 3.002 0 00-1.437 1.85 8 8 0 107.1 5.055l.042-.042 1.472-1.472A9.959 9.959 0 0120 10c0 5.523-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0c.608 0 1.202.054 1.78.158zM11 16H9v-2h2v2zm0-3H9V4h2v9z"],"issue-new":["M13.167.512a2.98 2.98 0 00-.131.524c-.74.115-1.39.5-1.848 1.052a8 8 0 106.724 6.724 2.997 2.997 0 001.052-1.848 2.98 2.98 0 00.524-.13A9.99 9.99 0 0120 10c0 5.523-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0a9.99 9.99 0 013.167.512zM11 16H9v-2h2v2zm0-3H9V4h2v9zm6-10h1.5a1 1 0 010 2H17v1.5a1 1 0 01-2 0V5h-1.5a1 1 0 010-2H15V1.5a1 1 0 012 0V3z"],italic:["M11.7 4H14c.6 0 1-.4 1-1s-.4-1-1-1H7c-.6 0-1 .4-1 1s.4 1 1 1h2.2L7.3 15H5c-.6 0-1 .4-1 1s.4 1 1 1h7c.6 0 1-.4 1-1s-.4-1-1-1H9.8l1.9-11z"],"join-table":["M19 6h-4V2c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h4v4c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zM6 12H2V9h4v3zm0-4H2V5h4v3zm7 9H7v-3h6v3zm0-4H7V9h6v4zm0-5H7V5h6v3zm5 9h-4v-3h4v3zm0-4h-4v-3h4v3z"],key:["M14 0c-3.31 0-6 2.69-6 6 0 1.11.32 2.14.85 3.03L.44 17.44a1.498 1.498 0 102.12 2.12l.79-.79.94.94c.18.18.43.29.71.29s.53-.11.71-.29l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-.94-.94 3.2-3.2A5.9 5.9 0 0014 12c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 9c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"],"key-backspace":["M19 3H7c-.28 0-.53.11-.71.29l-6 6C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l6 6c.18.18.43.29.71.29h12c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-2.29 9.29a1.003 1.003 0 01-1.42 1.42L13 11.41l-2.29 2.29c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71l2.3-2.29-2.3-2.29a1.003 1.003 0 011.42-1.42L13 8.59l2.29-2.29c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L14.41 10l2.3 2.29z"],"key-command":["M15.5 12H14V8h1.5C17.43 8 19 6.43 19 4.5S17.43 1 15.5 1 12 2.57 12 4.5V6H8V4.5C8 2.57 6.43 1 4.5 1S1 2.57 1 4.5 2.57 8 4.5 8H6v4H4.5C2.57 12 1 13.57 1 15.5S2.57 19 4.5 19 8 17.43 8 15.5V14h4v1.5c0 1.93 1.57 3.5 3.5 3.5s3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5zm0-9c.83 0 1.5.67 1.5 1.5S16.33 6 15.5 6 14 5.33 14 4.5 14.67 3 15.5 3zm-11 14c-.83 0-1.5-.67-1.5-1.5S3.67 14 4.5 14s1.5.67 1.5 1.5S5.33 17 4.5 17zm0-11C3.67 6 3 5.33 3 4.5S3.67 3 4.5 3 6 3.67 6 4.5 5.33 6 4.5 6zm7.5 6H8V8h4v4zm3.5 5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"],"key-control":["M16.71 7.29l-6-6C10.53 1.11 10.28 1 10 1s-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42L10 3.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],"key-delete":["M19.71 9.29l-6-6A.997.997 0 0013 3H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.28 0 .53-.11.71-.29l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zm-9 3a1.003 1.003 0 01-1.42 1.42L7 11.41 4.71 13.7c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71L5.59 10l-2.3-2.29a1.003 1.003 0 011.42-1.42L7 8.59 9.29 6.3c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L8.41 10l2.3 2.29z"],"key-enter":["M18 2c-.55 0-1 .45-1 1v5c0 2.21-1.79 4-4 4H4.41L6.7 9.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L4.41 14H13c3.31 0 6-2.69 6-6V3c0-.55-.45-1-1-1z"],"key-escape":["M2 8c.55 0 1-.45 1-1V4.41l6.29 6.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 3H7c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1zm9-6.94V3.1c3.39.49 6 3.38 6 6.9 0 3.87-3.13 7-7 7-3.52 0-6.41-2.61-6.9-6H1.06c.5 4.5 4.31 8 8.94 8a9 9 0 009-9c0-4.63-3.5-8.44-8-8.94z"],"key-option":["M13 4h6c.55 0 1-.45 1-1s-.45-1-1-1h-6c-.55 0-1 .45-1 1s.45 1 1 1zm6 12h-4.42L6.87 2.5l-.02.01A.977.977 0 006 2H1c-.55 0-1 .45-1 1s.45 1 1 1h4.42l7.71 13.5.01-.01c.18.3.49.51.86.51h5c.55 0 1-.45 1-1s-.45-1-1-1z"],"key-shift":["M17.74 10.35l-6.99-8.01-.01.01C10.56 2.14 10.3 2 10 2s-.56.14-.74.35l-.01-.01-7 8 .01.01A.95.95 0 002 11c0 .55.45 1 1 1h3v5c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-5h3c.55 0 1-.45 1-1 0-.25-.1-.48-.26-.65z"],"key-tab":["M19 13H4.41l2.29-2.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L2 12.59V10c0-.55-.45-1-1-1s-1 .45-1 1v8c0 .55.45 1 1 1s1-.45 1-1v-2.59l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 15H19c.55 0 1-.45 1-1s-.45-1-1-1zm0-12c-.55 0-1 .45-1 1v2.59L14.71 1.3A.965.965 0 0014 1a1.003 1.003 0 00-.71 1.71L15.59 5H1c-.55 0-1 .45-1 1s.45 1 1 1h14.59L13.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 7.41V10c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z"],"known-vehicle":["M19 4a.997.997 0 00-.707.293L14 8.586l-2.293-2.293a1 1 0 00-1.414 1.414l3 3a.997.997 0 001.414 0l5-5A1 1 0 0019 4zm-2.048 7.291c.011.072.048.134.048.209a1.5 1.5 0 01-1.5 1.5c-.225 0-.433-.057-.624-.145-.279.085-.57.145-.876.145a2.99 2.99 0 01-2.121-.879l-3-3 .007-.007A3.027 3.027 0 018.184 8H4V7l1-3h10l.19.568 1.307-1.308c-.336-.356-.758-.658-1.165-.772 0 0-1.74-.488-5.332-.488s-5.332.488-5.332.488c-.67.188-1.424.864-1.674 1.502L2.99 4H3L2 7H1a1 1 0 000 2h.333l-.28.84L1 10v7.5a1.5 1.5 0 103 0V17h12v.5a1.5 1.5 0 003 0V10l-.19-.568-1.858 1.86zM4.5 13a1.5 1.5 0 110-3 1.5 1.5 0 010 3z"],"lab-test":["M13 2a1 1 0 010 2v4l4 8v1a1 1 0 01-1 1H4a1 1 0 01-1-1v-1l4-8V4a1 1 0 110-2h6zm-2 2H9v4l-2 4h6l-2-4V4z"],label:["M3 12h14v-1H3v1zm11-9H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V9l-6-6zm4 12H2V5h11v3H3v1h10v1h5v5zm-4-6V5l4 4h-4z"],layer:["M19.5 9.1l-9-5c-.2-.1-.3-.1-.5-.1s-.3 0-.5.1l-9 5c-.3.2-.5.5-.5.9s.2.7.5.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9s-.2-.7-.5-.9z"],"layer-outline":["M9.514 4.126l-9 5a1 1 0 000 1.748l9 5a1 1 0 00.972 0l9-5a1 1 0 000-1.748l-9-5a1 1 0 00-.972 0zM10 6.144l6.94 3.855L10 13.855 3.059 9.999 10 6.144z"],layers:["M.5 6.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9s-.2-.7-.5-.9l-9-5c-.2-.1-.3-.1-.5-.1s-.3 0-.5.1l-9 5c-.3.2-.5.5-.5.9s.2.7.5.9z","M19 9c-.2 0-.3 0-.5.1L10 13.9 1.5 9.1C1.3 9 1.2 9 1 9c-.6 0-1 .4-1 1 0 .4.2.7.5.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9 0-.6-.4-1-1-1z","M19 13c-.2 0-.3 0-.5.1L10 17.9l-8.5-4.7c-.2-.2-.3-.2-.5-.2-.6 0-1 .4-1 1 0 .4.2.7.5.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9 0-.6-.4-1-1-1z"],layout:["M18 6c-1.1 0-2 .9-2 2 0 .37.11.71.28 1.01l-2.27 2.27c-.3-.17-.64-.28-1.01-.28-.93 0-1.71.64-1.93 1.5H8.93c-.22-.86-1-1.5-1.93-1.5-.37 0-.71.11-1.01.28L3.72 9.01C3.89 8.71 4 8.37 4 8c0-.34-.09-.66-.24-.94l3.66-3.38c.31.2.68.32 1.08.32 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .34.09.66.24.94L3.08 6.32C2.77 6.12 2.4 6 2 6 .9 6 0 6.9 0 8s.9 2 2 2c.37 0 .71-.11 1.01-.28l2.27 2.27c-.17.3-.28.64-.28 1.01s.11.71.28 1.01l-2.27 2.27C2.71 16.11 2.37 16 2 16c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.37-.11-.71-.28-1.01l2.27-2.27c.3.17.64.28 1.01.28.93 0 1.71-.64 1.93-1.5h2.14c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2 0-.37-.11-.71-.28-1.01l2.27-2.27c.3.17.64.28 1.01.28 1.1 0 2-.9 2-2s-.9-2-2-2z"],"layout-auto":["M18 13c-.53 0-1.01.21-1.37.55L11.9 10.6c.06-.19.1-.39.1-.6s-.04-.41-.1-.6l4.72-2.95c.37.34.85.55 1.38.55 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .21.04.41.1.6l-4.73 2.96c-.24-.23-.54-.4-.87-.48V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S8 .9 8 2c0 .93.64 1.71 1.5 1.93v4.14c-.33.09-.63.26-.87.48L3.9 5.6c.06-.19.1-.39.1-.6 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.53 0 1.01-.21 1.37-.55L8.1 9.4c-.06.19-.1.39-.1.6s.04.41.1.6l-4.72 2.95C3.01 13.21 2.53 13 2 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.21-.04-.41-.1-.6l4.73-2.96c.24.23.54.4.87.48v4.14C8.64 16.29 8 17.07 8 18c0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-4.14c.33-.09.63-.26.87-.48l4.73 2.96c-.06.18-.1.38-.1.59 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z"],"layout-balloon":["M18 16c-.14 0-.28.02-.42.05l-1.73-3.45c.69-.45 1.14-1.22 1.14-2.1s-.46-1.65-1.14-2.1l1.73-3.45c.14.03.28.05.42.05 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .6.27 1.13.69 1.5l-1.77 3.54c-.14-.02-.28-.04-.42-.04a2.5 2.5 0 00-2.45 2h-4.1A2.5 2.5 0 005.5 8c-.14 0-.28.02-.42.04L3.31 4.5C3.73 4.13 4 3.6 4 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.14 0 .28-.02.42-.05L4.14 8.4C3.46 8.85 3 9.62 3 10.5s.46 1.65 1.14 2.1l-1.73 3.45A1.84 1.84 0 002 16c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.6-.27-1.13-.69-1.5l1.77-3.54c.14.02.28.04.42.04a2.5 2.5 0 002.45-2h4.1a2.5 2.5 0 002.45 2c.14 0 .28-.02.42-.04l1.77 3.54c-.42.37-.69.9-.69 1.5 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z"],"layout-circle":["M18.3 8c-.2-.9-.6-1.7-1.1-2.5.2-.3.3-.7.3-1 0-1.1-.9-2-2-2-.4 0-.7.1-1 .3-.8-.5-1.6-.8-2.5-1.1-.1-1-1-1.7-2-1.7S8.2.8 8 1.7c-.9.3-1.7.6-2.5 1.1-.3-.2-.7-.3-1-.3-1.1 0-2 .9-2 2 0 .4.1.7.3 1-.5.8-.8 1.6-1.1 2.5C.8 8.2 0 9 0 10s.8 1.8 1.7 2c.2.9.6 1.7 1.1 2.5-.2.3-.3.7-.3 1 0 1.1.9 2 2 2 .4 0 .7-.1 1-.3.8.5 1.6.8 2.5 1.1.1 1 1 1.7 2 1.7s1.8-.8 2-1.7c.9-.2 1.7-.6 2.5-1.1.3.2.7.3 1 .3 1.1 0 2-.9 2-2 0-.4-.1-.7-.3-1 .5-.8.8-1.6 1.1-2.5 1-.1 1.7-1 1.7-2s-.8-1.8-1.7-2zm-1.8 5.8c-.3-.2-.6-.3-1-.3-1.1 0-2 .9-2 2 0 .4.1.7.3 1-.6.3-1.2.6-1.9.8-.3-.7-1-1.3-1.9-1.3-.8 0-1.6.5-1.9 1.3-.7-.2-1.3-.4-1.9-.8.2-.3.3-.6.3-1 0-1.1-.9-2-2-2-.4 0-.7.1-1 .3-.3-.6-.6-1.2-.8-1.9.8-.3 1.3-1.1 1.3-1.9s-.5-1.6-1.2-1.8c.2-.7.4-1.3.8-1.9.3.2.6.3 1 .3 1.1 0 2-.9 2-2 0-.4-.1-.7-.3-1 .6-.3 1.2-.6 1.9-.8.2.7 1 1.2 1.8 1.2s1.6-.5 1.9-1.3c.7.2 1.3.4 1.9.8-.2.3-.3.6-.3 1 0 1.1.9 2 2 2 .4 0 .7-.1 1-.3.3.6.6 1.2.8 1.9-.8.3-1.3 1.1-1.3 1.9s.5 1.6 1.2 1.8c-.1.7-.4 1.4-.7 2z"],"layout-grid":["M2 0a2 2 0 100 4 2 2 0 100-4zM10 0a2 2 0 100 4 2 2 0 100-4zM18 0a2 2 0 100 4 2 2 0 100-4zM18 8a2 2 0 100 4 2 2 0 100-4zM18 16a2 2 0 100 4 2 2 0 100-4zM10 16a2 2 0 100 4 2 2 0 100-4zM2 16a2 2 0 100 4 2 2 0 100-4zM2 8a2 2 0 100 4 2 2 0 100-4zM10 8a2 2 0 100 4 2 2 0 100-4z"],"layout-group-by":["M2 2a2 2 0 100 4 2 2 0 100-4zM18 0a2 2 0 100 4 2 2 0 100-4zM18 8a2 2 0 100 4 2 2 0 100-4zM18 16a2 2 0 100 4 2 2 0 100-4zM2 14a2 2 0 100 4 2 2 0 100-4zM2 8a2 2 0 100 4 2 2 0 100-4zM13 12a2 2 0 100 4 2 2 0 100-4zM13 4a2 2 0 100 4 2 2 0 100-4z"],"layout-hierarchy":["M18.5 16.07v-4.14c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2-.93 0-1.71.64-1.93 1.5h-4.14c-.18-.7-.73-1.25-1.43-1.43V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S8 .9 8 2c0 .93.64 1.71 1.5 1.93v4.14c-.7.18-1.25.73-1.43 1.43H3.93C3.71 8.64 2.93 8 2 8c-1.1 0-2 .9-2 2 0 .93.64 1.71 1.5 1.93v4.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-4.14c.7-.18 1.25-.73 1.43-1.43h4.14c.18.7.73 1.25 1.43 1.43v4.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-4.14c.7-.18 1.25-.73 1.43-1.43h4.14c.18.7.73 1.25 1.43 1.43v4.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93z"],"layout-linear":["M16.5 7a2.5 2.5 0 00-2.45 2h-2.1a2.5 2.5 0 00-4.9 0h-2.1a2.5 2.5 0 100 1h2.1a2.5 2.5 0 004.9 0h2.1a2.5 2.5 0 102.45-3z"],"layout-skew-grid":["M2 0a2 2 0 100 4 2 2 0 100-4zM18 0a2 2 0 100 4 2 2 0 100-4zM18 8a2 2 0 100 4 2 2 0 100-4zM18 16a2 2 0 100 4 2 2 0 100-4zM2 16a2 2 0 100 4 2 2 0 100-4zM2 8a2 2 0 100 4 2 2 0 100-4zM10 12a2 2 0 100 4 2 2 0 100-4zM10 4a2 2 0 100 4 2 2 0 100-4z"],"layout-sorted-clusters":["M2 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm16 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-8 4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],learning:["M10.551 1.127a1.256 1.256 0 00-1.102 0L.456 5.89c-.608.309-.608.913 0 1.222l8.993 4.762c.334.17.767.17 1.102 0l8.992-4.762c.61-.309.61-.913 0-1.222l-8.992-4.762z","M18 6.5l.016 4.514c.002.548.447.99.994.99a.99.99 0 00.99-.99V6.5h-2zM3.366 10.033l6.401 3.358a.5.5 0 00.465 0l6.406-3.358a.25.25 0 01.366.221v5.109a.25.25 0 01-.139.224l-6.64 3.302a.5.5 0 01-.446 0l-6.64-3.302A.25.25 0 013 15.363v-5.108a.25.25 0 01.366-.222z"],"left-join":["M8.7 4.7C7.4 6 6.5 7.9 6.5 10s.8 4 2.2 5.3c-.8.5-1.7.7-2.7.7-3.3 0-6-2.7-6-6s2.7-6 6-6c1 0 1.9.2 2.7.7zM14 4c3.3 0 6 2.7 6 6s-2.7 6-6 6c-1 0-1.9-.2-2.7-.7 1.3-1.3 2.2-3.2 2.2-5.3s-.8-3.9-2.2-5.3C12.1 4.2 13 4 14 4zm.6 2.05c.55 1.2.86 2.54.86 3.95s-.31 2.75-.86 3.95c1.9-.31 3.36-1.96 3.36-3.95S16.5 6.36 14.6 6.05zM10 5.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z"],"less-than":["M7.162 10l9.154 3.052a1 1 0 01-.632 1.897l-12-4c-.912-.304-.912-1.594 0-1.897l12-4a1 1 0 01.632 1.897L7.162 10z"],"less-than-or-equal-to":["M16.316 11.051L7.162 8l9.154-3.051a1 1 0 10-.632-1.898l-12 4c-.912.304-.912 1.594 0 1.898l12 4a1 1 0 10.632-1.898zM16 15H4a1 1 0 100 2h12a1 1 0 100-2z"],lifesaver:["M8.143 14.644L7.028 17.43c.919.368 1.922.57 2.972.57s2.053-.202 2.972-.57l-1.115-2.786A4.986 4.986 0 0110 15a4.986 4.986 0 01-1.857-.356zm-2.787-2.787A4.986 4.986 0 015 10c0-.656.126-1.283.356-1.857L2.57 7.028A7.978 7.978 0 002 10c0 1.05.202 2.053.57 2.972l2.786-1.115zm2.787-6.5A4.986 4.986 0 0110 5c.656 0 1.283.126 1.857.356l1.115-2.786A7.978 7.978 0 0010 2c-1.05 0-2.053.202-2.972.57l1.115 2.786zm6.5 2.786c.23.574.357 1.2.357 1.857 0 .656-.126 1.283-.356 1.857l2.786 1.115c.368-.919.57-1.922.57-2.972s-.202-2.053-.57-2.972l-2.786 1.115zM10 13a3 3 0 100-6 3 3 0 000 6zm0 7C4.477 20 0 15.523 0 10S4.477 0 10 0s10 4.477 10 10-4.477 10-10 10z"],lightbulb:["M6.33 13.39c0 .34.27.61.6.61h6.13c.33 0 .6-.27.6-.61C14.03 9.78 16 9.4 16 6.09 16 2.72 13.31 0 10 0S4 2.72 4 6.09c0 3.31 1.97 3.69 2.33 7.3zM13 15H7c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm-1 3H8c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1z"],link:["M10.85 11.98l-4.44 4.44-1 1c-.36.36-.86.58-1.41.58-1.1 0-2-.9-2-2 0-.55.22-1.05.59-1.41l5.44-5.44C7.69 9.06 7.36 9 7 9c-1.11 0-2.09.46-2.82 1.18l-.01-.01-3 3 .01.01C.46 13.91 0 14.89 0 16c0 2.21 1.79 4 4 4 1.11 0 2.09-.46 2.82-1.18l.01.01 3-3-.01-.01C10.54 15.09 11 14.11 11 13c0-.36-.06-.69-.15-1.02zM20 4c0-2.21-1.79-4-4-4-1.11 0-2.09.46-2.82 1.18l-.01-.01-3 3 .01.01C9.46 4.91 9 5.89 9 7c0 .36.06.69.15 1.02l4.44-4.44 1-1c.36-.36.86-.58 1.41-.58 1.1 0 2 .9 2 2 0 .55-.22 1.05-.59 1.41l-5.44 5.44c.34.09.67.15 1.03.15 1.11 0 2.09-.46 2.82-1.18l.01.01 3-3-.01-.01C19.54 6.09 20 5.11 20 4zM5 14a1.003 1.003 0 001.71.71l8-8a1.003 1.003 0 00-1.42-1.42l-2 2-2 2-2 2-2 2c-.18.18-.29.43-.29.71z"],list:["M1.03 1C.46 1 0 1.46 0 2.03v.95C0 3.54.46 4 1.03 4h17.95C19.54 4 20 3.54 20 2.97v-.94C20 1.46 19.54 1 18.97 1H1.03zM0 17.97C0 18.54.46 19 1.03 19h17.95c.56 0 1.03-.46 1.03-1.03v-.95c0-.56-.46-1.03-1.03-1.03H1.03C.46 16 0 16.46 0 17.03v.94zM0 12.97C0 13.54.46 14 1.03 14h17.95c.56 0 1.03-.46 1.03-1.03v-.95c0-.56-.46-1.03-1.03-1.03H1.03C.46 11 0 11.46 0 12.03v.94zM0 7.97C0 8.54.46 9 1.03 9h17.95C19.54 9 20 8.54 20 7.97v-.94C20 6.46 19.54 6 18.97 6H1.03C.46 6 0 6.46 0 7.03v.94z"],"list-columns":["M0 2.973v-.936C0 1.468.46 1.01 1.029 1H7.97C8.541 1 9 1.468 9 2.027v.946C9 3.542 8.53 4 7.971 4H1.03C.459 4 0 3.542 0 2.973zm0 5v-.936C0 6.468.46 6.01 1.029 6H7.97C8.541 6 9 6.468 9 7.027v.946C9 8.542 8.53 9 7.971 9H1.03C.459 9 0 8.542 0 7.973zm0 5v-.936C0 11.468.46 11.01 1.029 11H7.97C8.541 11 9 11.468 9 12.027v.946C9 13.542 8.53 14 7.971 14H1.03C.459 14 0 13.542 0 12.973zm0 5v-.936C0 16.468.46 16.01 1.029 16H7.97C8.541 16 9 16.468 9 17.027v.946C9 18.542 8.53 19 7.971 19H1.03C.459 19 0 18.542 0 17.973zm11-15v-.936c0-.569.46-1.027 1.029-1.037h6.942C19.541 1 20 1.468 20 2.027v.946C20 3.542 19.53 4 18.971 4H12.03C11.459 4 11 3.542 11 2.973zm0 5v-.936c0-.569.46-1.027 1.029-1.037h6.942C19.541 6 20 6.468 20 7.027v.946C20 8.542 19.53 9 18.971 9H12.03C11.459 9 11 8.542 11 7.973zm0 5v-.936c0-.569.46-1.027 1.029-1.037h6.942c.57 0 1.029.468 1.029 1.027v.946c0 .569-.47 1.027-1.029 1.027H12.03c-.57 0-1.029-.458-1.029-1.027zm0 5v-.936c0-.569.46-1.027 1.029-1.037h6.942c.57 0 1.029.468 1.029 1.027v.946c0 .569-.47 1.027-1.029 1.027H12.03c-.57 0-1.029-.458-1.029-1.027z"],"list-detail-view":["M8 6H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM8 1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm11 0h-7c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1z"],locate:["M10 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm9 1h-1.07c-.45-3.61-3.32-6.45-6.93-6.91V1c0-.55-.45-1-1-1S9 .45 9 1v1.09C5.39 2.55 2.52 5.39 2.07 9H1c-.55 0-1 .45-1 1s.45 1 1 1h1.07c.45 3.61 3.32 6.45 6.93 6.91V19c0 .55.45 1 1 1s1-.45 1-1v-1.09c3.61-.46 6.48-3.29 6.93-6.91H19c.55 0 1-.45 1-1s-.45-1-1-1zm-4 2h.9a5.98 5.98 0 01-4.9 4.91V15c0-.55-.45-1-1-1s-1 .45-1 1v.91A5.98 5.98 0 014.1 11H5c.55 0 1-.45 1-1s-.45-1-1-1h-.9A5.98 5.98 0 019 4.09V5c0 .55.45 1 1 1s1-.45 1-1v-.91A5.98 5.98 0 0115.9 9H15c-.55 0-1 .45-1 1s.45 1 1 1z"],lock:["M15.93 9H14V4.99c0-2.21-1.79-4-4-4s-4 1.79-4 4V9H3.93c-.55 0-.93.44-.93.99v8c0 .55.38 1.01.93 1.01h12c.55 0 1.07-.46 1.07-1.01v-8c0-.55-.52-.99-1.07-.99zM8 9V4.99c0-1.1.9-2 2-2s2 .9 2 2V9H8z"],"log-in":["M19 0h-8c-.55 0-1 .45-1 1s.45 1 1 1h7v16h-7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 10c0-.28-.11-.53-.29-.71l-5-5a1.003 1.003 0 00-1.42 1.42L11.59 9H1c-.55 0-1 .45-1 1s.45 1 1 1h10.59L8.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l5-5c.18-.18.29-.43.29-.71z"],"log-out":["M19.71 9.29l-5-5a1.003 1.003 0 00-1.42 1.42L16.59 9H6c-.55 0-1 .45-1 1s.45 1 1 1h10.59l-3.29 3.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l5-5c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM9 18H2V2h7c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1z"],manual:["M20 1.1a.976.976 0 00-.83-.88C15.15-.43 12.07.34 10 2.5 7.93.34 4.85-.43.84.22.37.3.03.67 0 1.1v15.01c0 .07 0 .14.01.21.09.52.61.88 1.15.79 3.85-.62 6.4.16 8 2.46.02.02.03.04.05.07.02.02.04.04.06.07l.01.01a1.07 1.07 0 00.28.19c.01 0 .01.01.02.01.03.01.07.03.1.04.01 0 .02.01.04.01.03.01.07.02.1.02.01 0 .02 0 .04.01H10c.04 0 .09 0 .13-.01.01 0 .03 0 .04-.01.03-.01.06-.01.1-.02.01 0 .03-.01.04-.01.03-.01.07-.02.1-.04.01 0 .02-.01.03-.01.07-.03.13-.07.19-.11.01 0 .01-.01.02-.01.02-.02.04-.03.06-.05.01-.01.02-.02.03-.02l.05-.05c.01-.01.02-.02.02-.03.01-.02.02-.03.04-.05 1.61-2.3 4.15-3.09 8-2.46.54.09 1.06-.26 1.15-.79-.01-.05 0-.09 0-.13V1.1zM9 16.63c-1.78-1.31-4.12-1.83-7-1.55V2c3.26-.37 5.51.39 7 2.35v12.28zm9-1.56c-2.88-.28-5.22.24-7 1.55V4.34c1.49-1.96 3.74-2.71 7-2.35v13.08z"],"manually-entered-data":["M1 12h4.34l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm16.77-3.94l1.65-1.65c.36-.36.58-.86.58-1.41 0-1.1-.9-2-2-2-.55 0-1.05.22-1.41.59l-1.65 1.65 2.83 2.82zM1 4h12.34l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zM0 15c0 .55.45 1 1 1h.34l2-2H1c-.55 0-1 .45-1 1zm1-7h8.34l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 2h-.34l-2 2H19c.55 0 1-.45 1-1s-.45-1-1-1zm0 4h-4.34l-2 2H19c.55 0 1-.45 1-1s-.45-1-1-1zM4 19l4.41-1.59-2.81-2.79L4 19zM14.23 5.94l-7.65 7.65 2.83 2.83 7.65-7.65-2.83-2.83z"],map:["M19.54 4.18l.01-.02-6-4-.01.02C13.39.08 13.21 0 13 0s-.39.08-.54.18l-.01-.02L7 3.8 1.55.17l-.01.01A.969.969 0 001 0C.45 0 0 .45 0 1v14c0 .35.19.64.46.82l-.01.02 6 4 .01-.02c.15.1.33.18.54.18s.39-.08.54-.18l.01.02L13 16.2l5.45 3.63.01-.02c.15.11.33.19.54.19.55 0 1-.45 1-1V5c0-.35-.19-.64-.46-.82zM6 17.13l-4-2.67V2.87l4 2.67v11.59zm6-2.67l-4 2.67V5.54l4-2.67v11.59zm6 2.67l-4-2.67V2.87l4 2.67v11.59z"],"map-create":["M18 9.22v7.91l-4-2.67V9.22c-.61-.55-1-1.33-1-2.22-.35 0-.69-.07-1-.18v7.65l-4 2.67V5.54l2.02-1.35c0-.06-.02-.13-.02-.19 0-1.66 1.34-3 3-3 0-.34.07-.66.17-.97C13.12.02 13.06 0 13 0c-.21 0-.39.08-.54.18l-.01-.02L7 3.8 1.55.17l-.01.01A.969.969 0 001 0C.45 0 0 .45 0 1v14c0 .35.19.64.46.82l-.01.02 6 4 .01-.02c.15.1.33.18.54.18s.39-.08.54-.18l.01.02L13 16.2l5.45 3.63.01-.02c.15.11.33.19.54.19.55 0 1-.45 1-1V6.82c-.31.11-.65.18-1 .18 0 .89-.39 1.67-1 2.22zM6 17.13l-4-2.67V2.87l4 2.67v11.59zM12 4c0 .55.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V5h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1z"],"map-marker":["M9.98 0c-3.87 0-7 2.98-7 6.67 0 3.68 7 13.33 7 13.33s7-9.65 7-13.33c0-3.68-3.14-6.67-7-6.67zm0 10c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"],maximize:["M19 0h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 3.41V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zM8 11c-.28 0-.53.11-.71.29L2 16.59V14c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1H3.41l5.29-5.29c.19-.18.3-.43.3-.71 0-.55-.45-1-1-1z"],media:["M15 9c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4-7H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 13l-6-5-2 2-4-5-4 8V4h16v11z"],menu:["M1 6h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 3H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],"menu-closed":["M8 6h11c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zM4 6c-.28 0-.53.11-.71.29l-3 3C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l3 3A1.003 1.003 0 005 13V7c0-.55-.45-1-1-1zm15 8H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm0-5H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1z"],"menu-open":["M12 9H1c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm0-10H1c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm7.71 5.29l-3-3A1.003 1.003 0 0015 7v6a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],"merge-columns":["M6.71 6.29a1.003 1.003 0 00-1.42 1.42L6.59 9H2V2h5v2.18c.42.15.8.39 1.11.7l.01-.01.88.89V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-4.76l-.88.88-.01-.01c-.31.31-.69.56-1.11.71V18H2v-7h4.59L5.3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3zM19 0h-7c-.55 0-1 .45-1 1v4.76l.88-.88.01.01c.31-.31.69-.55 1.11-.7V2h5v7h-4.59l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L13.41 11H18v7h-5v-2.18c-.42-.15-.8-.39-1.11-.7l-.01.01-.88-.89V19c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],"merge-links":["M10 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm8-5c-.93 0-1.71.64-1.93 1.5H14V4c0-2.21-1.79-4-4-4S6 1.79 6 4v5.5H3.93C3.71 8.64 2.93 8 2 8c-1.1 0-2 .9-2 2s.9 2 2 2c.93 0 1.71-.64 1.93-1.5H6V16c0 2.21 1.79 4 4 4s4-1.79 4-4v-5.5h2.07c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2s-.9-2-2-2zm-5 8c0 1.66-1.34 3-3 3s-3-1.34-3-3V4c0-1.66 1.34-3 3-3s3 1.34 3 3v12zM10 3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],minimize:["M8 11H3c-.55 0-1 .45-1 1s.45 1 1 1h2.59L.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 14.41V17c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zM20 1a1.003 1.003 0 00-1.71-.71L13 5.59V3c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1h-2.59l5.29-5.29c.19-.18.3-.43.3-.71z"],minus:["M16 9H4c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1z"],"mobile-phone":["M15 0H5c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 19c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4-3H6V3h8v13z"],"mobile-video":["M19 5c-.28 0-.53.11-.71.29L15 8.59V5c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h13c.55 0 1-.45 1-1v-3.59l3.29 3.29c.18.19.43.3.71.3.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z"],modal:["M19 1a1 1 0 011 1v16a1 1 0 01-1 1H1a1 1 0 01-1-1V2a1 1 0 011-1h18zm-1 4H2v12h16V5zm-3-3h-2v2h2V2zm3 0h-2v2h2V2z"],"modal-filled":["M20 5v13a1 1 0 01-1 1H1a1 1 0 01-1-1V5h20zm-3-4h2a1 1 0 011 1v1h-3V1zm-2 2H0V2a1 1 0 011-1h14v2z"],moon:["M19 14.15A9.94 9.94 0 019.94 20C4.45 20 0 15.55 0 10.06 0 6.03 2.4 2.56 5.85 1a9.811 9.811 0 00-.88 4.09c0 5.49 4.45 9.94 9.94 9.94 1.46 0 2.84-.31 4.09-.88z"],more:["M3.5 8a2.5 2.5 0 100 5 2.5 2.5 0 100-5zM17.5 8a2.5 2.5 0 100 5 2.5 2.5 0 100-5zM10.5 8a2.5 2.5 0 100 5 2.5 2.5 0 100-5z"],mountain:["M20 16H4l7-11h1l2 2h1l5 9zm-4-5l-1.5-3h-1l-1-1-1-1L8 11.5l3-1.5 1 1 1-1 3 1zM8.055 8L2.79 16H0l7-8h1.055z"],move:["M19.71 9.29l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 9H11V3.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3C10.53.11 10.28 0 10 0s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L9 3.41V9H3.41L4.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 11H9v5.59L7.71 15.3A.965.965 0 007 15a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L11 16.59V11h5.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],mugshot:["M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18h-.07c-.05-.2-.12-.42-.22-.67-.46-1.05-2.68-1.75-4.16-2.4-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5a3.67 3.67 0 00-1.29-1.86C11.7 3.25 10.81 3 10.02 3s-1.68.25-2.31.73c-.61.47-1.07 1.13-1.29 1.86-.05.16-.09.33-.11.5-.12.6-.17 1.51-.17 2.14v.08c-.24.09-.44.32-.49.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59-1.48.65-3.7 1.35-4.16 2.4-.12.27-.18.49-.23.69H2V2h16v16z"],"multi-select":["M19 3H7c-.55 0-1 .45-1 1v1h12v6h1c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-6 6H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm-1 6H2v-4h10v4zm4-9H4c-.55 0-1 .45-1 1v1h12v6h1c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z"],music:["M19 0c-.08 0-.16.03-.24.05V.03l-12 3v.02C6.33 3.16 6 3.53 6 4v11.35c-.59-.22-1.27-.35-2-.35-2.21 0-4 1.12-4 2.5S1.79 20 4 20c1.94 0 3.55-.86 3.92-2H8V7.78l10-2.5v7.07c-.59-.22-1.27-.35-2-.35-2.21 0-4 1.12-4 2.5s1.79 2.5 4 2.5c1.94 0 3.55-.86 3.92-2H20V1c0-.55-.45-1-1-1z"],"new-drawing":["M18.7 13.7c.5 0 1 .4 1 1 0 .257-.073.44-.22.614l-.08.086-4 4c-.2.2-.4.3-.7.3-.6 0-1-.5-1-1 0-.257.073-.44.22-.614L14 18l4-4c.2-.2.4-.3.7-.3zM1.8 0l8.378 2.982A3.003 3.003 0 0013 7a3.003 3.003 0 003.877 2.87l.723 2.53.049.06a.41.41 0 01.051.24c0 .167-.07.403-.208.593l-.092.107-4 4c-.2.2-.4.3-.7.3-.075 0-.15-.056-.225-.084L12.4 17.6l-7-2-.112-.042c-.223-.094-.431-.244-.542-.45L4.7 15 0 1.8l.5-.6L7 7.7c-.2.3-.3.6-.3 1 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2a1.68 1.68 0 00-.871.22L7.7 7 1.2.5l.6-.5zM16 0c.55 0 1 .45 1 1v2h2c.55 0 1 .45 1 1s-.45 1-1 1h-2v2c0 .432-.278.803-.664.941l-.01.004A.989.989 0 0116 8c-.55 0-1-.45-1-1V5h-2c-.55 0-1-.45-1-1l.007-.116C12.065 3.388 12.489 3 13 3h2V1c0-.55.45-1 1-1z"],"new-grid-item":["M8 0H1C.45 0 0 .45 0 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm0 11H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-7c0-.55-.45-1-1-1zm6 7h-1v-1c0-.55-.45-1-1-1s-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1s-.45-1-1-1zm5-7h-2c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1zm0-11h-7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 11h-2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1s-.45-1-1-1zm5 5c-.55 0-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1z"],"new-layer":["M11.513 2.663A2 2 0 0013 6h1v1a2 2 0 104 0v-.733l1.5.833c.3.2.5.5.5.9s-.2.7-.5.9l-9 5c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5C.2 8.7 0 8.4 0 8s.2-.7.5-.9l9-5c.2-.1.3-.1.5-.1s.3 0 .5.1l1.013.563zM17 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5h-2a1 1 0 010-2h2V1a1 1 0 012 0v2z"],"new-layers":["M17 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5h-2a1 1 0 010-2h2V1a1 1 0 012 0v2zm-1.252 5.984L10.5 11.9c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5C.2 6.7 0 6.4 0 6s.2-.7.5-.9l9-5c.2-.1.3-.1.5-.1s.3 0 .5.1L13.92 2H13a2 2 0 100 4h1v1a2 2 0 001.748 1.984zm2.07-1.15C17.935 7.58 18 7.298 18 7V6h1c.353 0 .684-.091.972-.251.018.078.028.162.028.251 0 .4-.2.7-.5.9l-1.682.934zM19 9c.6 0 1 .4 1 1 0 .4-.2.7-.5.9l-9 5c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5c-.3-.2-.5-.5-.5-.9 0-.6.4-1 1-1 .2 0 .3 0 .5.1l8.5 4.8 8.5-4.8c.2-.1.3-.1.5-.1zm0 4c.6 0 1 .4 1 1 0 .4-.2.7-.5.9l-9 5c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5c-.3-.2-.5-.5-.5-.9 0-.6.4-1 1-1 .2 0 .3 0 .5.2l8.5 4.7 8.5-4.8c.2-.1.3-.1.5-.1z"],"new-link":["M14.5 12a2.5 2.5 0 00-2.45 2h-7.1a2.5 2.5 0 100 1h7.1a2.5 2.5 0 102.45-3zM19 5h-2V3c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V7h2c.55 0 1-.45 1-1s-.45-1-1-1z"],"new-object":["M12 4c0 .6.4 1 1 1h2v2c0 .6.4 1 1 1 .5 0 1-.4 1-1V5h2c.5 0 1-.4 1-1s-.5-1-1-1h-2V1c0-.6-.5-1-1-1-.6 0-1 .4-1 1v2h-2c-.6 0-1 .5-1 1zm7 3c0 1.7-1.3 3-3 3s-3-1.3-3-3c-1.7 0-3-1.3-3-3s1.3-3 3-3c0-.2 0-.4.1-.5-1-.3-2-.5-3.1-.5C4.5 0 0 4.5 0 10s4.5 10 10 10 10-4.5 10-10c0-1.1-.2-2.1-.5-3H19z"],"new-person":["M11.41 15.92c-1.46-.65-1.26-1.05-1.31-1.59-.01-.07-.01-.15-.01-.23.5-.45.91-1.07 1.18-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.33-.07.53-.44.6-.78.08-.14.23-.48.2-.87-.05-.5-.24-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5-.22-.73-.67-1.4-1.27-1.86C9.58 4.25 8.7 4 7.92 4c-.78 0-1.66.25-2.28.73-.61.47-1.06 1.13-1.27 1.86-.05.16-.08.33-.11.5-.12.6-.18 1.51-.18 2.14v.08c-.23.09-.43.32-.48.83-.04.39.12.73.2.87.08.35.28.72.62.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.69 1.35 1.21 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.36 1.59-1.46.65-3.66 1.35-4.11 2.4C-.14 19.38.04 20 .04 20h15.75s.18-.62-.27-1.67c-.45-1.06-2.65-1.75-4.11-2.41zM18.87 3h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V5h2c.55 0 1-.45 1-1s-.45-1-1-1z"],"new-prescription":["M11.95 10.23c.16-.18.22-.22.46-.22h1.48c.25 0 .47.08.59.33.1.2.09.41-.05.66l-2.71 3.58L14.88 19c.13.21.16.46.03.69-.12.21-.34.31-.57.31H12.7c-.31 0-.56-.17-.7-.44l-1.9-2.67-1.93 2.68c-.15.27-.42.43-.73.43H5.98c-.25 0-.47-.08-.59-.33-.1-.2-.09-.41.05-.66l3.09-4.35L4.26 9H3v4.32c0 .41-.3.69-.7.69H.7c-.41 0-.7-.28-.7-.69V.69C0 .28.3 0 .7 0h4.42c.71 0 1.36.1 1.94.3.59.2 1.11.49 1.54.87.44.38.78.84 1.02 1.39.25.54.37 1.13.37 1.77 0 1.01-.28 1.88-.84 2.6-.43.54-1.35 1.29-2 1.59l3.09 3.94 1.71-2.23zM4.71 6.04c.71 0 1.45-.16 1.81-.46.33-.28.5-.69.5-1.25s-.17-.97-.5-1.25c-.35-.3-1.1-.46-1.81-.46h-1.7v3.42h1.7zM19 3c.55 0 1 .45 1 1s-.45 1-1 1h-2v2c0 .55-.45 1-1 1s-1-.45-1-1V5h-2c-.55 0-1-.45-1-1s.45-1 1-1h2V1c0-.55.45-1 1-1s1 .45 1 1v2h2z"],"new-text-box":["M19 3h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V5h2c.55 0 1-.45 1-1s-.45-1-1-1zM5 7.5v1c0 .28.22.5.5.5s.5-.22.5-.5V8h2v7h-.5c-.28 0-.5.22-.5.5s.22.5.5.5h2c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H9V8h2v.5c0 .28.22.5.5.5s.5-.22.5-.5v-1c0-.28-.22-.5-.5-.5h-6c-.28 0-.5.22-.5.5zM16 9c-.55 0-1 .45-1 1v8H2V5h8c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1v15c0 .55.45 1 1 1h15c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1z"],ninja:["M20 6s-2.98 2.43-6.12 2.19C13.52 5.31 12.05 0 6 0c0 0 2.41 2.99 2.16 6.12C5.27 6.49 0 7.97 0 14c0 0 2.98-2.43 6.11-2.19C6.47 14.69 7.94 20 14 20c0 0-2.42-2.99-2.16-6.13C14.73 13.51 20 12.02 20 6zm-10 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"],"not-equal-to":["M9.487 7l.532-3.196a1 1 0 011.962.392L11.513 7H16a1 1 0 010 2h-4.82l-.333 2H16a1 1 0 010 2h-5.487l-.532 3.196a1 1 0 01-1.962-.392L8.487 13H4a1 1 0 010-2h4.82l.333-2H4a1 1 0 110-2h5.487z"],notifications:["M10 20c1.1 0 2-.9 2-2H8c0 1.1.9 2 2 2zm7-5c-.55 0-1-.45-1-1V8c0-2.61-1.67-4.81-4-5.63V2c0-1.1-.9-2-2-2S8 .9 8 2v.37C5.67 3.19 4 5.39 4 8v6c0 .55-.45 1-1 1s-1 .45-1 1 .45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],"notifications-snooze":["M10 18c0 1.1-.9 2-2 2s-2-.9-2-2zM8 0c.476 0 .914.168 1.258.448C8.508.878 8.09 1.562 8 2.5c-.133 1.4.4 2.367 1.6 2.9C8.533 6.6 8 7.467 8 8v1.2a2.8 2.8 0 002.8 2.8H14v2c0 .51.388.935.884.993L15 15c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1 1-.45 1-1V8c0-2.61 1.67-4.81 4-5.63V2c0-1.1.9-2 2-2z","M16 9.25v-.395a.75.75 0 00-.75-.75h-2.813L15.834 3.9A.75.75 0 0016 3.43v-.68a.75.75 0 00-.75-.75h-4.5a.75.75 0 00-.75.75v.184c0 .414.336.75.75.75h2.813L10.22 7.831a1 1 0 00-.221.627v.792c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75z"],"notifications-updated":["M10 20c1.1 0 2-.9 2-2H8c0 1.1.9 2 2 2zm2-17.834A2.994 2.994 0 008 4.99c0 .808.319 1.557.876 2.114l2.97 2.99a2.99 2.99 0 004.154.072V14c0 .55.45 1 1 1s1 .45 1 1-.45 1-1 1H3c-.55 0-1-.45-1-1s.45-1 1-1 1-.45 1-1V8c0-2.61 1.67-4.81 4-5.63V2c0-1.1.9-2 2-2s2 .9 2 2v.166zm1.26 6.514l-2.97-2.99a.973.973 0 01-.29-.7c0-.55.44-1 .99-1 .27 0 .52.11.7.29l2.28 2.28 4.27-4.27a.99.99 0 01.7-.29c.55 0 1 .45 1 1 0 .28-.11.53-.3.7l-4.98 4.98a.99.99 0 01-1.4 0z"],"numbered-list":["M1.74 9.01h1.27V1h-.95c-.04.24-.12.45-.26.62-.13.17-.29.3-.47.41-.19.11-.4.18-.63.23-.23.04-.46.07-.71.07v1.03h1.75v5.65zm.43 7.93c.18-.14.37-.28.58-.43.21-.14.42-.29.63-.45.21-.16.41-.33.61-.5.2-.18.37-.38.52-.59.15-.21.28-.45.37-.7.09-.25.14-.54.14-.85 0-.25-.04-.52-.12-.8-.08-.28-.21-.54-.39-.78-.19-.24-.43-.44-.73-.59-.3-.17-.68-.25-1.12-.25-.41 0-.77.08-1.08.23-.32.16-.58.37-.8.64-.22.27-.38.59-.49.96-.11.37-.16.77-.16 1.21h1.19c.01-.28.03-.53.08-.77s.12-.45.21-.62c.09-.18.22-.31.38-.42.16-.1.35-.15.59-.15.26 0 .47.05.63.14.16.09.29.21.38.35.09.14.15.29.18.45.03.16.05.31.05.45-.01.31-.08.58-.22.81-.14.24-.32.45-.53.66-.22.2-.45.39-.71.57-.26.18-.51.36-.74.54-.5.36-.89.78-1.17 1.27-.3.47-.45 1.04-.46 1.69H5v-1.14H1.43c.05-.17.14-.33.27-.49.13-.15.29-.3.47-.44zM18 4.02H8c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-1c0-.56-.45-1-1-1zm0 9H8c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-1c0-.56-.45-1-1-1z"],numerical:["M2.39 5.75c-.17.21-.38.39-.63.52s-.52.23-.83.29c-.3.05-.61.08-.93.08v1.24h2.49V15h1.49V4.98H2.73c-.05.31-.17.57-.34.77zm17.2 4.71c-.27-.44-.65-.71-1.14-.82v-.02c.42-.16.72-.43.92-.79.2-.36.29-.79.29-1.27 0-.42-.08-.8-.23-1.12-.15-.33-.36-.59-.62-.8-.26-.21-.55-.37-.87-.48-.32-.11-.65-.16-.98-.16-.43 0-.82.08-1.16.25-.34.16-.63.39-.87.69-.24.29-.43.64-.57 1.04-.14.4-.22.83-.23 1.3h1.39c-.01-.25.02-.49.07-.72.06-.23.14-.44.26-.63s.27-.34.45-.45c.18-.11.39-.17.63-.17.39 0 .71.12.96.37s.37.58.37.99c0 .29-.05.54-.16.74-.11.2-.25.36-.43.47-.18.11-.38.19-.61.24-.23.05-.46.06-.68.05v1.17c.28-.01.55 0 .81.03s.5.1.71.21c.21.11.38.28.51.5.13.22.2.52.2.89 0 .55-.16.97-.47 1.27-.31.3-.7.45-1.17.45-.55 0-.95-.19-1.23-.58-.27-.39-.4-.88-.38-1.46h-1.39c.01.5.08.96.21 1.38.13.41.32.77.57 1.06.25.29.56.52.93.68.37.16.8.24 1.3.24.41 0 .79-.07 1.16-.21.37-.14.69-.33.96-.58.28-.25.5-.56.66-.92a3 3 0 00.24-1.23c0-.64-.14-1.17-.41-1.61zM8.58 12.41c.21-.18.45-.36.7-.53.25-.18.5-.36.75-.56.25-.2.49-.41.73-.63.23-.22.44-.47.63-.74.18-.27.33-.56.44-.88.11-.32.16-.67.16-1.07 0-.32-.05-.65-.14-1-.09-.35-.25-.68-.47-.97-.22-.3-.51-.55-.87-.74-.36-.2-.81-.29-1.35-.29-.49 0-.93.1-1.3.29-.37.18-.69.44-.95.78-.26.33-.45.73-.58 1.2-.13.46-.2.96-.2 1.5h1.43c.01-.35.04-.67.09-.97.05-.3.14-.56.25-.78.11-.22.26-.39.45-.52s.43-.19.71-.19c.31 0 .56.06.75.18.19.12.34.26.45.43.11.17.18.36.22.56.04.2.06.39.06.57-.01.38-.1.72-.26 1.02-.15.3-.37.57-.63.83-.26.25-.54.49-.85.71-.31.22-.61.45-.89.68-.6.45-1.06.98-1.41 1.58-.35.61-.52 1.32-.53 2.13h6.01v-1.43H7.69c.06-.21.17-.42.33-.61s.34-.38.56-.55z"],office:["M19 6h-5V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h4v-6h4v6h10c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zM6 12H2V8h4v4zm0-6H2V2h4v4zm6 6H8V8h4v4zm0-6H8V2h4v4zm6 11h-4v-3h4v3zm0-5h-4V8h4v4z"],offline:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM7 18l2-7H5l8-9-2 7h4l-8 9z"],"oil-field":["M19 17.99h-1.36l-4.35-9.57 2.91-.86 1.66 4.1c.11.27.43.4.72.31.12-.04.22-.11.28-.2.06-.11 1.47-2.08 1.05-5.6C19.79 5.12 19.3 0 16.01 0 14.89.01 13.99.83 14 1.84c0 .19.04.38.1.56l1.34 3.31L.72 10.03v.02c-.41.12-.72.49-.72.94 0 .55.45 1 1 1 .1 0 .19-.03.28-.06v.02l2-.59 1.47 6.63H3c-.55 0-1 .45-1 1s.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1zM5.2 10.8l3.95-1.16-2.83 6.22L5.2 10.8zm2.35 7.19l3.95-8.68 3.95 8.68h-7.9z"],"one-column":["M14.94 0h-4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-8 6c-.28 0-.53.11-.71.29l-3 3c-.18.18-.29.43-.29.71s.11.53.29.71l3 3A1.003 1.003 0 007.94 13V7c0-.55-.45-1-1-1z"],outdated:["M10 0c5.52 0 10 4.48 10 10s-4.48 10-10 10S0 15.52 0 10c0-.55.45-1 1-1s1 .45 1 1c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8C7.47 2 5.22 3.17 3.76 5H5c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1s1 .45 1 1v2.05C3.82 1.6 6.71 0 10 0zm1 16H9v-2h2v2zm0-3H9V4h2v9z"],"page-layout":["M19 1H1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM7 17H2V8h5v9zm11 0H8V8h10v9zm0-10H2V3h16v4z"],"panel-stats":["M1 1h18a1 1 0 011 1v15a1 1 0 01-1 1H1a1 1 0 01-1-1V2a1 1 0 011-1zm1 2v13h16V3H2zm9 0h1v13h-1V3zm2 7h3.952v1H13v-1zm0 2h3.952v1H13v-1zm0 2h3.952v1H13v-1zm0-6h3.952v1H13V8zm0-2h3.952v1H13V6zm0-2h3.952v1H13V4z"],"panel-table":["M19 1H1c-.6 0-1 .4-1 1v15c0 .6.4 1 1 1h18c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zm-9 11H7V9h3v3zm0-4H7V5h3v3zm-8 8V3h4v13H2zm5 0v-3h3v3H7zm11 0h-7v-3h7v3zm0-4h-7V9h7v3zm0-4h-7V5h7v3z"],paperclip:["M18.35 2.67A5.664 5.664 0 0014.33 1c-1.44 0-2.89.56-3.99 1.67l-9.16 9.27C.4 12.73 0 13.78 0 14.83s.39 2.1 1.18 2.9c.78.79 1.82 1.18 2.85 1.18 1.04 0 2.07-.39 2.87-1.2l9.14-9.27c.96-.96.96-2.5.02-3.45-.94-.95-2.49-.96-3.44 0l-7.59 7.69c-.31.32-.3.83.01 1.14.31.31.81.31 1.13.02l7.59-7.69c.31-.31.84-.31 1.13-.02.31.31.31.85 0 1.16l-9.14 9.27c-.93.95-2.54.93-3.45.02-.94-.95-.92-2.55.02-3.49l9.16-9.25c1.55-1.56 4.18-1.59 5.72-.03 1.56 1.57 1.55 4.26 0 5.82l-8.89 9.02c-.3.31-.3.81.01 1.11.3.3.79.31 1.1.01v.01l8.91-9.02A5.645 5.645 0 0020 6.73c0-1.48-.55-2.94-1.65-4.06z"],paragraph:["M16.5 1H7C4.2 1 2 3.2 2 6s2.2 5 5 5v6.5c0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5V4h2v13.5c0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5V4h1.5c.8 0 1.5-.7 1.5-1.5S17.3 1 16.5 1z"],path:["M18 0H2C.9 0 0 .9 0 2s.9 2 2 2h7v4H4c-1.1 0-2 .9-2 2s.9 2 2 2h5v4H6c-1.1 0-2 .9-2 2s.9 2 2 2h8c1.1 0 2-.9 2-2s-.9-2-2-2h-3v-4h5c1.1 0 2-.9 2-2s-.9-2-2-2h-5V4h7c1.1 0 2-.9 2-2s-.9-2-2-2z"],"path-search":["M4 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 11.69l-5-2.5v-3.63c-.32.11-.66.22-1 .29v3.32l-6 2.57v-7.25c-.36-.27-.69-.57-1-.9v8.1l-5-2.5V10c.55 0 1-.45 1-1s-.45-1-1-1V1.31l3.43 1.71c.11-.31.24-.62.39-.92L.72.05A.545.545 0 00.5 0C.22 0 0 .22 0 .5v16c0 .2.12.36.28.44l6 3c.07.04.14.06.22.06.07 0 .14-.01.2-.04l6.79-2.91 5.79 2.9c.07.03.14.05.22.05.28 0 .5-.22.5-.5v-4.21c-.31.13-.64.21-1 .21v3.19zM10 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3-1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6.72-.94l-1.43-.72c.2.43.36.89.48 1.36l.23.11V5.5c-.55 0-1 .45-1 1s.45 1 1 1v1.96l1 1V3.5c0-.2-.12-.36-.28-.44zm-3.69 5.56c.14-.21.27-.42.38-.65.02-.04.04-.07.05-.11.11-.22.2-.45.28-.69v-.01c.07-.24.13-.48.17-.73l.03-.17c.04-.25.06-.5.06-.76C17 2.46 14.54 0 11.5 0S6 2.46 6 5.5 8.46 11 11.5 11c.26 0 .51-.02.76-.06l.17-.03c.25-.04.49-.1.73-.17h.01c.24-.08.47-.17.69-.28.04-.02.07-.03.11-.05.23-.11.44-.24.65-.38l.18.18 3.5 3.5c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71l-3.68-3.67zm-4.53.88c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"],pause:["M7 3H4c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm9 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],people:["M16.94 17a4.92 4.92 0 00-.33-1.06c-.45-.97-1.37-1.52-3.24-2.3-.17-.07-.76-.31-.77-.32-.1-.04-.2-.08-.28-.12.05-.14.04-.29.06-.45 0-.05.01-.11.01-.16-.25-.21-.47-.48-.65-.79.22-.34.41-.71.56-1.12l.04-.11c-.01.02-.01.02-.02.08l.06-.15c.36-.26.6-.67.72-1.13.18-.37.29-.82.25-1.3-.05-.5-.21-.92-.47-1.22-.02-.53-.06-1.11-.12-1.59.38-.17.83-.26 1.24-.26.59 0 1.26.19 1.73.55.46.35.8.85.97 1.4.04.13.07.25.08.38.08.45.13 1.14.13 1.61v.07c.16.07.31.24.35.62.02.29-.09.55-.15.65-.05.26-.2.53-.46.59-.03.12-.07.25-.11.36-.01.01-.01.04-.01.04-.2.53-.51 1-.89 1.34 0 .06 0 .12.01.17.04.41-.11.71 1 1.19 1.1.5 2.77 1.01 3.13 1.79.34.79.2 1.25.2 1.25h-3.04zm-5.42-3.06c1.47.66 3.7 1.35 4.18 2.39.45 1.05.27 1.67.27 1.67H.04s-.19-.62.27-1.67c.46-1.05 2.68-1.75 4.16-2.4 1.48-.65 1.33-1.05 1.38-1.59 0-.07.01-.14.01-.21-.52-.45-.95-1.08-1.22-1.8l-.01-.01c0-.01-.01-.02-.01-.03-.07-.15-.12-.32-.16-.49-.34-.06-.54-.43-.62-.78-.08-.14-.24-.48-.2-.87.05-.51.26-.74.49-.83v-.08c0-.64.05-1.55.17-2.15a3.648 3.648 0 011.4-2.36C6.32 2.25 7.21 2 8 2s1.68.25 2.31.73a3.63 3.63 0 011.4 2.36c.11.6.17 1.52.17 2.15v.09c.22.09.42.32.47.82.03.39-.12.73-.2.87-.07.34-.27.71-.61.78-.04.16-.09.33-.15.48-.01.01-.02.05-.02.05-.27.71-.68 1.33-1.19 1.78 0 .08 0 .16.01.23.05.55-.15.95 1.33 1.6z"],percentage:["M15 10c-1.66 0-3 1.34-3 3v2c0 1.66 1.34 3 3 3s3-1.34 3-3v-2c0-1.66-1.34-3-3-3zm1 5c0 .55-.45 1-1 1s-1-.45-1-1v-2c0-.55.45-1 1-1s1 .45 1 1v2zM8 7V5c0-1.66-1.34-3-3-3S2 3.34 2 5v2c0 1.66 1.34 3 3 3s3-1.34 3-3zM4 7V5c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1s-1-.45-1-1zm11-4a1.003 1.003 0 00-1.88-.48L5.14 16.49a1.003 1.003 0 101.74.99l7.99-13.97c.08-.15.13-.32.13-.51z"],person:["M19.61 17.91c-.57-1.32-3.35-2.19-5.19-3.01-1.85-.82-1.59-1.31-1.66-1.99-.01-.09-.01-.19-.02-.29.63-.56 1.15-1.33 1.49-2.22 0 0 .02-.05.02-.06.07-.19.13-.39.19-.6.42-.09.67-.55.76-.98.1-.17.29-.6.25-1.08-.06-.62-.31-.91-.59-1.03v-.11c0-.79-.07-1.93-.22-2.68A4.55 4.55 0 0012.9.92C12.11.32 11 0 10.01 0s-2.1.32-2.89.92a4.55 4.55 0 00-1.74 2.94c-.14.75-.22 1.89-.22 2.68v.1c-.29.11-.55.4-.61 1.04-.04.48.15.91.25 1.08.1.44.35.91.79.98.05.21.12.41.19.6 0 .01.01.03.01.04l.01.02c.34.91.87 1.69 1.52 2.25 0 .09-.01.18-.02.26-.07.68.13 1.17-1.72 1.99S.96 16.59.39 17.91C-.18 19.23.05 20 .05 20h19.9s.23-.77-.34-2.09z"],phone:["M19.91 15.51c-.08-.08-4.21-2.5-4.35-2.57a.876.876 0 00-.4-.1c-.19 0-.42.13-.71.4-.28.27-1.17 1.49-1.43 1.76s-.48.4-.65.4c-.08 0-.19-.02-.32-.07s-1.45-.73-4.2-3.15-3.11-4-3.13-4.44c0-.17.13-.39.4-.65.28-.25.57-.51.89-.74.32-.24.61-.5.88-.78s.4-.52.4-.71c0-.13-.03-.27-.1-.4C7.12 4.32 4.62.19 4.53.1c-.19-.18-.92-.1-1.29.1C.25 1.82 0 4 .05 4.86c.05.89.61 5.58 5.2 9.93 5.7 5.41 9.66 5.2 9.92 5.2.87 0 3.52-.48 4.65-3.19.16-.38.31-1.07.09-1.29z"],"pie-chart":["M9 .98c-4.5.5-8 4.31-8 8.94 0 4.97 4.03 9.04 9 9.04 4.63 0 8.44-3.96 8.94-7.96H9V.98z","M10-.08V10h10C20 4 15.52-.08 10-.08z"],pin:["M11.77 1.16c-.81.81-.74 2.28.02 3.76L6.1 8.71c-2.17-1.46-4.12-2-4.94-1.18l4.95 4.95-4.95 6.36 6.36-4.95 4.95 4.95c.82-.82.27-2.77-1.19-4.94l3.8-5.69c1.47.76 2.94.84 3.76.02l-7.07-7.07z"],pivot:["M5.83 9.75L.29 15.29a1.003 1.003 0 001.42 1.42l5.54-5.54c-.57-.37-1.05-.85-1.42-1.42zM19 11c-.55 0-1 .45-1 1v1.59l-3.83-3.83c-.37.56-.85 1.04-1.41 1.41L16.59 15H15c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm-5-4c0-2.21-1.79-4-4-4S6 4.79 6 7s1.79 4 4 4 4-1.79 4-4zm-4 2c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"],"pivot-table":["M3 5H1c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm0-5H1C.45 0 0 .45 0 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm13.71 5.29C16.53 5.11 16.28 5 16 5s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L15 8.41V11c0 2.21-1.79 4-4 4H8.41l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L8.41 17H11c3.31 0 6-2.69 6-6V8.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM19 0H6c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],play:["M16 10c0-.36-.2-.67-.49-.84l.01-.01-10-6-.01.01A.991.991 0 005 3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1 .19 0 .36-.07.51-.16l.01.01 10-6-.01-.01c.29-.17.49-.48.49-.84z"],plus:["M16 9h-5V4c0-.55-.45-1-1-1s-1 .45-1 1v5H4c-.55 0-1 .45-1 1s.45 1 1 1h5v5c0 .55.45 1 1 1s1-.45 1-1v-5h5c.55 0 1-.45 1-1s-.45-1-1-1z"],"polygon-filter":["M18 7c-.27 0-.52.05-.75.15l-6.28-4.88c.01-.09.03-.18.03-.27 0-1.1-.9-2-2-2S7 .9 7 2c0 .06.01.12.02.19l-4.19 3C2.57 5.07 2.29 5 2 5 .9 5 0 5.9 0 7c0 .74.4 1.38 1 1.72v7.55c-.6.35-1 .99-1 1.73 0 1.1.9 2 2 2 .74 0 1.38-.4 1.72-1h7.55c.35.6.98 1 1.72 1 1.1 0 2-.9 2-2 0-.37-.11-.72-.29-1.02L18.03 11A2 2 0 0018 7zm-5.03 9c-.72.01-1.35.41-1.69 1H3.72c-.17-.3-.42-.55-.72-.72V8.72c.6-.34 1-.98 1-1.72 0-.06-.01-.12-.02-.19l4.19-3c.26.12.54.19.83.19.27 0 .52-.05.75-.15l6.28 4.88c-.01.09-.03.18-.03.27 0 .37.11.72.29 1.02L12.97 16z"],power:["M10 10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S9 .45 9 1v8c0 .55.45 1 1 1zm3-7.45v2.16c2.36 1.12 4 3.5 4 6.29 0 3.87-3.13 7-7 7s-7-3.13-7-7c0-2.79 1.64-5.17 4-6.29V2.55C3.51 3.79 1 7.09 1 11a9 9 0 0018 0c0-3.91-2.51-7.21-6-8.45z"],"predictive-analysis":["M20 8.01c0-1.26-.61-2.43-1.61-3.12C17.86 2.5 15.8.79 13.4.79c-.58 0-1.14.1-1.69.29A3.533 3.533 0 009.17 0C8.05 0 7 .55 6.32 1.45c-.15-.02-.3-.03-.45-.03-1.63 0-3.03 1.12-3.46 2.71C.97 4.65 0 6.05 0 7.66c0 .48.09.95.26 1.4-.17.44-.26.91-.26 1.39 0 1.38.72 2.64 1.89 3.29.67.7 1.59 1.09 2.54 1.09.61 0 1.19-.15 1.71-.45.68.82 1.68 1.3 2.73 1.3.66 0 1.28-.18 1.83-.52.61.49 1.34.81 2.11.91 1.3 1.43 2.3 3.28 2.31 3.3 0 0 .35.61.33.61.96-.01 1.77-.2 1.64-1.3.01.02-.92-2.89-.92-2.89.52-.26.94-.69 1.21-1.23 1.12-.66 1.84-1.91 1.84-3.26 0-.3-.03-.6-.1-.89.57-.64.88-1.51.88-2.4zm-1.54 1.28l-.18-.2-.77-.84c-.33-.37-.67-1.17-.73-1.73 0 0-.13-1.25-.13-1.26-.06-.74-1.17-.73-1.13.14 0 .02.13 1.26.13 1.26.04.36.15.77.3 1.17-.08-.01-.15-.02-.22-.02 0 0-2.57-.12-2.57-.13-.73-.03-.89 1.22-.05 1.25l2.57.13c.53.03 1.29.37 1.61.72l.61.67.02.06c.1.27.14.55.14.83 0 .93-.51 1.77-1.34 2.18l-.2.1-.09.23c-.19.48-.6.82-1.1.93l-.67.14.87 2.75c-.48-.76-1.19-1.79-2.02-2.67l-.15-.16-.21-.02c-.51-.04-.99-.21-1.42-.48l1.7-1.48c.44-.39 1.04-.55 1.24-.49 0 0 .78.22.78.23.78.2 1.03-.92.29-1.21l-.78-.23c-.69-.2-1.67.22-2.24.72l-1.91 1.66-.39.32c-.44.36-.93.55-1.5.55-.8 0-1.54-.41-1.97-1.07v-1.88c0-.5.21-.98.34-1.07 0 0 .65-.43.64-.43.87-.69.21-1.57-.64-1.14 0-.01-.65.43-.65.43-.31.2-.54.56-.7.97-.13-.13-.28-.25-.43-.35 0 0-1.91-1.26-1.91-1.28-.81-.56-1.5.63-.61 1.11 0-.02 1.89 1.28 1.89 1.28.46.31.77.97.77 1.36v.84c-.43.24-.78.36-1.24.36-.67 0-1.31-.29-1.77-.79l-.07-.08-.09-.05a2.425 2.425 0 01-1.31-2.16c0-.38.09-.74.25-1.08l.15-.31-.14-.33c-.17-.34-.25-.7-.25-1.08 0-1.13.76-2.1 1.85-2.37l.39-.09.07-.43a2.41 2.41 0 012.39-2.05c.19 0 .39.02.58.07l.4.1.22-.38A2.41 2.41 0 019.17 1.3c.55 0 1.08.19 1.5.53l-.44.45-.01-.01-.31.31c-.41.35-.92.53-1.11.5 0 0-.84-.13-.84-.14-.83-.15-1.09 1.08-.18 1.29.01 0 .84.14.84.14.03 0 .06 0 .09.01-.14.46-.18.96-.12 1.4 0 0 .21 1.24.19 1.23.13.65 1.32.44 1.16-.22 0-.01-.19-1.23-.19-1.23-.07-.48.15-1.19.45-1.5l.48-.5c.07-.06.13-.12.19-.18l.93-.95c.5-.23 1.04-.34 1.59-.34 1.93 0 3.57 1.4 3.89 3.34l.05.31.26.15a2.445 2.445 0 01.87 3.4z"],prescription:["M13.95 10.23c.16-.18.22-.22.46-.22h1.48c.25 0 .47.08.59.33.1.2.09.41-.05.66l-2.71 3.58L16.88 19c.13.21.16.46.03.69-.12.21-.34.31-.57.31H14.7c-.31 0-.56-.17-.7-.44l-1.9-2.67-1.93 2.68c-.15.27-.42.43-.73.43H7.98c-.25 0-.47-.08-.59-.33-.1-.2-.09-.41.05-.66l3.09-4.35L6.26 9H5v4.32c0 .41-.3.69-.7.69H2.7c-.41 0-.7-.28-.7-.69V.69c0-.41.3-.69.7-.69h4.42c.71 0 1.36.1 1.94.3.59.2 1.11.49 1.54.87.44.38.78.84 1.02 1.39.24.54.36 1.14.36 1.78 0 1.01-.28 1.88-.84 2.6-.43.54-1.35 1.29-2 1.59l3.09 3.94 1.72-2.24zM6.71 6.04c.71 0 1.45-.16 1.81-.46.33-.28.5-.69.5-1.25s-.17-.97-.5-1.25c-.35-.3-1.1-.46-1.81-.46h-1.7v3.42h1.7z"],presentation:["M19 1h-8c0-.55-.45-1-1-1S9 .45 9 1H1c-.55 0-1 .45-1 1s.45 1 1 1h1v11c0 .55.45 1 1 1h4.59L4.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L9 16.41V19c0 .55.45 1 1 1s1-.45 1-1v-2.59l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L12.41 15H17c.55 0 1-.45 1-1V3h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3 12H4V3h12v10z"],print:["M14 16H6v-4H4v5c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-5h-2v4zm2-13c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v1h12V3zm3 2H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h2v-3h14v3h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-1 4h-2V7h2v2z"],projects:["M18 4c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2h16V4zm-2-3c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v1h12V1zm3 6H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-5 7c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-2h1v2h6v-2h1v2z"],properties:["M2 15c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5-4h12c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zM2 1C.9 1 0 1.9 0 3s.9 2 2 2 2-.9 2-2-.9-2-2-2zm17 8H7c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm0 7H7c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1z"],property:["M3 5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm5-1h11c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zM3 15c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm16 1H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm-1-8H9c-1.1 0-2 .9-2 2s.9 2 2 2h9c1.1 0 2-.9 2-2s-.9-2-2-2zM3 7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"],"publish-function":["M7.01 10.11c.35-.64.72-1.68 1.09-3.11l.8-3.03h.96l.24-.77h-.99c.28-1.11.66-1.92 1.12-2.43.28-.32.56-.48.83-.48.05 0 .1.02.13.05.03.03.05.07.05.12 0 .04-.04.13-.11.25-.08.12-.11.24-.11.35 0 .15.06.28.18.39.12.11.27.16.45.16.2 0 .36-.07.49-.2s.2-.31.2-.54c0-.26-.1-.47-.3-.63-.2-.16-.52-.24-.96-.24-.68 0-1.3.19-1.86.58-.55.38-1.08 1.02-1.58 1.91-.17.3-.34.5-.49.59-.15.08-.4.13-.74.12l-.23.77h.95L5.74 9.21c-.23.86-.39 1.39-.47 1.59-.12.29-.3.54-.54.75-.1.08-.21.12-.35.12-.04 0-.07-.01-.1-.03l-.03-.04c0-.02.03-.07.1-.13.07-.07.1-.17.1-.31 0-.15-.05-.28-.16-.38-.11-.1-.27-.15-.47-.15-.25 0-.44.07-.59.2-.15.12-.23.28-.23.46 0 .19.09.36.27.5.19.14.47.21.86.21.61 0 1.16-.15 1.63-.46.48-.31.89-.79 1.25-1.43zm3.7 1.18c-.18-.18-.43-.29-.71-.29s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L9 14.41V19c0 .55.45 1 1 1s1-.45 1-1v-4.59l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zm4.15-6.78c.17-.13.36-.2.55-.2.07 0 .2.03.39.08s.36.08.5.08c.2 0 .37-.07.5-.2.13-.14.2-.31.2-.52 0-.22-.07-.4-.2-.53s-.33-.2-.58-.2c-.22 0-.43.05-.63.15-.2.1-.45.32-.75.67-.23.25-.56.7-1.01 1.33a6.52 6.52 0 00-.91-2.15l-2.38.39-.05.25c.18-.03.33-.05.45-.05.24 0 .43.1.59.3.25.31.59 1.24 1.02 2.79-.34.44-.58.73-.7.87-.21.22-.38.36-.52.43-.1.05-.22.08-.35.08-.1 0-.26-.05-.49-.16a1.01 1.01 0 00-.42-.11c-.23 0-.42.07-.57.22-.17.14-.24.32-.24.55 0 .21.07.38.21.51.14.13.33.2.56.2.23 0 .44-.05.64-.14.2-.09.45-.29.75-.59s.72-.78 1.25-1.43c.2.62.38 1.07.53 1.35.15.28.32.49.52.61.19.12.44.19.73.19.28 0 .57-.1.86-.3.38-.25.77-.69 1.17-1.31l-.25-.14c-.27.37-.48.6-.61.69-.09.06-.19.09-.31.09-.14 0-.28-.09-.42-.26-.23-.29-.54-1.09-.93-2.4.37-.58.66-.96.9-1.14z"],pulse:["M19 10h-2.38L14.9 6.55h-.01c-.17-.32-.5-.55-.89-.55-.43 0-.79.28-.93.66h-.01l-2.75 7.57L7.98 1.82h-.02A.978.978 0 007 1c-.44 0-.8.29-.94.69h-.01L3.28 10H1c-.55 0-1 .45-1 1s.45 1 1 1h3c.44 0 .8-.29.94-.69h.01l1.78-5.34 2.29 12.21h.02c.08.46.47.82.96.82.43 0 .79-.28.93-.66h.01l3.21-8.82.96 1.92h.01c.16.33.49.56.88.56h3c.55 0 1-.45 1-1s-.45-1-1-1z"],random:["M14.47 5h2.12L15.3 6.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 3H14c-.31 0-.57.15-.76.37l-.01-.01-2.93 3.52 1.3 1.56L14.47 5zm2.24 7.29a1.003 1.003 0 00-1.42 1.42l1.3 1.29h-2.12L4.77 3.36l-.01.01A.998.998 0 004 3H1c-.55 0-1 .45-1 1s.45 1 1 1h2.53l9.7 11.64.01-.01c.19.22.45.37.76.37h2.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3zM3.53 15H1c-.55 0-1 .45-1 1s.45 1 1 1h3c.31 0 .57-.15.76-.37l.01.01 2.93-3.52-1.3-1.56L3.53 15z"],record:["M10 3a7 7 0 100 14 7 7 0 100-14z"],redo:["M19.71 5.29l-4-4a1.003 1.003 0 00-1.42 1.42L16.59 5H6c-3.31 0-6 2.69-6 6s2.69 6 6 6h5v-2H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h10.59L14.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM15 14c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],refresh:["M19 1c-.55 0-1 .45-1 1v2.06C16.18 1.61 13.29 0 10 0 4.48 0 0 4.48 0 10c0 .55.45 1 1 1s1-.45 1-1c0-4.42 3.58-8 8-8 2.52 0 4.76 1.18 6.22 3H15c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 8c-.55 0-1 .45-1 1 0 4.42-3.58 8-8 8-2.52 0-4.76-1.18-6.22-3H5c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1s1-.45 1-1v-2.06C3.82 18.39 6.71 20 10 20c5.52 0 10-4.48 10-10 0-.55-.45-1-1-1z"],"regression-chart":["M19 16H3.1L19.31 3.39l-.61-.79L2 15.59V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm-9-9c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-5 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm10-2c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2zm-5 4c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2z"],remove:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm5-9H5c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z"],"remove-column":["M19 0H5c-.55 0-1 .45-1 1v4h2V2h5v16H6v-3H4v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18h-5V2h5v16zM6.29 13.71a1.003 1.003 0 001.42-1.42L5.41 10 7.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L4 8.59l-2.29-2.3A1.003 1.003 0 00.29 7.71L2.59 10 .3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L4 11.41l2.29 2.3z"],"remove-column-left":["M4 11h6c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-7 18H2V2h10v16zm6 0h-5V2h5v16z"],"remove-column-right":["M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 18H2V2h5v16zm11 0H8V2h10v16zm-8-7h6c.55 0 1-.45 1-1s-.45-1-1-1h-6c-.55 0-1 .45-1 1s.45 1 1 1z"],"remove-row-bottom":["M7 14h6c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zM19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V8h16v10zm0-11H2V2h16v5z"],"remove-row-top":["M7 8h6c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zm12-8H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2v-5h16v5zm0-6H2V2h16v10z"],repeat:["M14 6c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1v2.05C16.18 1.6 13.29 0 10 0 4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10c0-.55-.45-1-1-1s-1 .45-1 1c0 4.42-3.58 8-8 8s-8-3.58-8-8 3.58-8 8-8c2.53 0 4.77 1.17 6.24 3H15c-.55 0-1 .45-1 1z"],reset:["M6 6c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1s1 .45 1 1v2.05C3.82 1.6 6.71 0 10 0c5.52 0 10 4.48 10 10s-4.48 10-10 10S0 15.52 0 10c0-.55.45-1 1-1s1 .45 1 1c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8C7.47 2 5.23 3.17 3.76 5H5c.55 0 1 .45 1 1z"],resolve:["M8.7 4.7C7.9 4.2 7 4 6 4c-3.3 0-6 2.7-6 6s2.7 6 6 6c1 0 1.9-.2 2.7-.7C7.3 14 6.5 12.1 6.5 10s.9-4 2.2-5.3zM14 4c-1 0-1.9.2-2.7.7 1.4 1.4 2.2 3.2 2.2 5.3s-.9 4-2.2 5.3c.8.5 1.7.7 2.7.7 3.3 0 6-2.7 6-6s-2.7-6-6-6zm-4 1.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z"],rig:["M7 4.2C7 5.75 8.34 7 10 7s3-1.46 3-2.8C13 1.45 10.94 0 10 0H6c0 2.74 3.76 1.96 1 4.2zm11.71 14.09L13 12.59V9.01c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v3.58l-5.71 5.7a1.003 1.003 0 001.42 1.42L7 15.42V19c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3.58l4.29 4.29a1.003 1.003 0 001.42-1.42zM10.21 8c.01 0 .01.01 0 0 .01.01.01 0 0 0z"],"right-join":["M8.7 4.7C7.4 6 6.5 7.9 6.5 10s.8 4 2.2 5.3c-.8.5-1.7.7-2.7.7-3.3 0-6-2.7-6-6s2.7-6 6-6c1 0 1.9.2 2.7.7zm-3.34 9.25c-.55-1.2-.86-2.54-.86-3.95s.31-2.75.86-3.95a4.001 4.001 0 000 7.9zM14 4c3.3 0 6 2.7 6 6s-2.7 6-6 6c-1 0-1.9-.2-2.7-.7 1.3-1.3 2.2-3.2 2.2-5.3s-.8-3.9-2.2-5.3C12.1 4.2 13 4 14 4zm-4 1.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z"],ring:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"],"rotate-document":["M8.71 6.29A.997.997 0 008 6H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-8c0-.28-.11-.53-.29-.71l-4-4zM11 18H4V8h3v3c0 .55.45 1 1 1h3v6zm3-16h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C9.11 2.47 9 2.72 9 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H14c1.1 0 2 .9 2 2v3c0 .55.45 1 1 1s1-.45 1-1V6c0-2.21-1.79-4-4-4z"],"rotate-page":["M14 2h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C9.11 2.47 9 2.72 9 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H14c1.1 0 2 .9 2 2v3c0 .55.45 1 1 1s1-.45 1-1V6c0-2.21-1.79-4-4-4zm-2 5H3c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 11H4V9h7v9z"],route:["M14.028 6.016c.146.275.31.57.485.872.304.524.628 1.047.952 1.545l.118.178-.208-.006-.577-.005c-2.093.004-2.841.303-2.841.895 0 .069.271.248 1.245.567l1.008.313c2.671.831 3.99 1.827 3.99 4.167 0 2.76-1.928 4.059-4.832 4.376-.782.085-1.52.098-2.452.066l-1.15-.046H6.221l.535-.811a67.46 67.46 0 001.122-1.787h2.04l.686.03c1.028.046 1.77.043 2.523-.039 1.832-.2 2.673-.767 2.673-1.789 0-.69-.483-1.09-1.992-1.585l-.83-.257c-1.192-.364-2.037-.7-2.59-1.165.399-1 .612-1.844.612-2.538a6.018 6.018 0 00-.382-2.098c.745-.573 1.884-.822 3.41-.883zM5 4.2c2.648 0 4.791 2.151 4.8 4.797C9.8 11.652 5 18.6 5 18.6l-.5-.744C3.273 15.993.2 11.121.2 8.997A4.802 4.802 0 015 4.2zm0 2.4a2.4 2.4 0 10.002 4.802A2.4 2.4 0 005 6.6zM17 .333a2.671 2.671 0 012.667 2.665C19.667 4.473 17 8.333 17 8.333l-.391-.587c-.741-1.137-2.276-3.629-2.276-4.748A2.668 2.668 0 0117 .333z"],satellite:["M9 18c.6 0 1 .4 1 1s-.4 1-1 1c-5 0-9-4-9-9 0-.6.4-1 1-1s1 .4 1 1c0 3.9 3.1 7 7 7zm0-4c.6 0 1 .4 1 1s-.4 1-1 1c-2.8 0-5-2.2-5-5 0-.6.4-1 1-1s1 .4 1 1c0 1.7 1.3 3 3 3zm5.7-3.7c.4-.4 1-.4 1.4 0l3.6 3.6c.4.4.4 1 0 1.4l-1.4 1.4c-.4.4-1 .4-1.4 0l-3.6-3.6c-.4-.4-.4-1 0-1.4l1.4-1.4zM4.7.3c.4-.4 1-.4 1.4 0l3.6 3.6c.4.4.4 1 0 1.4L8.3 6.7c-.4.4-1 .4-1.4 0L3.3 3.1c-.4-.4-.4-1 0-1.4L4.7.3zm11.1 1c.4-.4 1-.4 1.4 0l1.6 1.6c.4.4.4 1 0 1.4l-6.5 6.5c-.4.4-1 .4-1.4 0L9.3 9.2c-.4-.4-.4-1 0-1.4l6.5-6.5zM9 12c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1z"],saved:["M12 0H4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V6l-6-6zm4 18H5V2h6v5h5v11zm-8.29-6.71a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29.32 0 .59-.16.77-.38l.01.01 4-5-.01-.01c.14-.18.23-.38.23-.62 0-.55-.45-1-1-1-.32 0-.59.16-.77.38l-.01-.01-3.3 4.13-2.21-2.21z"],"scatter-plot":["M9 9c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm5 2c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4-5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1 10H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM5 15c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"],search:["M19.56 17.44l-4.94-4.94A8.004 8.004 0 0016 8c0-4.42-3.58-8-8-8S0 3.58 0 8s3.58 8 8 8c1.67 0 3.21-.51 4.5-1.38l4.94 4.94a1.498 1.498 0 102.12-2.12zM8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"],"search-around":["M9.9 6.9a3 3 0 100 6 3 3 0 100-6zM3 14c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM3 0C1.3 0 0 1.3 0 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM17 14c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM17 0c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM10 10L5 5","M5.379 4.671l5.02 5.02-.707.708-5.02-5.02zM10 10l5-5","M14.621 4.671l.707.708-5.02 5.02-.707-.707z","M10 10l5 5M10.379 9.671l5.02 5.02-.707.708-5.02-5.02z","M10 10l-5 5M9.621 9.671l.707.708-5.02 5.02-.707-.707z"],"search-template":["M13 8H5c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm0 3H5c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm0-6H5c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm6.56 12.44l-3.23-3.23A8.939 8.939 0 0018 9a9 9 0 10-9 9c1.94 0 3.74-.62 5.21-1.67l3.23 3.23a1.498 1.498 0 102.12-2.12zM9 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"],"search-text":["M19.56 17.44l-3.23-3.23A8.939 8.939 0 0018 9a9 9 0 10-9 9c1.94 0 3.74-.62 5.21-1.67l3.23 3.23a1.498 1.498 0 102.12-2.12zM9 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm3.5-11h-7c-.28 0-.5.22-.5.5v2c0 .28.22.5.5.5s.5-.22.5-.5V7h2v6h-.5c-.28 0-.5.22-.5.5s.22.5.5.5h3c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H10V7h2v.5c0 .28.22.5.5.5s.5-.22.5-.5v-2c0-.28-.22-.5-.5-.5z"],"segmented-control":["M19 5H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-1 8h-8V7h8v6z"],select:["M19.71 18.29l-4.25-4.25L20 12.91 9.93 9.33c.04-.1.07-.21.07-.33V3c0-.55-.45-1-1-1H4V1c0-.55-.45-1-1-1S2 .45 2 1v1H1c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 .55.45 1 1 1h6c.12 0 .23-.03.34-.07L12.91 20l1.14-4.54 4.25 4.25c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71zM8 8H4V4h4v4z"],selection:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z","M10 6a4 4 0 100 8 4 4 0 100-8z"],"send-message":["M1.754.135L19.393 9.06c.57.288.775.943.458 1.462-.107.176-.266.32-.458.418l-17.64 8.924c-.57.289-1.288.102-1.604-.417A1.001 1.001 0 010 18.925v-6.851L11.021 10 0 7.938V1.075C0 .481.529 0 1.18 0c.201 0 .399.047.574.135z"],"send-to":["M19 0h-5c-.6 0-1 .4-1 1s.4 1 1 1h2.6l-4.3 4.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3L18 3.4V6c0 .5.5 1 1 1s1-.5 1-1V1c0-.6-.5-1-1-1zm0 9c-1 0-1.9-.5-2.5-1.3l-1.4 1.4c-.5.6-1.3.9-2.1.9-1.7 0-3-1.3-3-3 0-.8.3-1.6.9-2.1l1.4-1.4C11.5 2.9 11 2 11 1c0-.3.1-.6.2-.9-.4-.1-.8-.1-1.2-.1C4.5 0 0 4.5 0 10s4.5 10 10 10 10-4.5 10-10c0-.4 0-.8-.1-1.2-.3.1-.6.2-.9.2z"],"send-to-graph":["M8 11H3c-.55 0-1 .45-1 1s.45 1 1 1h2.59L.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 14.41V17c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zm10 2c-.53 0-1.01.21-1.37.55L11.9 10.6c.06-.19.1-.39.1-.6 0-.21-.04-.41-.1-.6l4.72-2.95c.37.34.85.55 1.38.55 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .21.04.41.1.6l-4.73 2.96c-.24-.23-.54-.4-.87-.48V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S8 .9 8 2c0 .93.64 1.71 1.5 1.93v4.14c-.33.09-.63.26-.87.48L7.6 7.91 5.42 6.55 3.9 5.6c.06-.19.1-.39.1-.6 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.53 0 1.01-.21 1.37-.55L9 9.96V10h.06L12 11.84l.4.25 1.51.94 2.19 1.37c-.06.19-.1.39-.1.6 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2zm-7-2.96l-.06-.04H11v.04z"],"send-to-map":["M8 11H3c-.55 0-1 .45-1 1s.45 1 1 1h2.59L.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 14.41V17c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zm11.54-6.82l.01-.02-6-4-.01.02C13.39.08 13.21 0 13 0s-.39.08-.54.18l-.01-.02L7 3.8 1.55.17l-.01.01A.969.969 0 001 0C.45 0 0 .45 0 1v9c0-.55.45-1 1-1h1V2.87l4 2.67V9h2V5.54l4-2.67v11.6l-1 .67v2.4l2-1.33 5.45 3.63.01-.02c.15.1.33.18.54.18.55 0 1-.45 1-1V5c0-.35-.19-.64-.46-.82zM18 17.13l-4-2.67V2.87l4 2.67v11.59z"],"series-add":["M13.29 9.29c.3.62.8 1.12 1.42 1.42l-3 3c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L7 10.41l-5 5V17h17c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8s.53.11.71.29l3.29 3.3 2.29-2.3zM12 5c0-.5.4-1 1-1h2V2c0-.6.4-1 1-1 .5 0 1 .4 1 1v2h2c.5 0 1 .4 1 1s-.5 1-1 1h-2v2c0 .6-.5 1-1 1-.6 0-1-.4-1-1V6h-2c-.6 0-1-.4-1-1z"],"series-configuration":["M11.91 10.67c.52.45 1.13.8 1.8 1.03l-2.01 2.01c-.18.18-.43.29-.71.29-.28 0-.53-.11-.71-.3L7 10.41l-5 5V17h16.99c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8c.28 0 .53.11.71.29l3.29 3.3.91-.92zM18.5 4.6h1.04c.25 0 .45.2.46.44v.9c0 .25-.2.45-.45.45h-1.04c-.07.22-.16.42-.27.62l.73.73c.17.17.17.44 0 .61l-.61.61c-.17.17-.44.17-.61 0l-.73-.73c-.2.11-.4.2-.62.26v1.05c0 .25-.2.45-.45.45h-.9c-.25 0-.45-.2-.45-.45V8.51c-.21-.06-.4-.15-.58-.25l-.76.77c-.17.17-.46.17-.64 0l-.64-.64a.465.465 0 010-.64l.76-.77c-.1-.19-.19-.38-.25-.59h-1.04c-.25 0-.45-.2-.45-.45v-.9c0-.25.2-.45.45-.45h1.04c.07-.22.16-.42.27-.61l-.73-.73a.429.429 0 010-.61l.61-.61c.17-.17.44-.17.61 0l.73.73c.2-.11.4-.2.62-.26V1.45a.44.44 0 01.44-.45h.9c.25 0 .45.2.45.45V2.5c.21.06.4.15.58.25l.76-.77c.17-.17.46-.17.64 0l.64.64c.17.17.17.46 0 .64l-.76.77c.1.17.19.36.25.57zm-4.69.9c0 .93.75 1.69 1.69 1.69.93 0 1.69-.75 1.69-1.69s-.75-1.69-1.69-1.69-1.69.76-1.69 1.69z"],"series-derived":["M18.82 6.58c-.03.05-.07.09-.11.13 0 0 0-.01-.01-.01l-2 2c-.2.2-.4.3-.7.3-.6 0-1-.4-1-1 0-.3.1-.5.3-.7L16.6 6H11c-.6 0-1-.4-1-1s.4-1 1-1h5.6l-1.3-1.3c-.2-.2-.3-.4-.3-.7 0-.6.4-1 1-1 .3 0 .5.1.7.3l3 3c.2.2.3.4.3.7s-.1.5-.3.7l-.88.88zm-5.53 2.71c.3.62.8 1.12 1.42 1.42l-3 3c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L7 10.41l-5 5V17h17c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8s.53.11.71.29l3.29 3.3 2.29-2.3z"],"series-filtered":["M12.14 10.45c.21.67.65 1.23 1.22 1.61l-1.65 1.65c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L7 10.41l-5 5V17h17c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8s.53.11.71.29l3.29 3.3 1.14-1.14zM19.35 1a.642.642 0 01.46 1.1l-3.03 3.03v2.95c0 .18-.07.34-.19.46l-1.28 1.29c-.11.1-.27.17-.45.17-.35 0-.64-.29-.64-.64V5.13L11.19 2.1a.642.642 0 01.45-1.1h7.71z"],"series-search":["M11.28 11.31l-.28.28-3.29-3.3C7.53 8.11 7.28 8 7 8s-.53.11-.71.29L2 12.59V4c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1H2v-1.59l5-5 3.29 3.29c.18.19.43.3.71.3s.53-.11.71-.29l2.09-2.09c-.17.02-.34.02-.51.02-.7 0-1.38-.12-2.01-.33zm-.93-6c0-1.62 1.31-2.93 2.93-2.93s2.93 1.31 2.93 2.93-1.31 2.93-2.93 2.93-2.93-1.31-2.93-2.93zm6.47 2.43c.11-.17.21-.33.29-.51.01-.03.03-.06.04-.09.08-.18.16-.35.21-.54.06-.2.1-.38.14-.58.01-.05.01-.09.02-.14.03-.2.05-.39.05-.6 0-2.37-1.93-4.3-4.3-4.3-2.37.01-4.3 1.93-4.3 4.31s1.93 4.3 4.3 4.3c.21 0 .4-.02.6-.05.04 0 .09-.01.14-.02.2-.03.38-.08.57-.14.2-.06.37-.14.55-.21.03-.01.06-.03.09-.04.18-.09.34-.19.51-.29l2.87 2.87c.14.14.33.22.56.22.43 0 .78-.35.78-.78a.938.938 0 00-.23-.56l-2.89-2.85z"],settings:["M4 1c0-.55-.45-1-1-1S2 .45 2 1v5h2V1zM2 19c0 .55.45 1 1 1s1-.45 1-1v-6H2v6zm9-18c0-.55-.45-1-1-1S9 .45 9 1v8h2V1zm7 0c0-.55-.45-1-1-1s-1 .45-1 1v3h2V1zM9 19c0 .55.45 1 1 1s1-.45 1-1v-3H9v3zm9-14h-2c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-2 14c0 .55.45 1 1 1s1-.45 1-1v-8h-2v8zM4 7H2c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm7 3H9c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1z"],shapes:["M7.88 11.12a.958.958 0 011.277.33l3.719 6.207c.081.136.124.29.124.447 0 .495-.419.896-.936.896H4.936a.969.969 0 01-.436-.103.878.878 0 01-.392-1.21l3.409-6.208a.915.915 0 01.362-.36zM15 5a4 4 0 110 8 4 4 0 010-8zM8 1a1 1 0 011 1v6a1 1 0 01-1 1H2a1 1 0 01-1-1V2a1 1 0 011-1h6z"],share:["M15 18H2V5h8.76l2-2H1c-.55 0-1 .45-1 1v15c0 .55.45 1 1 1h15c.55 0 1-.45 1-1V7.24l-2 2V18zm4-18h-7c-.55 0-1 .45-1 1s.45 1 1 1h4.59l-7.3 7.29a1.003 1.003 0 001.42 1.42L18 3.41V8c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z"],"shared-filter":["M13.917 17.209c1.01.454 2.543.928 2.873 1.643.31.722.186 1.148.186 1.148H6.026s-.13-.426.186-1.148 1.842-1.203 2.86-1.65c1.017-.447.914-.722.948-1.093 0-.048.007-.097.007-.145a3.067 3.067 0 01-.839-1.237l-.007-.007c0-.007-.006-.014-.006-.02a1.757 1.757 0 01-.11-.337c-.234-.042-.372-.296-.426-.537a1.045 1.045 0 01-.138-.598c.034-.35.179-.509.337-.57v-.056c0-.44.034-1.065.117-1.478a2.508 2.508 0 01.962-1.623c.426-.33 1.038-.501 1.58-.501.544 0 1.155.172 1.588.502a2.496 2.496 0 01.963 1.622c.075.413.117 1.045.117 1.478v.062c.15.062.288.22.323.564.02.268-.083.502-.138.598-.048.234-.185.488-.42.537a2.635 2.635 0 01-.116.364 3.094 3.094 0 01-.818 1.224c0 .055 0 .11.007.158.034.378-.103.653.914 1.1z","M14.976 16.57c-.24-.099-.455-.186-.65-.273l-.007-.004a3.801 3.801 0 01-.194-.091c.224-.288.41-.609.554-.946l.001-.002.013-.033c.018-.043.036-.087.052-.13l.011-.027.016-.04c.105-.092.19-.19.256-.284.129-.184.213-.38.265-.563.105-.226.225-.592.192-1.026l-.001-.011-.002-.011a1.854 1.854 0 00-.325-.91 9.924 9.924 0 00-.12-1.246 3.09 3.09 0 00-.106-.475l-.001-.006a3.543 3.543 0 00-.763-1.353c.27-.092.56-.139.83-.139.495 0 1.05.156 1.444.456a2.269 2.269 0 01.875 1.475c.069.375.106.95.106 1.344v.056c.138.056.263.2.294.513.019.244-.075.456-.125.543-.044.213-.169.444-.381.488-.025.1-.056.206-.094.3a2.815 2.815 0 01-.756 1.144c0 .05 0 .1.006.144.004.043.006.086.007.127.01.283.018.518.824.872.192.087.404.173.623.263.83.34 1.752.717 1.99 1.231.28.657.168 1.044.168 1.044h-2.081a3.864 3.864 0 00-.188-.542l-.005-.013-.006-.012c-.183-.397-.491-.681-.76-.88a5.614 5.614 0 00-.896-.522 17.36 17.36 0 00-.916-.4l-.15-.061zM14 1c.55 0 1 .45 1 1 0 .28-.11.53-.29.7L10 7.41v.897a3.182 3.182 0 00-.69.4 3.508 3.508 0 00-1.343 2.259c-.07.37-.107.836-.122 1.237a1.836 1.836 0 00-.339.926c-.046.458.09.84.195 1.06.053.178.138.376.27.56.055.08.125.162.21.242v.143l.053.052L6.71 16.71A1.003 1.003 0 015 16V7.41L.29 2.71A1.003 1.003 0 011 1h13z","M9.059 14.361c-.23-.044-.366-.296-.42-.535a1.045 1.045 0 01-.138-.598c.034-.35.179-.509.337-.57v-.056c0-.44.034-1.065.117-1.478A2.508 2.508 0 0110 9.441V13c0 .28-.11.53-.29.71l-.651.651z"],shield:["M10 20c6-3.81 9-9.048 9-15.714-2 0-5-1.429-9-4.286-4 2.857-7 4.286-9 4.286C1 10.952 4 16.19 10 20zm0-17.348c2.577 1.734 4.776 2.88 6.667 3.419-.44 4.627-2.636 8.353-6.667 11.297V2.652z"],shop:["M17.94 3.63c-.01-.02-.01-.03-.02-.04l-.03-.09h-.01c-.18-.3-.49-.5-.86-.5h-14c-.42 0-.77.25-.92.61L0 8.5h.02a2.5 2.5 0 005 0 2.5 2.5 0 005 0 2.5 2.5 0 005 0 2.5 2.5 0 005 0l-2.08-4.87zM3.02 2h14c.55 0 1-.45 1-1s-.45-1-1-1h-14c-.55 0-1 .45-1 1s.44 1 1 1zm13 14h-12v-4h-2v7c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-7h-2v4z"],"shopping-cart":["M18 14H8.72l-.67-2H17c.44 0 .8-.29.94-.69h.01l2-6h-.01c.03-.1.06-.2.06-.31 0-.55-.45-1-1-1H5.39l-.44-1.32h-.01C4.8 2.29 4.44 2 4 2H1c-.55 0-1 .45-1 1s.45 1 1 1h2.28l3.33 10H5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2h9c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2zM6.05 6h11.56l-1.33 4H7.39L6.05 6z"],"signal-search":["M7.15 10.33c.888.8 1.999 1.36 3.228 1.574l2.326 6.98a.846.846 0 01-.535 1.07.844.844 0 01-1.072-.535l-1.225-3.671H7.125L5.9 19.419a.85.85 0 01-1.072.536.85.85 0 01-.536-1.071l2.857-8.555zm1.353 1.305l-.808 2.413h1.607l-.8-2.413zM5 5.5c0 .76.13 1.49.37 2.17-.496 1.056-.313 2.356.704 3.29.385.353.404.94.038 1.311a.982.982 0 01-1.356.038c-2.183-2.01-2-5.125.01-6.94a.95.95 0 01.24-.156A6.421 6.421 0 005 5.5z","M3.874 13.185c-1.346-.918-2.187-2.67-2.187-4.34 0-1.752.757-3.254 2.187-4.339.42-.25.42-.834.168-1.168-.252-.418-.84-.418-1.177-.167C1.014 4.59-.08 6.509.005 8.846c.084 2.253 1.177 4.423 2.86 5.675.168.083.336.166.504.166.253 0 .505-.083.673-.333.337-.418.253-.918-.168-1.169zM12.246 12.309a.98.98 0 01-1.354-.037.917.917 0 01-.206-.324 6.54 6.54 0 001.959-.049 5.125 5.125 0 01-.399.41zM14.631 11.476l1.228 1.229a6.6 6.6 0 01-1.723 1.816c-.169.083-.337.166-.505.166-.253 0-.505-.083-.673-.333-.337-.418-.253-.918.168-1.169.62-.422 1.133-1.022 1.505-1.709z","M11.5 0C14.54 0 17 2.46 17 5.5c0 .26-.02.51-.06.75l-.03.17c-.04.25-.1.49-.17.73v.01c-.08.24-.17.47-.28.69-.01.04-.03.07-.05.11-.11.23-.24.44-.38.65l3.68 3.68A1.003 1.003 0 0119 14c-.28 0-.53-.11-.7-.29l-3.68-3.68c-.21.14-.42.27-.65.38-.04.01-.07.03-.11.05-.22.11-.45.2-.69.28h-.01c-.24.07-.48.13-.73.17l-.17.03c-.25.04-.5.06-.76.06C8.46 11 6 8.54 6 5.5S8.46 0 11.5 0zm0 1.5c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"],"sim-card":["M16.71 5.29l-5-5A.997.997 0 0011 0H4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.28-.11-.53-.29-.71zM9 7h2v3H9V7zM6 7h2v3H6V7zm2 11H6v-3h2v3zm3 0H9v-3h2v3zm3 0h-2v-3h2v3zm0-4H6v-3h8v3zm0-4h-2V7h2v3z"],slash:["M12 2c-.46 0-.85.32-.97.74L7.04 16.7c-.02.1-.04.2-.04.3 0 .55.45 1 1 1 .46 0 .85-.32.97-.74L12.96 3.3c.02-.1.04-.2.04-.3 0-.55-.45-1-1-1z"],"small-cross":["M11.41 10l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L10 8.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L8.59 10 5.3 13.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3.29-3.3 3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L11.41 10z"],"small-minus":["M14 9H6c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1z"],"small-plus":["M14 9h-3V6c0-.55-.45-1-1-1s-1 .45-1 1v3H6c-.55 0-1 .45-1 1s.45 1 1 1h3v3c0 .55.45 1 1 1s1-.45 1-1v-3h3c.55 0 1-.45 1-1s-.45-1-1-1z"],"small-tick":["M15 5c-.28 0-.53.11-.71.29L8 11.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7A1.003 1.003 0 0015 5z"],snowflake:["M11 11.776v2.81l2.31 2.242a.987.987 0 010 1.415c-.399.39-1.044.39-1.442 0L11 17.414V19a.99.99 0 01-.996 1A.996.996 0 019 19v-1.636l-.912.879c-.398.39-1.043.39-1.441 0a.987.987 0 010-1.415L9 14.536v-2.79l-2.548 1.435-.837 3.063c-.146.534-.705.85-1.248.707a.998.998 0 01-.721-1.224l.309-1.132-1.4.793a1.03 1.03 0 01-1.393-.366.99.99 0 01.373-1.366l1.445-.818-1.224-.322a.998.998 0 01-.72-1.225c.145-.533.704-.85 1.248-.707l3.193.84 2.462-1.395-2.532-1.434-3.123.82a1.022 1.022 0 01-1.249-.706.998.998 0 01.721-1.225L2.91 7.18l-1.4-.793a.99.99 0 01-.373-1.366 1.03 1.03 0 011.392-.366l1.445.818-.328-1.2a.998.998 0 01.72-1.225 1.022 1.022 0 011.25.707l.855 3.132L9 8.311V5.414L6.647 3.121a.987.987 0 010-1.414 1.033 1.033 0 011.441 0L9 2.586V1c0-.552.44-1 1.004-1A.99.99 0 0111 1l-.007 1.536.875-.829a1.033 1.033 0 011.441 0 .987.987 0 010 1.414L11 5.364v2.918l2.53-1.42.855-3.131c.146-.534.705-.85 1.249-.707a.998.998 0 01.72 1.224l-.327 1.2 1.4-.792a1.03 1.03 0 011.392.366.99.99 0 01-.373 1.366l-1.355.768 1.153.303a.998.998 0 01.721 1.225c-.146.533-.705.85-1.249.707l-3.123-.821-2.576 1.459 2.506 1.42 3.193-.84a1.022 1.022 0 011.249.707.998.998 0 01-.72 1.225l-1.224.322 1.4.793a.99.99 0 01.373 1.366 1.03 1.03 0 01-1.393.366l-1.356-.768.31 1.132a.998.998 0 01-.721 1.224 1.022 1.022 0 01-1.249-.707l-.837-3.063L11 11.776z"],"social-media":["M11.5 5c.8 0 1.6-.4 2-1 2 1.2 3.3 3.3 3.5 5.7 0 .5.5.9 1 .9.6 0 1-.5 1-1v-.1c-.2-3.3-2.2-6.2-5.1-7.6C13.7.8 12.7 0 11.5 0 10.1 0 9 1.1 9 2.5S10.1 5 11.5 5zm5 7c-1.4 0-2.5 1.1-2.5 2.5 0 .4.1.7.2 1.1-1.1.9-2.6 1.4-4.2 1.4-1.9 0-3.6-.8-4.9-2-.2-.2-.5-.4-.8-.4-.5 0-1 .5-1 1 0 .3.1.5.3.7C5.3 18 7.5 19 10 19c2.2 0 4.2-.8 5.8-2.1.2.1.5.1.7.1 1.4 0 2.5-1.1 2.5-2.5S17.9 12 16.5 12zM5 10.5c0-1.1-.7-2.1-1.7-2.4.5-1.9 1.9-3.5 3.6-4.4.3-.2.6-.5.6-.9 0-.5-.4-1-1-1-.2 0-.4.1-.6.2-2.4 1.2-4.2 3.6-4.7 6.4C.5 8.9 0 9.6 0 10.5 0 11.9 1.1 13 2.5 13S5 11.9 5 10.5z"],sort:["M19 16h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm0-5h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM7 15c-.28 0-.53.11-.71.29L5 16.59V11c0-.55-.45-1-1-1s-1 .45-1 1v5.59L1.71 15.3A.965.965 0 001 15a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 007 15zM19 1h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 5h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z"],"sort-alphabetical":["M8 15c-.28 0-.53.11-.71.29L6 16.59v-5.58c0-.55-.45-1-1-1s-1 .45-1 1v5.58L2.71 15.3c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 008 15zm8.89-.79v-1.22H11.3v1.3h3.51L11 18.78V20h5.99v-1.3h-3.91l3.81-4.49zM14.97 0h-1.95L9.01 11.01h1.89l.98-2.92h4.17l.98 2.92h1.96L14.97 0zm-2.59 6.63l1.58-4.74H14l1.57 4.74h-3.19z"],"sort-alphabetical-desc":["M8.01 15c-.28 0-.53.11-.71.29L6 16.59v-5.58c0-.55-.45-1-1-1s-1 .45-1 1v5.58L2.71 15.3c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l3 3a1.014 1.014 0 001.42 0l3-3c.18-.18.29-.43.29-.71.01-.55-.44-1-.99-1zm4.44-5.65l6.4-7.88V0H10.5v1.67h5.91L10 9.44v1.57h9V9.35h-6.55zm1.27 3.64L11 20h1.59l.56-1.56h2.68l.55 1.56h1.64l-2.68-7.01h-1.62zm-.16 4.3l.93-2.57h.02l.9 2.57h-1.85z"],"sort-asc":["M10 8h5c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1h-5c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm0 5h7c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm0-10h3c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm9 12h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM7 14c-.28 0-.53.11-.71.29L5 15.59V10c0-.55-.45-1-1-1s-1 .45-1 1v5.59L1.71 14.3A.965.965 0 001 14a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 007 14z"],"sort-desc":["M13 15h-3c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm-6-1c-.28 0-.53.11-.71.29L5 15.59V10c0-.55-.45-1-1-1s-1 .45-1 1v5.59L1.71 14.3A.965.965 0 001 14a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 007 14zM19 0h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 10h-5c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm2-5h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z"],"sort-numerical":["M9 14.99c-.28 0-.53.11-.71.29L7 16.58v-5.59c0-.55-.45-1-1-1s-1 .45-1 1v5.59l-1.29-1.29a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l3-3c.18-.18.29-.43.29-.71a.99.99 0 00-1-1zm8.88.23c-.08-.42-.22-.79-.42-1.12-.2-.33-.47-.6-.8-.8-.33-.2-.76-.3-1.28-.3a2.333 2.333 0 00-1.72.71c-.21.22-.37.48-.49.78-.11.3-.17.62-.17.97 0 .27.04.54.13.8.08.26.22.5.4.7.19.21.43.38.71.5a2.142 2.142 0 001.72.02c.25-.12.47-.31.66-.58l.02.02c-.01.19-.04.4-.08.63-.04.24-.11.46-.21.67-.1.21-.23.38-.39.53a.92.92 0 01-.62.22c-.24 0-.44-.08-.6-.25-.16-.17-.27-.36-.31-.59h-1.31c.04.29.12.56.24.79.12.23.28.43.48.59.19.16.42.28.67.36.25.08.52.12.82.12.49 0 .9-.1 1.23-.31.34-.21.61-.48.82-.82.21-.34.37-.71.47-1.13.1-.42.15-.83.15-1.25 0-.43-.04-.85-.12-1.26zm-1.42.63c-.05.15-.11.28-.2.4-.09.12-.2.21-.34.27s-.3.1-.49.1c-.17 0-.33-.04-.46-.11s-.24-.17-.33-.29c-.08-.12-.15-.25-.19-.4-.04-.15-.06-.31-.06-.47 0-.15.02-.3.07-.45.05-.15.11-.28.2-.39.09-.12.2-.21.33-.28.13-.07.27-.11.44-.11.17 0 .33.04.47.11.14.07.25.17.34.28a1.387 1.387 0 01.28.86c.01.17-.02.33-.06.48zM15.32 11H17V0h-1.25c-.05.34-.17.62-.34.85-.17.23-.39.42-.63.57-.25.15-.52.25-.83.31-.3.06-.62.09-.94.09v1.41h2.31V11z"],"sort-numerical-desc":["M9 15c-.28 0-.53.11-.71.29L7 16.59v-5.58c0-.55-.45-1-1-1s-1 .45-1 1v5.58L3.71 15.3c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l3-3A1.003 1.003 0 009 15zm6.7-1.33a1.5 1.5 0 01-.44.43c-.17.11-.37.19-.58.23-.22.04-.44.06-.67.05v1.07h1.66V20H17v-6.99h-1.06c-.04.26-.12.48-.24.66zm3.15-10.3c-.11-.68-.29-1.26-.55-1.76-.26-.5-.62-.89-1.08-1.18C16.75.14 16.17 0 15.46 0c-.54 0-1.03.09-1.46.27-.43.18-.79.44-1.09.76-.3.33-.52.71-.67 1.15-.16.44-.24.92-.24 1.43 0 .54.08 1.04.23 1.47.15.44.37.81.65 1.12.28.31.61.55 1 .72.39.17.82.26 1.3.26.46 0 .88-.11 1.26-.33.38-.22.68-.53.9-.94l.03.03c-.03.35-.07.74-.12 1.16-.05.42-.15.81-.29 1.18-.14.37-.35.68-.61.92-.26.25-.62.37-1.06.37-.43 0-.77-.13-1.03-.4-.25-.27-.4-.62-.44-1.05h-1.64c.02.43.11.83.29 1.18.17.35.39.66.67.91a3.027 3.027 0 002.07.8c.71 0 1.3-.17 1.79-.5.48-.33.87-.76 1.17-1.29.3-.53.51-1.12.64-1.76.13-.64.19-1.28.19-1.92.01-.77-.05-1.49-.15-2.17zM17.1 4.44c-.08.27-.19.5-.34.71-.15.21-.34.37-.57.49-.23.12-.5.18-.8.18-.3 0-.56-.06-.78-.19-.22-.13-.4-.29-.55-.49-.14-.2-.25-.44-.32-.7-.07-.27-.11-.55-.11-.84 0-.28.04-.55.11-.82.07-.26.18-.49.32-.7.14-.2.33-.36.55-.48.22-.12.48-.17.78-.17.31 0 .57.06.8.18.23.12.42.28.57.48.15.2.26.43.34.69.08.26.11.53.11.82 0 .29-.04.57-.11.84z"],"split-columns":["M15 13a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 9H11V2h5v2c.77 0 1.47.3 2 .78V1c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v3.78C2.53 4.3 3.23 4 4 4V2h5v7H3.41L4.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 11H9v7H4v-2c-.77 0-1.47-.3-2-.78V19c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.78c-.53.48-1.23.78-2 .78v2h-5v-7h5.59l-1.29 1.29c-.19.18-.3.43-.3.71z"],square:["M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V2h16v16z"],"stacked-chart":["M12 2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v4h4V2zm3 14h2c.55 0 1-.45 1-1v-5h-4v5c0 .55.45 1 1 1zm3-10c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v3h4V6zm-6 1H8v5h4V7zm-9 9h2c.55 0 1-.45 1-1v-3H2v3c0 .55.45 1 1 1zm16 1H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM6 9c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2h4V9zm3 7h2c.55 0 1-.45 1-1v-2H8v2c0 .55.45 1 1 1z"],star:["M10 0l3.1 6.6 6.9 1-5 5.1 1.2 7.3-6.2-3.4L3.8 20 5 12.7 0 7.6l6.9-1z"],"star-empty":["M20 7.6l-6.9-1.1L10 0 6.9 6.6 0 7.6l5 5.1L3.8 20l6.2-3.4 6.2 3.4-1.2-7.2 5-5.2zM10 15l-4.5 2.4.9-5.2-3.6-3.6 5-.8L10 3.1l2.2 4.7 5 .8-3.6 3.7.9 5.2L10 15z"],"step-backward":["M15 3c-.23 0-.42.09-.59.21l-.01-.01L8 8V4c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-4l6.4 4.8.01-.01c.17.12.36.21.59.21.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"step-chart":["M19 16H2v-3h4c.55 0 1-.45 1-1V8h3v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V6h2c.55 0 1-.45 1-1s-.45-1-1-1h-3c-.55 0-1 .45-1 1v4h-3V7c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v4H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],"step-forward":["M15 3h-2c-.55 0-1 .45-1 1v4L5.6 3.2l-.01.01C5.42 3.09 5.23 3 5 3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01L12 12v4c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],stop:["M16 3H4c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],stopwatch:["M10 6a6 6 0 106 6h-6V6zm-.998-1.938A1.015 1.015 0 019 4V2H7a1 1 0 110-2h6a1 1 0 010 2h-2v2c0 .02 0 .041-.002.062A8.001 8.001 0 0110 20a8 8 0 01-.998-15.938z"],strikethrough:["M18 9h-4.46a4.7 4.7 0 00-.4-.14c-.19-.05-.51-.14-.96-.25-.45-.11-.9-.23-1.37-.35-.47-.12-.89-.23-1.27-.33s-.6-.16-.65-.17c-.53-.15-.95-.37-1.27-.66-.32-.28-.49-.68-.49-1.19 0-.36.09-.66.26-.9s.39-.43.65-.57c.26-.14.55-.24.87-.3s.63-.09.93-.09c.89 0 1.63.19 2.21.57.45.3.75.76.89 1.38h2.63c-.06-.52-.2-.98-.42-1.4-.3-.57-.71-1.05-1.23-1.43a5.33 5.33 0 00-1.79-.87c-.7-.2-1.42-.3-2.19-.3-.66 0-1.31.08-1.96.25s-1.22.43-1.73.77-.92.79-1.23 1.32c-.31.52-.46 1.15-.46 1.87 0 .37.05.74.15 1.1.1.36.28.7.53 1.02.18.24.41.47.69.67H2c-.55 0-1 .45-1 1s.45 1 1 1h10.14c.02.01.05.02.07.02.3.11.58.29.84.55.25.26.38.67.38 1.21 0 .27-.06.53-.17.79-.11.26-.29.49-.54.69-.25.2-.57.36-.97.49s-.88.19-1.44.19c-.52 0-1.01-.06-1.45-.17-.45-.11-.84-.29-1.19-.54s-.61-.56-.8-.95c-.05-.08-.09-.18-.12-.28H4.11c.09.43.22.82.4 1.18.33.65.77 1.18 1.32 1.59.55.41 1.2.72 1.94.92.74.2 1.53.3 2.37.3.73 0 1.44-.08 2.14-.25.7-.17 1.33-.43 1.88-.79.55-.36.99-.83 1.33-1.39.34-.56.51-1.25.51-2.05 0-.37-.06-.75-.18-1.12a3.12 3.12 0 00-.15-.39H18c.55 0 1-.45 1-1s-.45-1-1-1z"],style:["M18 18H2V2h12.3l2-2H1C.4 0 0 .4 0 1v18c0 .6.4 1 1 1h18c.6 0 1-.4 1-1V7.7l-2 2V18zm1.2-18l-7.6 7.6 2.8 2.8L20 4.8V0h-.8zM4 15.9c3.1.2 5.9.2 8.2-2 1.1-1.1 1.1-3 0-4.1-.6-.5-1.3-.8-2-.8s-1.4.3-1.9.8C7.2 11 6.6 14.3 4 15.9z"],"swap-horizontal":["M16.02 10c-.01 0-.01 0 0 0H16h.02zM2 6h13.58l-2.29 2.29a1 1 0 00-.3.71 1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-4-4a1.003 1.003 0 00-1.42 1.42L15.58 4H2c-.55 0-1 .45-1 1s.45 1 1 1zm2 4h-.02H4zm14 4H4.42l2.29-2.29a1 1 0 00.3-.71 1.003 1.003 0 00-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L4.42 16H18c.55 0 1-.45 1-1s-.45-1-1-1z"],"swap-vertical":["M9.71 5.3l-4-4A.997.997 0 005 1.01c-.28 0-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L4 4.42V18c0 .55.45 1 1 1s1-.45 1-1V4.42l2.29 2.29a1 1 0 00.71.3 1.003 1.003 0 00.71-1.71zM10 3.98c0 .01 0 .01 0 0V4v-.02zm0 12.04c0-.01 0-.01 0 0V16v.02zm9-3.03c-.28 0-.53.11-.71.29L16 15.58V2c0-.55-.45-1-1-1s-1 .45-1 1v13.58l-2.29-2.29a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29.28 0 .53-.11.71-.29l4-4c.18-.18.29-.43.29-.71 0-.56-.45-1.01-1-1.01z"],switch:["M12.293 2.293l1.414 1.414-7.127 7.129a3.5 3.5 0 11-1.415-1.415l7.128-7.128zM16.5 9a3.5 3.5 0 110 7 3.5 3.5 0 010-7zm-13 2a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm13 0a1.5 1.5 0 100 3 1.5 1.5 0 000-3z"],"symbol-circle":["M10 4.01a6 6 0 100 12 6 6 0 100-12z"],"symbol-cross":["M15 8.01h-3v-3c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v3H5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h3v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-3h3c.55 0 1-.45 1-1v-2c0-.56-.45-1-1-1z"],"symbol-diamond":["M15 10.01c0-.21-.08-.39-.18-.54l.02-.01-4-6-.02.01c-.18-.28-.47-.46-.82-.46s-.64.18-.82.45l-.01-.01-4 6 .02.01c-.11.16-.19.34-.19.55s.08.39.18.54l-.02.01 4 6 .02-.01c.18.27.47.46.82.46s.64-.19.82-.46l.02.01 4-6-.02-.01c.1-.16.18-.34.18-.54z"],"symbol-square":["M15 4.01H5c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-10c0-.56-.45-1-1-1z"],"symbol-triangle-down":["M16 5c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1 0 .16.05.31.11.44H4.1l5 10h.01c.17.33.5.56.89.56s.72-.23.89-.56h.01l5-10h-.01c.06-.13.11-.28.11-.44z"],"symbol-triangle-up":["M15.89 14.56l-4.99-10h-.01c-.17-.33-.5-.56-.89-.56s-.72.23-.89.56H9.1l-5 10h.01c-.06.13-.11.28-.11.44 0 .55.45 1 1 1h10c.55 0 1-.45 1-1 0-.16-.05-.31-.11-.44z"],tag:["M2 4a2 2 0 012-2h4.588a2 2 0 011.414.586l7.41 7.41a2 2 0 010 2.828l-4.588 4.588a2 2 0 01-2.829 0l-7.41-7.41A2 2 0 012 8.588V4zm3.489-.006a1.495 1.495 0 100 2.99 1.495 1.495 0 000-2.99z"],"take-action":["M5 7c.28 0 .53-.11.71-.29l5-5A1.003 1.003 0 009.29.29l-5 5A1.003 1.003 0 005 7zm6 6a1.003 1.003 0 001.71.71l5-5a1.003 1.003 0 00-1.42-1.42l-5 5c-.18.18-.29.43-.29.71zm8 5h-1c0-.55-.45-1-1-1h-7c-.55 0-1 .45-1 1H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm-9-6l6-6-1.29-1.29a1.003 1.003 0 00-1.42-1.42L12 2 6 8l1.29 1.29-7 7a1.003 1.003 0 001.42 1.42l7-7L10 12z"],taxi:["M19 9h-.33l.33 1v.5c0 .15-.03.3-.07.44h.01L17 17.23v.27c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5V17H6v.5c0 .83-.67 1.5-1.5 1.5S3 18.33 3 17.5v-.27l-1.93-6.28h.01c-.05-.15-.08-.3-.08-.45V10s.02-.06.05-.16c.06-.17.16-.47.28-.84H1c-.55 0-1-.45-1-1s.45-1 1-1h1l1-3h-.01v-.01c.25-.64 1-1.31 1.67-1.5 0 0 .78-.21 2.33-.36V1c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v1.13c1.55.14 2.33.36 2.33.36.67.19 1.42.86 1.67 1.5V4H17l1 3h1c.55 0 1 .45 1 1s-.45 1-1 1zM3 11.5c0 .83.67 1.5 1.5 1.5S6 12.33 6 11.5 5.33 10 4.5 10 3 10.67 3 11.5zM16 7l-1-3H5L4 7v1h12V7zm-.5 3c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"],"text-highlight":["M16 17c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1-.45 1-1-.45-1-1-1c-.77 0-1.47.3-2 .78-.53-.48-1.23-.78-2-.78-.55 0-1 .45-1 1s.45 1 1 1 1 .45 1 1v12c0 .55-.45 1-1 1s-1 .45-1 1 .45 1 1 1c.77 0 1.47-.3 2-.78.53.48 1.23.78 2 .78.55 0 1-.45 1-1s-.45-1-1-1zm-4-4H2V7h10V5H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h11v-2zm7-8h-3v2h2v6h-2v2h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z"],th:["M19 1H1c-.6 0-1 .5-1 1v16c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V2c0-.5-.5-1-1-1zM7 17H2v-3h5v3zm0-4H2v-3h5v3zm0-4H2V6h5v3zm11 8H8v-3h10v3zm0-4H8v-3h10v3zm0-4H8V6h10v3z"],"th-derived":["M5.3 13.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l3-3c.2-.2.3-.4.3-.7s-.1-.5-.3-.7l-3-3C6.5 7.1 6.3 7 6 7c-.6 0-1 .4-1 1 0 .3.1.5.3.7L6.6 10H1c-.6 0-1 .4-1 1s.4 1 1 1h5.6l-1.3 1.3zM19 1H3c-.5 0-1 .5-1 1v6h1c0-1.7 1.3-3 3-3 .8 0 1.6.3 2.1.9l.1.1H9v.8l1 1V6h8v3h-6.8c.3.3.5.6.6 1H18v3h-6.8l-.1.1-.9.9H18v3h-8v-2.8l-1 1V17H4v-.8c-.6-.5-1-1.3-1-2.2H2v4c0 .5.5 1 1 1h16c.6 0 1-.5 1-1V2c0-.5-.5-1-1-1z"],"th-disconnect":["M14.25 1H19c.5 0 1 .5 1 1v16c0 .5-.5 1-1 1h-7.221l.278-2H18v-3h-5.527l.14-1H18v-3h-4.971l.139-1H18V6h-4.416l.637-4.587c.02-.139.03-.277.03-.413zM8.221 1l-.694 5H2v3h5.11l-.139 1H2v3h4.555l-.14 1H2v3h3.999l-.22 1.587c-.02.139-.03.277-.03.413H1c-.6 0-1-.5-1-1V2c0-.5.4-1 1-1h7.221zM10.26.862a1 1 0 011.98.276l-2.5 18a1 1 0 01-1.98-.276l2.5-18z"],"th-filtered":["M17.333 10l1.435-1.722a1 1 0 00.232-.64V4.85l1-.9V18c0 .5-.5 1-1 1H1c-.6 0-1-.5-1-1V2c0-.5.4-1 1-1h6.722L12 4.85V6H8v3h4v1H8v3h10v-3h-.667zM7 17v-3H2v3h5zm0-4v-3H2v3h5zm0-4V6H2v3h5zm11 8v-3H8v3h10z","M19.35 0a.642.642 0 01.46 1.1l-3.03 3.03v2.95c0 .18-.07.34-.19.46l-1.28 1.29c-.11.1-.27.17-.45.17-.35 0-.64-.29-.64-.64V4.13L11.19 1.1a.642.642 0 01.45-1.1h7.71z"],"th-list":["M19 1H1c-.6 0-1 .5-1 1v16c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V2c0-.5-.5-1-1-1zm-1 16H2v-3h16v3zm0-4H2v-3h16v3zm0-4H2V6h16v3z"],"thumbs-down":["M18.55 6.56c-.31-.01-.65-.03-1.02-.06.03 0 .06-.01.09-.01.88-.12 1.68-.63 1.76-1.37.08-.75-.58-1.25-1.46-1.33-.32-.03-.65-.05-.99-.08.59-.19 1.05-.54 1.09-1.2.05-.75-.99-1.32-1.87-1.41-.34-.03-.64-.05-.91-.07h-.11c-.28-.02-.54-.02-.77-.02-3.92-.08-7.29.6-9.36 1.93v7.72c2.67 1.66 5.95 4.61 5.26 7.08-.21.76.39 1.35 1.23 1.26 1.01-.11 1.71-1.18 1.75-2.28.05-1.29-.19-2.59-.62-3.74-.05-.32.01-.65.47-.68.61-.04 1.39-.08 1.99-.1.32 0 .64-.01.94-.03h.01c.52-.03 1-.07 1.42-.12.88-.11 1.69-.6 1.79-1.35.1-.75-.55-1.25-1.44-1.35-.07-.01-.13-.02-.2-.02.21-.02.42-.04.61-.06.88-.11 1.69-.6 1.79-1.35.09-.75-.56-1.31-1.45-1.36zM3 3H0v8h3c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"thumbs-up":["M3 9H0v8h3c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm16.99 3.09c-.1-.75-.91-1.24-1.79-1.35-.19-.02-.4-.05-.61-.06.07-.01.14-.01.2-.02.88-.1 1.53-.61 1.44-1.35-.1-.74-.91-1.24-1.79-1.35-.42-.05-.9-.09-1.42-.12h-.01l-.94-.03c-.6-.02-1.39-.05-1.99-.1-.45-.03-.51-.36-.47-.68.43-1.15.67-2.45.62-3.74-.04-1.11-.74-2.17-1.75-2.28-.84-.09-1.45.5-1.23 1.26.7 2.47-2.58 5.43-5.25 7.08v7.72c2.08 1.33 5.44 2.01 9.35 1.93.24 0 .49-.01.77-.02h.11c.27-.02.57-.04.91-.07.88-.08 1.92-.66 1.87-1.41-.04-.65-.5-1.01-1.09-1.2.34-.03.67-.05.99-.08.89-.08 1.55-.58 1.46-1.33-.08-.75-.88-1.25-1.76-1.37-.03 0-.06-.01-.09-.01.37-.02.71-.04 1.02-.06.91-.05 1.55-.61 1.45-1.36z"],tick:["M17 4c-.28 0-.53.11-.71.29L7 13.59 3.71 10.3A.965.965 0 003 10a1.003 1.003 0 00-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l10-10A1.003 1.003 0 0017 4z"],"tick-circle":["M10 20C4.48 20 0 15.52 0 10S4.48 0 10 0s10 4.48 10 10-4.48 10-10 10zm5-14c-.28 0-.53.11-.71.29L8 12.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l7-7A1.003 1.003 0 0015 6z"],time:["M11 9.59V4c0-.55-.45-1-1-1s-1 .45-1 1v6c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L11 9.59zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"],"timeline-area-chart":["M19 16H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0-13.41l-7.07 7.07-4.3-3.44-.01.01A.987.987 0 007 6c-.24 0-.46.1-.63.24l-.01-.01L3 9.03V15h16V2.59z"],"timeline-bar-chart":["M19 17H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM9 16h2c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1zm6 0h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1zM3 16h2c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1z"],"timeline-events":["M5 5c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zm10 0c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zm-9 9H4v2h2v-2zM17 3v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H7v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H2c-.5 0-1 .5-1 1v14c0 .5.5 1 1 1h16c.5 0 1-.5 1-1V4c0-.5-.5-1-1-1h-1zM7 17H3v-4h4v4zm0-5H3V8h4v4zm5 5H8v-4h4v4zm0-5H8V8h4v4zm5 5h-4v-4h4v4zm0-5h-4V8h4v4zm-6 2H9v2h2v-2zm5-5h-2v2h2V9z"],"timeline-line-chart":["M19 16H2v-1.59l5-5 3.29 3.29c.18.19.43.3.71.3s.53-.11.71-.29l7-7a1.003 1.003 0 00-1.42-1.42L11 10.59l-3.29-3.3C7.53 7.11 7.28 7 7 7s-.53.11-.71.29L2 11.59V3c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],tint:["M9.86 2S3.98 9.18 3.98 12.17C3.99 15.4 6.78 18 9.96 18c3.18-.01 6.04-2.63 6.03-5.86C15.99 9.05 9.86 2 9.86 2z"],torch:["M6.97 19c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2h-6v2zm-3-15l3 4v8h6V8l3-4h-12zm5 5c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1s-1-.45-1-1V9zm6-9h-10c-.55 0-1 .45-1 1v2h12V1c0-.55-.45-1-1-1z"],tractor:["M4.5 11a4.5 4.5 0 110 9 4.5 4.5 0 010-9zm11.499 1a4 4 0 110 8 4 4 0 010-8zm-11.5 1.571a1.928 1.928 0 100 3.857 1.928 1.928 0 000-3.857zM16 14.667a1.333 1.333 0 100 2.666 1.333 1.333 0 000-2.666zM5.999 0C7.46 0 8.527.668 9 2l.851 4.256c1.433.096 2.82.217 4.147.362V2h2L16 6.862c.962.13 1.886.275 2.767.435.779.141 1.232.614 1.232 1.284L20 13a4.995 4.995 0 00-4-1.997A5.001 5.001 0 0011.099 15h-1.12a5.499 5.499 0 00-5.478-4.994 5.482 5.482 0 00-3.377 1.157H.004v-1.18L0 7.327c-.002-.597.37-1.18.999-1.302V1a1 1 0 011-1h4zm1 2H3v4h.75c1.386.027 2.749.073 4.079.139L6.999 2z"],train:["M16 18h-2l2 2H4l.12-.12L6 18H4c-1.1 0-2-.9-2-2V2c0-1.1 3.58-2 8-2s8 .9 8 2v14c0 1.1-.9 2-2 2zM5.5 15c.83 0 1.5-.67 1.5-1.5S6.33 12 5.5 12 4 12.67 4 13.5 4.67 15 5.5 15zM9 3H4v6h5V3zm7 0h-5v6h5V3zm-1.5 9c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"],translate:["M19.89 18.56l-4.99-10h-.01c-.17-.33-.5-.56-.89-.56s-.72.23-.89.56h-.01l-1.73 3.46-2.8-2.3 1.99-1.64C11.44 7.34 12 6.23 12 5V4h1c.55 0 1-.45 1-1s-.45-1-1-1H8V1c0-.55-.45-1-1-1S6 .45 6 1v1H1c-.55 0-1 .45-1 1s.45 1 1 1h9v1c0 .62-.28 1.18-.73 1.54L7 8.42 4.73 6.54C4.28 6.18 4 5.62 4 5H2c0 1.23.56 2.34 1.44 3.07l1.99 1.64-3.06 2.52.01.01c-.23.18-.38.45-.38.76 0 .55.45 1 1 1 .24 0 .45-.1.63-.24l.01.01L7 11l3.36 2.77.01-.01c.02.02.05.03.08.05.01 0 .01.01.02.02l-2.36 4.73h.01c-.07.13-.12.28-.12.44 0 .55.45 1 1 1 .39 0 .72-.23.89-.56h.01L11.12 17h5.76l1.22 2.45h.01c.17.32.5.55.89.55.55 0 1-.45 1-1 0-.16-.05-.31-.11-.44zM12.12 15L14 11.24 15.88 15h-3.76z"],trash:["M17 1h-5c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1H3c-.55 0-1 .45-1 1v1h16V2c0-.55-.45-1-1-1zm.5 3h-15c-.28 0-.5.22-.5.5s.22.5.5.5H3v14c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5h.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zM7 16c0 .55-.45 1-1 1s-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8zm4 0c0 .55-.45 1-1 1s-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8zm4 0c0 .55-.45 1-1 1s-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8z"],tree:["M11 15.542V20H9v-4.458L2 17l4.5-5.625L4 12l3.655-5.483L6 7l4-7 4 7-1.655-.483L16 12l-2.5-.625L18 17l-7-1.458z"],"trending-down":["M19 10c-.55 0-1 .45-1 1v1.37l-6.25-7.03-.01.01A.971.971 0 0011 5c-.23 0-.42.09-.59.21l-.01-.01-3.43 2.58-5.42-3.61-.01.01A.969.969 0 001 4c-.55 0-1 .45-1 1 0 .35.19.64.46.82l-.01.01 6 4 .01-.02c.15.11.33.19.54.19.23 0 .42-.09.59-.21l.01.01 3.26-2.45L16.77 14H15c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z"],"trending-up":["M19 4h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.77l-5.91 6.65L7.6 10.2l-.01.01C7.42 10.09 7.23 10 7 10c-.21 0-.39.08-.54.18l-.01-.02-6 4 .01.02c-.27.18-.46.47-.46.82 0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02 5.41-3.61 3.43 2.58.01-.01c.18.11.37.2.6.2.3 0 .56-.14.74-.34l.01.01L18 7.63V9c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1z"],truck:["M16 0a1 1 0 011 1v11a1 1 0 011 1v3h.5a.5.5 0 01.5.5v1a.5.5 0 01-.5.5H17v1a1 1 0 01-1 1h-1a1 1 0 01-1-1v-1H6v1a1 1 0 01-1 1H4a1 1 0 01-1-1v-1H1.5a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5H2v-3a1 1 0 011-1V1a1 1 0 112 0v3a2 2 0 012-2h6a2 2 0 012 2V1a1 1 0 011-1zm-4 10H8a1 1 0 00-1 1v4a1 1 0 001 1h4a1 1 0 001-1v-4a1 1 0 00-1-1zm-7 4H4a1 1 0 000 2h1a1 1 0 000-2zm11 0h-1a1 1 0 000 2h1a1 1 0 000-2zm-4.5 0a.5.5 0 110 1h-3l-.09-.008A.5.5 0 018.5 14zm0-1.5a.5.5 0 110 1h-3l-.09-.008a.5.5 0 01.09-.992zm0-1.5a.5.5 0 110 1h-3l-.09-.008A.5.5 0 018.5 11zM14 5H6v3h8V5z"],"two-columns":["M5 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm14.71 9.29l-3-3A1.003 1.003 0 0015 7v6a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM12 0H8c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],unarchive:["M16.434 0a1 1 0 01.857.486L20 5v14a1 1 0 01-1 1H1a1 1 0 01-1-1V5L2.709.486A1 1 0 013.566 0h12.868zM10 8c-.28 0-.53.11-.71.29l-3 3-.084.096A1.003 1.003 0 007.71 12.71L9 11.41v4.58l.007.116c.058.496.482.884.993.884.55 0 1-.45 1-1v-4.58l1.29 1.29.081.073c.171.139.389.227.629.227a1.003 1.003 0 00.71-1.71l-3-3-.096-.084A1.002 1.002 0 0010 8zm6-6H4L2 5.002h16L16 2z"],underline:["M10 17c3.3 0 6-2.7 6-6V3.5c0-.8-.7-1.5-1.5-1.5S13 2.7 13 3.5V11c0 1.7-1.3 3-3 3s-3-1.3-3-3V3.5C7 2.7 6.3 2 5.5 2S4 2.7 4 3.5V11c0 3.3 2.7 6 6 6zM16.5 19h-13c-.3 0-.5.2-.5.5s.2.5.5.5h13c.3 0 .5-.2.5-.5s-.2-.5-.5-.5z"],undo:["M5 14c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm9-9H3.41L5.7 2.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C.11 5.47 0 5.72 0 6c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L3.41 7H14c2.21 0 4 1.79 4 4s-1.79 4-4 4H9v2h5c3.31 0 6-2.69 6-6s-2.69-6-6-6z"],"ungroup-objects":["M4.5 6C2.01 6 0 8.01 0 10.5S2.01 15 4.5 15 9 12.99 9 10.5 6.99 6 4.5 6zm11 0C13.01 6 11 8.01 11 10.5s2.01 4.5 4.5 4.5 4.5-2.01 4.5-4.5S17.99 6 15.5 6z"],"unknown-vehicle":["M13 11.988v-4H4v-1l1-3h6V2.003a35.867 35.867 0 00-1-.015c-3.593 0-5.332.488-5.332.488-.67.188-1.424.864-1.674 1.503l-.004.009H3l-1 3H1a1 1 0 100 2h.333l-.28.84-.053.16v7.5a1.5 1.5 0 103 0v-.5h12v.5a1.5 1.5 0 103 0v-4.5h-5a1 1 0 01-1-1zm-8.5 1a1.5 1.5 0 110-3 1.5 1.5 0 010 3zM19.83 2.782a2.392 2.392 0 00-.592-.853c-.276-.264-.64-.485-1.09-.663C17.695 1.09 17.132 1 16.457 1c-.523 0-.996.084-1.418.253a3.157 3.157 0 00-1.084.703c-.299.3-.532.656-.698 1.065-.166.41-.254.861-.264 1.353h2.096c0-.246.028-.476.085-.69.057-.214.145-.4.264-.56.119-.16.27-.287.456-.383.185-.095.406-.143.663-.143.38 0 .677.1.89.3.215.2.321.51.321.93.01.245-.035.45-.135.614-.1.164-.23.314-.392.45a8.598 8.598 0 01-.527.41 3.53 3.53 0 00-.542.485c-.171.187-.32.412-.45.676-.127.265-.206.592-.234.984v.614h1.924v-.519c.038-.273.13-.5.278-.683.147-.182.316-.343.506-.484a13.5 13.5 0 01.606-.424c.214-.14.408-.312.584-.512s.323-.442.442-.724.178-.642.178-1.079c0-.264-.059-.548-.178-.854zm-4.54 6.099v2.103h2.237V8.881H15.29z"],unlock:["M14 1c-2.21 0-4 1.79-4 4v4H2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-8c0-.55-.45-1-1-1h-2V5c0-1.1.9-2 2-2s2 .9 2 2v2c0 .55.45 1 1 1s1-.45 1-1V5c0-2.21-1.79-4-4-4z"],unpin:["M11.77 1.16c-.81.81-.74 2.28.02 3.76L6.1 8.71c-2.17-1.46-4.12-2-4.94-1.18l4.95 4.95-2.12 3.54 3.54-2.12 4.95 4.95c.82-.82.27-2.77-1.19-4.94l3.8-5.69c1.47.76 2.94.84 3.76.02l-7.08-7.08z"],unresolve:["M11.47 12.46c.16-.36.29-.74.38-1.14 0-.02.01-.04.01-.06.09-.4.14-.82.14-1.26 0-.44-.05-.86-.14-1.27 0-.02-.01-.04-.01-.06-.09-.4-.22-.78-.38-1.14-.01-.02-.02-.03-.02-.05a5.94 5.94 0 00-.61-1.03c0-.01-.01-.01-.01-.02a6.308 6.308 0 00-2.1-1.77c-.19-.1-.39-.18-.59-.26-.03-.01-.06-.02-.1-.03-.17-.07-.34-.12-.52-.17-.05-.01-.1-.03-.15-.04a4.34 4.34 0 00-.52-.09c-.05-.01-.11-.02-.17-.03C6.46 4.02 6.23 4 6 4c-3.31 0-6 2.69-6 6s2.69 6 6 6c.23 0 .46-.02.68-.04l.17-.03c.17-.02.34-.06.51-.09.05-.01.1-.03.15-.04.18-.05.36-.1.53-.17l.09-.03a5.973 5.973 0 002.68-2.04c0-.01.01-.01.01-.02.24-.32.44-.66.61-1.03.02-.01.03-.03.04-.05zM14 4c-.99 0-1.91.24-2.73.66a7.51 7.51 0 010 10.68c.82.42 1.74.66 2.73.66 3.31 0 6-2.69 6-6s-2.69-6-6-6z"],updated:["M10 0C6.71 0 3.82 1.6 2 4.05V2c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.76C5.22 3.17 7.47 2 10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8c0-.55-.45-1-1-1s-1 .45-1 1c0 5.52 4.48 10 10 10s10-4.48 10-10S15.52 0 10 0zm4 7c-.28 0-.53.11-.71.29L9 11.58 6.71 9.29a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l5-5A1.003 1.003 0 0014 7z"],upload:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm4 10c-.28 0-.53-.11-.71-.29L11 7.41V15c0 .55-.45 1-1 1s-1-.45-1-1V7.41l-2.29 2.3a1.003 1.003 0 01-1.42-1.42l4-4c.18-.18.43-.29.71-.29s.53.11.71.29l4 4A1.003 1.003 0 0114 10z"],user:["M10 0C4.48 0 0 4.48 0 10c0 .33.02.65.05.97.01.12.03.23.05.35.03.2.05.4.09.59.03.14.06.28.1.42l.12.48c.05.16.1.31.15.46.05.13.09.27.15.4.06.16.13.32.21.48.05.11.1.22.16.33.09.17.17.34.27.5.05.09.1.17.15.25.11.18.22.35.34.52.04.06.08.11.12.17 1.19 1.62 2.85 2.86 4.78 3.53l.09.03c.46.15.93.27 1.42.36.08.01.17.03.25.04.49.07.99.12 1.5.12s1.01-.05 1.5-.12c.08-.01.17-.02.25-.04.49-.09.96-.21 1.42-.36l.09-.03c1.93-.67 3.59-1.91 4.78-3.53.04-.05.08-.1.12-.16.12-.17.23-.35.34-.53.05-.08.1-.16.15-.25.1-.17.19-.34.27-.51.05-.11.1-.21.15-.32.07-.16.14-.32.21-.49.05-.13.1-.26.14-.39.05-.15.11-.31.15-.46.05-.16.08-.32.12-.48.03-.14.07-.28.1-.42.04-.19.06-.39.09-.59.02-.12.04-.23.05-.35.05-.32.07-.64.07-.97 0-5.52-4.48-10-10-10zm0 18a7.94 7.94 0 01-6.15-2.89c.84-.44 1.86-.82 2.67-1.19 1.45-.65 1.3-1.05 1.35-1.59.01-.07.01-.14.01-.21-.51-.45-.93-1.08-1.2-1.8l-.01-.01c0-.01-.01-.02-.01-.03a4.42 4.42 0 01-.15-.48c-.33-.07-.53-.44-.61-.79-.08-.14-.23-.48-.2-.87.05-.51.26-.74.49-.83v-.08c0-.63.06-1.55.17-2.15.02-.17.06-.33.11-.5.21-.73.66-1.4 1.26-1.86.62-.47 1.5-.72 2.28-.72.78 0 1.65.25 2.27.73.6.46 1.05 1.12 1.26 1.86.05.16.08.33.11.5.11.6.17 1.51.17 2.15v.09c.22.1.42.33.46.82.04.39-.12.73-.2.87-.07.34-.27.71-.6.78-.04.16-.09.33-.15.48 0 .01-.02.05-.02.05-.26.71-.67 1.33-1.17 1.78 0 .08.01.16.01.23.05.54-.15.94 1.31 1.59.81.36 1.84.74 2.68 1.19A7.958 7.958 0 0110 18z"],variable:["M4.93 3.79a9.1 9.1 0 012.2-2.27L7.29 1c-1.38.59-2.57 1.33-3.55 2.22C2.46 4.39 1.49 5.72.83 7.23.28 8.51 0 9.81 0 11.12c0 2.28.83 4.57 2.49 6.86l.16-.55c-.49-1.23-.73-2.38-.73-3.44 0-1.67.28-3.46.84-5.36.55-1.9 1.28-3.51 2.17-4.84zm9.38 8.39l-.33-.2c-.37.54-.65.87-.82 1a.74.74 0 01-.42.12c-.19 0-.38-.12-.57-.37-.31-.42-.73-1.59-1.26-3.5.47-.85.86-1.41 1.19-1.67.23-.19.48-.29.74-.29.1 0 .28.04.53.11.26.07.48.11.68.11.27 0 .5-.1.68-.29.18-.19.27-.44.27-.75 0-.33-.09-.58-.27-.77-.18-.19-.44-.29-.78-.29-.3 0-.59.07-.86.22s-.61.47-1.02.97c-.31.37-.77 1.02-1.37 1.94a9.683 9.683 0 00-1.24-3.14l-3.24.59-.06.36c.24-.05.44-.07.61-.07.32 0 .59.14.8.43.33.45.8 1.8 1.39 4.07-.47.64-.78 1.06-.96 1.26-.28.32-.52.53-.7.62-.14.08-.3.11-.48.11-.14 0-.36-.08-.67-.23-.21-.1-.4-.15-.57-.15-.31 0-.57.11-.78.32s-.31.48-.31.8c0 .31.09.55.28.75.19.19.44.29.76.29.31 0 .6-.07.87-.2s.61-.42 1.02-.86c.41-.44.98-1.13 1.7-2.08.28.9.52 1.56.72 1.97.2.41.44.71.7.89.26.18.59.27.99.27.38 0 .77-.14 1.17-.43.54-.36 1.07-1 1.61-1.91zM17.51 1l-.15.54c.49 1.24.73 2.39.73 3.45 0 1.43-.21 2.96-.63 4.6-.33 1.26-.75 2.45-1.27 3.55-.52 1.11-1.02 1.97-1.51 2.6-.49.62-1.09 1.2-1.8 1.72l-.17.53c1.38-.59 2.57-1.34 3.55-2.23 1.29-1.17 2.26-2.5 2.91-4 .55-1.28.83-2.59.83-3.91 0-2.27-.83-4.56-2.49-6.85z"],"vertical-bar-chart-asc":["M8 7H7c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zM3 9H2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1zm10-5h-1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm5-4h-1c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],"vertical-bar-chart-desc":["M3 0H2c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm5 4H7c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm5 3h-1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm5 2h-1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1z"],"vertical-distribution":["M1 2h18c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1s.45 1 1 1zm2 5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1H3zm16 11H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],video:["M19 2H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM7 14V6l6 4-6 4z"],virus:["M15.249 13.835l1.251 1.251.354-.354.087-.077a1 1 0 011.327 1.491l-2.122 2.122-.087.077a1 1 0 01-1.327-1.491l.354-.354-1.251-1.251A6.466 6.466 0 0111 16.424L10.999 18h.501a1 1 0 01.117 1.993L11.5 20h-3a1 1 0 01-.117-1.993L8.5 18h.499v-1.577a6.46 6.46 0 01-2.538-.97L5.414 16.5l.354.354a1 1 0 01-1.327 1.491l-.087-.077-2.122-2.122a1 1 0 011.327-1.491l.087.077.354.354.97-.97a6.472 6.472 0 01-1.384-3.057l-.025.002L2 11.06v.44a1 1 0 01-1.993.117L0 11.5v-3a1 1 0 011.993-.117L2 8.5v.56h1.567A6.471 6.471 0 014.97 5.883l-.971-.969-.353.354-.087.077a1 1 0 01-1.327-1.491l2.122-2.122.087-.077a1 1 0 011.327 1.491l-.354.353 1.047 1.048A6.46 6.46 0 019 3.577L9 2h-.5A1 1 0 018.383.007L8.5 0h3a1 1 0 01.117 1.993L11.5 2H11v1.577a6.466 6.466 0 012.838 1.176l.04-.046L15.086 3.5l-.353-.353a1 1 0 011.327-1.491l.087.077 2.122 2.122a1 1 0 01-1.327 1.491l-.087-.077-.354-.354-1.207 1.207-.046.041a6.467 6.467 0 011.16 2.733H18V8.5a1 1 0 011.993-.117L20 8.5v3a1 1 0 01-1.993.117L18 11.5v-.605h-1.561a6.466 6.466 0 01-1.19 2.94zM12.5 11a1.5 1.5 0 100 3 1.5 1.5 0 000-3zM8 6a2 2 0 100 4 2 2 0 000-4z"],"volume-down":["M15.92 3.93l-1.6 1.18A7.948 7.948 0 0116 10c0 1.84-.63 3.54-1.68 4.89l1.6 1.18A9.878 9.878 0 0018 10c0-2.29-.78-4.39-2.08-6.07zM11 3c-.28 0-.53.11-.71.29L7.59 6H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h4.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"volume-off":["M14 3c-.28 0-.53.11-.71.29L10.59 6H6c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h4.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"volume-up":["M9 3.43c-.28 0-.53.11-.71.29l-2.7 2.71H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h4.59l2.71 2.71a1.003 1.003 0 001.71-.71v-12c-.01-.55-.46-1-1.01-1zm8.31-1.56l-1.62 1.2C17.14 5.16 18 7.69 18 10.43s-.86 5.27-2.31 7.37l1.62 1.2C19 16.57 20 13.62 20 10.43c0-3.18-1-6.13-2.69-8.56zm-3.39 2.49l-1.6 1.18A7.948 7.948 0 0114 10.43c0 1.84-.63 3.54-1.68 4.89l1.6 1.18A9.94 9.94 0 0016 10.43c0-2.28-.78-4.38-2.08-6.07z"],walk:["M16 10h-2c-.23 0-.42-.09-.59-.21l-.01.01-1.69-1.27-.63 3.14 2.62 2.62c.19.18.3.43.3.71v4c0 .55-.45 1-1 1s-1-.45-1-1v-3.59L9.39 12.8l-2.45 6.55h-.01c-.14.38-.5.65-.93.65-.55 0-1-.45-1-1 0-.12.03-.24.07-.35h-.01L9.43 7h-2.9l-1.7 2.55-.01-.01c-.18.27-.47.46-.82.46-.55 0-1-.45-1-1 0-.21.08-.39.18-.54l-.01-.01 2-3 .02.01C5.36 5.19 5.65 5 6 5h4.18l.36-.96c-.33-.43-.54-.96-.54-1.54a2.5 2.5 0 015 0A2.5 2.5 0 0112.5 5c-.06 0-.12-.01-.18-.02l-.44 1.18L14.33 8H16c.55 0 1 .45 1 1s-.45 1-1 1z"],"warning-sign":["M19.86 17.52l.01-.01-9-16-.01.01C10.69 1.21 10.37 1 10 1s-.69.21-.86.52l-.01-.01-9 16 .01.01c-.08.14-.14.3-.14.48 0 .55.45 1 1 1h18c.55 0 1-.45 1-1 0-.18-.06-.34-.14-.48zM11 17H9v-2h2v2zm0-3H9V6h2v8z"],"waterfall-chart":["M13 7h2c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm-9 8h1c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm4-6h2c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm11-5h-1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm0 12H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],widget:["M18 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 16c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm15-1h2V5h-2v10zM3 5H1v10h2V5zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm3 3h10V1H5v2zm13 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM5 19h10v-2H5v2z"],"widget-button":["M1 4h18c.55 0 1 .45 1 1v10c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1zm1 2v8h16V6H2zm4 5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"widget-footer":["M17 0H3c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H4v-4h12v4zm0-5H4V2h12v11z"],"widget-header":["M17 0H3c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H4V7h12v11zm0-12H4V2h12v4z"],wrench:["M19.8 4.44L16.13 8.1l-3.55-.71-.71-3.53L15.54.21c-2.01-.53-4.23-.03-5.8 1.53-1.86 1.85-2.23 4.6-1.14 6.83L.59 16.59C.22 16.95 0 17.45 0 18a2 2 0 002 2c.55 0 1.05-.22 1.41-.59l8.03-8.04c2.23 1.05 4.97.67 6.82-1.16 1.57-1.56 2.07-3.77 1.54-5.77z"],"zoom-in":["M19.56 17.44l-4.94-4.94A8.004 8.004 0 0016 8c0-4.42-3.58-8-8-8S0 3.58 0 8s3.58 8 8 8c1.67 0 3.21-.51 4.5-1.38l4.94 4.94a1.498 1.498 0 102.12-2.12zM8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm3-7H9V5c0-.55-.45-1-1-1s-1 .45-1 1v2H5c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V9h2c.55 0 1-.45 1-1s-.45-1-1-1z"],"zoom-out":["M11 7H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm8.56 10.44l-4.94-4.94A8.004 8.004 0 0016 8c0-4.42-3.58-8-8-8S0 3.58 0 8s3.58 8 8 8c1.67 0 3.21-.51 4.5-1.38l4.94 4.94a1.498 1.498 0 102.12-2.12zM8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"],"zoom-to-fit":["M1 7c.55 0 1-.45 1-1V2h4c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v5c0 .55.45 1 1 1zm5 1a1.003 1.003 0 00-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L4.41 10 5.7 8.71c.19-.18.3-.43.3-.71zm2-2c.28 0 .53-.11.71-.29L10 4.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2C10.53 2.11 10.28 2 10 2s-.53.11-.71.29l-2 2A1.003 1.003 0 008 6zM6 18H2v-4c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm8-6a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l1.3 1.29-1.29 1.29c-.19.18-.3.43-.3.71zm5-12h-5c-.55 0-1 .45-1 1s.45 1 1 1h4v4c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-7 14c-.28 0-.53.11-.71.29L10 15.59 8.71 14.3A.965.965 0 008 14a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 0012 14zm7-1c-.55 0-1 .45-1 1v4h-4c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1z"]},Fn=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}var a;return bn(n,t),a=n,n.prototype.render=function(){var t=this.props.icon;if(null==t||"boolean"==typeof t)return null;if("string"!=typeof t)return t;var n=this.props,s=n.className,i=n.color,r=n.htmlTitle,o=n.iconSize,l=void 0===o?a.SIZE_STANDARD:o,c=n.intent,h=n.title,d=void 0===h?t:h,u=n.tagName,p=void 0===u?"span":u,m=_n(n,["className","color","htmlTitle","iconSize","intent","title","tagName"]),f=l>=a.SIZE_LARGE?a.SIZE_LARGE:a.SIZE_STANDARD,v=this.renderSvgPaths(f,t),g=xn()(je,function(e){if(null!=e)return 0===e.indexOf(M+"-icon-")?e:M+"-icon-"+e}(t),Ye(c),s),b="0 0 "+f+" "+f;return e.createElement(p,yn(yn({},m),{className:g,title:r}),e.createElement("svg",{fill:i,"data-icon":t,width:l,height:l,viewBox:b},d&&e.createElement("desc",null,d),v))},n.prototype.renderSvgPaths=function(t,n){var s=(t===a.SIZE_STANDARD?Rn:Bn)[n];return null==s?null:s.map((function(t,n){return e.createElement("path",{key:n,d:t,fillRule:"evenodd"})}))},n.displayName="Blueprint3.Icon",n.SIZE_STANDARD=16,n.SIZE_LARGE=20,n=a=wn([In.polyfill],n)}(Hn),Xn=45,Kn="M 50,50 m 0,-45 a 45,45 0 1 1 0,90 a 45,45 0 1 1 0,-90",Un=280,Gn=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}var a;return bn(n,t),a=n,n.prototype.componentDidUpdate=function(e){e.value!==this.props.value&&this.forceUpdate()},n.prototype.render=function(){var t,n=this.props,s=n.className,i=n.intent,r=n.value,o=n.tagName,l=void 0===o?"div":o,c=this.getSize(),h=xn()(De,Ye(i),((t={})[Be]=null!=r,t),s),d=Math.min(16,4*a.SIZE_LARGE/c),u=Un-Un*(null==r?.25:Ln(r,0,1));return e.createElement(l,{className:h},e.createElement(l,{className:Ie},e.createElement("svg",{width:c,height:c,strokeWidth:d.toFixed(2),viewBox:this.getViewBox(d)},e.createElement("path",{className:Fe,d:Kn}),e.createElement("path",{className:Re,d:Kn,pathLength:Un,strokeDasharray:"280 280",strokeDashoffset:u}))))},n.prototype.validateProps=function(e){var t=e.className,n=void 0===t?"":t;null!=e.size&&(n.indexOf(B)>=0||n.indexOf(O)>=0)&&console.warn("[Blueprint] Classes.SMALL/LARGE are ignored if size prop is set.")},n.prototype.getSize=function(){var e=this.props,t=e.className,n=void 0===t?"":t,s=e.size;return null==s?n.indexOf(B)>=0?a.SIZE_SMALL:n.indexOf(O)>=0?a.SIZE_LARGE:a.SIZE_STANDARD:Math.max(10,s)},n.prototype.getViewBox=function(e){var t=Xn+e/2,n=(50-t).toFixed(2),a=(2*t).toFixed(2);return n+" "+n+" "+a+" "+a},n.displayName="Blueprint3.Spinner",n.SIZE_SMALL=20,n.SIZE_STANDARD=50,n.SIZE_LARGE=100,n=a=wn([In.polyfill],n)}(Hn),jn=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.state={isActive:!1},e.handleKeyDown=function(t){var n,a;An(t.which)&&(t.preventDefault(),t.which!==e.currentKeyDown&&e.setState({isActive:!0})),e.currentKeyDown=t.which,null===(a=(n=e.props).onKeyDown)||void 0===a||a.call(n,t)},e.handleKeyUp=function(t){var n,a,s;An(t.which)&&(e.setState({isActive:!1}),null===(n=e.buttonRef)||void 0===n||n.click()),e.currentKeyDown=void 0,null===(s=(a=e.props).onKeyUp)||void 0===s||s.call(a,t)},e.handleBlur=function(t){var n,a;e.state.isActive&&e.setState({isActive:!1}),null===(a=(n=e.props).onBlur)||void 0===a||a.call(n,t)},e}return bn(n,t),n.prototype.getCommonButtonProps=function(){var e,t=this.props,n=t.active,a=t.alignText,s=t.fill,i=t.large,r=t.loading,o=t.outlined,l=t.minimal,c=t.small,h=t.tabIndex,d=this.props.disabled||r;return{className:xn()(Z,((e={})[x]=!d&&(n||this.state.isActive),e[P]=d,e[H]=s,e[O]=i,e[V]=r,e[D]=l,e[I]=o,e[B]=c,e),We(a),Ye(this.props.intent),this.props.className),disabled:d,onBlur:this.handleBlur,onClick:d?void 0:this.props.onClick,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,tabIndex:d?-1:h}},n.prototype.renderChildren=function(){var t=this.props,n=t.children,a=t.icon,s=t.loading,i=t.rightIcon,r=t.text;return[s&&e.createElement(Gn,{key:"loading",className:J,size:Fn.SIZE_LARGE}),e.createElement(Fn,{key:"leftIcon",icon:a}),(!Nn(r)||!Nn(n))&&e.createElement("span",{key:"text",className:$},r,n),e.createElement(Fn,{key:"rightIcon",icon:i})]},n}(Hn),Wn=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.buttonRef=null,e.handleRef=zn(e,"buttonRef",e.props.elementRef),e}return bn(n,t),n.prototype.render=function(){return e.createElement("button",yn({type:"button",ref:this.handleRef},Sn(this.props),this.getCommonButtonProps()),this.renderChildren())},n.prototype.componentDidUpdate=function(e){e.elementRef!==this.props.elementRef&&(kn(e.elementRef,null),this.handleRef=zn(this,"buttonRef",this.props.elementRef),kn(this.props.elementRef,this.buttonRef))},n.displayName="Blueprint3.Button",n}(jn),Qn=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.buttonRef=null,e.handleRef=zn(e,"buttonRef",e.props.elementRef),e}return bn(n,t),n.prototype.render=function(){var t=this.props,n=t.href,a=t.tabIndex,s=void 0===a?0:a,i=this.getCommonButtonProps();return e.createElement("a",yn({role:"button",ref:this.handleRef},Sn(this.props),i,{href:i.disabled?void 0:n,tabIndex:i.disabled?-1:s}),this.renderChildren())},n.prototype.componentDidUpdate=function(e){e.elementRef!==this.props.elementRef&&(kn(e.elementRef,null),this.handleRef=zn(this,"buttonRef",this.props.elementRef),kn(this.props.elementRef,this.buttonRef))},n.displayName="Blueprint3.AnchorButton",n}(jn);function Yn(t,n){return function(a){var s=a.className,i=a.elementRef,r=_n(a,["className","elementRef"]);return e.createElement(t,yn(yn({},r),{className:xn()(n,s),ref:i}))}}Yn("h1",Q),Yn("h2",Q),Yn("h3",Q);var Zn=Yn("h4",Q),qn=(Yn("h5",Q),Yn("h6",Q)),Jn=(Yn("blockquote",G),Yn("code",j),Yn("pre",W),Yn("label",de),Yn("ol",Y),Yn("ul",Y),n(1350));function $n(e){return"function"==typeof e}var ea=!$n(t.createPortal),ta={blueprintPortalClassName:function(e,t){if(null!=e[t]&&"string"!=typeof e[t])return new Error("[Blueprint] context blueprintPortalClassName must be string")}},na=function(n){function a(){var e=null!==n&&n.apply(this,arguments)||this;return e.context={},e.state={hasMounted:!1},e.portalElement=null,e}return bn(a,n),a.prototype.render=function(){return ea||"undefined"==typeof document||!this.state.hasMounted||null===this.portalElement?null:t.createPortal(this.props.children,this.portalElement)},a.prototype.componentDidMount=function(){this.props.container&&(this.portalElement=this.createContainerElement(),this.props.container.appendChild(this.portalElement),this.setState({hasMounted:!0},this.props.onChildrenMount),ea&&this.unstableRenderNoPortal())},a.prototype.componentDidUpdate=function(e){null!=this.portalElement&&e.className!==this.props.className&&(void 0!==e.className&&this.portalElement.classList.remove(e.className),aa(this.portalElement.classList,this.props.className)),ea&&this.unstableRenderNoPortal()},a.prototype.componentWillUnmount=function(){null!=this.portalElement&&(ea&&t.unmountComponentAtNode(this.portalElement),this.portalElement.remove())},a.prototype.createContainerElement=function(){var e=document.createElement("div");return e.classList.add(Ve),aa(e.classList,this.props.className),null!=this.context&&aa(e.classList,this.context.blueprintPortalClassName),e},a.prototype.unstableRenderNoPortal=function(){null!==this.portalElement&&t.unstable_renderSubtreeIntoContainer(this,e.createElement("div",null,this.props.children),this.portalElement)},a.displayName="Blueprint3.Portal",a.contextTypes=ta,a.defaultProps={container:"undefined"!=typeof document?document.body:void 0},a}(e.Component);function aa(e,t){null!=t&&""!==t&&e.add.apply(e,t.split(" "))}var sa,ia=function(n){function a(){var a=null!==n&&n.apply(this,arguments)||this;return a.state={hasEverOpened:a.props.isOpen},a.containerElement=null,a.refHandlers={container:function(e){return a.containerElement=(0,t.findDOMNode)(e)}},a.maybeRenderChild=function(t){if($n(t)&&(t=t()),null==t)return null;var n="object"==typeof t?e.cloneElement(t,{className:xn()(t.props.className,we),tabIndex:a.props.enforceFocus||a.props.autoFocus?0:void 0}):e.createElement("span",{className:we},t),s=a.props,i=s.onOpening,r=s.onOpened,o=s.onClosing,l=s.onClosed,c=s.transitionDuration,h=s.transitionName,d=Jn.CSSTransition;return e.createElement(d,{classNames:h,onEntering:i,onEntered:r,onExiting:o,onExited:l,timeout:c,addEndListener:a.handleTransitionAddEnd},n)},a.handleBackdropMouseDown=function(e){var t,n=a.props,s=n.backdropProps,i=n.canOutsideClickClose,r=n.enforceFocus,o=n.onClose;i&&(null==o||o(e)),r&&a.bringFocusInsideOverlay(),null===(t=null==s?void 0:s.onMouseDown)||void 0===t||t.call(s,e)},a.handleDocumentClick=function(e){var t=a.props,n=t.canOutsideClickClose,i=t.isOpen,r=t.onClose,o=e.composed?e.composedPath()[0]:e.target,l=s.openStack.indexOf(a),c=s.openStack.slice(l).some((function(e){var t=e.containerElement;return t&&t.contains(o)&&!t.isSameNode(o)}));i&&n&&!c&&(null==r||r(e))},a.handleDocumentFocus=function(e){var t=e.composed?e.composedPath()[0]:e.target;a.props.enforceFocus&&null!=a.containerElement&&t instanceof Node&&!a.containerElement.contains(t)&&(e.preventDefault(),e.stopImmediatePropagation(),a.bringFocusInsideOverlay())},a.handleKeyDown=function(e){var t=a.props,n=t.canEscapeKeyClose,s=t.onClose;27===e.which&&n&&(null==s||s(e),e.preventDefault())},a.handleTransitionAddEnd=function(){},a}var s;return bn(a,n),s=a,a.getDerivedStateFromProps=function(e){var t=e.isOpen;return t?{hasEverOpened:t}:null},a.prototype.render=function(){var t,n;if(this.props.lazy&&!this.state.hasEverOpened)return null;var a=this.props,s=a.children,i=a.className,r=a.usePortal,o=a.isOpen,l=o&&null!==(n=e.Children.map(s,this.maybeRenderChild))&&void 0!==n?n:[],c=this.maybeRenderBackdrop();null!==c&&l.unshift(c);var h=xn()(ye,((t={})[Ee]=o,t[Ce]=!r,t),i),d=e.createElement(Jn.TransitionGroup,{appear:!0,className:h,component:"div",onKeyDown:this.handleKeyDown,ref:this.refHandlers.container},l);return r?e.createElement(na,{className:this.props.portalClassName,container:this.props.portalContainer},d):d},a.prototype.componentDidMount=function(){this.props.isOpen&&this.overlayWillOpen()},a.prototype.componentDidUpdate=function(e){e.isOpen&&!this.props.isOpen?this.overlayWillClose():!e.isOpen&&this.props.isOpen&&this.overlayWillOpen()},a.prototype.componentWillUnmount=function(){this.overlayWillClose()},a.prototype.bringFocusInsideOverlay=function(){var e=this;return this.requestAnimationFrame((function(){if(null!=e.containerElement&&null!=document.activeElement&&e.props.isOpen&&!e.containerElement.contains(document.activeElement)){var t=e.containerElement.querySelector("[autofocus]"),n=e.containerElement.querySelector("[tabindex]");null!=t?t.focus():null!=n&&n.focus()}}))},a.prototype.maybeRenderBackdrop=function(){var t=this.props,n=t.backdropClassName,a=t.backdropProps,s=t.hasBackdrop,i=t.isOpen,r=t.transitionDuration,o=t.transitionName;return s&&i?e.createElement(Jn.CSSTransition,{classNames:o,key:"__backdrop",timeout:r,addEndListener:this.handleTransitionAddEnd},e.createElement("div",yn({},a,{className:xn()(_e,n,null==a?void 0:a.className),onMouseDown:this.handleBackdropMouseDown,tabIndex:this.props.canOutsideClickClose?0:void 0}))):null},a.prototype.overlayWillClose=function(){document.removeEventListener("focus",this.handleDocumentFocus,!0),document.removeEventListener("mousedown",this.handleDocumentClick);var e=s.openStack,t=e.indexOf(this);if(-1!==t){if(e.splice(t,1),e.length>0){var n=s.getLastOpened();n.props.enforceFocus&&document.addEventListener("focus",n.handleDocumentFocus,!0)}0===e.filter((function(e){return e.props.usePortal&&e.props.hasBackdrop})).length&&document.body.classList.remove(Ee)}},a.prototype.overlayWillOpen=function(){var e=s.openStack;e.length>0&&document.removeEventListener("focus",s.getLastOpened().handleDocumentFocus,!0),e.push(this),this.props.autoFocus&&this.bringFocusInsideOverlay(),this.props.enforceFocus&&document.addEventListener("focus",this.handleDocumentFocus,!0),this.props.canOutsideClickClose&&!this.props.hasBackdrop&&document.addEventListener("mousedown",this.handleDocumentClick),this.props.hasBackdrop&&this.props.usePortal&&document.body.classList.add(Ee)},a.displayName="Blueprint3.Overlay",a.defaultProps={autoFocus:!0,backdropProps:{},canEscapeKeyClose:!0,canOutsideClickClose:!0,enforceFocus:!0,hasBackdrop:!0,isOpen:!1,lazy:!0,transitionDuration:300,transitionName:ye,usePortal:!0},a.openStack=[],a.getLastOpened=function(){return s.openStack[s.openStack.length-1]},a=s=wn([In.polyfill],a)}(Hn),ra=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){return e.createElement(ia,yn({},this.props,{className:Se,hasBackdrop:!0}),e.createElement("div",{className:ne},e.createElement("div",{className:xn()(te,this.props.className),style:this.props.style},this.maybeRenderHeader(),this.props.children)))},n.prototype.validateProps=function(e){null==e.title&&(null!=e.icon&&console.warn("[Blueprint] iconName is ignored if title is omitted."),null!=e.isCloseButtonShown&&console.warn("[Blueprint] isCloseButtonShown prop is ignored if title is omitted."))},n.prototype.maybeRenderCloseButton=function(){return!1!==this.props.isCloseButtonShown?e.createElement(Wn,{"aria-label":"Close",className:ae,icon:e.createElement(Fn,{icon:"small-cross",iconSize:Fn.SIZE_LARGE}),minimal:!0,onClick:this.props.onClose}):void 0},n.prototype.maybeRenderHeader=function(){var t=this.props,n=t.icon,a=t.title;if(null!=a)return e.createElement("div",{className:se},e.createElement(Fn,{icon:n,iconSize:Fn.SIZE_LARGE}),e.createElement(Zn,null,a),this.maybeRenderCloseButton())},n.defaultProps={canOutsideClickClose:!0,isOpen:!1},n.displayName="Blueprint3.Dialog",n=wn([In.polyfill],n)}(Hn),oa=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){var t=this.props,n=t.className,a=t.tagName,s=void 0===a?"div":a,i=_n(t,["className","tagName"]),r=xn()(ie,n);return e.createElement(s,yn(yn({},i),{className:r}))},n.displayName="Blueprint3.Divider",n=wn([In.polyfill],n)}(Hn),la=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){var t,n=this.props,a=n.alignText,s=n.className,i=n.fill,r=n.minimal,o=n.large,l=n.vertical,c=_n(n,["alignText","className","fill","minimal","large","vertical"]),h=xn()(q,((t={})[H]=i,t[O]=o,t[D]=r,t[F]=l,t),We(a),s);return e.createElement("div",yn({},c,{className:h}),this.props.children)},n.displayName="Blueprint3.ButtonGroup",n=wn([In.polyfill],n)}(Hn),ca=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){var t,n=this.props,a=n.children,s=n.className,i=n.fill,r=n.vertical,o=_n(n,["children","className","fill","vertical"]),l=xn()(ee,((t={})[H]=i,t[F]=r,t),s);return e.createElement("div",yn({},o,{className:l}),a)},n.displayName="Blueprint3.ControlGroup",n=wn([In.polyfill],n)}(Hn),ha=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.state={hasPendingUpdate:!1,isComposing:!1,nextValue:e.props.value,value:e.props.value},e.handleCompositionStart=function(t){var n,a;e.setState({isComposing:!0,nextValue:e.state.value}),null===(a=(n=e.props).onCompositionStart)||void 0===a||a.call(n,t)},e.handleCompositionEnd=function(t){var n,a;e.setState({isComposing:!1}),null===(a=(n=e.props).onCompositionEnd)||void 0===a||a.call(n,t)},e.handleChange=function(t){var n,a,s=t.target.value;e.setState({nextValue:s}),null===(a=(n=e.props).onChange)||void 0===a||a.call(n,t)},e}return bn(n,t),n.getDerivedStateFromProps=function(e,t){return t.isComposing||void 0===e.value?null:t.nextValue!==t.value?e.value===t.nextValue?t.hasPendingUpdate?{value:e.value,hasPendingUpdate:!1}:{value:t.nextValue}:e.value===t.value?{hasPendingUpdate:!0}:{value:e.value,nextValue:e.value,hasPendingUpdate:!1}:{value:e.value,nextValue:e.value,hasPendingUpdate:!1}},n.prototype.render=function(){var t=this.state,n=t.isComposing,a=t.hasPendingUpdate,s=t.value,i=t.nextValue,r=this.props,o=r.inputRef,l=_n(r,["inputRef"]);return e.createElement("input",yn({},l,{ref:o,value:n||a?i:s,onCompositionStart:this.handleCompositionStart,onCompositionEnd:this.handleCompositionEnd,onChange:this.handleChange}))},n.displayName="Blueprint3.AsyncControllableInput",n=wn([In.polyfill],n)}(e.PureComponent),da=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.state={},e.leftElement=null,e.rightElement=null,e.refHandlers={leftElement:function(t){return e.leftElement=t},rightElement:function(t){return e.rightElement=t}},e}return bn(n,t),n.prototype.render=function(){var t,n=this.props,a=n.asyncControl,s=void 0!==a&&a,i=n.className,r=n.disabled,o=n.fill,l=n.inputRef,c=n.intent,h=n.large,d=n.small,u=n.round,p=xn()(le,Ye(c),((t={})[P]=r,t[H]=o,t[O]=h,t[B]=d,t[R]=u,t),i),m=yn(yn({},this.props.style),{paddingLeft:this.state.leftElementWidth,paddingRight:this.state.rightElementWidth}),f=yn(yn({type:"text"},Sn(this.props)),{className:oe,style:m});return e.createElement("div",{className:p},this.maybeRenderLeftElement(),s?e.createElement(ha,yn({},f,{inputRef:l})):e.createElement("input",yn({},f,{ref:l})),this.maybeRenderRightElement())},n.prototype.componentDidMount=function(){this.updateInputWidth()},n.prototype.componentDidUpdate=function(e){var t=this.props,n=t.leftElement,a=t.rightElement;e.leftElement===n&&e.rightElement===a||this.updateInputWidth()},n.prototype.validateProps=function(e){null!=e.leftElement&&null!=e.leftIcon&&console.warn("[Blueprint] leftElement and leftIcon prop are mutually exclusive, with leftElement taking priority.")},n.prototype.maybeRenderLeftElement=function(){var t=this.props,n=t.leftElement,a=t.leftIcon;return null!=n?e.createElement("span",{className:ce,ref:this.refHandlers.leftElement},n):null!=a?e.createElement(Fn,{icon:a}):void 0},n.prototype.maybeRenderRightElement=function(){var t=this.props.rightElement;if(null!=t)return e.createElement("span",{className:he,ref:this.refHandlers.rightElement},t)},n.prototype.updateInputWidth=function(){var e=this.state,t=e.leftElementWidth,n=e.rightElementWidth;if(null!=this.leftElement){var a=this.leftElement.clientWidth;(void 0===t||Math.abs(a-t)>2)&&this.setState({leftElementWidth:a})}else this.setState({leftElementWidth:void 0});if(null!=this.rightElement){a=this.rightElement.clientWidth;(void 0===n||Math.abs(a-n)>2)&&this.setState({rightElementWidth:a})}else this.setState({rightElementWidth:void 0})},n.displayName="Blueprint3.InputGroup",n=wn([In.polyfill],n)}(Hn);function ua(e){var t=1.9.toLocaleString(e),n=1..toLocaleString(e),a=9..toLocaleString(e),s=new RegExp(n+"(.+)"+a).exec(t);return s&&s[1]||"."}function pa(e,t){return void 0===t&&(t="en-US"),ba(e.toLocaleString(t),t)}function ma(e){return void 0===e&&(e=""),e.toString()}function fa(e,t){var n=""+e;if(parseFloat(n).toString()===e.toString())return e.toString();if(void 0!==t){var a=ua(t);return ba(n,t).split("").map((function(e){return function(e,t){var n=[0,1,2,3,4,5,6,7,8,9].map((function(e){return e.toLocaleString(t)})).indexOf(e);return-1!==n?n:e}(e,t)})).join("").replace(a,".")}return e.toString()}function va(e,t){return null==e.key||(!!(e.ctrlKey||e.altKey||e.metaKey)||(!(1===e.key.length)||ga(e.key,t)))}function ga(e,t){if(void 0!==t){var n=ua(t).replace(".","\\."),a=[0,1,2,3,4,5,6,7,8,9].map((function(e){return e.toLocaleString(t)})).join("");return new RegExp("^[Ee"+a+"\\+\\-"+n+"]$").test(e)}return/^[Ee0-9\+\-\.]$/.test(e)}function ba(e,t){var n=function(e){return e.replace(/[\uFF10-\uFF19]/g,(function(e){return String.fromCharCode(e.charCodeAt(0)-65248)}))}(e).split("");return n.filter((function(e){return ga(e,t)})).join("")}!function(e){e[e.DOWN=-1]="DOWN",e[e.UP=1]="UP"}(sa||(sa={}));var ya=["allowNumericCharactersOnly","buttonPosition","clampValueOnBlur","className","defaultValue","majorStepSize","minorStepSize","onButtonClick","onValueChange","selectAllOnFocus","selectAllOnIncrement","stepSize"],_a=function(t){function n(){var e,n=t.apply(this,arguments)||this;return n.state={currentImeInputInvalid:!1,shouldSelectAfterUpdate:!1,stepMaxPrecision:a.getStepMaxPrecision(n.props),value:ma(null!==(e=n.props.value)&&void 0!==e?e:n.props.defaultValue)},n.didPasteEventJustOccur=!1,n.delta=0,n.inputElement=null,n.inputRef=zn(n,"inputElement",n.props.inputRef),n.incrementButtonHandlers=n.getButtonEventHandlers(sa.UP),n.decrementButtonHandlers=n.getButtonEventHandlers(sa.DOWN),n.handleButtonClick=function(e,t){var a,s,i=n.updateDelta(t,e),r=n.incrementValue(i);null===(s=(a=n.props).onButtonClick)||void 0===s||s.call(a,Number(fa(r,n.props.locale)),r)},n.stopContinuousChange=function(){n.delta=0,n.clearTimeouts(),clearInterval(n.intervalId),document.removeEventListener("mouseup",n.stopContinuousChange)},n.handleContinuousChange=function(){var e,t,a,s;if(void 0!==n.props.min||void 0!==n.props.max){var i=null!==(e=n.props.min)&&void 0!==e?e:-1/0,r=null!==(t=n.props.max)&&void 0!==t?t:1/0,o=Number(fa(n.state.value,n.props.locale));if(o<=i||o>=r)return void n.stopContinuousChange()}var l=n.incrementValue(n.delta);null===(s=(a=n.props).onButtonClick)||void 0===s||s.call(a,Number(fa(l,n.props.locale)),l)},n.handleInputFocus=function(e){var t,a;n.setState({shouldSelectAfterUpdate:n.props.selectAllOnFocus}),null===(a=(t=n.props).onFocus)||void 0===a||a.call(t,e)},n.handleInputBlur=function(e){var t,a;if(n.setState({shouldSelectAfterUpdate:!1}),n.props.clampValueOnBlur){var s=e.target.value;n.handleNextValue(n.roundAndClampValue(s))}null===(a=(t=n.props).onBlur)||void 0===a||a.call(t,e)},n.handleInputKeyDown=function(e){var t,a;if(!n.props.disabled&&!n.props.readOnly){var s,i=e.keyCode;if(38===i?s=sa.UP:40===i&&(s=sa.DOWN),void 0!==s){e.preventDefault();var r=n.updateDelta(s,e);n.incrementValue(r)}null===(a=(t=n.props).onKeyDown)||void 0===a||a.call(t,e)}},n.handleCompositionEnd=function(e){n.props.allowNumericCharactersOnly&&(n.handleNextValue(ba(e.data,n.props.locale)),n.setState({currentImeInputInvalid:!1}))},n.handleCompositionUpdate=function(e){if(n.props.allowNumericCharactersOnly){var t=e.data;0===ba(t,n.props.locale).length&&t.length>0?n.setState({currentImeInputInvalid:!0}):n.setState({currentImeInputInvalid:!1})}},n.handleInputKeyPress=function(e){var t,a;n.props.allowNumericCharactersOnly&&!va(e,n.props.locale)&&e.preventDefault(),null===(a=(t=n.props).onKeyPress)||void 0===a||a.call(t,e)},n.handleInputPaste=function(e){var t,a;n.didPasteEventJustOccur=!0,null===(a=(t=n.props).onPaste)||void 0===a||a.call(t,e)},n.handleInputChange=function(e){var t=e.target.value,a=t;n.props.allowNumericCharactersOnly&&n.didPasteEventJustOccur&&(n.didPasteEventJustOccur=!1,a=ba(t,n.props.locale)),n.handleNextValue(a),n.setState({shouldSelectAfterUpdate:!1})},n}var a;return bn(n,t),a=n,n.getDerivedStateFromProps=function(e,t){var n,s,i={prevMaxProp:e.max,prevMinProp:e.min},r=e.min!==t.prevMinProp,o=e.max!==t.prevMaxProp,l=r||o,c=null!==(s=null===(n=e.value)||void 0===n?void 0:n.toString())&&void 0!==s?s:t.value,h=a.getStepMaxPrecision(e),d=c!==a.VALUE_EMPTY?a.roundAndClampValue(c,h,e.min,e.max,0,e.locale):a.VALUE_EMPTY;return l&&d!==t.value?yn(yn({},i),{stepMaxPrecision:h,value:d}):yn(yn({},i),{stepMaxPrecision:h,value:c})},n.getStepMaxPrecision=function(e){return null!=e.minorStepSize?Pn(e.minorStepSize):Pn(e.stepSize)},n.roundAndClampValue=function(e,t,n,s,i,r){if(void 0===i&&(i=0),!function(e,t){var n=fa(e,t);return null!=e&&n-parseFloat(n)+1>=0}(e,r))return a.VALUE_EMPTY;var o=fa(e,r),l=function(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}(Number(o)+i,t),c=function(e,t,n){return Ln(e,null!=t?t:-1/0,null!=n?n:1/0)}(l,n,s);return pa(c,r)},n.prototype.render=function(){var t,n=this.props,a=n.buttonPosition,s=n.className,i=n.fill,r=n.large,o=xn()(be,((t={})[O]=r,t),s),l=this.renderButtons();return e.createElement(ca,{className:o,fill:i},a===b&&l,this.renderInput(),a===w&&l)},n.prototype.componentDidUpdate=function(e,n){var s,i,r;t.prototype.componentDidUpdate.call(this,e,n),e.inputRef!==this.props.inputRef&&(kn(e.inputRef,null),this.inputRef=zn(this,"inputElement",this.props.inputRef),kn(this.props.inputRef,this.inputElement)),this.state.shouldSelectAfterUpdate&&(null===(s=this.inputElement)||void 0===s||s.setSelectionRange(0,this.state.value.length));var o=this.props.min!==e.min,l=this.props.max!==e.max,c=o||l,h=this.props.locale!==e.locale,d=this.state.value!==n.value;if(c&&d||h&&n.value!==a.VALUE_EMPTY){var u=fa(h?n.value:this.state.value,e.locale),p=pa(+u,this.props.locale);null===(r=(i=this.props).onValueChange)||void 0===r||r.call(i,+u,p,this.inputElement)}},n.prototype.validateProps=function(e){var t=e.majorStepSize,n=e.max,s=e.min,i=e.minorStepSize,r=e.stepSize,o=e.value;if(null!=s&&null!=n&&s>n&&console.error("[Blueprint] requires min to be no greater than max if both are defined."),r<=0&&console.error("[Blueprint] requires stepSize to be strictly greater than zero."),i&&i<=0&&console.error("[Blueprint] requires minorStepSize to be strictly greater than zero."),t&&t<=0&&console.error("[Blueprint] requires majorStepSize to be strictly greater than zero."),i&&i>r&&console.error("[Blueprint] requires minorStepSize to be no greater than stepSize."),t&&t requires stepSize to be no greater than majorStepSize."),null!=o){var l=a.getStepMaxPrecision(e),c=a.roundAndClampValue(o.toString(),l,s,n,0,this.props.locale),h=c!==o.toString(),d=pa(Number(fa(o,this.props.locale)),this.props.locale);h&&c!==d&&console.warn("[Blueprint] controlled value prop does not adhere to stepSize, min, and/or max constraints.")}},n.prototype.renderButtons=function(){var t=this.props,n=t.intent,a=t.max,s=t.min,i=t.locale,r=fa(this.state.value,i),o=this.props.disabled||this.props.readOnly,l=void 0!==a&&""!==r&&+r>=a,c=void 0!==s&&""!==r&&+r<=s;return e.createElement(la,{className:N,key:"button-group",vertical:!0},e.createElement(Wn,yn({disabled:o||l,icon:"chevron-up",intent:n},this.incrementButtonHandlers)),e.createElement(Wn,yn({disabled:o||c,icon:"chevron-down",intent:n},this.decrementButtonHandlers)))},n.prototype.renderInput=function(){var t=Sn(this.props,ya,!0);return e.createElement(da,yn({asyncControl:this.props.asyncControl,autoComplete:"off"},t,{intent:this.state.currentImeInputInvalid?m:this.props.intent,inputRef:this.inputRef,large:this.props.large,leftIcon:this.props.leftIcon,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,onChange:this.handleInputChange,onCompositionEnd:this.handleCompositionEnd,onCompositionUpdate:this.handleCompositionUpdate,onKeyDown:this.handleInputKeyDown,onKeyPress:this.handleInputKeyPress,onPaste:this.handleInputPaste,rightElement:this.props.rightElement,value:this.state.value}))},n.prototype.getButtonEventHandlers=function(e){var t=this;return{onKeyDown:function(n){!t.props.disabled&&An(n.keyCode)&&t.handleButtonClick(n,e)},onMouseDown:function(n){t.props.disabled||(t.handleButtonClick(n,e),t.startContinuousChange())}}},n.prototype.startContinuousChange=function(){var e=this;document.addEventListener("mouseup",this.stopContinuousChange),this.setTimeout((function(){e.intervalId=window.setInterval(e.handleContinuousChange,a.CONTINUOUS_CHANGE_INTERVAL)}),a.CONTINUOUS_CHANGE_DELAY)},n.prototype.handleNextValue=function(e){var t,n;null==this.props.value&&this.setState({value:e}),null===(n=(t=this.props).onValueChange)||void 0===n||n.call(t,Number(fa(e,this.props.locale)),e,this.inputElement)},n.prototype.incrementValue=function(e){var t=this.state.value===a.VALUE_EMPTY?a.VALUE_ZERO:this.state.value,n=this.roundAndClampValue(t,e);return n!==this.state.value&&(this.handleNextValue(n),this.setState({shouldSelectAfterUpdate:this.props.selectAllOnIncrement})),n},n.prototype.getIncrementDelta=function(e,t,n){var a=this.props,s=a.majorStepSize,i=a.minorStepSize,r=a.stepSize;return t&&null!=s?e*s:n&&null!=i?e*i:e*r},n.prototype.roundAndClampValue=function(e,t){return void 0===t&&(t=0),a.roundAndClampValue(e,this.state.stepMaxPrecision,this.props.min,this.props.max,t,this.props.locale)},n.prototype.updateDelta=function(e,t){return this.delta=this.getIncrementDelta(e,t.shiftKey,t.altKey),this.delta},n.displayName="Blueprint3.NumericInput",n.VALUE_EMPTY="",n.VALUE_ZERO="0",n.defaultProps={allowNumericCharactersOnly:!0,buttonPosition:w,clampValueOnBlur:!1,defaultValue:a.VALUE_EMPTY,large:!1,majorStepSize:10,minorStepSize:.1,selectAllOnFocus:!1,selectAllOnIncrement:!1,stepSize:1},n.CONTINUOUS_CHANGE_DELAY=300,n.CONTINUOUS_CHANGE_INTERVAL=100,n=a=wn([In.polyfill],n)}(Hn),wa=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){var t,n=this.props,a=n.className,s=n.disabled,i=n.elementRef,r=n.fill,o=n.iconProps,l=n.large,c=n.minimal,h=n.options,d=void 0===h?[]:h,u=_n(n,["className","disabled","elementRef","fill","iconProps","large","minimal","options"]),p=xn()(re,((t={})[P]=s,t[H]=r,t[O]=l,t[D]=c,t),a),m=d.map((function(t){var n="object"==typeof t?t:{value:t};return e.createElement("option",yn({},n,{key:n.value,children:n.label||n.value}))}));return e.createElement("div",{className:p},e.createElement("select",yn({disabled:s,ref:i},u,{multiple:!1}),m,u.children),e.createElement(Fn,yn({icon:"double-caret-vertical"},o)))},n=wn([In.polyfill],n)}(Hn),Ca=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){var t=this.props,n=t.className,a=t.title;return null==a?e.createElement("li",{className:xn()(ve,n)}):e.createElement("li",{className:xn()(ge,n)},e.createElement(qn,null,a))},n.displayName="Blueprint3.MenuDivider",n}(e.Component);function Ea(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Sa(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ka=n(626),za=n.n(ka),Ma=n(1265),xa=n.n(Ma),Aa=xa()(),Ta=xa()(),La=function(t){function n(){for(var e,n=arguments.length,a=new Array(n),s=0;s1?t-1:0),a=1;a=0)return 1;return 0}();var Fa=Ra&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then((function(){t=!1,e()})))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout((function(){t=!1,e()}),Ba))}};function Xa(e){return e&&"[object Function]"==={}.toString.call(e)}function Ka(e,t){if(1!==e.nodeType)return[];var n=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?n[t]:n}function Ua(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function Ga(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=Ka(e),n=t.overflow,a=t.overflowX,s=t.overflowY;return/(auto|scroll|overlay)/.test(n+s+a)?e:Ga(Ua(e))}function ja(e){return e&&e.referenceNode?e.referenceNode:e}var Wa=Ra&&!(!window.MSInputMethodContext||!document.documentMode),Qa=Ra&&/MSIE 10/.test(navigator.userAgent);function Ya(e){return 11===e?Wa:10===e?Qa:Wa||Qa}function Za(e){if(!e)return document.documentElement;for(var t=Ya(10)?document.body:null,n=e.offsetParent||null;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var a=n&&n.nodeName;return a&&"BODY"!==a&&"HTML"!==a?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===Ka(n,"position")?Za(n):n:e?e.ownerDocument.documentElement:document.documentElement}function qa(e){return null!==e.parentNode?qa(e.parentNode):e}function Ja(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,a=n?e:t,s=n?t:e,i=document.createRange();i.setStart(a,0),i.setEnd(s,0);var r,o,l=i.commonAncestorContainer;if(e!==l&&t!==l||a.contains(s))return"BODY"===(o=(r=l).nodeName)||"HTML"!==o&&Za(r.firstElementChild)!==r?Za(l):l;var c=qa(e);return c.host?Ja(c.host,t):Ja(e,qa(t).host)}function $a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===t?"scrollTop":"scrollLeft",a=e.nodeName;if("BODY"===a||"HTML"===a){var s=e.ownerDocument.documentElement,i=e.ownerDocument.scrollingElement||s;return i[n]}return e[n]}function es(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=$a(t,"top"),s=$a(t,"left"),i=n?-1:1;return e.top+=a*i,e.bottom+=a*i,e.left+=s*i,e.right+=s*i,e}function ts(e,t){var n="x"===t?"Left":"Top",a="Left"===n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"])+parseFloat(e["border"+a+"Width"])}function ns(e,t,n,a){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],Ya(10)?parseInt(n["offset"+e])+parseInt(a["margin"+("Height"===e?"Top":"Left")])+parseInt(a["margin"+("Height"===e?"Bottom":"Right")]):0)}function as(e){var t=e.body,n=e.documentElement,a=Ya(10)&&getComputedStyle(n);return{height:ns("Height",t,n,a),width:ns("Width",t,n,a)}}var ss=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},is=function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],a=Ya(10),s="HTML"===t.nodeName,i=cs(e),r=cs(t),o=Ga(e),l=Ka(t),c=parseFloat(l.borderTopWidth),h=parseFloat(l.borderLeftWidth);n&&s&&(r.top=Math.max(r.top,0),r.left=Math.max(r.left,0));var d=ls({top:i.top-r.top-c,left:i.left-r.left-h,width:i.width,height:i.height});if(d.marginTop=0,d.marginLeft=0,!a&&s){var u=parseFloat(l.marginTop),p=parseFloat(l.marginLeft);d.top-=c-u,d.bottom-=c-u,d.left-=h-p,d.right-=h-p,d.marginTop=u,d.marginLeft=p}return(a&&!n?t.contains(o):t===o&&"BODY"!==o.nodeName)&&(d=es(d,t)),d}function ds(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,a=hs(e,n),s=Math.max(n.clientWidth,window.innerWidth||0),i=Math.max(n.clientHeight,window.innerHeight||0),r=t?0:$a(n),o=t?0:$a(n,"left"),l={top:r-a.top+a.marginTop,left:o-a.left+a.marginLeft,width:s,height:i};return ls(l)}function us(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===Ka(e,"position"))return!0;var n=Ua(e);return!!n&&us(n)}function ps(e){if(!e||!e.parentElement||Ya())return document.documentElement;for(var t=e.parentElement;t&&"none"===Ka(t,"transform");)t=t.parentElement;return t||document.documentElement}function ms(e,t,n,a){var s=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i={top:0,left:0},r=s?ps(e):Ja(e,ja(t));if("viewport"===a)i=ds(r,s);else{var o=void 0;"scrollParent"===a?"BODY"===(o=Ga(Ua(t))).nodeName&&(o=e.ownerDocument.documentElement):o="window"===a?e.ownerDocument.documentElement:a;var l=hs(o,r,s);if("HTML"!==o.nodeName||us(r))i=l;else{var c=as(e.ownerDocument),h=c.height,d=c.width;i.top+=l.top-l.marginTop,i.bottom=h+l.top,i.left+=l.left-l.marginLeft,i.right=d+l.left}}var u="number"==typeof(n=n||0);return i.left+=u?n:n.left||0,i.top+=u?n:n.top||0,i.right-=u?n:n.right||0,i.bottom-=u?n:n.bottom||0,i}function fs(e){return e.width*e.height}function vs(e,t,n,a,s){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var r=ms(n,a,i,s),o={top:{width:r.width,height:t.top-r.top},right:{width:r.right-t.right,height:r.height},bottom:{width:r.width,height:r.bottom-t.bottom},left:{width:t.left-r.left,height:r.height}},l=Object.keys(o).map((function(e){return os({key:e},o[e],{area:fs(o[e])})})).sort((function(e,t){return t.area-e.area})),c=l.filter((function(e){var t=e.width,a=e.height;return t>=n.clientWidth&&a>=n.clientHeight})),h=c.length>0?c[0].key:l[0].key,d=e.split("-")[1];return h+(d?"-"+d:"")}function gs(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=a?ps(t):Ja(t,ja(n));return hs(n,s,a)}function bs(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),n=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),a=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+a,height:e.offsetHeight+n}}function ys(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,(function(e){return t[e]}))}function _s(e,t,n){n=n.split("-")[0];var a=bs(e),s={width:a.width,height:a.height},i=-1!==["right","left"].indexOf(n),r=i?"top":"left",o=i?"left":"top",l=i?"height":"width",c=i?"width":"height";return s[r]=t[r]+t[l]/2-a[l]/2,s[o]=n===o?t[o]-a[c]:t[ys(o)],s}function ws(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function Cs(e,t,n){return(void 0===n?e:e.slice(0,function(e,t,n){if(Array.prototype.findIndex)return e.findIndex((function(e){return e[t]===n}));var a=ws(e,(function(e){return e[t]===n}));return e.indexOf(a)}(e,"name",n))).forEach((function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=e.function||e.fn;e.enabled&&Xa(n)&&(t.offsets.popper=ls(t.offsets.popper),t.offsets.reference=ls(t.offsets.reference),t=n(t,e))})),t}function Es(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=gs(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=vs(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=_s(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=Cs(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function Ss(e,t){return e.some((function(e){var n=e.name;return e.enabled&&n===t}))}function ks(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),a=0;a1&&void 0!==arguments[1]&&arguments[1],n=Ds.indexOf(e),a=Ds.slice(n+1).concat(Ds.slice(0,n));return t?a.reverse():a}var Rs="flip",Bs="clockwise",Fs="counterclockwise";function Xs(e,t,n,a){var s=[0,0],i=-1!==["right","left"].indexOf(a),r=e.split(/(\+|\-)/).map((function(e){return e.trim()})),o=r.indexOf(ws(r,(function(e){return-1!==e.search(/,|\s/)})));r[o]&&-1===r[o].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==o?[r.slice(0,o).concat([r[o].split(l)[0]]),[r[o].split(l)[1]].concat(r.slice(o+1))]:[r];return c=c.map((function(e,a){var s=(1===a?!i:i)?"height":"width",r=!1;return e.reduce((function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,r=!0,e):r?(e[e.length-1]+=t,r=!1,e):e.concat(t)}),[]).map((function(e){return function(e,t,n,a){var s=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),i=+s[1],r=s[2];if(!i)return e;if(0===r.indexOf("%")){return ls("%p"===r?n:a)[t]/100*i}if("vh"===r||"vw"===r)return("vh"===r?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*i;return i}(e,s,t,n)}))})),c.forEach((function(e,t){e.forEach((function(n,a){Ps(n)&&(s[t]+=n*("-"===e[a-1]?-1:1))}))})),s}var Ks={shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,n=t.split("-")[0],a=t.split("-")[1];if(a){var s=e.offsets,i=s.reference,r=s.popper,o=-1!==["bottom","top"].indexOf(n),l=o?"left":"top",c=o?"width":"height",h={start:rs({},l,i[l]),end:rs({},l,i[l]+i[c]-r[c])};e.offsets.popper=os({},r,h[a])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var n=t.offset,a=e.placement,s=e.offsets,i=s.popper,r=s.reference,o=a.split("-")[0],l=void 0;return l=Ps(+n)?[+n,0]:Xs(n,i,r,o),"left"===o?(i.top+=l[0],i.left-=l[1]):"right"===o?(i.top+=l[0],i.left+=l[1]):"top"===o?(i.left+=l[0],i.top-=l[1]):"bottom"===o&&(i.left+=l[0],i.top+=l[1]),e.popper=i,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var n=t.boundariesElement||Za(e.instance.popper);e.instance.reference===n&&(n=Za(n));var a=ks("transform"),s=e.instance.popper.style,i=s.top,r=s.left,o=s[a];s.top="",s.left="",s[a]="";var l=ms(e.instance.popper,e.instance.reference,t.padding,n,e.positionFixed);s.top=i,s.left=r,s[a]=o,t.boundaries=l;var c=t.priority,h=e.offsets.popper,d={primary:function(e){var n=h[e];return h[e]l[e]&&!t.escapeWithReference&&(a=Math.min(h[n],l[e]-("right"===e?h.width:h.height))),rs({},n,a)}};return c.forEach((function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";h=os({},h,d[t](e))})),e.offsets.popper=h,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,a=t.reference,s=e.placement.split("-")[0],i=Math.floor,r=-1!==["top","bottom"].indexOf(s),o=r?"right":"bottom",l=r?"left":"top",c=r?"width":"height";return n[o]i(a[o])&&(e.offsets.popper[l]=i(a[o])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!Os(e.instance.modifiers,"arrow","keepTogether"))return e;var a=t.element;if("string"==typeof a){if(!(a=e.instance.popper.querySelector(a)))return e}else if(!e.instance.popper.contains(a))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var s=e.placement.split("-")[0],i=e.offsets,r=i.popper,o=i.reference,l=-1!==["left","right"].indexOf(s),c=l?"height":"width",h=l?"Top":"Left",d=h.toLowerCase(),u=l?"left":"top",p=l?"bottom":"right",m=bs(a)[c];o[p]-mr[p]&&(e.offsets.popper[d]+=o[d]+m-r[p]),e.offsets.popper=ls(e.offsets.popper);var f=o[d]+o[c]/2-m/2,v=Ka(e.instance.popper),g=parseFloat(v["margin"+h]),b=parseFloat(v["border"+h+"Width"]),y=f-e.offsets.popper[d]-g-b;return y=Math.max(Math.min(r[c]-m,y),0),e.arrowElement=a,e.offsets.arrow=(rs(n={},d,Math.round(y)),rs(n,u,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,t){if(Ss(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var n=ms(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),a=e.placement.split("-")[0],s=ys(a),i=e.placement.split("-")[1]||"",r=[];switch(t.behavior){case Rs:r=[a,s];break;case Bs:r=Is(a);break;case Fs:r=Is(a,!0);break;default:r=t.behavior}return r.forEach((function(o,l){if(a!==o||r.length===l+1)return e;a=e.placement.split("-")[0],s=ys(a);var c=e.offsets.popper,h=e.offsets.reference,d=Math.floor,u="left"===a&&d(c.right)>d(h.left)||"right"===a&&d(c.left)d(h.top)||"bottom"===a&&d(c.top)d(n.right),f=d(c.top)d(n.bottom),g="left"===a&&p||"right"===a&&m||"top"===a&&f||"bottom"===a&&v,b=-1!==["top","bottom"].indexOf(a),y=!!t.flipVariations&&(b&&"start"===i&&p||b&&"end"===i&&m||!b&&"start"===i&&f||!b&&"end"===i&&v),_=!!t.flipVariationsByContent&&(b&&"start"===i&&m||b&&"end"===i&&p||!b&&"start"===i&&v||!b&&"end"===i&&f),w=y||_;(u||g||w)&&(e.flipped=!0,(u||g)&&(a=r[l+1]),w&&(i=function(e){return"end"===e?"start":"start"===e?"end":e}(i)),e.placement=a+(i?"-"+i:""),e.offsets.popper=os({},e.offsets.popper,_s(e.instance.popper,e.offsets.reference,e.placement)),e=Cs(e.instance.modifiers,e,"flip"))})),e},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],a=e.offsets,s=a.popper,i=a.reference,r=-1!==["left","right"].indexOf(n),o=-1===["top","left"].indexOf(n);return s[r?"left":"top"]=i[n]-(o?s[r?"width":"height"]:0),e.placement=ys(t),e.offsets.popper=ls(s),e}},hide:{order:800,enabled:!0,fn:function(e){if(!Os(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=ws(e.instance.modifiers,(function(e){return"preventOverflow"===e.name})).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};ss(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(a.update)},this.update=Fa(this.update.bind(this)),this.options=os({},e.Defaults,s),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(os({},e.Defaults.modifiers,s.modifiers)).forEach((function(t){a.options.modifiers[t]=os({},e.Defaults.modifiers[t]||{},s.modifiers?s.modifiers[t]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(e){return os({name:e},a.options.modifiers[e])})).sort((function(e,t){return e.order-t.order})),this.modifiers.forEach((function(e){e.enabled&&Xa(e.onLoad)&&e.onLoad(a.reference,a.popper,a.options,e,a.state)})),this.update();var i=this.options.eventsEnabled;i&&this.enableEventListeners(),this.state.eventsEnabled=i}return is(e,[{key:"update",value:function(){return Es.call(this)}},{key:"destroy",value:function(){return zs.call(this)}},{key:"enableEventListeners",value:function(){return Ts.call(this)}},{key:"disableEventListeners",value:function(){return Ls.call(this)}}]),e}();Gs.Utils=("undefined"!=typeof window?window:n.g).PopperUtils,Gs.placements=Vs,Gs.Defaults=Us;const js=Gs;var Ws={position:"absolute",top:0,left:0,opacity:0,pointerEvents:"none"},Qs={},Ys=function(e){function t(){for(var t,n=arguments.length,a=new Array(n),s=0;s0},e.prototype.connect_=function(){$s&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),ai?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){$s&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t,a=ni.some((function(e){return!!~n.indexOf(e)}));a&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),ii=function(e,t){for(var n=0,a=Object.keys(t);n0},e}(),gi="undefined"!=typeof WeakMap?new WeakMap:new Js,bi=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=si.getInstance(),a=new vi(t,n,this);gi.set(this,a)};["observe","unobserve","disconnect"].forEach((function(e){bi.prototype[e]=function(){var t;return(t=gi.get(this))[e].apply(t,arguments)}}));const yi=void 0!==ei.ResizeObserver?ei.ResizeObserver:bi;var _i=function(n){function a(){var e=null!==n&&n.apply(this,arguments)||this;return e.element=null,e.observer=new yi((function(t){var n,a;return null===(a=(n=e.props).onResize)||void 0===a?void 0:a.call(n,t)})),e}return bn(a,n),a.prototype.render=function(){return e.Children.only(this.props.children)},a.prototype.componentDidMount=function(){this.observeElement()},a.prototype.componentDidUpdate=function(e){this.observeElement(this.props.observeParents!==e.observeParents)},a.prototype.componentWillUnmount=function(){this.observer.disconnect()},a.prototype.observeElement=function(e){void 0===e&&(e=!1);var t=this.getElement();if(t instanceof Element){if((t!==this.element||e)&&(this.observer.disconnect(),this.element=t,this.observer.observe(t),this.props.observeParents))for(var n=t.parentElement;null!=n;)this.observer.observe(n),n=n.parentElement}else this.observer.disconnect()},a.prototype.getElement=function(){try{return(0,t.findDOMNode)(this)}catch(e){return null}},a.displayName="Blueprint3.ResizeSensor",a=wn([In.polyfill],a)}(Hn),wi=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.popover=null,e}return bn(n,t),n.prototype.render=function(){var t,n=this,a=this.props,s=a.children,i=a.intent,r=a.popoverClassName,o=_n(a,["children","intent","popoverClassName"]),l=xn()(Ge,((t={})[D]=this.props.minimal,t),Ye(i),r);return e.createElement(Pi,yn({interactionKind:Li.HOVER_TARGET_ONLY,modifiers:{arrow:{enabled:!this.props.minimal}}},o,{autoFocus:!1,canEscapeKeyClose:!1,enforceFocus:!1,lazy:!0,popoverClassName:l,portalContainer:this.props.portalContainer,ref:function(e){return n.popover=e}}),s)},n.prototype.reposition=function(){null!=this.popover&&this.popover.reposition()},n.displayName="Blueprint3.Tooltip",n.defaultProps={hoverCloseDelay:0,hoverOpenDelay:100,minimal:!1,transitionDuration:100},n=wn([In.polyfill],n)}(Hn);function Ci(e){return e.split("-")[0]}function Ei(e){return-1!==["left","right"].indexOf(e)}function Si(e){switch(e){case"top":return"bottom";case"left":return"right";case"bottom":return"top";default:return"left"}}function ki(e){switch(e.split("-")[1]){case"start":return"left";case"end":return"right";default:return"center"}}function zi(e){var t=Ci(e.placement);if(null==e.arrowElement)return Ei(t)?Si(t)+" "+ki(t):ki(t)+" "+Si(t);var n=e.arrowElement.clientHeight/2,a=e.offsets.arrow;return Ei(t)?Si(t)+" "+(a.top+n)+"px":a.left+n+"px "+Si(t)}var Mi=function(e){if(null==e.arrowElement)return e;var t=e.arrowElement.clientWidth,n=Ci(e.placement),a=Ei(n),s=a?"width":"height",i=a?"left":"top",r=Math.round(t/2/Math.sqrt(2));return"top"===n||"left"===n?(e.offsets.popper[i]-=r+4,e.offsets.arrow[i]=e.offsets.popper[s]-t+r):(e.offsets.popper[i]+=r+4,e.offsets.arrow[i]=-r),e};function xi(e){if(null==e)return 0;switch(Ci(e)){case"top":return-90;case"left":return 180;case"bottom":return 90;default:return 0}}var Ai=function(t){var n=t.arrowProps,a=n.ref,s=n.style,i=t.placement;return e.createElement("div",{className:ze,ref:a,style:null==s.left||isNaN(+s.left)?{}:s},e.createElement("svg",{viewBox:"0 0 30 30",style:{transform:"rotate("+xi(i)+"deg)"}},e.createElement("path",{className:ze+"-border",d:"M8.11 6.302c1.015-.936 1.887-2.922 1.887-4.297v26c0-1.378-.868-3.357-1.888-4.297L.925 17.09c-1.237-1.14-1.233-3.034 0-4.17L8.11 6.302z"}),e.createElement("path",{className:ze+"-fill",d:"M8.787 7.036c1.22-1.125 2.21-3.376 2.21-5.03V0v30-2.005c0-1.654-.983-3.9-2.21-5.03l-7.183-6.616c-.81-.746-.802-1.96 0-2.7l7.183-6.614z"})))};function Ti(e){switch(e){case k:return"top-start";case S:return"top";case z:return"top-end";case E:return"right-start";case w:return"right";case C:return"right-end";case g:return"bottom-end";case f:return"bottom";case v:return"bottom-start";case y:return"left-end";case b:return"left";case _:return"left-start";case"auto":case"auto-start":case"auto-end":return e;default:return function(e){throw new Error("Unexpected position: "+e)}(e)}}Ai.displayName="Blueprint3.PopoverArrow";var Li={CLICK:"click",CLICK_TARGET_ONLY:"click-target",HOVER:"hover",HOVER_TARGET_ONLY:"hover-target"},Pi=function(t){function n(){var n=null!==t&&t.apply(this,arguments)||this;return n.popoverRef=Dn(),n.popoverElement=null,n.targetElement=null,n.state={hasDarkParent:!1,isOpen:n.getIsOpen(n.props),transformOrigin:""},n.isMouseInTargetOrPopover=!1,n.lostFocusOnSamePage=!0,n.handlePopoverRef=zn(n,"popoverElement",n.props.popoverRef),n.handleTargetRef=function(e){return n.targetElement=e},n.reposition=function(){var e;return null===(e=n.popperScheduleUpdate)||void 0===e?void 0:e.call(n)},n.renderPopover=function(t){var a,s=n.props,i=s.usePortal,r=s.interactionKind,o=n.state.transformOrigin;n.popperScheduleUpdate=t.scheduleUpdate;var l={onClick:n.handlePopoverClick};(r===Li.HOVER||!i&&r===Li.HOVER_TARGET_ONLY)&&(l.onMouseEnter=n.handleMouseEnter,l.onMouseLeave=n.handleMouseLeave);var c=xn()(ke,((a={})[L]=n.props.inheritDarkTheme&&n.state.hasDarkParent,a[D]=n.props.minimal,a[xe]=n.props.captureDismiss,a),n.props.popoverClassName);return e.createElement("div",{className:Oe,ref:t.ref,style:t.style},e.createElement(_i,{onResize:n.reposition},e.createElement("div",yn({className:c,style:{transformOrigin:o},ref:n.popoverRef},l),n.isArrowEnabled()&&e.createElement(Ai,{arrowProps:t.arrowProps,placement:t.placement}),e.createElement("div",{className:Ae},n.understandChildren().content))))},n.renderTarget=function(t){var a,s,i=n.props,r=i.fill,o=i.openOnTargetFocus,l=i.targetClassName,c=i.targetProps,h=void 0===c?{}:c,d=n.state.isOpen,u=n.isControlled(),p=n.isHoverInteractionKind(),m=n.props.targetTagName;r&&(m="div");var f=p?{onBlur:n.handleTargetBlur,onFocus:n.handleTargetFocus,onMouseEnter:n.handleMouseEnter,onMouseLeave:n.handleMouseLeave}:{onClick:n.handleTargetClick};f.className=xn()(He,((a={})[Pe]=d,a),h.className,l),f.ref=t.ref;var v=On(n.understandChildren().target);if(void 0===v)return null;var g=v.props.tabIndex,b=null==g&&o&&p?0:g,y=e.cloneElement(v,{className:xn()(v.props.className,(s={},s[x]=d&&!u&&!p,s)),disabled:!(!d||!Vn(v,wi))||v.props.disabled,tabIndex:b}),_=e.createElement(m,yn(yn({},h),f),y);return e.createElement(_i,{onResize:n.reposition},_)},n.isControlled=function(){return void 0!==n.props.isOpen},n.handleTargetFocus=function(e){var t,a;if(n.props.openOnTargetFocus&&n.isHoverInteractionKind()){if(null==e.relatedTarget&&!n.lostFocusOnSamePage)return;n.handleMouseEnter(e)}null===(a=null===(t=n.props.targetProps)||void 0===t?void 0:t.onFocus)||void 0===a||a.call(t,e)},n.handleTargetBlur=function(e){var t,a;n.props.openOnTargetFocus&&n.isHoverInteractionKind()&&(null==e.relatedTarget||n.isElementInPopover(e.relatedTarget)||n.handleMouseLeave(e)),n.lostFocusOnSamePage=null!=e.relatedTarget,null===(a=null===(t=n.props.targetProps)||void 0===t?void 0:t.onBlur)||void 0===a||a.call(t,e)},n.handleMouseEnter=function(e){var t,a;n.isMouseInTargetOrPopover=!0,n.props.usePortal||!n.isElementInPopover(e.target)||n.props.interactionKind!==Li.HOVER_TARGET_ONLY||n.props.openOnTargetFocus?n.props.disabled||n.setOpenState(!0,e,n.props.hoverOpenDelay):n.handleMouseLeave(e),null===(a=null===(t=n.props.targetProps)||void 0===t?void 0:t.onMouseEnter)||void 0===a||a.call(t,e)},n.handleMouseLeave=function(e){var t,a;n.isMouseInTargetOrPopover=!1,n.setTimeout((function(){n.isMouseInTargetOrPopover||n.setOpenState(!1,e,n.props.hoverCloseDelay)})),null===(a=null===(t=n.props.targetProps)||void 0===t?void 0:t.onMouseLeave)||void 0===a||a.call(t,e)},n.handlePopoverClick=function(e){var t=e.target,a=t.closest("."+ke),s=a===n.popoverRef.current,i=null==a?void 0:a.classList.contains(xe),r=t.closest("."+Te+", ."+Le),o=null!=r&&r.classList.contains(Te),l=null!=t.closest(":disabled, ."+P);!o||l||i&&!s||n.setOpenState(!1,e)},n.handleOverlayClose=function(e){if(null!==n.targetElement&&void 0!==e){var t=e.target;(!qs(n.targetElement,t)||e.nativeEvent instanceof KeyboardEvent)&&n.setOpenState(!1,e)}},n.handleTargetClick=function(e){var t,a;n.props.disabled||n.isElementInPopover(e.target)||(null==n.props.isOpen?n.setState((function(e){return{isOpen:!e.isOpen}})):n.setOpenState(!n.props.isOpen,e)),null===(a=null===(t=n.props.targetProps)||void 0===t?void 0:t.onClick)||void 0===a||a.call(t,e)},n.updatePopoverState=function(e){return n.setState({transformOrigin:zi(e)}),e},n}return bn(n,t),n.prototype.render=function(){var t,n=this.props,a=n.className,s=n.disabled,i=n.fill,r=n.placement,o=n.position,l=void 0===o?"auto":o,c=this.state.isOpen,h=this.props.wrapperTagName;i&&(h="div");var d=null==On(this.understandChildren().content);!d||s||!1===c||Tn("production")||console.warn("[Blueprint] Disabling with empty/whitespace content...");var u=xn()(Ne,a,((t={})[H]=i,t)),p=e.createElement(h,{className:u},e.createElement(Va,{innerRef:this.handleTargetRef},this.renderTarget),e.createElement(ia,{autoFocus:this.props.autoFocus,backdropClassName:Me,backdropProps:this.props.backdropProps,canEscapeKeyClose:this.props.canEscapeKeyClose,canOutsideClickClose:this.props.interactionKind===Li.CLICK,className:this.props.portalClassName,enforceFocus:this.props.enforceFocus,hasBackdrop:this.props.hasBackdrop,isOpen:c&&!d,onClose:this.handleOverlayClose,onClosed:this.props.onClosed,onClosing:this.props.onClosing,onOpened:this.props.onOpened,onOpening:this.props.onOpening,transitionDuration:this.props.transitionDuration,transitionName:ke,usePortal:this.props.usePortal,portalContainer:this.props.portalContainer},e.createElement(Zs,{innerRef:this.handlePopoverRef,placement:null!=r?r:Ti(l),modifiers:this.getPopperModifiers()},this.renderPopover)));return e.createElement(La,null,p)},n.prototype.componentDidMount=function(){this.updateDarkParent()},n.prototype.componentDidUpdate=function(e,n){t.prototype.componentDidUpdate.call(this,e,n),e.popoverRef!==this.props.popoverRef&&(kn(e.popoverRef,null),this.handlePopoverRef=zn(this,"popoverElement",this.props.popoverRef),kn(this.props.popoverRef,this.popoverElement)),this.updateDarkParent();var a=this.getIsOpen(this.props);null!=this.props.isOpen&&a!==this.state.isOpen?(this.setOpenState(a),this.setState({isOpen:a})):this.props.disabled&&this.state.isOpen&&null==this.props.isOpen&&this.setOpenState(!1)},n.prototype.validateProps=function(t){null==t.isOpen&&null!=t.onInteraction&&console.warn("[Blueprint] onInteraction is ignored when uncontrolled."),t.hasBackdrop&&!t.usePortal&&console.warn("[Blueprint] ignores hasBackdrop"),t.hasBackdrop&&t.interactionKind!==Li.CLICK&&console.error("[Blueprint] requires interactionKind={PopoverInteractionKind.CLICK}."),void 0!==t.placement&&void 0!==t.position&&console.warn("[Blueprint] supports either placement or position prop, not both.");var n=e.Children.count(t.children),a=void 0!==t.content,s=void 0!==t.target;0!==n||s||console.error("[Blueprint] requires target prop or at least one child element."),n>2&&console.warn("[Blueprint] supports one or two children; additional children are ignored. First child is the target, second child is the content. You may instead supply these two as props."),n>0&&s&&console.warn("[Blueprint] with children ignores target prop; use either prop or children."),2===n&&a&&console.warn("[Blueprint] with two children ignores content prop; use either prop or children.")},n.prototype.updateDarkParent=function(){if(this.props.usePortal&&this.state.isOpen){var e=null!=this.targetElement&&null!=this.targetElement.closest("."+L);this.setState({hasDarkParent:e})}},n.prototype.understandChildren=function(){var t=this.props,n=t.children,a=t.content,s=t.target,i=e.Children.toArray(n),r=i[0],o=i[1];return{content:null==o?a:o,target:null==r?s:r}},n.prototype.getIsOpen=function(e){return!e.disabled&&(null!=e.isOpen?e.isOpen:e.defaultIsOpen)},n.prototype.getPopperModifiers=function(){var e=this.props,t=e.boundary,n=e.modifiers,a=n,s=a.flip,i=void 0===s?{}:s,r=a.preventOverflow,o=void 0===r?{}:r;return yn(yn({},n),{arrowOffset:{enabled:this.isArrowEnabled(),fn:Mi,order:510},flip:yn({boundariesElement:t},i),preventOverflow:yn({boundariesElement:t},o),updatePopoverState:{enabled:!0,fn:this.updatePopoverState,order:900}})},n.prototype.setOpenState=function(e,t,n){var a,s,i,r,o,l=this;null===(a=this.cancelOpenTimeout)||void 0===a||a.call(this),void 0!==n&&n>0?this.cancelOpenTimeout=this.setTimeout((function(){return l.setOpenState(e,t)}),n):(null==this.props.isOpen?this.setState({isOpen:e}):null===(i=(s=this.props).onInteraction)||void 0===i||i.call(s,e,t),e||null===(o=(r=this.props).onClose)||void 0===o||o.call(r,t))},n.prototype.isArrowEnabled=function(){var e=this.props,t=e.minimal,n=e.modifiers;return!t&&(null==(null==n?void 0:n.arrow)||n.arrow.enabled)},n.prototype.isElementInPopover=function(e){var t;return null===(t=this.popoverElement)||void 0===t?void 0:t.contains(e)},n.prototype.isHoverInteractionKind=function(){return this.props.interactionKind===Li.HOVER||this.props.interactionKind===Li.HOVER_TARGET_ONLY},n.displayName="Blueprint3.Popover",n.defaultProps={boundary:"scrollParent",captureDismiss:!1,defaultIsOpen:!1,disabled:!1,fill:!1,hasBackdrop:!1,hoverCloseDelay:300,hoverOpenDelay:150,inheritDarkTheme:!0,interactionKind:Li.CLICK,minimal:!1,modifiers:{},openOnTargetFocus:!0,targetTagName:"span",transitionDuration:300,usePortal:!0,wrapperTagName:"span"},n=wn([In.polyfill],n)}(Hn),Hi=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.state={isContentOverflowing:!1,textContent:""},e.textRef=null,e}return bn(n,t),n.prototype.componentDidMount=function(){this.update()},n.prototype.componentDidUpdate=function(){this.update()},n.prototype.render=function(){var t,n=this,a=xn()(((t={})[U]=this.props.ellipsize,t),this.props.className),s=this.props,i=s.children,r=s.tagName,o=s.title;return e.createElement(r,{className:a,ref:function(e){return n.textRef=e},title:null!=o?o:this.state.isContentOverflowing?this.state.textContent:void 0},i)},n.prototype.update=function(){var e;if(null!=(null===(e=this.textRef)||void 0===e?void 0:e.textContent)){var t={isContentOverflowing:this.props.ellipsize&&this.textRef.scrollWidth>this.textRef.clientWidth,textContent:this.textRef.textContent};this.setState(t)}},n.displayName="Blueprint3.Text",n.defaultProps={ellipsize:!1,tagName:"div"},n=wn([In.polyfill],n)}(Hn),Ni=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){var t,n,a=this.props,s=a.active,i=a.className,r=a.children,o=a.disabled,l=a.icon,c=a.intent,h=(a.labelClassName,a.labelElement),d=a.multiline,u=(a.popoverProps,a.shouldDismissPopover),p=a.text,m=a.textClassName,f=a.tagName,v=void 0===f?"a":f,g=a.htmlTitle,b=_n(a,["active","className","children","disabled","icon","intent","labelClassName","labelElement","multiline","popoverProps","shouldDismissPopover","text","textClassName","tagName","htmlTitle"]),y=null!=r,_=Ye(c),w=xn()(pe,_,((t={})[x]=s,t[X]=s&&null==_,t[P]=o,t[Te]=u&&!o&&!y,t),i),C=e.createElement(v,yn(yn(yn({},b),o?Vi:{}),{className:w}),e.createElement(Fn,{icon:l}),e.createElement(Hi,{className:xn()(H,m),ellipsize:!d,title:g},p),this.maybeRenderLabel(h),y?e.createElement(Fn,{icon:"caret-right"}):void 0),E=xn()(((n={})[fe]=y,n));return e.createElement("li",{className:E},this.maybeRenderPopover(C,r))},n.prototype.maybeRenderLabel=function(t){var n=this.props,a=n.label,s=n.labelClassName;return null==a&&null==t?null:e.createElement("span",{className:xn()(me,s)},a,t)},n.prototype.maybeRenderPopover=function(t,n){if(null==n)return t;var a=this.props,s=a.disabled,i=a.popoverProps;return e.createElement(Pi,yn({autoFocus:!1,captureDismiss:!1,disabled:s,enforceFocus:!1,hoverCloseDelay:0,interactionKind:Li.HOVER,modifiers:Oi,position:E,usePortal:!1},i,{content:e.createElement(Di,null,n),minimal:!0,popoverClassName:xn()(fe,null==i?void 0:i.popoverClassName),target:t}))},n.defaultProps={disabled:!1,multiline:!1,popoverProps:{},shouldDismissPopover:!0,text:""},n.displayName="Blueprint3.MenuItem",n=wn([In.polyfill],n)}(Hn),Oi={flip:{boundariesElement:"viewport",padding:20},offset:{offset:-5},preventOverflow:{boundariesElement:"viewport",padding:20}},Vi={href:void 0,onClick:void 0,onMouseDown:void 0,onMouseEnter:void 0,onMouseLeave:void 0,tabIndex:-1},Di=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){var t,n=this.props,a=n.className,s=n.children,i=n.large,r=n.ulRef,o=_n(n,["className","children","large","ulRef"]),l=xn()(ue,((t={})[O]=i,t),a);return e.createElement("ul",yn({},o,{className:l,ref:r}),s)},n.displayName="Blueprint3.Menu",n.Divider=Ca,n.Item=Ni,n=wn([In.polyfill],n)}(Hn),Ii=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.handleActionClick=function(t){var n,a;null===(a=null===(n=e.props.action)||void 0===n?void 0:n.onClick)||void 0===a||a.call(n,t),e.triggerDismiss(!1)},e.handleCloseClick=function(){return e.triggerDismiss(!1)},e.startTimeout=function(){e.clearTimeouts(),e.props.timeout>0&&e.setTimeout((function(){return e.triggerDismiss(!0)}),e.props.timeout)},e}return bn(n,t),n.prototype.render=function(){var t=this.props,n=t.className,a=t.icon,s=t.intent,i=t.message;return e.createElement("div",{className:xn()(Xe,Ye(s),n),onBlur:this.startTimeout,onFocus:this.clearTimeouts,onMouseEnter:this.clearTimeouts,onMouseLeave:this.startTimeout,tabIndex:0},e.createElement(Fn,{icon:a}),e.createElement("span",{className:Ue},i),e.createElement(la,{minimal:!0},this.maybeRenderActionButton(),e.createElement(Wn,{icon:"cross",onClick:this.handleCloseClick})))},n.prototype.componentDidMount=function(){this.startTimeout()},n.prototype.componentDidUpdate=function(e){e.timeout!==this.props.timeout&&(this.props.timeout>0?this.startTimeout():this.clearTimeouts())},n.prototype.componentWillUnmount=function(){this.clearTimeouts()},n.prototype.maybeRenderActionButton=function(){var t=this.props.action;return null==t?void 0:e.createElement(Qn,yn({},t,{intent:void 0,onClick:this.handleActionClick}))},n.prototype.triggerDismiss=function(e){var t,n;this.clearTimeouts(),null===(n=(t=this.props).onDismiss)||void 0===n||n.call(t,e)},n.defaultProps={className:"",message:"",timeout:5e3},n.displayName="Blueprint3.Toast",n=wn([In.polyfill],n)}(Hn),Ri=function(n){function a(){var t=null!==n&&n.apply(this,arguments)||this;return t.state={toasts:[]},t.toastId=0,t.renderToast=function(n){return e.createElement(Ii,yn({},n,{onDismiss:t.getDismissHandler(n)}))},t.getDismissHandler=function(e){return function(n){t.dismiss(e.key,n)}},t.handleClose=function(e){27===e.which&&t.clear()},t}var s;return bn(a,n),s=a,a.create=function(n,a){void 0===a&&(a=document.body),null==n||null==n.usePortal||Tn("production")||console.warn("[Blueprint] Toaster.create() ignores inline prop as it always creates a new element.");var i=document.createElement("div");a.appendChild(i);var r=t.render(e.createElement(s,yn({},n,{usePortal:!1})),i);if(null==r)throw new Error("[Blueprint] Toaster.create() is not supported inside React lifecycle methods in React 16. See usage example on the docs site.");return r},a.prototype.show=function(e,t){this.props.maxToasts&&this.dismissIfAtLimit();var n=this.createToastOptions(e,t);return void 0===t||this.isNewToastKey(t)?this.setState((function(e){return{toasts:Cn([n],e.toasts)}})):this.setState((function(e){return{toasts:e.toasts.map((function(e){return e.key===t?n:e}))}})),n.key},a.prototype.dismiss=function(e,t){void 0===t&&(t=!1),this.setState((function(n){return{toasts:n.toasts.filter((function(n){var a,s=n.key===e;return s&&(null===(a=n.onDismiss)||void 0===a||a.call(n,t)),!s}))}}))},a.prototype.clear=function(){this.state.toasts.forEach((function(e){var t;return null===(t=e.onDismiss)||void 0===t?void 0:t.call(e,!1)})),this.setState({toasts:[]})},a.prototype.getToasts=function(){return this.state.toasts},a.prototype.render=function(){var t=xn()(Ke,this.getPositionClasses(),this.props.className);return e.createElement(ia,{autoFocus:this.props.autoFocus,canEscapeKeyClose:this.props.canEscapeKeyClear,canOutsideClickClose:!1,className:t,enforceFocus:!1,hasBackdrop:!1,isOpen:this.state.toasts.length>0||null!=this.props.children,onClose:this.handleClose,transitionDuration:350,transitionName:Xe,usePortal:this.props.usePortal},this.state.toasts.map(this.renderToast,this),this.props.children)},a.prototype.validateProps=function(e){var t=e.maxToasts;if(void 0!==t&&t<1)throw new Error("[Blueprint] maxToasts is set to an invalid number, must be greater than 0")},a.prototype.isNewToastKey=function(e){return this.state.toasts.every((function(t){return t.key!==e}))},a.prototype.dismissIfAtLimit=function(){this.state.toasts.length===this.props.maxToasts&&this.dismiss(this.state.toasts[this.state.toasts.length-1].key)},a.prototype.createToastOptions=function(e,t){return void 0===t&&(t="toast-"+this.toastId++),yn(yn({},e),{key:t})},a.prototype.getPositionClasses=function(){return Cn(this.props.position.split("-").map((function(e){return Ke+"-"+e.toLowerCase()})),[Ke+"-"+(this.props.usePortal?"in-portal":"inline")])},a.displayName="Blueprint3.Toaster",a.defaultProps={autoFocus:!1,canEscapeKeyClear:!0,position:S,usePortal:!0},a=s=wn([In.polyfill],a)}(Hn);let Bi;function Fi(e,t){return void 0===t&&(t=5e3),Bi.show({intent:u,message:e,timeout:t})}function Xi(e,t){return void 0===t&&(t=5e3),Bi.show({intent:p,message:e,timeout:t})}function Ki(e,t){return void 0===t&&(t=5e3),Bi.show({intent:m,message:e,timeout:t})}function Ui(e,t,n){void 0===n&&(n=5e3);try{t=e.body.error_msg||t}catch(e){}return Bi.show({intent:m,message:t,timeout:n})}let Gi=!1;function ji(e){Gi=e}let Wi="";let Qi=new Set,Yi="dark";function Zi(){Yi="light",document.body.className="",Qi.forEach((e=>{e()}))}function qi(){Yi="dark",document.body.className="bp3-dark",Qi.forEach((e=>{e()}))}let Ji=new(n(4741))(window.navigator.userAgent);const $i=!!window.user,er=!!Ji.mobile(),tr=Ji.os(),nr={admin:"Admin",proxy:"Service",user:"User"},ar={linux:"Linux",macos_1010:"macOS 10.10",macos_1011:"macOS 10.11",macos_1012:"macOS 10.12",macos_1013:"macOS 10.13",macos_1014:"macOS 10.14",macos_1015:"macOS 10.15",macos11:"macOS 11",macos12:"macOS 12",macos13:"macOS 13",macos14:"macOS 14",windows_xp:"Windows XP",windows_7:"Windows 7",windows_vista:"Windows Vista",windows_8:"Windows 8",windows_10:"Windows 10",windows_11:"Windows 11",chrome_os:"Chrome OS",ios_8:"iOS 8",ios_9:"iOS 9",ios_10:"iOS 10",ios_11:"iOS 11",ios_12:"iOS 12",ios_13:"iOS 13",ios_14:"iOS 14",ios_15:"iOS 15",ios_16:"iOS 16",ios_17:"iOS 17",ios_18:"iOS 18",android_4:"Android KitKat 4.4",android_5:"Android Lollipop 5",android_6:"Android Marshmallow 6",android_7:"Android Nougat 7",android_8:"Android Oreo 8",android_9:"Android Pie 9",android_10:"Android 10",android_11:"Android 11",android_12:"Android 12",android_13:"Android 13",android_14:"Android 14",blackberry_10:"Blackerry 10",windows_phone:"Windows Phone",firefox_os:"Firefox OS",kindle:"Kindle"},sr={chrome:"Chrome",chrome_mobile:"Chrome Mobile",safari:"Safari",safari_mobile:"Safari Mobile",firefox:"Firefox",firefox_mobile:"Firefox Mobile",edge:"Microsoft Edge",internet_explorer:"Internet Explorer",internet_explorer_mobile:"Internet Explorer Mobile",opera:"Opera",opera_mobile:"Opera Mobile"},ir={US:"United States",US_AL:"Alabama, US",US_AK:"Alaska, US",US_AZ:"Arizona, US",US_AR:"Arkansas, US",US_CA:"California, US",US_CO:"Colorado, US",US_CT:"Connecticut, US",US_DE:"Delaware, US",US_FL:"Florida, US",US_GA:"Georgia, US",US_HI:"Hawaii, US",US_ID:"Idaho, US",US_IL:"Illinois, US",US_IN:"Indiana, US",US_IA:"Iowa, US",US_KS:"Kansas, US",US_KY:"Kentucky, US",US_LA:"Louisiana, US",US_ME:"Maine, US",US_MD:"Maryland, US",US_MA:"Massachusetts, US",US_MI:"Michigan, US",US_MN:"Minnesota, US",US_MS:"Mississippi, US",US_MO:"Missouri, US",US_MT:"Montana, US",US_NE:"Nebraska, US",US_NV:"Nevada, US",US_NH:"New Hampshire, US",US_NJ:"New Jersey, US",US_NM:"New Mexico, US",US_NY:"New York, US",US_NC:"North Carolina, US",US_ND:"North Dakota, US",US_OH:"Ohio, US",US_OK:"Oklahoma, US",US_OR:"Oregon, US",US_PA:"Pennsylvania, US",US_RI:"Rhode Island, US",US_SC:"South Carolina, US",US_SD:"South Dakota, US",US_TN:"Tennessee, US",US_TX:"Texas, US",US_UT:"Utah, US",US_VT:"Vermont, US",US_VA:"Virginia, US",US_WA:"Washington, US",US_DC:"Washington DC, US",US_WV:"West Virginia, US",US_WI:"Wisconsin, US",US_WY:"Wyoming, US",AF:"Afghanistan",AX:"Åland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia",BQ:"Bonaire",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",CV:"Cabo Verde",KH:"Cambodia",CM:"Cameroon",CA:"Canada",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo Democratic Republic",CK:"Cook Islands",CR:"Costa Rica",CI:"Côte dIvoire",HR:"Croatia",CU:"Cuba",CW:"Curaçao",CY:"Cyprus",CZ:"Czechia",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and McDonald Islands",VA:"Holy See",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"North Korea",KR:"South Korea",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Lao Peoples",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia",MD:"Moldova",MC:"Monaco",MN:"Mongolia",ME:"Montenegro",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestine, State of",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Réunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",BL:"Saint Barthélemy",SH:"Saint Helena",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",MF:"Saint Martin",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SX:"Sint Maarten",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",SS:"South Sudan",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan",TJ:"Tajikistan",TZ:"Tanzania",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela",VN:"Viet Nam",VG:"British Virgin Islands",VI:"US Virgin Islands",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe"};var rr=n(7619);class or extends rr.Dispatcher{}const lr=new or;var cr=n(5939);class hr extends cr.EventEmitter{emitDefer(e,...t){setTimeout((()=>{this.emit(e,...t)}))}}const dr="subscription.sync",ur="change",pr="reset",mr="reload";const fr=new class extends hr{constructor(){super(...arguments),this._token=lr.register(this._callback.bind(this))}get subscription(){return this._subscription}get subscriptionM(){if(this._subscription)return{...this._subscription}}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._subscription=Object.freeze(e),this.emitChange()}_callback(e){if(e.type===dr)this._sync(e.data)}},vr="organization.sync";const gr=new class extends hr{constructor(){super(...arguments),this._organizations=Object.freeze([]),this._map={},this._token=lr.register(this._callback.bind(this))}_reset(e){this._current=e,this.emitChange()}get current(){return this._current}get organizations(){return this._organizations}get organizationsM(){let e=[];return this._organizations.forEach((t=>{e.push({...t})})),e}organization(e){let t=this._map[e];return void 0===t?null:this._organizations[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){$i&&!this._current&&(e.length?this._current=e[0].id:this._current=null),this._map={};for(let t=0;t{this.setState({loading:_r.loading})},this.state={loading:_r.loading}}componentDidMount(){_r.addChangeListener(this.onChange)}componentWillUnmount(){_r.removeChangeListener(this.onChange)}render(){let t;if(this.state.loading){let n="bp3-progress-bar bp3-no-stripes bp3-no-animation ";this.props.intent&&(n+=" bp3-intent-"+this.props.intent),t=e.createElement("div",{className:n,style:wr.progress},e.createElement("div",{className:"bp3-progress-meter bp3-loading-bar",style:wr.progressBar}))}else t=e.createElement("div",{style:wr.progress});return e.createElement("div",{style:this.props.style},t)}}var Er=n(2396);class Sr extends rr.Dispatcher{}const kr=new Sr;function zr(){return(+new Date+Math.floor(999999*Math.random())).toString(36)}function Mr(e){return!e||"000000000000000000000000"==e}function xr(e,t){return e12?(r="PM",i-=12):0===i&&(i=12),a.getDay()){case 0:t="Sun";break;case 1:t="Mon";break;case 2:t="Tue";break;case 3:t="Wed";break;case 4:t="Thu";break;case 5:t="Fri";break;case 6:t="Sat"}switch(a.getMonth()){case 0:n="Jan";break;case 1:n="Feb";break;case 2:n="Mar";break;case 3:n="Apr";break;case 4:n="May";break;case 5:n="Jun";break;case 6:n="Jul";break;case 7:n="Aug";break;case 8:n="Sep";break;case 9:n="Oct";break;case 10:n="Nov";break;case 11:n="Dec"}return s+=t+" ",s+=a.getDate()+" ",s+=n+" ",s+=a.getFullYear()+", ",s+=i+":",s+=xr(a.getMinutes(),2)+":",s+=xr(a.getSeconds(),2)+" ",s+=r,s}function Pr(e){if(!e||"0001-01-01T00:00:00Z"===e)return"";let t,n=new Date(e),a=new Date;switch(n.getMonth()){case 0:t="Jan";break;case 1:t="Feb";break;case 2:t="Mar";break;case 3:t="Apr";break;case 4:t="May";break;case 5:t="Jun";break;case 6:t="Jul";break;case 7:t="Aug";break;case 8:t="Sep";break;case 9:t="Oct";break;case 10:t="Nov";break;case 11:t="Dec"}let s=t+" "+n.getDate();return n.getFullYear()!==a.getFullYear()&&(s+=" "+n.getFullYear()),s}function Hr(e){if(!e||"0001-01-01T00:00:00Z"===e)return"";let t,n=new Date(e),a=new Date;switch(n.getMonth()){case 0:t="Jan";break;case 1:t="Feb";break;case 2:t="Mar";break;case 3:t="Apr";break;case 4:t="May";break;case 5:t="Jun";break;case 6:t="Jul";break;case 7:t="Aug";break;case 8:t="Sep";break;case 9:t="Oct";break;case 10:t="Nov";break;case 11:t="Dec"}let s=t+" "+n.getDate();if(n.getFullYear()!==a.getFullYear())s+=" "+n.getFullYear();else if(n.getMonth()===a.getMonth()&&n.getDate()===a.getDate()){let e=n.getHours(),t="AM";e>12?(t="PM",e-=12):0===e&&(e=12),s=e+":",s+=xr(n.getMinutes(),2)+":",s+=xr(n.getSeconds(),2)+" ",s+=t}return s}class Nr{constructor(){this._id=zr()}loading(){return lr.dispatch({type:br,data:{id:this._id}}),this}done(){return lr.dispatch({type:yr,data:{id:this._id}}),this}}let Or;function Vr(e){let t=zr();Or=t;let n=(new Nr).loading();return new Promise(((a,s)=>{vn.get("/subscription"+(e?"/update":"")).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,i)=>{if(n.done(),i&&401===i.status)return window.location.href="/login",void a();if(t===Or){if(e)return Ui(i,"Failed to sync subscription"),s(e),void lr.dispatch({type:dr,data:{}});lr.dispatch({type:dr,data:i.body}),a()}else a()}))}))}function Dr(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/subscription").send({license:e}).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to activate subscription"),void a(e)):(lr.dispatch({type:dr,data:s.body}),void n()))))}))}kr.register((e=>{if("subscription.change"===e.type)$i||Vr(!1)}));const Ir={box:{display:"inline-flex",verticalAlign:"middle"},actionProgress:{position:"absolute",bottom:0,left:0,borderRadius:0,borderBottomLeftRadius:"3px",borderBottomRightRadius:"3px",width:"100%",height:"4px"},squareActionProgress:{position:"absolute",bottom:0,left:0,borderRadius:0,borderBottomLeftRadius:"1px",borderBottomRightRadius:"3px",width:"100%",height:"4px"},dialog:{width:"340px",position:"absolute"},label:{width:"100%",maxWidth:"220px",margin:"18px 0 0 0"},input:{width:"100%"}};class Rr extends e.Component{constructor(e,t){super(e,t),this.openDialog=()=>{this.setState({...this.state,dialog:!0})},this.closeDialog=()=>{this.setState({...this.state,dialog:!1,input:""})},this.closeDialogConfirm=()=>{this.setState({...this.state,dialog:!1,input:""}),this.props.onConfirm&&this.props.onConfirm()},this.confirm=e=>{let t=zr();if(e.shiftKey)return void(this.props.onConfirm&&this.props.onConfirm());this.setState({...this.state,confirming:t});let n=10,a=setInterval((()=>n>100?(clearInterval(a),void setTimeout((()=>{this.state.confirming===t&&(this.setState({...this.state,confirm:0,confirming:null}),this.props.onConfirm&&this.props.onConfirm())}),250)):this.state.confirming?(n%10==0&&this.setState({...this.state,confirm:n/10}),void(n+=2)):(clearInterval(a),void this.setState({...this.state,confirm:0,confirming:null}))),8)},this.clearConfirm=()=>{this.setState({...this.state,confirm:0,confirming:null})},this.state={input:"",dialog:!1,confirm:0,confirming:null}}render(){let t=er||this.props.safe,n={...this.props.style};n.position="relative";let a=this.props.className||"";this.props.label||(a+=" bp3-button-empty");let s,i=this.props.dialogClassName||this.props.className||"";if(this.props.label||this.props.dialogLabel||(i+=" bp3-button-empty"),this.props.confirmInput&&(s=e.createElement("label",{className:"bp3-label",style:Ir.label},'Enter "delete" to confirm:',e.createElement("input",{className:"bp3-input",style:Ir.input,disabled:this.props.disabled,autoCapitalize:"off",spellCheck:!1,placeholder:'Enter "delete" to confirm',value:this.state.input,onKeyDown:e=>{"Enter"===e.key&&"delete"===this.state.input&&this.closeDialogConfirm()},onChange:e=>{this.setState({...this.state,input:e.target.value})}}))),t){let r,o=this.props.confirmMsg?this.props.confirmMsg:"Confirm "+(this.props.label||"");if(this.props.items){let t=[];for(let n of this.props.items)t.push(e.createElement("li",null,n));r=e.createElement("ul",null,t)}return e.createElement("div",{style:Ir.box},e.createElement("button",{className:"bp3-button "+a,style:n,type:"button",hidden:this.props.hidden,disabled:this.props.disabled,onMouseDown:t?void 0:this.confirm,onMouseUp:t?void 0:this.clearConfirm,onMouseLeave:t?void 0:this.clearConfirm,onClick:t?this.openDialog:void 0},this.props.label),e.createElement(ra,{title:"Confirm",style:Ir.dialog,isOpen:this.state.dialog,usePortal:!0,portalContainer:document.body,onClose:this.closeDialog},e.createElement("div",{className:"bp3-dialog-body"},o,r,s),e.createElement("div",{className:"bp3-dialog-footer"},e.createElement("div",{className:"bp3-dialog-footer-actions"},e.createElement("button",{className:"bp3-button",type:"button",onClick:this.closeDialog},"Cancel"),e.createElement("button",{className:"bp3-button "+i,type:"button",disabled:this.props.confirmInput&&"delete"!==this.state.input,onClick:this.closeDialogConfirm},this.props.dialogLabel||this.props.label)))))}{let s;if(this.state.confirming){let t,a={width:10*this.state.confirm+"%",backgroundColor:n.color,borderRadius:0,left:0};t=this.props.grouped?Ir.squareActionProgress:Ir.actionProgress,s=e.createElement("div",{className:"bp3-progress-bar bp3-no-stripes "+(this.props.progressClassName||""),style:t},e.createElement("div",{className:"bp3-progress-meter",style:a}))}return e.createElement("button",{className:"bp3-button "+a,style:n,type:"button",hidden:this.props.hidden,disabled:this.props.disabled,onMouseDown:t?void 0:this.confirm,onMouseUp:t?void 0:this.clearConfirm,onMouseLeave:t?void 0:this.clearConfirm,onClick:t?this.openDialog:void 0},this.props.label,s)}}}const Br={card:{padding:"10px",minWidth:"310px",maxWidth:"350px",width:"calc(100% - 20px)",margin:"30px auto"},card2:{padding:"5px",minWidth:"310px",maxWidth:"380px",width:"calc(100% - 20px)",margin:"30px auto"},status:{width:"180px",margin:"20px auto",fontSize:"16px"},item:{margin:"2px 0"},message:{margin:"0 0 10px 0"},license:{width:"100%",height:"130px",margin:"0 0 10px 0",resize:"none",fontFamily:'"Lucida Console", Monaco, monospace'},button:{width:"150px",margin:"5px"},button2:{width:"160px",margin:"5px"},button3:{width:"195px",margin:"5px"},buttons:{margin:"0 auto"}};class Fr extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,subscription:fr.subscription})},this.state={subscription:fr.subscription,update:!1,message:"",license:"",disabled:!1}}componentDidMount(){fr.addChangeListener(this.onChange),this.state.subscription.active||Vr(!0)}componentWillUnmount(){fr.removeChangeListener(this.onChange)}update(){return e.createElement("div",null,e.createElement("div",{className:"bp3-card bp3-elevation-2",style:Br.card},e.createElement("div",{className:"bp3-callout bp3-intent-success",style:Br.message,hidden:!this.state.message},this.state.message),e.createElement("textarea",{className:"bp3-input",style:Br.license,disabled:this.state.disabled,placeholder:"New License Key",value:this.state.license,onChange:e=>{this.setState({...this.state,license:e.target.value})}}),e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-intent-danger bp3-icon-cross",style:Br.button,disabled:this.state.disabled,onClick:()=>{this.setState({...this.state,update:!1,license:""})}},"Cancel"),e.createElement("button",{className:"bp3-button bp3-intent-primary bp3-icon-endorsed",style:Br.button,disabled:this.state.disabled,onClick:()=>{this.setState({...this.state,disabled:!0}),Dr(this.state.license).then((()=>{this.setState({...this.state,disabled:!1,update:!1,license:""})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"Update License"))))}activate(){return e.createElement("div",null,e.createElement("div",{className:"bp3-card bp3-elevation-2",style:Br.card},e.createElement("div",{className:"bp3-callout bp3-intent-success",style:Br.message,hidden:!this.state.message},this.state.message),e.createElement("textarea",{className:"bp3-input",style:Br.license,disabled:this.state.disabled,placeholder:"License Key",value:this.state.license,onChange:e=>{this.setState({...this.state,license:e.target.value})}}),e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-intent-primary bp3-icon-endorsed",style:Br.button,disabled:this.state.disabled,onClick:()=>{this.setState({...this.state,disabled:!0}),Dr(this.state.license).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"Activate License"),e.createElement(Er.Z,{label:"Pritunl Cloud",image:"https://objectstorage.us-ashburn-1.oraclecloud.com/n/pritunl8472/b/pritunl-static/o/logo_stripe.png",allowRememberMe:!1,zipCode:!0,amount:5e3,name:"Pritunl Cloud - 7 Day Trial",description:"Subscribe to Cloud ($50/month)",panelLabel:"Subscribe",token:e=>{this.setState({...this.state,disabled:!0}),function(e,t,n){let a=(new Nr).loading();return new Promise(((s,i)=>{vn.post("https://app.pritunl.com/subscription").send({plan:e,card:t,email:n}).set("Accept","application/json").end(((e,t)=>(a.done(),t&&401===t.status?(window.location.href="/login",void s("")):e?(Ui(t,"Failed to checkout"),void i(e)):(s(t.body.msg),void Vr(!0)))))}))}("cloud",e.id,e.email).then((e=>{this.setState({...this.state,disabled:!1,message:e})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},onScriptError:e=>{Ki("Failed to load Stripe Checkout")},stripeKey:"pk_live_plmoOl3lS3k5dMNQViZWGfVR"},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-credit-card",style:Br.button,disabled:this.state.disabled},"Subscribe")))))}reactivate(){let t,n,a=this.state.subscription,s=a.cancel_at_period_end||"canceled"===a.status,i=a.cancel_at_period_end?"canceled":a.status,r=Pr(a.period_end),o=Pr(a.trial_end);return a.balance<0?(t=Tr(-1*a.balance),n="Credit"):(t=Tr(a.balance),n="Balance"),e.createElement("div",null,e.createElement("div",{className:"bp3-card bp3-elevation-2",style:Br.card2},e.createElement("div",{className:"bp3-callout bp3-intent-success",style:Br.message,hidden:!this.state.message},this.state.message),e.createElement("div",{className:"layout vertical",style:Br.status},e.createElement("div",{className:"layout horizontal"},e.createElement("div",{className:"flex"},"Status:"),e.createElement("div",null,Ar(i))),e.createElement("div",{className:"layout horizontal",style:Br.item},e.createElement("div",{className:"flex"},"Plan:"),e.createElement("div",null,Ar(a.plan))),e.createElement("div",{className:"layout horizontal",style:Br.item},e.createElement("div",{className:"flex"},"Amount:"),e.createElement("div",null,Tr(a.amount))),e.createElement("div",{className:"layout horizontal",style:Br.item},e.createElement("div",{className:"flex"},"Quantity:"),e.createElement("div",null,a.quantity)),e.createElement("div",{className:"layout horizontal",style:Br.item,hidden:!a.balance},e.createElement("div",{className:"flex"},n,":"),e.createElement("div",null,t)),e.createElement("div",{className:"layout horizontal",style:Br.item,hidden:""===r},e.createElement("div",{className:"flex"},s?"Ends":"Renew",":"),e.createElement("div",null,r)),e.createElement("div",{className:"layout horizontal",style:Br.item,hidden:""===o},e.createElement("div",{className:"flex"},"Trial Ends:"),e.createElement("div",null,o))),e.createElement("div",{className:"layout horizontal center-justified"},e.createElement(Rr,{className:"bp3-intent-danger bp3-icon-disable",progressClassName:"bp3-intent-danger",style:Br.button2,disabled:this.state.disabled,hidden:s,label:"End Subscription",onConfirm:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("https://app.pritunl.com/subscription").send({key:e}).set("Accept","application/json").end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to cancel subscription"),void a(e)):(n(),void Vr(!0)))))}))}(this.state.subscription.url_key).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}}),e.createElement(Er.Z,{label:"Pritunl Cloud",image:"https://objectstorage.us-ashburn-1.oraclecloud.com/n/pritunl8472/b/pritunl-static/o/logo_stripe.png",allowRememberMe:!1,zipCode:!0,amount:s&&"active"!==a.status?5e3:0,name:"Pritunl Cloud",description:s?"Reactivate Subscription ($50/month)":"Update Payment Information",panelLabel:s?"Reactivate":"Update",token:e=>{this.setState({...this.state,disabled:!0}),function(e,t,n,a){let s=(new Nr).loading();return new Promise(((i,r)=>{vn.put("https://app.pritunl.com/subscription").send({key:e,plan:t,card:n,email:a}).set("Accept","application/json").end(((e,t)=>(s.done(),t&&401===t.status?(window.location.href="/login",void i()):e?(Ui(t,"Failed to update payment"),void r(e)):(i(),void Vr(!0)))))}))}(this.state.subscription.url_key,"cloud",e.id,e.email).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},onScriptError:e=>{Ki("Failed to load Stripe Checkout")},stripeKey:"pk_live_plmoOl3lS3k5dMNQViZWGfVR"},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-credit-card",style:s?Br.button3:Br.button2,disabled:this.state.disabled},s?"Reactivate Subscription":"Update Payment"))),e.createElement("div",{className:"layout horizontal center-justified"},e.createElement(Rr,{className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",style:Br.button2,disabled:this.state.disabled,label:"Remove License",onConfirm:()=>{this.setState({...this.state,disabled:!0}),Dr("").then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}}),e.createElement("button",{className:"bp3-button bp3-intent-primary bp3-icon-endorsed",style:Br.button2,disabled:this.state.disabled,onClick:()=>{this.setState({...this.state,update:!0})}},"Update License"))))}render(){return this.state.update?this.update():this.state.subscription.status?this.reactivate():this.activate()}}const Xr="user.sync",Kr="user.traverse",Ur="user.filter",Gr="user.load",jr="user.unload";const Wr=new class extends hr{constructor(){super(...arguments),this._users=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._users=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this.emitChange()}get users(){return this._users}get usersM(){let e=[];return this._users.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||50}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}user(e){let t=this._map[e];return void 0===t?null:this._users[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&(e.type!==this._filter.type||e.administrator!==this._filter.administrator||e.disabled!==this._filter.disabled||e.role!==this._filter.role))&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/user/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to load user"),void a(e)):(lr.dispatch({type:Gr,data:{user:s.body}}),void n()))))}))}function qr(){let e=zr();Yr=e;let t=(new Nr).loading();return new Promise(((n,a)=>{vn.get("/user").query({...Wr.filter,page:Wr.page,page_count:Wr.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Yr){if(s)return Ui(i,"Failed to load users"),void a(s);lr.dispatch({type:Xr,data:{users:i.body.users,count:i.body.count}}),n()}else n()}))}))}function Jr(e){return lr.dispatch({type:Kr,data:{page:e}}),qr()}function $r(e){return lr.dispatch({type:Ur,data:{filter:e}}),qr()}function eo(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/user").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete users"),void a(e)):void n())))}))}kr.register((e=>{if("user.change"===e.type)$i||qr()}));const to="audit.sync",no="audit.traverse";const ao=new class extends hr{constructor(){super(...arguments),this._audits=Object.freeze([]),this._token=lr.register(this._callback.bind(this))}_reset(){this._userId=void 0,this._audits=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._count=void 0,this.emitChange()}get userId(){return this._userId}get audits(){return this._audits}get auditsM(){let e=[];return this._audits.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||10}get pages(){return Math.ceil(this.count/this.pageCount)}get count(){return this._count||0}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_sync(e,t,n){this._userId=e;for(let e=0;e{vn.get("/audit/"+e).query({page:ao.page,page_count:ao.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).end(((i,r)=>{if(n.done(),r&&401===r.status)return window.location.href="/login",void a();if(t===so){if(i)return Ui(r,"Failed to load audits"),void s(i);lr.dispatch({type:to,data:{userId:e,audits:r.body.audits,count:r.body.count}}),a()}else a()}))}))}function ro(){return io(ao.userId)}function oo(e){return lr.dispatch({type:no,data:{page:e}}),ro()}kr.register((e=>{if("audit.change"===e.type)$i||ro()}));const lo={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},type:{verticalAlign:"top",display:"table-cell",padding:"9px"},lastActivity:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},tag:{margin:"8px 5px 0 5px",height:"20px"},nameLink:{margin:"0 5px 0 0"}};class co extends e.Component{render(){let t=this.props.user,n=[];for(let a of t.roles||[])n.push(e.createElement("div",{className:"bp3-tag bp3-intent-primary",style:lo.tag,key:a},a));let a,s={...lo.card};switch(t.disabled&&(s.opacity=.6),t.type){case"local":a="Local";break;case"google":a="Google";break;case"onelogin":a="OneLogin";break;case"okta":a="Okta";break;case"authzero":a="Auth0";break;case"azure":a="Azure";break;case"jumpcloud":a="JumpCloud";break;case"api":a="API";break;default:a=t.type}return e.createElement("div",{className:"bp3-card bp3-row",style:s},e.createElement("div",{className:"bp3-cell",style:lo.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox",style:lo.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"})),e.createElement(pn,{to:"/user/"+t.id,style:lo.nameLink},t.username))),e.createElement("div",{className:"bp3-cell",style:lo.type},a),e.createElement("div",{className:"bp3-cell",style:lo.lastActivity},Hr(t.last_active)||"Inactive"),e.createElement("div",{className:"flex bp3-cell",style:lo.roles},e.createElement("span",{className:"bp3-tag bp3-intent-danger",style:lo.tag,hidden:!t.administrator},"admin"),n))}}class ho extends e.Component{render(){return e.createElement("div",{className:"bp3-input-group",style:this.props.style},e.createElement("span",{className:"bp3-icon bp3-icon-search"}),e.createElement("input",{className:"bp3-input bp3-round",type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:this.props.placeholder,value:this.props.value||"",onChange:e=>{this.props.onChange(e.target.value)}}))}}class uo extends e.Component{render(){let t={...this.props.style};return null!==this.props.checked&&void 0!==this.props.checked||(t.opacity=.5),e.createElement("label",{className:"bp3-control bp3-switch",style:t},e.createElement("input",{type:"checkbox",checked:!!this.props.checked,onChange:this.props.onToggle}),e.createElement("span",{className:"bp3-control-indicator"}),this.props.label)}}const po={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class mo extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){return null===this.props.filter?e.createElement("div",null):e.createElement("div",{className:"layout horizontal wrap",style:po.filters},e.createElement(ho,{style:po.input,placeholder:"User ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:po.input,placeholder:"Username",value:this.props.filter.username,onChange:e=>{let t={...this.props.filter};e?t.username=e:delete t.username,this.props.onFilter(t)}}),e.createElement(ho,{style:po.role,placeholder:"Role",value:this.props.filter.role,onChange:e=>{let t={...this.props.filter};e?t.role=e:delete t.role,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:po.type},e.createElement("select",{value:this.props.filter.type||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.type:t.type=n,this.props.onFilter(t)}},e.createElement("option",{value:"any"},"Any"),e.createElement("option",{value:"local"},"Local"),e.createElement("option",{value:"azure"},"Azure"),e.createElement("option",{value:"google"},"Google"),e.createElement("option",{value:"onelogin"},"OneLogin"),e.createElement("option",{value:"okta"},"Okta"),e.createElement("option",{value:"api"},"API"))),e.createElement(uo,{style:po.check,label:"Administrator",checked:this.props.filter.administrator,onToggle:()=>{let e={...this.props.filter};void 0===e.administrator?e.administrator=!0:!0===e.administrator?e.administrator=!1:delete e.administrator,this.props.onFilter(e)}}),e.createElement(uo,{style:po.check,label:"Disabled",checked:this.props.filter.disabled,onToggle:()=>{let e={...this.props.filter};void 0===e.disabled?e.disabled=!0:!0===e.disabled?e.disabled=!1:delete e.disabled,this.props.onFilter(e)}}))}}const fo={page:{margin:"0 auto",padding:"30px 20px",minWidth:"200px",maxWidth:"1100px"},pageWide:{margin:"0 auto",padding:"30px 20px",minWidth:"200px",maxWidth:"1250px"}};class vo extends e.Component{render(){return e.createElement("div",{style:this.props.wide?fo.pageWide:fo.page},this.props.children)}}const go={header:{fontSize:"24px",paddingBottom:"8px",marginBottom:"20px",borderBottomStyle:"solid"},label:{margin:0}};class bo extends e.Component{render(){let t;return this.props.label&&(t=e.createElement("h2",{style:go.label},this.props.label)),e.createElement("div",{className:"bp3-border",style:go.header},t,this.props.children)}}const yo={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class _o extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:Wr.page,pageCount:Wr.pageCount,pages:Wr.pages,count:Wr.count})},this.state={page:Wr.page,pageCount:Wr.pageCount,pages:Wr.pages,count:Wr.count}}componentDidMount(){Wr.addChangeListener(this.onChange)}componentWillUnmount(){Wr.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{Jr(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{Jr(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:yo.button,disabled:0===t,type:"button",onClick:()=>{Jr(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:yo.button,disabled:t===n-1,type:"button",onClick:()=>{Jr(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{Jr(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const wo={users:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},usersBox:{width:"100%",overflowY:"auto"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class Co extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=Wr.users,t={},n=this.state.selected;e.forEach((e=>{n[e.id]&&(t[e.id]=!0)})),this.setState({...this.state,users:e,filter:Wr.filter,selected:t})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),eo(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={users:Wr.users,filter:Wr.filter,selected:{},lastSelected:null,disabled:!1}}get selected(){for(let e in this.state.selected)if(this.state.selected[e])return!0;return!1}componentDidMount(){Wr.addChangeListener(this.onChange),oo(0),qr()}componentWillUnmount(){Wr.removeChangeListener(this.onChange)}render(){let t=[];this.state.users.forEach((n=>{t.push(e.createElement(co,{key:n.id,user:n,selected:!!this.state.selected[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.users;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})}}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(n+="bp3-active");let a=[];for(let e of Object.keys(this.state.selected)){let t=Wr.user(e);t?a.push(t.username||e):a.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:wo.header},e.createElement("h2",{style:wo.heading},"Users"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:wo.buttons},e.createElement("button",{className:n,style:wo.button,type:"button",onClick:()=>{null===this.state.filter?$r({}):$r(null)}},"Filters"),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:wo.button,confirmMsg:"Permanently delete the selected users",confirmInput:!0,items:a,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete}),e.createElement(pn,{className:"bp3-button bp3-intent-success bp3-icon-add",style:wo.button,to:"/user"},"New")))),e.createElement(mo,{filter:this.state.filter,onFilter:e=>{$r(e)}}),e.createElement("div",{style:wo.usersBox},e.createElement("div",{style:wo.users},t)),e.createElement(_o,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const Eo="session.sync",So="session.show_removed";const ko=new class extends hr{constructor(){super(...arguments),this._sessions=Object.freeze([]),this._token=lr.register(this._callback.bind(this))}_reset(){this._userId=void 0,this._showRemoved=void 0,this._sessions=Object.freeze([]),this.emitChange()}get userId(){return this._userId}get sessions(){return this._sessions}get sessionsM(){let e=[];return this._sessions.forEach((t=>{e.push({...t})})),e}get showRemoved(){return this._showRemoved}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e,t){this._userId=e;for(let e=0;e{vn.get("/session/"+e).query({show_removed:ko.showRemoved}).set("Accept","application/json").set("Csrf-Token",Wi).end(((i,r)=>{if(n.done(),r&&401===r.status)return window.location.href="/login",void a();if(t===zo){if(i)return Ui(r,"Failed to load sessions"),void s(i);lr.dispatch({type:Eo,data:{userId:e,sessions:r.body}}),a()}else a()}))}))}function xo(){return Mo(ko.userId)}kr.register((e=>{if("session.change"===e.type)$i||xo()}));const Ao={state:{height:"auto"}};class To extends e.Component{constructor(e,t){super(e,t),this.state={initialized:!1}}componentDidMount(){this.timeout=window.setTimeout((()=>{this.setState({...this.state,initialized:!0})}),700)}componentWillUnmount(){this.timeout&&window.clearTimeout(this.timeout)}render(){let t;return this.props.description&&(t=e.createElement("div",{className:"bp3-non-ideal-state-description"},this.props.description)),e.createElement("div",{className:"bp3-non-ideal-state",style:Ao.state,hidden:this.props.hidden||!this.state.initialized},e.createElement("div",{className:"bp3-non-ideal-state-visual bp3-non-ideal-state-icon"},e.createElement("span",{className:"bp3-icon "+this.props.iconClass})),e.createElement("h4",{className:"bp3-non-ideal-state-title"},this.props.title),t)}}function Lo(e){return e.continent&&e.continent_code?e.continent+(e.continent_code&&"XX"!==e.continent_code?" ("+e.continent_code+")":""):e.continent||e.continent_code||"Unknown"}function Po(e){return(e.city&&"Unknown"!==e.city?e.city+", ":"")+(e.region||"Unknown")+(e.region_code&&"XX"!==e.region_code?" ("+e.region_code+")":"")}function Ho(e){return(e.country||"Unknown")+(e.country_code&&"XX"!==e.country_code?" ("+e.country_code+")":"")}function No(e){return e.latitude&&e.longitude?e.latitude+", "+e.longitude:"Unknown"}const Oo={cursor:"pointer",marginLeft:"3px"},Vo={cursor:"pointer",marginLeft:"3px",opacity:.7},Do={cursor:"pointer",marginLeft:"3px",opacity:.5};class Io extends e.Component{constructor(e,t){super(e,t),this.state={hover:!1,click:!1,copied:!1}}render(){let t;t=this.state.click&&!this.state.copied?Do:this.state.hover&&!this.state.copied?Vo:Oo;let n="bp3-icon-standard";return this.state.copied?n+=" bp3-icon-tick bp3-intent-success":n+=" bp3-icon-clipboard",e.createElement("span",{ref:e=>this.elem=e,className:n,style:t,onMouseEnter:()=>{this.setState({...this.state,hover:!0})},onMouseLeave:()=>{this.setState({...this.state,hover:!1,click:!1})},onMouseDown:()=>{this.setState({...this.state,click:!0})},onMouseUp:()=>{this.setState({...this.state,click:!1})},onClick:()=>{this.setState({...this.state,copied:!0}),setTimeout((()=>{this.setState({...this.state,copied:!1})}),1200);let e=document.createElement("input");if(e.contentEditable="true",e.readOnly=!0,e.style.position="absolute",e.style.width="1px",e.style.height="1px",e.style.padding="0px",e.style.border="none",e.style.opacity="0",e.value=this.props.value,this.elem.parentElement.append(e),"iOS"===tr){let t=document.createRange();t.selectNodeContents(e);let n=window.getSelection();n.removeAllRanges(),n.addRange(t),e.setSelectionRange(0,999999)}else e.select();document.execCommand("copy"),e.remove()}})}}const Ro={label:{width:"100%",maxWidth:"320px"},value:{wordWrap:"break-word"},item:{marginBottom:"5px"},bar:{maxWidth:"280px"},copy:{cursor:"pointer",marginLeft:"3px"},copyHover:{cursor:"pointer",marginLeft:"3px",opacity:.7}};class Bo extends e.Component{render(){let t,n=[],a=[];for(let t of this.props.fields||[]){if(null==t)continue;let a,s;if("string"==typeof t.value)a=t.value,t.copy&&(s=e.createElement(Io,{value:t.value}));else if("number"==typeof t.value)a=t.value.toString(),t.copy&&(s=e.createElement(Io,{value:t.value.toString()}));else{a=[];for(let n=0;n{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/session/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete session"),void a(e)):void n())))}))}(this.props.session.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1}}render(){let t=this.props.session,n=t.agent||{},a={...Fo.card};return t.removed&&(a.opacity=.6),e.createElement("div",{className:"bp3-card",style:a},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Fo.group},e.createElement("div",{style:Fo.remove},e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-trash",type:"button",hidden:t.removed,disabled:this.state.disabled,onClick:this.onDelete})),e.createElement(Bo,{style:Fo.info,fields:[{label:"ID",value:t.id||"None"},{label:"Created",value:Lr(t.timestamp)||"Unknown"},{label:"Last Active",value:Lr(t.last_active)||"Unknown"}]})),e.createElement("div",{style:Fo.group},e.createElement(Bo,{style:Fo.info,fields:[{label:"Session Type",value:nr[t.type]||"Unknown"},{label:"Browser",value:(ar[n.operating_system]||"Unknown")+" "+(sr[n.browser]||"Unknown")},{label:"ISP",value:n.isp||"Unknown"}]})),e.createElement("div",{style:Fo.group},e.createElement(Bo,{style:Fo.info,fields:[{label:"Location",value:[Po(n),Ho(n),Lo(n)]},{label:"Coordinates",value:No(n)}]}))))}}const Ko={header:{marginTop:"5px"},heading:{margin:"19px 0 0 0"},button:{margin:"15px 0 -5px 0"}};class Uo extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,sessions:ko.sessions})},this.state={sessions:ko.sessions,showEnded:!1,disabled:!1}}componentDidMount(){var e;ko.addChangeListener(this.onChange),this.props.userId&&(e=this.props.userId,lr.dispatch({type:So,data:{showRemoved:!1}}),Mo(e))}componentWillUnmount(){ko.removeChangeListener(this.onChange)}render(){if(!this.props.userId)return e.createElement("div",null);let t=[];return this.state.sessions.forEach((n=>{n.removed&&!this.state.showEnded||t.push(e.createElement(Xo,{key:n.id,session:n}))})),e.createElement("div",null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Ko.header},e.createElement("h2",{style:Ko.heading},"User Sessions"),e.createElement("div",{className:"flex"}),e.createElement("div",null,e.createElement("button",{className:"bp3-button bp3-minimal",style:Ko.button,type:"button",onClick:()=>{var e;this.setState({...this.state,showEnded:!this.state.showEnded}),e=!this.state.showEnded,lr.dispatch({type:So,data:{showRemoved:e}}),xo()}},(this.state.showEnded?"Hide":"Show")+" ended sessions")))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-user",title:"No sessions"}))}}function Go(e){const t="==".slice(0,(4-e.length%4)%4),n=e.replace(/-/g,"+").replace(/_/g,"/")+t,a=atob(n),s=new ArrayBuffer(a.length),i=new Uint8Array(s);for(let e=0;eYo(e,t[0],n)));if(t instanceof Object){const a={};for(const[s,i]of Object.entries(t)){if(i.deriveFn){const e=i.deriveFn(n);void 0!==e&&(n[s]=e)}if(s in n)null!=n[s]?a[s]=Yo(e,i.schema,n[s]):a[s]=null;else if(i.required)throw new Error(`Missing key: ${s}`)}return a}}function Zo(e,t){return{required:!0,schema:e,deriveFn:t}}function qo(e){return{required:!0,schema:e}}function Jo(e){return{required:!1,schema:e}}var $o={type:qo(Wo),id:qo(Qo),transports:Jo(Wo)},el={appid:Jo(Wo),appidExclude:Jo(Wo),credProps:Jo(Wo)},tl={appid:Jo(Wo),appidExclude:Jo(Wo),credProps:Jo(Wo)},nl={publicKey:qo({rp:qo(Wo),user:qo({id:qo(Qo),name:qo(Wo),displayName:qo(Wo)}),challenge:qo(Qo),pubKeyCredParams:qo(Wo),timeout:Jo(Wo),excludeCredentials:Jo([$o]),authenticatorSelection:Jo(Wo),attestation:Jo(Wo),extensions:Jo(el)}),signal:Jo(Wo)},al={type:qo(Wo),id:qo(Wo),rawId:qo(Qo),response:qo({clientDataJSON:qo(Qo),attestationObject:qo(Qo),transports:Zo(Wo,(e=>e.getTransports?.()||[]))}),clientExtensionResults:Zo(tl,(e=>e.getClientExtensionResults()))};Jo(Wo),qo({challenge:qo(Qo),timeout:Jo(Wo),rpId:Jo(Wo),allowCredentials:Jo([$o]),userVerification:Jo(Wo),extensions:Jo(el)}),Jo(Wo),qo(Wo),qo(Wo),qo(Qo),qo({clientDataJSON:qo(Qo),authenticatorData:qo(Qo),signature:qo(Qo),userHandle:qo(Qo)}),Zo(tl,(e=>e.getClientExtensionResults()));async function sl(e){const t=await navigator.credentials.create(function(e){return Yo(Go,nl,e)}(e));return function(e){return Yo(jo,al,e)}(t)}const il="device.sync";const rl=new class extends hr{constructor(){super(...arguments),this._devices=Object.freeze([]),this._token=lr.register(this._callback.bind(this))}get userId(){return this._userId}get devices(){return this._devices}get devicesM(){let e=[];return this._devices.forEach((t=>{e.push({...t})})),e}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e,t){this._userId=e;for(let e=0;e{vn.get("/device/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((i,r)=>{if(n.done(),r&&401===r.status)return window.location.href="/login",void a();if(t===ol){if(i)return Ui(r,"Failed to load devices"),void s(i);lr.dispatch({type:il,data:{userId:e,devices:r.body}}),a()}else a()}))}))}kr.register((e=>{if("device.change"===e.type)ll(rl.userId)}));const cl={box:{position:"relative",display:"inline"},content:{padding:"20px"},button:{position:"absolute",top:"-7px",left:"-2px",padding:"7px",background:"none",opacity:.3},popover:{width:"230px"},popoverTarget:{top:"9px",left:"18px"},dialog:{maxWidth:"400px",margin:"30px 20px"},inputFirst:{width:"100%",marginTop:"15px"},input:{width:"100%",marginTop:"5px"}};class hl extends e.Component{constructor(e,t){super(e,t),this.autoSelect=e=>{e.currentTarget.select()},this.state={popover:!1}}render(){let t,n=[];for(let t=0;t<(this.props.examples||[]).length;t++)n.push(e.createElement("input",{key:"example-"+t,className:"bp3-input",style:0===t?cl.inputFirst:cl.input,disabled:!1,readOnly:!0,type:"text",autoCapitalize:"off",spellCheck:!1,value:this.props.examples[t],onClick:this.autoSelect}));return this.state.popover&&(t=e.createElement(ra,{title:this.props.title,style:cl.dialog,isOpen:this.state.popover,usePortal:!0,portalContainer:document.body,onClose:()=>{this.setState({...this.state,popover:!1})}},e.createElement("div",{className:"bp3-dialog-body"},this.props.content,n),e.createElement("div",{className:"bp3-dialog-footer"},e.createElement("div",{className:"bp3-dialog-footer-actions"},e.createElement("button",{className:"bp3-button",type:"button",onClick:()=>{this.setState({...this.state,popover:!this.state.popover})}},"Close"))))),e.createElement("div",{style:cl.box},e.createElement("div",{className:"bp3-button bp3-minimal bp3-icon-help",style:cl.button,onClick:()=>{this.setState({...this.state,popover:!this.state.popover})}}),t)}}const dl={label:{display:"inline-block"}};class ul extends e.Component{render(){return e.createElement("div",{hidden:this.props.hidden},e.createElement("label",{className:"bp3-control bp3-switch",style:dl.label},e.createElement("input",{type:"checkbox",disabled:this.props.disabled,checked:!!this.props.checked,onChange:this.props.onToggle}),e.createElement("span",{className:"bp3-control-indicator"}),this.props.label),e.createElement(hl,{title:this.props.label,content:this.props.help}))}}const pl={message:{marginTop:"6px"},messageWrap:{marginTop:"6px",marginRight:"10px"},box:{marginTop:"15px"},button:{marginLeft:"10px"},buttonWrap:{marginLeft:"10px",marginBottom:"10px"},buttonWrapFirst:{marginBottom:"10px"},buttons:{flexShrink:0}};class ml extends e.Component{render(){let t=this.props.light?null:pl.box;this.props.style&&(t={...t,...this.props.style});let n,a,s;return this.props.wrap?(n=pl.buttonWrap,a=pl.buttonWrapFirst,s=pl.messageWrap):(n=pl.button,a=pl.button,s=pl.message),e.createElement("div",{className:"layout horizontal"+(this.props.wrap?" wrap":""),style:t,hidden:this.props.hidden&&!this.props.children},this.props.children,e.createElement("div",{className:"flex"}),e.createElement("div",{className:"layout horizontal"},e.createElement("span",{style:s,hidden:!this.props.message},this.props.message),e.createElement("div",{style:pl.buttons},e.createElement("button",{className:"bp3-button bp3-icon-cross",style:a,hidden:this.props.hidden,type:"button",disabled:!this.props.changed||this.props.disabled,onClick:this.props.onCancel},"Cancel"),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-tick",style:n,hidden:this.props.hidden,type:"button",disabled:!this.props.changed||this.props.disabled,onClick:this.props.onSave},"Save"))))}}const fl={label:{width:"100%",maxWidth:"280px"},labelNarrow:{width:"100%",maxWidth:"220px"},input:{width:"100%"}};class vl extends e.Component{constructor(){super(...arguments),this.autoSelect=e=>{e.currentTarget.select()}}render(){let t=this.props.value;return t=isNaN(t)?this.props.value||"":this.props.value,e.createElement("label",{className:"bp3-label",style:this.props.narrow?fl.labelNarrow:fl.label,hidden:this.props.hidden},this.props.label,e.createElement(hl,{title:this.props.label,content:this.props.help}),e.createElement("input",{className:"bp3-input",style:fl.input,type:this.props.type,disabled:this.props.disabled,readOnly:this.props.readOnly,autoCapitalize:"off",spellCheck:!1,placeholder:this.props.placeholder,value:t,onClick:this.props.autoSelect?this.autoSelect:null,onChange:e=>{this.props.onChange&&this.props.onChange(e.target.value)}}))}}const gl={card:{position:"relative",padding:"10px",marginBottom:"5px"},info:{marginBottom:"-5px"},group:{flex:1,minWidth:"250px"},inputGroup:{marginBottom:"11px",width:"100%",maxWidth:"280px"},remove:{position:"absolute",top:"5px",right:"5px"},controlButton:{marginRight:"10px"},save:{paddingTop:"10px"}};class bl extends e.Component{constructor(e,t){super(e,t),this.onTestAlert=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/device/"+e+"/alert").set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to send test alert"),void a(e)):void n())))}))}(this.props.device.id).then((()=>{Fi("Test alert sent"),this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/device/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save device"),void a(e)):void n())))}))}(this.state.device).then((()=>{Fi("Device name updated"),this.setState({...this.state,disabled:!1,changed:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,changed:!1,device:null})}),1e3)})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/device/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete device"),void a(e)):void n())))}))}(this.props.device.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",device:null}}set(e,t){let n;n=this.state.changed?{...this.state.device}:{...this.props.device},n[e]=t,this.setState({...this.state,changed:!0,device:n})}toggleLevel(e){let t;t=this.state.changed?{...this.state.device}:{...this.props.device};let n=Object.assign([],t.alert_levels||[]),a=n.indexOf(e);-1!==a?n.splice(a,1):n.push(e),t.alert_levels=n,this.setState({...this.state,changed:!0,device:t})}render(){let t=this.state.device||this.props.device,n="phone"===this.props.device.mode,a="Unknown";switch(t.type){case"webauthn":a="WebAuthn";break;case"u2f":a="U2F";break;case"call":a="Call";break;case"message":a="SMS"}let s,i="Unknown";switch(t.mode){case"secondary":i="Secondary";break;case"phone":i="Phone"}t.wan_rp_id?s={label:"WebAuthn Domain",value:t.wan_rp_id}:"call"!==t.type&&"message"!==t.type||(s={label:"Phone Number",value:t.number});let r="bp3-icon-phone";"message"===t.type&&(r="bp3-icon-mobile-phone");let o,l,c,h={...gl.card};return t.disabled&&(h.opacity=.6),n?(o=[{label:"ID",value:t.id||"None"}],l=[{label:"Type",value:a},{label:"Mode",value:i},s,{label:"Registered",value:Lr(t.timestamp)||"Unknown"},{label:"Last Active",value:Lr(t.last_active)||"Unknown"}]):(o=[{label:"ID",value:t.id||"None"},{label:"Type",value:a},s],l=[{label:"Mode",value:i},{label:"Registered",value:Lr(t.timestamp)||"Unknown"},{label:"Last Active",value:Lr(t.last_active)||"Unknown"}]),n&&(c=e.createElement(Rr,{label:"Send Test Alert",className:"bp3-intent-success "+r,progressClassName:"bp3-intent-success",style:gl.controlButton,disabled:this.state.disabled,onConfirm:()=>{this.onTestAlert()}})),e.createElement("div",{className:"bp3-card",style:h},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:gl.group},e.createElement("div",{style:gl.remove},e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",confirmMsg:"Confirm device remove",disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Device Name",help:"Name of device.",type:"text",placeholder:"Enter name",disabled:this.state.disabled,value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(ul,{label:"Low alerts",help:"Recieve low level alerts on this device.",hidden:!n,disabled:this.state.disabled,checked:-1!==(t.alert_levels||[]).indexOf(1),onToggle:()=>{this.toggleLevel(1)}}),e.createElement(ul,{label:"Medium alerts",help:"Recieve medium level alerts on this device.",hidden:!n,disabled:this.state.disabled,checked:-1!==(t.alert_levels||[]).indexOf(5),onToggle:()=>{this.toggleLevel(5)}}),e.createElement(ul,{label:"High alerts",help:"Recieve high level alerts on this device.",hidden:!n,disabled:this.state.disabled,checked:-1!==(t.alert_levels||[]).indexOf(10),onToggle:()=>{this.toggleLevel(10)}}),e.createElement(Bo,{style:gl.info,fields:o})),e.createElement("div",{style:gl.group},e.createElement(Bo,{style:gl.info,fields:l}))),e.createElement(ml,{style:gl.save,hidden:!this.state.device&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,device:null})},onSave:this.onSave},c))}}const yl={header:{marginTop:"5px"},heading:{margin:"19px 0 0 0"},button:{margin:"15px 0 -5px 0"},group:{marginTop:"18px"},groupBox:{},inputBox:{flex:"1"}};class _l extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,devices:rl.devices})},this.wanRegister=()=>{this.setState({...this.state,disabled:!0});let e=(new Nr).loading();vn.get("/device/"+rl.userId+"/webauthn/register").set("Accept","application/json").set("Csrf-Token",Wi).end(((t,n)=>{e.done(),t?Ui(n,"Failed to request device registration"):this.wanCreate(n.body.token,n.body.options)}))},this.wanCreate=(e,t)=>{sl(t).then((t=>{t.name=this.state.deviceName,t.token=e,this.wanRespond(t)})).catch((e=>{Ui(e,"Failed to register device"),this.setState({...this.state,disabled:!1})}))},this.wanRespond=e=>{let t=(new Nr).loading();vn.post("/device/"+rl.userId+"/webauthn/register").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,n)=>{t.done(),this.setState({...this.state,disabled:!1,deviceName:""}),e?Ui(n,"Failed to register device"):Fi("Successfully registered device")}))},this.addDevice=()=>{if("phone_call"===this.state.deviceType||"phone_message"===this.state.deviceType){this.setState({...this.state,disabled:!0});let e=this.state.deviceType.split("_"),t=e[0],n=e[1];(function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/device").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create device"),void a(e)):void n())))}))})({id:null,user:this.props.userId,name:this.state.deviceName,type:n,mode:t,number:this.state.devicePhoneNumber}).then((()=>{this.setState({...this.state,disabled:!1,deviceName:"",devicePubKey:"",devicePhoneNumber:""}),Fi("Successfully registered device")})).catch((()=>{this.setState({...this.state,disabled:!1})}))}else this.wanRegister()},this.state={devices:rl.devices,deviceName:"",deviceType:"",devicePubKey:"",devicePhoneNumber:"",showEnded:!1,disabled:!1}}componentDidMount(){rl.addChangeListener(this.onChange),this.props.userId&&ll(this.props.userId)}componentWillUnmount(){rl.removeChangeListener(this.onChange)}render(){if(!this.props.userId)return e.createElement("div",null);let t=[];return this.state.devices.forEach((n=>{t.push(e.createElement(bl,{key:n.id,device:n}))})),e.createElement("div",null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:yl.header},e.createElement("h2",{style:yl.heading},"User Devices"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:yl.groupBox,className:"layout horizontal"},e.createElement("div",{className:"bp3-control-group",style:yl.group},e.createElement("div",{className:"bp3-select"},e.createElement("select",{value:this.state.deviceType,onChange:e=>{this.setState({...this.state,deviceType:e.target.value,devicePubKey:""})}},e.createElement("option",{value:"webauthn"},"WebAuthn"),e.createElement("option",{value:"phone_call"},"Phone (Call)"),e.createElement("option",{value:"phone_message"},"Phone (SMS)"))),e.createElement("div",{className:"layout horizontal",style:yl.inputBox},e.createElement("input",{className:"bp3-input",type:"text",placeholder:"Device name",value:this.state.deviceName,onChange:e=>{this.setState({...this.state,deviceName:e.target.value})},onKeyPress:e=>{"smart_card"!==this.state.deviceType&&"Enter"===e.key&&this.addDevice()}}),e.createElement("input",{className:"bp3-input",hidden:"phone_call"!==this.state.deviceType&&"phone_message"!==this.state.deviceType,type:"text",placeholder:"Device phone number",value:this.state.devicePhoneNumber,onChange:e=>{this.setState({...this.state,devicePhoneNumber:e.target.value})},onKeyPress:e=>{"Enter"===e.key&&this.addDevice()}})),e.createElement("div",null,e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",disabled:this.state.disabled,onClick:this.addDevice},"Add Device")))))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-id-number",title:"No devices"}))}}const wl={card:{position:"relative",padding:"10px",marginBottom:"5px"},info:{marginBottom:"-5px"},group:{flex:1,minWidth:"290px"}};class Cl extends e.Component{render(){let t=this.props.audit,n=t.agent||{},a=[];for(let e in t.fields)t.fields.hasOwnProperty(e)&&a.push(e+": "+t.fields[e]);return e.createElement("div",{className:"bp3-card",style:wl.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:wl.group},e.createElement(Bo,{style:wl.info,fields:[{label:"ID",value:t.id||"None"},{label:"Timestamp",value:Lr(t.timestamp)||"Unknown"},{label:"Fields",value:a}]})),e.createElement("div",{style:wl.group},e.createElement(Bo,{style:wl.info,fields:[{label:"Type",value:t.type},{label:"Operating System",value:ar[n.operating_system]||"Unknown"},{label:"Browser",value:sr[n.browser]||"Unknown"},{label:"ISP",value:n.isp||"Unknown"}]})),e.createElement("div",{style:wl.group},e.createElement(Bo,{style:wl.info,fields:[{label:"Location",value:[Po(n),Ho(n),Lo(n)]},{label:"Coordinates",value:No(n)}]}))))}}const El={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class Sl extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:ao.page,pageCount:ao.pageCount,pages:ao.pages,count:ao.count})},this.state={page:ao.page,pageCount:ao.pageCount,pages:ao.pages,count:ao.count}}componentDidMount(){ao.addChangeListener(this.onChange)}componentWillUnmount(){ao.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{oo(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{oo(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:El.button,disabled:0===t,type:"button",onClick:()=>{oo(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:El.button,disabled:t===n-1,type:"button",onClick:()=>{oo(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{oo(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const kl={header:{marginTop:"5px"},heading:{margin:"19px 0 0 0"}};class zl extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,audits:ao.audits})},this.state={audits:ao.audits,disabled:!1}}componentDidMount(){ao.addChangeListener(this.onChange),this.props.userId&&io(this.props.userId)}componentWillUnmount(){ao.removeChangeListener(this.onChange)}render(){if(!this.props.userId)return e.createElement("div",null);let t=[];return this.state.audits.forEach((n=>{t.push(e.createElement(Cl,{key:n.id,audit:n}))})),e.createElement("div",null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:kl.header},e.createElement("h2",{style:kl.heading},"User Audit Events"),e.createElement("div",{className:"flex"}))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-search-template",title:"No audit events"}),e.createElement(Sl,null))}}const Ml={panel:{flex:1,minWidth:"250px",padding:"0 10px"}};class xl extends e.Component{render(){return e.createElement("div",{className:this.props.className,style:Ml.panel,hidden:this.props.hidden},this.props.children)}}class Al extends e.Component{render(){return e.createElement("div",{className:"layout horizontal wrap"},this.props.children)}}const Tl={group:{marginBottom:"15px",width:"100%",maxWidth:"280px"},groupList:{marginTop:"5px",width:"100%",maxWidth:"280px"},groupTop:{width:"100%",maxWidth:"280px"},label:{width:"100%",maxWidth:"280px"},input:{width:"100%"},inputBox:{flex:"1"},buttonTop:{marginTop:"5px"}};class Ll extends e.Component{constructor(){super(...arguments),this.autoSelect=e=>{e.currentTarget.select()}}render(){let t="bp3-button";this.props.buttonClass&&(t+=" "+this.props.buttonClass);let n,a,s="";return this.props.labelTop?n=Tl.buttonTop:s=this.props.label||"",a=this.props.buttonConfirm?e.createElement(Rr,{className:t,style:n,disabled:this.props.disabled||this.props.buttonDisabled,onConfirm:this.props.onSubmit,label:s}):e.createElement("button",{className:t,style:n,disabled:this.props.disabled||this.props.buttonDisabled,onClick:this.props.onSubmit},s),this.props.labelTop?e.createElement("label",{className:"bp3-label",style:Tl.label,hidden:this.props.hidden},this.props.label,e.createElement(hl,{title:this.props.label,content:this.props.help}),e.createElement("div",{className:"bp3-control-group",style:Tl.groupTop,hidden:this.props.hidden},e.createElement("div",{style:Tl.inputBox},e.createElement("input",{className:"bp3-input",style:Tl.input,type:this.props.type,disabled:this.props.disabled,readOnly:this.props.readOnly,autoCapitalize:"off",spellCheck:!1,placeholder:this.props.placeholder,value:this.props.value||"",onClick:this.props.autoSelect?this.autoSelect:null,onChange:e=>{this.props.onChange&&this.props.onChange(e.target.value)},onKeyPress:e=>{"Enter"===e.key&&this.props.onSubmit()}})),e.createElement("div",null,a))):e.createElement("div",{className:"bp3-control-group",style:this.props.listStyle?Tl.groupList:Tl.group,hidden:this.props.hidden},e.createElement("div",{style:Tl.inputBox},e.createElement("input",{className:"bp3-input",style:Tl.input,type:this.props.type,disabled:this.props.disabled,readOnly:this.props.readOnly,autoCapitalize:"off",spellCheck:!1,placeholder:this.props.placeholder||"",value:this.props.value||"",onChange:e=>{this.props.onChange&&this.props.onChange(e.target.value)},onKeyPress:e=>{"Enter"===e.key&&this.props.onSubmit()}})),e.createElement("div",null,a))}}const Pl={label:{display:"inline-block"}};class Hl extends e.Component{render(){return e.createElement("div",{hidden:this.props.hidden},e.createElement("label",{className:"bp3-label",style:Pl.label},this.props.label,e.createElement(hl,{title:this.props.label,content:this.props.help}),e.createElement("div",{className:"bp3-select"},e.createElement("select",{disabled:this.props.disabled,value:this.props.value||"",onChange:e=>{this.props.onChange(e.target.value)}},this.props.children))))}}var Nl=M+"-datepicker",Ol=Nl+"-caption",Vl=Ol+"-measure",Dl=Nl+"-day-wrapper",Il=Nl+"-footer",Rl=Nl+"-month-select",Bl=Nl+"-year-select",Fl=Nl+"-navbar",Xl=Nl+"-timepicker-wrapper",Kl=M+"-daterangepicker",Ul=Kl+"-shortcuts",Gl=M+"-datetimepicker",jl=M+"-timepicker",Wl=jl+"-arrow-button",Ql=jl+"-arrow-row",Yl=jl+"-divider-text",Zl=jl+"-hour",ql=jl+"-input",Jl=jl+"-input-row",$l=jl+"-millisecond",ec=jl+"-minute",tc=jl+"-second",nc=jl+"-ampm-select";function ac(e,t){return sc(e,t)&&e.getDate()===t.getDate()}function sc(e,t){return null!=e&&null!=t&&e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear()}function ic(e,t){return null!=e&&null!=t&&e.getHours()===t.getHours()&&e.getMinutes()===t.getMinutes()&&e.getSeconds()===t.getSeconds()&&e.getMilliseconds()===t.getMilliseconds()}function rc(e){return new Date(e.getTime())}function oc(e,t,n){if(void 0===n&&(n=!1),null==e)return!1;var a=rc(e),s=rc(t[0]),i=rc(t[1]);return a.setHours(0,0,0,0),s.setHours(0,0,0,0),i.setHours(0,0,0,0),s<=a&&a<=i&&(!n||!ac(s,a)&&!ac(a,i))}function lc(e,t){return(null==e[0]||oc(e[0],t))&&(null==e[1]||oc(e[1],t))}var cc=function(e,t){return e.getTime()>=t.getTime()},hc=function(e,t){return e.getTime()<=t.getTime()};function dc(e,t,n){var a=mc(e),s=mc(t),i=mc(n),r=cc(a,s),o=hc(a,i);return hc(i,s)?r||o:r&&o}function uc(e,t,n){return ic(t,n)?n:dc(e,t,n)?e:function(e,t){var n=mc(e),a=mc(t);return cc(n,a)}(e,n)?n:t}function pc(e,t){return null==e?null:null==t?new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0):new Date(e.getFullYear(),e.getMonth(),e.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds())}function mc(e){return new Date(0,0,0,e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}function fc(e){if(e<0||e>23)throw new Error("hour must be between [0,23] inclusive: got "+e);return e>=12}function vc(e){if(e<0||e>23)throw new Error("hour must be between [0,23] inclusive: got "+e);var t=e%12;return 0===t?12:t}var gc=n(5727),bc="[Blueprint]",yc=bc+" defaultValue must be within minDate and maxDate bounds.",_c=bc+" initialMonth must be within minDate and maxDate bounds.",wc=bc+" maxDate must be later than minDate.",Cc=bc+" value prop must be within minDate and maxDate bounds.";yc.replace("DatePicker","DateRangePicker"),_c.replace("DatePicker","DateRangePicker"),wc.replace("DatePicker","DateRangePicker"),Cc.replace("DatePicker","DateRangePicker");function Ec(e,t){return e.lengthd&&g.push({value:p,disabled:!0}),this.displayedMonthText=c[u];var y=e.createElement(wa,{iconProps:{style:{right:this.state.monthRightOffset}},className:Rl,key:"month",minimal:!0,onChange:this.handleMonthSelectChange,value:u,options:v}),_=e.createElement(wa,{className:Bl,key:"year",minimal:!0,onChange:this.handleYearSelectChange,value:p,options:g}),w=this.props.reverseMonthAndYearMenus?[_,y]:[y,_];return e.createElement("div",{className:this.props.classNames.caption},e.createElement("div",{className:Ol,ref:function(e){return t.containerElement=e}},w),e.createElement(oa,null))},n.prototype.componentDidMount=function(){var e=this;this.requestAnimationFrame((function(){return e.positionArrows()}))},n.prototype.componentDidUpdate=function(){this.positionArrows()},n.prototype.positionArrows=function(){var e=function(e,t,n){if(void 0===t&&(t=""),void 0===n&&(n=document.body),null==n)return 0;var a=document.createElement("span");a.classList.add(t),a.textContent=e,n.appendChild(a);var s=a.offsetWidth;return a.remove(),s}(this.displayedMonthText,Vl,this.containerElement),t=null==this.containerElement?0:this.containerElement.firstElementChild.clientWidth,n=Math.max(2,t-e-Fn.SIZE_STANDARD-2);this.setState({monthRightOffset:n})},n.prototype.dateChangeHandler=function(e,t){var n=this;return function(a){var s,i,r=parseInt(a.target.value,10);if(!isNaN(r)){var o=rc(n.props.date);e(o,r),null===(i=(s=n.props).onDateChange)||void 0===i||i.call(s,o),null==t||t(r)}}},n=wn([In.polyfill],n)}(Hn);!function(e){e[e.JANUARY=0]="JANUARY",e[e.FEBRUARY=1]="FEBRUARY",e[e.MARCH=2]="MARCH",e[e.APRIL=3]="APRIL",e[e.MAY=4]="MAY",e[e.JUNE=5]="JUNE",e[e.JULY=6]="JULY",e[e.AUGUST=7]="AUGUST",e[e.SEPTEMBER=8]="SEPTEMBER",e[e.OCTOBER=9]="OCTOBER",e[e.NOVEMBER=10]="NOVEMBER",e[e.DECEMBER=11]="DECEMBER"}(Sc||(Sc={}));function zc(){var e=new Date;return e.setFullYear(e.getFullYear()-20),e.setMonth(Sc.JANUARY,1),e}var Mc,xc,Ac=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.handleNextClick=function(){return e.props.onNextClick()},e.handlePreviousClick=function(){return e.props.onPreviousClick()},e}return bn(n,t),n.prototype.render=function(){var t=this.props,n=t.classNames,a=t.month,s=t.maxDate,i=t.minDate;return e.createElement("div",{className:xn()(Fl,n.navBar)},this.props.hideLeftNavButton||e.createElement(Wn,{className:n.navButtonPrev,disabled:sc(a,i),icon:"chevron-left",minimal:!0,onClick:this.handlePreviousClick}),this.props.hideRightNavButton||e.createElement(Wn,{className:n.navButtonNext,disabled:sc(a,s),icon:"chevron-right",minimal:!0,onClick:this.handleNextClick}))},n}(e.PureComponent),Tc=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.getShorcutClickHandler=function(t,n){return function(){(0,e.props.onShortcutClick)(t,n)}},e.isShortcutInRange=function(t){var n=e.props;return lc(t,[n.minDate,n.maxDate])},e}return bn(n,t),n.prototype.render=function(){var t,n,a,s,i,r,o,l,c,h,d,u,p,m=this,f=(!0===this.props.shortcuts?(t=this.props.allowSingleDayRange,n=void 0!==this.props.timePrecision,a=!0===this.props.useSingleDateShortcuts,s=new Date,r=(i=function(e){var t=rc(s);return e(t),t.setDate(t.getDate()+1),t})((function(){return null})),o=i((function(e){return e.setDate(e.getDate()-2)})),l=i((function(e){return e.setDate(e.getDate()-7)})),c=i((function(e){return e.setMonth(e.getMonth()-1)})),h=i((function(e){return e.setMonth(e.getMonth()-3)})),d=i((function(e){return e.setMonth(e.getMonth()-6)})),u=i((function(e){return e.setFullYear(e.getFullYear()-1)})),p=i((function(e){return e.setFullYear(e.getFullYear()-2)})),Cn(t||a?[Lc("Today",[s,n?r:s]),Lc("Yesterday",[o,n?s:o])]:[],[Lc(a?"1 week ago":"Past week",[l,s]),Lc(a?"1 month ago":"Past month",[c,s]),Lc(a?"3 months ago":"Past 3 months",[h,s])],a?[]:[Lc("Past 6 months",[d,s])],[Lc(a?"1 year ago":"Past year",[u,s])],a?[]:[Lc("Past 2 years",[p,s])])):this.props.shortcuts).map((function(t,n){return e.createElement(Ni,{active:m.props.selectedShortcutIndex===n,className:Le,disabled:!m.isShortcutInRange(t.dateRange),key:n,onClick:m.getShorcutClickHandler(t,n),text:t.label})}));return e.createElement(Di,{className:Ul,tabIndex:0},f)},n.defaultProps={selectedShortcutIndex:-1},n}(e.PureComponent);function Lc(e,t){return{dateRange:t,label:e}}function Pc(e,t,n,a){switch(e){case xc.HOUR_24:n.setHours(t);break;case xc.HOUR_12:n.setHours(function(e,t){if(e<1||e>12)throw new Error("hour must be between [1,12] inclusive: got "+e);var n=12===e?0:e;return t?n+12:n}(t,a));break;case xc.MINUTE:n.setMinutes(t);break;case xc.SECOND:n.setSeconds(t);break;case xc.MS:n.setMilliseconds(t);break;default:throw Error("Invalid TimeUnit")}return n}function Hc(e,t){return null!=t&&!isNaN(t)&&Oc(e)<=t&&t<=Nc(e)}function Nc(e){return Uc[e].max}function Oc(e){return Uc[e].min}!function(e){e.HOUR_24="hour24",e.HOUR_12="hour12",e.MINUTE="minute",e.SECOND="second",e.MS="ms"}(xc||(xc={}));var Vc=0,Dc=0,Ic=0,Rc=0,Bc=23,Fc=59,Xc=59,Kc=999,Uc=((Mc={})[xc.HOUR_24]={className:Zl,max:Bc,min:Vc},Mc[xc.HOUR_12]={className:Zl,max:12,min:1},Mc[xc.MINUTE]={className:ec,max:Fc,min:Dc},Mc[xc.SECOND]={className:tc,max:Xc,min:Ic},Mc[xc.MS]={className:$l,max:Kc,min:Rc},Mc),Gc="millisecond",jc="minute",Wc="second",Qc=function(t){function n(e,n){var a=t.call(this,e,n)||this;a.getInputChangeHandler=function(e){return function(t){var n=Zc(t);switch(e){case xc.HOUR_12:case xc.HOUR_24:a.setState({hourText:n});break;case xc.MINUTE:a.setState({minuteText:n});break;case xc.SECOND:a.setState({secondText:n});break;case xc.MS:a.setState({millisecondText:n})}}},a.getInputBlurHandler=function(e){return function(t){var n,s,i=Zc(t);a.updateTime(parseInt(i,10),e),null===(s=(n=a.props).onBlur)||void 0===s||s.call(n,t,e)}},a.getInputFocusHandler=function(e){return function(t){var n,s;a.props.selectAllOnFocus&&t.currentTarget.select(),null===(s=(n=a.props).onFocus)||void 0===s||s.call(n,t,e)}},a.getInputKeyDownHandler=function(e){return function(t){var n,s,i;!function(e,t,n){void 0===n&&(n=!0);for(var a=0,s=Object.keys(t);a23)throw new Error("hour must be between [0,23] inclusive: got "+e);return t?e%12+12:e%12}(a.state.value.getHours(),t);a.setState({isPm:t},(function(){return a.updateTime(n,xc.HOUR_24)}))}},a.incrementTime=function(e){return a.shiftTime(e,1)},a.decrementTime=function(e){return a.shiftTime(e,-1)};var s=e.minTime;return null!=e.value?s=e.value:null!=e.defaultValue&&(s=e.defaultValue),a.state=a.getFullStateFromValue(s,e.useAmPm),a}return bn(n,t),n.prototype.render=function(){var t,n=this.props.precision===Gc,a=n||this.props.precision===Wc,s=this.props.useAmPm?xc.HOUR_12:xc.HOUR_24,i=xn()(jl,this.props.className,((t={})[P]=this.props.disabled,t));return e.createElement("div",{className:i},e.createElement("div",{className:Ql},this.maybeRenderArrowButton(!0,s),this.maybeRenderArrowButton(!0,xc.MINUTE),a&&this.maybeRenderArrowButton(!0,xc.SECOND),n&&this.maybeRenderArrowButton(!0,xc.MS)),e.createElement("div",{className:Jl},this.renderInput(Zl,s,this.state.hourText),this.renderDivider(),this.renderInput(ec,xc.MINUTE,this.state.minuteText),a&&this.renderDivider(),a&&this.renderInput(tc,xc.SECOND,this.state.secondText),n&&this.renderDivider("."),n&&this.renderInput($l,xc.MS,this.state.millisecondText)),this.maybeRenderAmPm(),e.createElement("div",{className:Ql},this.maybeRenderArrowButton(!1,s),this.maybeRenderArrowButton(!1,xc.MINUTE),a&&this.maybeRenderArrowButton(!1,xc.SECOND),n&&this.maybeRenderArrowButton(!1,xc.MS)))},n.prototype.componentDidUpdate=function(e){var t=e.minTime!==this.props.minTime,n=e.maxTime!==this.props.maxTime,a=t||n,s=e.value!==this.props.value,i=t||n||a||s,r=this.state.value;a&&(r=uc(this.state.value,this.props.minTime,this.props.maxTime)),null==this.props.value||ic(this.props.value,e.value)||(r=this.props.value),i&&this.setState(this.getFullStateFromValue(r,this.props.useAmPm))},n.prototype.maybeRenderArrowButton=function(t,n){var a=this;if(!this.props.showArrowButtons)return null;var s=xn()(Wl,Uc[n].className);return e.createElement("span",{tabIndex:-1,className:s,onClick:function(){return(t?a.incrementTime:a.decrementTime)(n)}},e.createElement(Fn,{icon:t?"chevron-up":"chevron-down"}))},n.prototype.renderDivider=function(t){return void 0===t&&(t=":"),e.createElement("span",{className:Yl},t)},n.prototype.renderInput=function(t,n,a){var s,i=Hc(n,parseInt(a,10)),r=n===xc.HOUR_12||n===xc.HOUR_24;return e.createElement("input",{className:xn()(ql,(s={},s[Ye(m)]=!i,s),t),onBlur:this.getInputBlurHandler(n),onChange:this.getInputChangeHandler(n),onFocus:this.getInputFocusHandler(n),onKeyDown:this.getInputKeyDownHandler(n),onKeyUp:this.getInputKeyUpHandler(n),value:a,disabled:this.props.disabled,autoFocus:r&&this.props.autoFocus})},n.prototype.maybeRenderAmPm=function(){return this.props.useAmPm?e.createElement(wa,{className:nc,disabled:this.props.disabled,onChange:this.handleAmPmChange,value:this.state.isPm?"pm":"am"},e.createElement("option",{value:"am"},"AM"),e.createElement("option",{value:"pm"},"PM")):null},n.prototype.getFullStateFromValue=function(e,t){var n=uc(e,this.props.minTime,this.props.maxTime),a=t?xc.HOUR_12:xc.HOUR_24;return{hourText:Yc(n.getHours(),a),minuteText:Yc(n.getMinutes(),xc.MINUTE),secondText:Yc(n.getSeconds(),xc.SECOND),millisecondText:Yc(n.getMilliseconds(),xc.MS),value:n,isPm:fc(n.getHours())}},n.prototype.shiftTime=function(e,t){if(!this.props.disabled){var n=function(e,t){switch(e){case xc.HOUR_24:return t.getHours();case xc.HOUR_12:return vc(t.getHours());case xc.MINUTE:return t.getMinutes();case xc.SECOND:return t.getSeconds();case xc.MS:return t.getMilliseconds();default:throw Error("Invalid TimeUnit")}}(e,this.state.value)+t;this.updateTime(function(e,t){var n=Nc(e),a=Oc(e);return t>n?a:ts?s:l},n.prototype.updateValue=function(e,t,n){var a,s;void 0===n&&(n=!1),n||null===(s=(a=this.props).onChange)||void 0===s||s.call(a,e,t),void 0===this.props.value&&this.setState({value:e})},n.defaultProps={canClearSelection:!0,clearButtonText:"Clear",dayPickerProps:{},highlightCurrentDay:!1,maxDate:(s=new Date,s.setFullYear(s.getFullYear()),s.setMonth(Sc.DECEMBER,31),s),minDate:zc(),reverseMonthAndYearMenus:!1,shortcuts:!1,showActionsBar:!1,timePickerProps:{},todayButtonText:"Today"},n.displayName="Blueprint3.DatePicker",n=a=wn([In.polyfill],n)}(Hn);var Jc=function(t){function n(e,n){var a=t.call(this,e,n)||this;a.handleDateChange=function(e,t){var n,s;void 0===a.props.value&&a.setState({dateValue:e});var i=pc(e,a.state.timeValue);null===(s=(n=a.props).onChange)||void 0===s||s.call(n,i,t)},a.handleTimeChange=function(e){var t,n;void 0===a.props.value&&a.setState({timeValue:e});var s=pc(a.state.dateValue,e);null===(n=(t=a.props).onChange)||void 0===n||n.call(t,s,!0)};var s=void 0!==a.props.value?a.props.value:a.props.defaultValue;return a.state={dateValue:s,timeValue:s},a}return bn(n,t),n.prototype.render=function(){var t=pc(this.state.dateValue,this.state.timeValue);return e.createElement("div",{className:xn()(Gl,this.props.className)},e.createElement(qc,yn({},this.props.datePickerProps,{canClearSelection:this.props.canClearSelection,onChange:this.handleDateChange,value:t})),e.createElement(Qc,yn({},this.props.timePickerProps,{onChange:this.handleTimeChange,value:t})))},n.prototype.componentDidUpdate=function(e){this.props.value!==e.value&&(null!=this.props.value?this.setState({dateValue:this.props.value,timeValue:this.props.value}):this.setState({dateValue:null}))},n.defaultProps={canClearSelection:!0,defaultValue:new Date},n.displayName="Blueprint3.DateTimePicker",n=wn([In.polyfill],n)}(Hn);const $c=new Date(2018,0,1),eh=new Date((new Date).getFullYear()+3,0,0),th={group:{display:"inline-block"},label:{marginBottom:"5px"}};class nh extends e.Component{render(){let t={},n=new Date(this.props.value);return(!this.props.value||this.props.value.includes("0000-12-31")||this.props.value.includes("0001-01-01"))&&(n=null),n&&!this.props.disabled||(t.opacity=.5),e.createElement("div",{hidden:this.props.hidden},e.createElement("div",{style:th.group},e.createElement("label",{className:"bp3-label",style:th.label},this.props.label,e.createElement(hl,{title:this.props.label,content:this.props.help})),e.createElement("div",{style:t},e.createElement(Jc,{value:this.props.disabled?null:n,timePickerProps:{showArrowButtons:!0},datePickerProps:{showActionsBar:!0,minDate:$c,maxDate:eh},onChange:e=>{this.props.disabled||(e?this.props.onChange(e.toJSON()):this.props.onChange(null))}}))))}}const ah={message:{marginTop:"6px"},box:{marginTop:"15px"},button:{marginLeft:"10px"},buttons:{flexShrink:0}};class sh extends e.Component{render(){return e.createElement("div",{className:"layout horizontal",style:ah.box},e.createElement("div",{className:"flex"}),e.createElement("div",{className:"layout horizontal"},e.createElement("span",{style:ah.message,hidden:!this.props.message},this.props.message),e.createElement("div",{style:ah.buttons},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:ah.button,type:"button",disabled:!this.props.changed||this.props.disabled,onClick:this.props.onSave},"New"))))}}const ih={label:{width:"100%",maxWidth:"280px"},textarea:{width:"100%",resize:"none",fontSize:"12px",fontFamily:'"Lucida Console", Monaco, monospace'}};class rh extends e.Component{render(){return e.createElement("label",{className:"bp3-label",style:ih.label,hidden:this.props.hidden},this.props.label,e.createElement(hl,{title:this.props.label,content:this.props.help}),e.createElement("textarea",{className:"bp3-input",style:ih.textarea,disabled:this.props.disabled,readOnly:this.props.readOnly,autoCapitalize:"off",spellCheck:!1,placeholder:this.props.placeholder,rows:this.props.rows,value:this.props.value||"",onChange:e=>{this.props.onChange(e.target.value)}}))}}const oh={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"10px 0 0 0"},role:{margin:"9px 5px 0 5px",height:"20px"}};class lh extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,user:Qr.userM})},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/user/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save user"),void a(e)):(lr.dispatch({type:Gr,data:{user:s.body}}),void n()))))}))}(this.state.user).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1})})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onNew=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/user").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create user"),void a(e)):void n())))}))}(this.state.user).then((()=>{this.setState({...this.state,message:"User has been created",changed:!1,disabled:!1,locked:!0})})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.set=(e,t)=>{let n={...this.state.user};n[e]=t,this.setState({...this.state,changed:!0,message:"",user:n})},this.onAddRole=()=>{let e=[...this.state.user.roles];this.state.addRole&&(-1===e.indexOf(this.state.addRole)&&e.push(this.state.addRole),e.sort(),this.setState({...this.state,changed:!0,message:"",addRole:"",user:{...this.state.user,roles:e}}))},this.onRemoveRole=e=>{let t=[...this.state.user.roles],n=t.indexOf(e);-1!==n&&(t.splice(n,1),this.setState({...this.state,changed:!0,message:"",addRole:"",user:{...this.state.user,roles:t}}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),eo([this.props.userId]).then((()=>{this.setState({...this.state,message:"User has been deleted",changed:!1,disabled:!1,locked:!0})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={changed:!1,disabled:!1,locked:!1,message:"",addRole:"",user:Qr.userM}}componentDidMount(){Qr.addChangeListener(this.onChange),Zr(this.props.userId)}componentWillUnmount(){Qr.removeChangeListener(this.onChange),lr.dispatch({type:jr})}render(){let t=this.props.userId,n=this.state.user;if(!n)return e.createElement("div",null);let a=[];for(let t of n.roles||[])a.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:oh.role,key:t},t,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.locked,onMouseUp:()=>{this.onRemoveRole(t)}})));return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:oh.header},e.createElement("h2",{style:oh.heading},t?"User Info":"New User"),e.createElement("div",{className:"flex"}),e.createElement("div",null,e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:oh.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete User",confirmMsg:"Permanently delete this user",confirmInput:!0,items:[n.username],disabled:this.state.disabled,onConfirm:this.onDelete})))),e.createElement(Al,null,e.createElement(xl,{className:"layout vertical"},e.createElement(vl,{disabled:this.state.locked,label:"Username",help:"Username, if using single sign-on username must match",type:"text",placeholder:"Enter username",value:n.username,onChange:e=>{this.set("username",e)}}),e.createElement(rh,{label:"Comment",help:"User comment.",placeholder:"User comment",rows:3,value:n.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(vl,{hidden:"local"!==n.type,disabled:this.state.locked,label:"Password",help:"Password, leave blank to keep current password",type:"password",placeholder:"Change password",value:n.password,onChange:e=>{this.set("password",e)}}),e.createElement(vl,{hidden:"api"!==n.type,disabled:this.state.locked,readOnly:!0,autoSelect:!0,label:"Token",help:"API token",type:"text",placeholder:"Save to generate token",value:n.token}),e.createElement(vl,{hidden:"api"!==n.type||!n.token||!n.secret,disabled:this.state.locked,readOnly:!0,autoSelect:!0,label:"Secret",help:"API secret, will only be shown once",type:"text",placeholder:"",value:n.secret}),e.createElement(ul,{hidden:"api"!==n.type||!n.token||!!n.secret,label:"Generate new token and secret",help:"Enable to generate a new token and secret on save. Secret can only be shown by generating new credentials.",disabled:this.state.locked,checked:n.generate_secret,onToggle:()=>{this.set("generate_secret",!n.generate_secret)}}),e.createElement(Hl,{disabled:this.state.locked,label:"Type",help:"A local user is a user that is created on the Pritunl Cloud database that has a username and password. The other user types can be used to create users for single sign-on services. Generally single sign-on users will be created automatically when the user authenticates for the first time. It can sometimes be desired to manaully create a single sign-on user to provide roles in advanced of the first login.",value:n.type,onChange:e=>{this.set("type",e)}},e.createElement("option",{value:"local"},"Local"),e.createElement("option",{value:"authzero"},"Auth0"),e.createElement("option",{value:"azure"},"Azure"),e.createElement("option",{value:"google"},"Google"),e.createElement("option",{value:"onelogin"},"OneLogin"),e.createElement("option",{value:"okta"},"Okta"),e.createElement("option",{value:"jumpcloud"},"JumpCloud"),e.createElement("option",{value:"api"},"API")),e.createElement("label",{className:"bp3-label"},"Roles",e.createElement(hl,{title:"Roles",content:"User roles will be used to match with service roles. A user must have a matching role to access a service."}),e.createElement("div",null,a)),e.createElement(Ll,{disabled:this.state.locked,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addRole,onChange:e=>{this.setState({...this.state,addRole:e})},onSubmit:this.onAddRole}),e.createElement(ul,{label:"Administrator",help:"Enable to give user administrator access to the management console",disabled:this.state.locked,checked:"super"===n.administrator,onToggle:()=>{"super"===this.state.user.administrator?this.set("administrator",""):this.set("administrator","super")}}),e.createElement(ul,{label:"Disabled",help:"Disables the user ending all active sessions and prevents new authentications",disabled:this.state.locked,checked:n.disabled,onToggle:()=>{this.set("disabled",!this.state.user.disabled)}})),e.createElement(xl,null,e.createElement(Bo,{fields:[{label:"ID",value:n.id||"None"},{label:"Last Active",value:Lr(n.last_active)||"Inactive"}]}),e.createElement(nh,{label:"Active Until",help:"Set this to schedule the user to be disabled at the set date and time. This is useful to give a user temporary access to a service.",value:n.active_until,disabled:n.disabled||this.state.locked,onChange:e=>{this.set("active_until",e)}}))),t?e.createElement(ml,{message:this.state.message,changed:this.state.changed,disabled:this.state.disabled||this.state.locked,onCancel:()=>{this.setState({...this.state,changed:!1,message:"Your changes have been discarded",addRole:"",user:Qr.userM})},onSave:this.onSave}):e.createElement(sh,{message:this.state.message,changed:this.state.changed,disabled:this.state.disabled||this.state.locked,onSave:this.onNew}),this.state.locked?null:e.createElement(Uo,{userId:t}),this.state.locked?null:e.createElement(_l,{userId:t}),this.state.locked?null:e.createElement(zl,{userId:t}))}}const ch="node.sync",hh="node.sync_zone",dh="node.traverse",uh="node.filter";const ph=new class extends hr{constructor(){super(...arguments),this._nodes=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._nodes=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get nodes(){return this._nodes}get nodesM(){let e=[];return this._nodes.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}node(e){let t=this._map[e];return void 0===t?null:this._nodes[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{e.push({...t})})),e}certificate(e){let t=this._map[e];return void 0===t?null:this._certificates[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{e.push({...t})})),e}datacenter(e){let t=this._map[e];return void 0===t?null:this._datacenters[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{e.push({...t})})),e}zone(e){let t=this._map[e];return void 0===t?null:this._zones[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{e.push({...t})})),e}block(e){let t=this._map[e];return void 0===t?null:this._blocks[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{vn.get("/node").query({...ph.filter,page:ph.page,page_count:ph.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===Ch){if(s)return Ui(i,"Failed to load nodes"),void a(s);lr.dispatch({type:ch,data:{nodes:i.body.nodes,count:i.body.count}}),e()}else e()}))}))}function Ah(e){let t=zr();if(Eh=t,!e)return lr.dispatch({type:hh,data:{nodes:[]}}),Promise.resolve();let n=(new Nr).loading();return new Promise(((a,s)=>{vn.get("/node").query({names:!0,zone:e}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,i)=>{if(n.done(),i&&401===i.status)return window.location.href="/login",void a();if(t===Eh){if(e)return Ui(i,"Failed to load nodes names"),void s(e);lr.dispatch({type:hh,data:{nodes:i.body}}),a()}else a()}))}))}function Th(e){return lr.dispatch({type:dh,data:{page:e}}),xh()}function Lh(e){return lr.dispatch({type:uh,data:{filter:e}}),xh()}function Ph(){let e=zr();Sh=e;let t=(new Nr).loading();return new Promise(((n,a)=>{vn.get("/certificate").set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Sh){if(s)return Ui(i,"Failed to load certificates"),void a(s);lr.dispatch({type:mh,data:{certificates:i.body}}),n()}else n()}))}))}function Hh(){let e=zr();kh=e;let t=(new Nr).loading();return new Promise(((n,a)=>{vn.get("/datacenter").set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===kh){if(s)return Ui(i,"Failed to load datacenters"),void a(s);lr.dispatch({type:vh,data:{datacenters:i.body}}),n()}else n()}))}))}function Nh(){let e=zr();zh=e;let t=(new Nr).loading();return new Promise(((n,a)=>{vn.get("/zone").set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===zh){if(s)return Ui(i,"Failed to load zones"),void a(s);lr.dispatch({type:bh,data:{zones:i.body}}),n()}else n()}))}))}function Oh(){let e=zr();Mh=e;let t=(new Nr).loading();return new Promise(((n,a)=>{vn.get("/block").set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Mh){if(s)return Ui(i,"Failed to load blocks"),void a(s);lr.dispatch({type:_h,data:{blocks:i.body}}),n()}else n()}))}))}function Vh(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/block/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save block"),void a(e)):void n())))}))}kr.register((e=>{if("node.change"===e.type)xh()})),kr.register((e=>{if("certificate.change"===e.type)Ph()})),kr.register((e=>{if("datacenter.change"===e.type)Hh()})),kr.register((e=>{if("zone.change"===e.type)Nh()})),kr.register((e=>{if("block.change"===e.type)$i||Oh()}));const Dh={box:{},button:{marginRight:"10px"},item:{margin:"9px 5px 0 5px",height:"20px"},callout:{marginBottom:"15px"},popover:{width:"230px"},popoverTarget:{top:"9px",left:"18px"},dialog:{maxWidth:"480px",margin:"30px 20px"},textarea:{width:"100%",resize:"none",fontSize:"12px",fontFamily:'"Lucida Console", Monaco, monospace'}};class Ih extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{let e=this.state.internalIface;if(!e){let t=this.ifaces();t.length&&(e=t[0])}let t=this.state.externalIface;if(!t){let e=this.ifaces();e.length&&(t=e[0])}let n={provider:this.state.provider||"other",zone:this.props.node.zone?this.props.node.zone:this.state.zone,firewall:this.state.firewall,internal_interface:e,external_interface:t,host_network:this.state.network,block_gateway:this.state.gateway,block_netmask:this.state.netmask,block_subnets:this.state.subnets};(function(e,t){let n=(new Nr).loading();return new Promise(((a,s)=>{vn.post("/node/"+e+"/init").send(t).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,t)=>(n.done(),t&&401===t.status?(window.location.href="/login",void a()):e?(Ui(t,"Failed to update node"),void s(e)):void a())))}))})(this.props.node.id,n).then((()=>{this.setState({...this.state,popover:!this.state.popover})})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onAddSubnet=()=>{if(!this.state.addSubnet)return;let e=[...this.state.subnets],t=this.state.addSubnet.trim();-1===e.indexOf(t)&&e.push(t),e.sort(),this.setState({...this.state,subnets:e,addSubnet:""})},this.onRemoveSubnet=e=>{let t=[...this.state.subnets||[]],n=t.indexOf(e);-1!==n&&(t.splice(n,1),this.setState({...this.state,subnets:t}))},this.state={disabled:!1,message:"",provider:"",datacenter:"",zone:"",firewall:!0,internalIface:"",externalIface:"",network:"",gateway:"",netmask:"",subnets:[],addSubnet:"",popover:!1}}ifaces(){let e=this.props.node,t=e.zone;this.state.zone&&(t=this.state.zone);let n=!1;for(let e of this.props.zones)if(e.id===t){"vxlan_vlan"===e.network_mode&&(n=!0);break}return e.available_bridges.concat(e.available_interfaces)}render(){let t;if(this.state.popover){let n,a="Initialize node, select the hosts public network interface.",s="";s&&(n=e.createElement("div",{className:"bp3-dialog-body"},e.createElement("div",{className:"bp3-callout bp3-intent-danger bp3-icon-ban-circle",style:Dh.callout},s)));let i="",r=!1,o=[];if(this.props.datacenters.length){r=!0,i=this.props.datacenters[0].id;for(let t of this.props.datacenters)o.push(e.createElement("option",{key:t.id,value:t.id},t.name))}r||o.push(e.createElement("option",{key:"null",value:""},"No Datacenters"));let l=this.state.datacenter||i,c=!1,h=[];if(this.props.zones.length){h.push(e.createElement("option",{key:"null",value:""},"Select Zone"));for(let t of this.props.zones)(this.props.node.zone||t.datacenter===l)&&(c=!0,h.push(e.createElement("option",{key:t.id,value:t.id},t.name)))}c||(h=[e.createElement("option",{key:"null",value:""},"No Zones")]);let d=this.ifaces(),u=[];for(let t of d||[])u.push(e.createElement("option",{key:t,value:t},t));let p=[];for(let t of this.state.subnets||[])p.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Dh.item,key:t},t,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveSubnet(t)}})));t=e.createElement(ra,{title:"Initialize Node",style:Dh.dialog,isOpen:this.state.popover,usePortal:!0,portalContainer:document.body,onClose:()=>{this.setState({...this.state,popover:!1})}},n,e.createElement("div",{className:"bp3-dialog-body",hidden:!!n},e.createElement("div",{className:"bp3-callout bp3-intent-primary bp3-icon-info-sign",style:Dh.callout},a),e.createElement(Hl,{disabled:this.state.disabled,label:"Provider",help:"Bare metal hosting provider.",value:this.state.provider,onChange:e=>{this.setState({...this.state,provider:e})}},e.createElement("option",{key:"other",value:"other"},"Other"),e.createElement("option",{key:"vultr",value:"vultr"},"Vultr"),e.createElement("option",{key:"phoenixnap",value:"phoenixnap"},"phoenixNAP")),e.createElement(Hl,{disabled:this.state.disabled||!r,hidden:!!this.props.node.zone,label:"Datacenter",help:"Node datacenter, cannot be changed once set.",value:this.state.datacenter,onChange:e=>{this.setState({...this.state,datacenter:e,zone:""})}},o),e.createElement(Hl,{disabled:!!this.props.node.zone||this.state.disabled||!c,label:"Zone",help:"Node zone, cannot be changed once set.",value:this.props.node.zone?this.props.node.zone:this.state.zone,onChange:e=>{this.setState({...this.state,zone:e})}},h),e.createElement(Hl,{disabled:this.state.disabled||!u.length,hidden:"phoenixnap"===this.state.provider,label:"Public Network Interface",help:"Network interface for instance public traffic.",value:this.state.externalIface,onChange:e=>{this.setState({...this.state,externalIface:e})}},u),e.createElement(Hl,{disabled:this.state.disabled||!u.length,hidden:"phoenixnap"!==this.state.provider,label:"Private Network Interface",help:"Network interface for instance private VPC interface.",value:this.state.internalIface,onChange:e=>{this.setState({...this.state,internalIface:e})}},u),e.createElement(Hl,{disabled:this.state.disabled||!u.length,hidden:"phoenixnap"!==this.state.provider,label:"Public Network Interface",help:"Network interface for instance public traffic.",value:this.state.externalIface,onChange:e=>{this.setState({...this.state,externalIface:e})}},u),e.createElement(vl,{disabled:this.state.disabled,hidden:"phoenixnap"!==this.state.provider,label:"Public Gateway",help:"Gateway address with prefix for public IP network.",type:"text",placeholder:"Enter gateway",value:this.state.gateway,onChange:e=>{this.setState({...this.state,gateway:e})}}),e.createElement(vl,{disabled:this.state.disabled,hidden:!0,label:"Public Netmask",help:"Netmask of of public IP addresses",type:"text",placeholder:"Enter netmask",value:this.state.netmask,onChange:e=>{this.setState({...this.state,netmask:e})}}),e.createElement("label",{className:"bp3-label",hidden:"phoenixnap"!==this.state.provider},"IP Addresses",e.createElement(hl,{title:"Public IP Addresses",content:"Public IP addresses that are available for instances."}),e.createElement("div",null,p)),e.createElement(Ll,{disabled:this.state.disabled,hidden:"phoenixnap"!==this.state.provider,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add addresses",value:this.state.addSubnet,onChange:e=>{this.setState({...this.state,addSubnet:e})},onSubmit:this.onAddSubnet}),e.createElement(vl,{disabled:this.state.disabled,label:"Host IPv4 Network",help:"Host IPv4 network with prefix that is configured on the host to provide networking between the host and the instances. If left blank no host network will be created.",type:"text",placeholder:"Enter network",value:this.state.network,onChange:e=>{this.setState({...this.state,network:e})}}),e.createElement(ul,{disabled:this.state.disabled,label:"Node firewall",help:"Configure a default firewall for the node allowing web and ssh traffic from all addresses. This should always be enabled unless an external firewall has been configured on the host system. The firewall can be modified after from the web console.",checked:this.state.firewall,onToggle:()=>{this.setState({...this.state,firewall:!this.state.firewall})}})),e.createElement("div",{className:"bp3-dialog-footer"},e.createElement("div",{className:"bp3-dialog-footer-actions"},e.createElement("button",{className:"bp3-button",type:"button",onClick:()=>{this.setState({...this.state,popover:!this.state.popover})}},"Close"),e.createElement("button",{className:"bp3-button bp3-icon-cloud-upload bp3-intent-primary",type:"button",onClick:this.onSave},"Initialize Node"))))}return e.createElement("div",{hidden:this.props.hidden,style:Dh.box},e.createElement("button",{className:"bp3-button bp3-icon-cloud-upload bp3-intent-primary",style:Dh.button,type:"button",disabled:this.props.disabled,onClick:()=>{this.setState({...this.state,popover:!this.state.popover})}},"Initialize Node"),t)}}const Rh={switchLabel:{display:"inline-block",marginBottom:0},inputLabel:{width:"100%",maxWidth:"280px"},input:{width:"100%"}};class Bh extends e.Component{render(){return e.createElement("div",{hidden:this.props.hidden},e.createElement("label",{className:"bp3-control bp3-switch",style:Rh.switchLabel},e.createElement("input",{type:"checkbox",disabled:this.props.disabled,checked:!!this.props.value||this.props.checked,onChange:()=>{this.props.value||this.props.checked?this.props.onChange(!1,null):this.props.onChange(!0,this.props.defaultValue)}}),e.createElement("span",{className:"bp3-control-indicator"}),this.props.label),e.createElement(hl,{title:this.props.label,content:this.props.help}),e.createElement("label",{className:"bp3-label",style:Rh.inputLabel},e.createElement("input",{className:"bp3-input",style:Rh.input,disabled:this.props.disabled,hidden:!this.props.value&&!this.props.checked,type:this.props.type,autoCapitalize:"off",spellCheck:!1,placeholder:this.props.placeholder,value:this.props.value||"",onChange:e=>{this.props.onChange(!0,e.target.value)}})))}}const Fh={group:{marginBottom:"15px",width:"100%",maxWidth:"280px"},select:{width:"100%",borderTopLeftRadius:"3px",borderBottomLeftRadius:"3px"},selectInner:{width:"100%"},selectBox:{flex:"1"}};class Xh extends e.Component{render(){let t="bp3-button";return this.props.buttonClass&&(t+=" "+this.props.buttonClass),e.createElement("div",{className:"bp3-control-group",style:Fh.group,hidden:this.props.hidden},e.createElement("div",{style:Fh.selectBox},e.createElement("div",{className:"bp3-select",style:Fh.select},e.createElement("select",{style:Fh.selectInner,disabled:this.props.disabled,value:this.props.value||"",onChange:e=>{this.props.onChange(e.target.value)}},this.props.children))),e.createElement("button",{className:t,disabled:this.props.disabled,onClick:this.props.onSubmit},this.props.label))}}const Kh={label:{display:"inline-block"}};class Uh extends e.Component{render(){return e.createElement("div",{hidden:this.props.hidden},e.createElement("label",{className:"bp3-label",style:Kh.label},this.props.label,e.createElement(hl,{title:this.props.label,content:this.props.help}),e.createElement(_a,{allowNumericCharactersOnly:!0,min:this.props.min,minorStepSize:this.props.minorStepSize,stepSize:this.props.stepSize,majorStepSize:this.props.majorStepSize,disabled:this.props.disabled,selectAllOnFocus:this.props.selectAllOnFocus,onValueChange:this.props.onChange,value:this.props.value})))}}const Gh={group:{width:"100%",maxWidth:"310px",marginTop:"5px"},sourceGroup:{width:"100%",maxWidth:"219px",marginTop:"5px"},control:{marginTop:"5px"},protocol:{flex:"0 1 auto"},port:{width:"100%"},portBox:{flex:"1"},other:{flex:"0 1 auto",width:"52px",borderRadius:"0 3px 3px 0"}};class jh extends e.Component{clone(){return{...this.props.block}}render(){let t=this.props.block,n=!1,a=[];for(let s of this.props.interfaces||[])t.interface===s&&(n=!0),a.push(e.createElement("option",{key:s,value:s},s));n||a.push(e.createElement("option",{key:t.interface,value:t.interface},t.interface));let s=[];for(let t of this.props.blocks||[])(this.props.ipv6||"ipv6"!==t.type)&&(this.props.ipv6&&"ipv6"!==t.type||s.push(e.createElement("option",{key:t.id,value:t.id},t.name)));return 0===s.length&&s.push(e.createElement("option",{key:"null",value:""},"No Blocks")),e.createElement("div",null,e.createElement("div",{className:"bp3-control-group",style:Gh.group},e.createElement("div",{className:"bp3-select",style:Gh.protocol},e.createElement("select",{value:t.interface,onChange:e=>{let t=this.clone();t.interface=e.target.value,this.props.onChange(t)}},a)),e.createElement("div",{className:"bp3-select",style:Gh.protocol},e.createElement("select",{value:t.block,onChange:e=>{let t=this.clone();t.block=e.target.value,this.props.onChange(t)}},s)),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",style:Gh.control,onClick:()=>{this.props.onRemove()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-success bp3-icon-add",style:Gh.control,onClick:()=>{this.props.onAdd()}})))}}const Wh={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",wordBreak:"break-all"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},restart:{marginRight:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"},protocol:{minWidth:"90px",flex:"0 1 auto"},port:{minWidth:"120px",flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},role:{margin:"9px 5px 0 5px",height:"20px"},blocks:{marginBottom:"15px"}};class Qh extends e.Component{constructor(e,t){super(e,t),this.onAddNetworkRole=()=>{let e;if(!this.state.addNetworkRole)return;e=this.state.changed?{...this.state.node}:{...this.props.node};let t=[...e.network_roles||[]];-1===t.indexOf(this.state.addNetworkRole)&&t.push(this.state.addNetworkRole),t.sort(),e.network_roles=t,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",node:e})},this.onRemoveNetworkRole=e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.network_roles||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.network_roles=n,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",node:t}))},this.onSave=()=>{this.setState({...this.state,disabled:!0});let e={...this.state.node};if(!this.props.node.zone){let t=this.state.zone;if(!t&&this.props.datacenters.length&&this.props.zones.length){let e=this.state.datacenter||this.props.datacenters[0].id;for(let n of this.props.zones)n.datacenter===e&&(t=n.id)}t&&(e.zone=t)}(function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/node/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save node"),void a(e)):void n())))}))})(e).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,node:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/node/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete nodes"),void a(e)):void n())))}))}(this.props.node.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onAddExternalIface=()=>{let e,t=this.ifaces();if(!this.state.addExternalIface&&!t.length)return;let n=this.state.addExternalIface||t[0];e=this.state.changed?{...this.state.node}:{...this.props.node};let a=[...e.external_interfaces||[]];-1===a.indexOf(n)&&a.push(n),a.sort(),e.external_interfaces=a,this.setState({...this.state,changed:!0,node:e})},this.onRemoveExternalIface=e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.external_interfaces||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.external_interfaces=n,this.setState({...this.state,changed:!0,node:t}))},this.onAddInternalIface=()=>{let e,t=this.ifaces();if(!this.state.addInternalIface&&!t.length)return;let n=this.state.addInternalIface||t[0];e=this.state.changed?{...this.state.node}:{...this.props.node};let a=[...e.internal_interfaces||[]];-1===a.indexOf(n)&&a.push(n),a.sort(),e.internal_interfaces=a,this.setState({...this.state,changed:!0,node:e})},this.onRemoveInternalIface=e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.internal_interfaces||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.internal_interfaces=n,this.setState({...this.state,changed:!0,node:t}))},this.onAddCert=()=>{let e;if(!this.state.addCert&&!this.props.certificates.length)return;e=this.state.changed?{...this.state.node}:{...this.props.node};let t=this.state.addCert;if(!t)for(let e of this.props.certificates)if(!e.organization){t=e.id;break}let n=[...e.certificates||[]];-1===n.indexOf(t)&&n.push(t),n.sort(),e.certificates=n,this.setState({...this.state,changed:!0,node:e})},this.onRemoveCert=e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.certificates||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.certificates=n,this.setState({...this.state,changed:!0,node:t}))},this.newBlock=e=>{let t="";for(let n of this.props.blocks||[])(e&&"ipv6"===n.type||!e&&"ipv4"===n.type)&&(t=n.id);return{interface:this.props.node.available_bridges.concat(this.props.node.available_interfaces)[0],block:t}},this.onNetworkMode=e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node},"static"===e&&0===(t.blocks||[]).length&&(t.blocks=[this.newBlock(!1)]),t.network_mode=e,this.setState({...this.state,changed:!0,node:t})},this.onNetworkMode6=e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node},"static"===e&&0===(t.blocks6||[]).length&&(t.blocks6=[this.newBlock(!0)]),t.network_mode6=e,this.setState({...this.state,changed:!0,node:t})},this.onAddOracleSubnet=()=>{let e,t=this.props.node.available_vpcs||[];if(!this.state.addOracleSubnet&&!t.length&&!t[0].subnets.length)return;let n=this.state.addOracleSubnet;n||(n=t[0].subnets[0].id),e=this.state.changed?{...this.state.node}:{...this.props.node};let a=[...e.oracle_subnets||[]],s=-1;for(let e=0;e{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.oracle_subnets||[]],a=-1;for(let t=0;t{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.blocks];n.splice(e+1,0,this.newBlock(!1)),t.blocks=n,this.setState({...this.state,changed:!0,message:"",node:t})},this.onAddBlock6=e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.blocks6];n.splice(e+1,0,this.newBlock(!0)),t.blocks6=n,this.setState({...this.state,changed:!0,message:"",node:t})},this.onAddDrive=()=>{let e,t=this.props.node.available_drives||[];if(!this.state.addDrive&&!t.length)return;let n=this.state.addDrive;n||(n=t[0].id),e=this.state.changed?{...this.state.node}:{...this.props.node};let a=[...e.instance_drives||[]],s=-1;for(let e=0;e{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.instance_drives||[]],a=-1;for(let t=0;t!!e)),t.sort(),this.set("types",t)}ifaces(){let e;e=this.state.changed?{...this.state.node}:{...this.props.node};let t=e.zone;this.state.zone&&(t=this.state.zone);let n=!1;for(let e of this.props.zones)if(e.id===t){"vxlan_vlan"===e.network_mode&&(n=!0);break}return e.available_bridges.concat(e.available_interfaces)}subnetLabel(e){for(let t of this.props.node.available_vpcs||[])for(let n of t.subnets||[])if(n.id===e)return t.name+" - "+n.name;return e}operation(e){this.setState({...this.state,disabled:!0}),function(e,t){let n=(new Nr).loading();return new Promise(((a,s)=>{vn.put("/node/"+e+"/"+t).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,t)=>(n.done(),t&&401===t.status?(window.location.href="/login",void a()):e?(Ui(t,"Failed to update node"),void s(e)):void a())))}))}(this.props.node.id,e).then((()=>{setTimeout((()=>{this.setState({...this.state,disabled:!1})}),250)})).catch((()=>{this.setState({...this.state,disabled:!1})}))}onChangeBlock(e,t){let n;n=this.state.changed?{...this.state.node}:{...this.props.node};let a=[...n.blocks];a[e]=t,n.blocks=a,this.setState({...this.state,changed:!0,message:"",node:n})}onRemoveBlock(e){let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.blocks];n.splice(e,1),n.length||(n=[this.newBlock(!1)]),t.blocks=n,this.setState({...this.state,changed:!0,message:"",node:t})}onChangeBlock6(e,t){let n;n=this.state.changed?{...this.state.node}:{...this.props.node};let a=[...n.blocks6];a[e]=t,n.blocks6=a,this.setState({...this.state,changed:!0,message:"",node:n})}onRemoveBlock6(e){let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.blocks6];n.splice(e,1),n.length||(n=[this.newBlock(!0)]),t.blocks6=n,this.setState({...this.state,changed:!0,message:"",node:t})}render(){let t=this.state.node||this.props.node,n=0!==t.requests_min||0!==t.memory||0!==t.load1||0!==t.load5||0!==t.load15,a=t.types||[],s=this.props.node.public_ips;s&&s.length||(s="None");let i=this.props.node.public_ips6;i&&i.length||(i="None");let r=[{progressClass:"bp3-no-stripes bp3-intent-success",label:"Load1",value:this.props.node.load1||0},{progressClass:"bp3-no-stripes bp3-intent-warning",label:"Load5",value:this.props.node.load5||0},{progressClass:"bp3-no-stripes bp3-intent-danger",label:"Load15",value:this.props.node.load15||0},{progressClass:"bp3-no-stripes bp3-intent-primary",label:"Memory",value:this.props.node.memory||0}];this.props.node.hugepages&&r.push({progressClass:"bp3-no-stripes bp3-intent-primary",label:"HugePages",value:this.props.node.hugepages_used||0,color:"#7207d4"});let o=[];for(let n of t.external_interfaces||[])o.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Wh.item,key:n},n,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveExternalIface(n)}})));let l=[];for(let n of t.internal_interfaces||[])l.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Wh.item,key:n},n,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveInternalIface(n)}})));let c=this.ifaces(),h=[];for(let t of c||[])h.push(e.createElement("option",{key:t,value:t},t));let d=[];for(let t of c||[])d.push(e.createElement("option",{key:t,value:t},t));let u=[];for(let n of t.oracle_subnets||[])u.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Wh.item,key:n},this.subnetLabel(n),e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveOracleSubnet(n)}})));let p=[];for(let n of t.available_vpcs||[])for(let t of n.subnets||[])p.push(e.createElement("option",{key:t.id,value:t.id},n.name+" - "+t.name));let m=[e.createElement("option",{key:"null",value:""},"Disabled")];for(let t of this.props.blocks||[])"ipv4"===t.type&&m.push(e.createElement("option",{key:t.id,value:t.id},t.name));let f=[];for(let n of t.instance_drives||[])f.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Wh.item,key:n.id},n.id,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveDrive(n.id)}})));let v=[];for(let n of t.available_drives||[])v.push(e.createElement("option",{key:n.id,value:n.id},n.id));let g=[];for(let n of t.certificates||[]){let t=fh.certificate(n);t&&g.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Wh.item,key:t.id},t.name,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveCert(t.id)}})))}let b=!1,y=[];if(this.props.certificates.length)for(let t of this.props.certificates)t.organization||(b=!0,y.push(e.createElement("option",{key:t.id,value:t.id},t.name)));b||(y=[e.createElement("option",{key:"null",value:""},"No Certificates")]);let _="",w=!1,C=[];if(this.props.datacenters.length){w=!0,_=this.props.datacenters[0].id;for(let t of this.props.datacenters)C.push(e.createElement("option",{key:t.id,value:t.id},t.name))}w||C.push(e.createElement("option",{key:"null",value:""},"No Datacenters"));let E=this.state.datacenter||_,S=!1,k=[];if(this.props.zones.length){k.push(e.createElement("option",{key:"null",value:""},"Select Zone"));for(let t of this.props.zones)(this.props.node.zone||t.datacenter===E)&&(S=!0,k.push(e.createElement("option",{key:t.id,value:t.id},t.name)))}S||(k=[e.createElement("option",{key:"null",value:""},"No Zones")]);let z=!1,M=[];if(this.props.node.available_renders&&this.props.node.available_renders.length){M.push(e.createElement("option",{key:"null",value:""},"Select Render"));for(let t of this.props.node.available_renders)z=!0,M.push(e.createElement("option",{key:t,value:t},t))}z||(M=[e.createElement("option",{key:"null",value:""},"No Renders")]);let x=[];for(let n of t.network_roles||[])x.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Wh.role,key:n},n,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveNetworkRole(n)}})));let A=t.blocks||[],T=[];for(let n=0;n{this.onChangeBlock(a,e)},onAdd:()=>{this.onAddBlock(a)},onRemove:()=>{this.onRemoveBlock(a)}}))}let L=t.blocks6||[],P=[];for(let n=0;n{this.onChangeBlock6(a,e)},onAdd:()=>{this.onAddBlock6(a)},onRemove:()=>{this.onRemoveBlock6(a)}}))}return e.createElement("td",{className:"bp3-cell",colSpan:4,style:Wh.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Wh.group},e.createElement("div",{className:"layout horizontal tab-close",style:Wh.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:Wh.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Node",confirmMsg:"Permanently delete this node",confirmInput:!0,items:[t.name],disabled:n||this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{disabled:this.state.disabled,label:"Name",help:"Name of node",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Node comment.",placeholder:"Node comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Admin",help:"Provides access to the admin console on this node.",checked:-1!==a.indexOf("admin"),onToggle:()=>{this.toggleType("admin")}}),e.createElement(ul,{disabled:this.state.disabled,label:"User",help:"Provides access to the user console on this node for SSH certificates.",checked:-1!==a.indexOf("user"),onToggle:()=>{this.toggleType("user")}}),e.createElement(ul,{disabled:this.state.disabled,label:"Load Balancer",help:"Provides access to load balancers.",checked:-1!==a.indexOf("balancer"),onToggle:()=>{this.toggleType("balancer")}}),e.createElement(ul,{disabled:this.state.disabled,label:"Hypervisor",help:"Run instances with hypervisor on this node.",checked:-1!==a.indexOf("hypervisor"),onToggle:()=>{this.toggleType("hypervisor")}}),e.createElement(vl,{disabled:this.state.disabled,hidden:-1===a.indexOf("balancer")&&(-1===a.indexOf("admin")||-1===a.indexOf("user")),label:"Admin Domain",help:"Domain that will be used to access the admin interface.",type:"text",placeholder:"Enter admin domain",value:t.admin_domain,onChange:e=>{this.set("admin_domain",e)}}),e.createElement(vl,{disabled:this.state.disabled,hidden:-1===a.indexOf("balancer")&&(-1===a.indexOf("admin")||-1===a.indexOf("user")),label:"User Domain",help:"Domain that will be used to access the user interface.",type:"text",placeholder:"Enter user domain",value:t.user_domain,onChange:e=>{this.set("user_domain",e)}}),e.createElement(vl,{disabled:this.state.disabled,hidden:-1===a.indexOf("admin")&&-1===a.indexOf("user"),label:"WebAuthn Domain",help:"Domain that will be used for WebAuthn relying party identifier. This domain should be the highest level domain for the relevant resources. All other Pritunl Cloud domains handling WebAuthn authentication must be a sub-domain of this domain. Changing this domain will invalidate all existing WebAuthn devices.",type:"text",placeholder:"Enter WebAuthn domain",value:t.webauthn_domain,onChange:e=>{this.set("webauthn_domain",e)}}),e.createElement("label",{className:"bp3-label",style:Wh.label},"Protocol and Port",e.createElement("div",{className:"bp3-control-group",style:Wh.inputGroup},e.createElement("div",{className:"bp3-select",style:Wh.protocol},e.createElement("select",{disabled:this.state.disabled,value:t.protocol||"https",onChange:e=>{this.set("protocol",e.target.value)}},e.createElement("option",{value:"http"},"HTTP"),e.createElement("option",{value:"https"},"HTTPS"))),e.createElement("input",{className:"bp3-input",disabled:this.state.disabled,style:Wh.port,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Port",value:t.port||443,onChange:e=>{this.set("port",parseInt(e.target.value,10))}}))),e.createElement(ul,{disabled:this.state.disabled,label:"Web redirect server",help:"Enable redirect server for HTTP requests to HTTPS. Required for Lets Encrypt certificates.",checked:!t.no_redirect_server,onToggle:()=>{this.set("no_redirect_server",!t.no_redirect_server)}}),e.createElement(Hl,{disabled:this.state.disabled||!w,hidden:!!this.props.node.zone,label:"Datacenter",help:"Node datacenter, cannot be changed once set.",value:this.state.datacenter,onChange:e=>{t=this.state.changed?{...this.state.node}:{...this.props.node},this.setState({...this.state,changed:!0,node:t,datacenter:e,zone:""})}},C),e.createElement(Hl,{disabled:!!this.props.node.zone||this.state.disabled||!S,label:"Zone",help:"Node zone, cannot be changed once set. Clear node ID in configuration file to reset node.",value:this.props.node.zone?this.props.node.zone:this.state.zone,onChange:e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node},this.setState({...this.state,changed:!0,node:t,zone:e})}},k),e.createElement(Hl,{disabled:this.state.disabled,label:"Network IPv4 Mode",help:"Network mode for public IP addresses. Cannot be changed with instances running.",value:t.network_mode,onChange:e=>{this.onNetworkMode(e)}},e.createElement("option",{value:"dhcp"},"DHCP"),e.createElement("option",{value:"static"},"Static"),e.createElement("option",{value:"oracle"},"Oracle Cloud"),e.createElement("option",{value:"disabled"},"Disabled")),e.createElement(Hl,{disabled:this.state.disabled,label:"Network IPv6 Mode",help:"Network mode for public IPv6 addresses. Cannot be changed with instances running. Default will use IPv4 network mode.",value:t.network_mode6,onChange:e=>{this.onNetworkMode6(e)}},e.createElement("option",{value:"dhcp"},"DHCP"),e.createElement("option",{value:"static"},"Static"),e.createElement("option",{value:"oracle"},"Oracle Cloud"),e.createElement("option",{value:"disabled"},"Disabled")),e.createElement("label",{className:"bp3-label",style:Wh.label,hidden:"dhcp"!==t.network_mode&&""!==t.network_mode&&"dhcp"!==t.network_mode6&&""!==t.network_mode6},"External Interfaces",e.createElement(hl,{title:"External Interfaces",content:"External interfaces for instance public interface, must be a bridge interface. Leave blank for automatic configuration."}),e.createElement("div",null,o)),e.createElement(Xh,{hidden:"dhcp"!==t.network_mode&&""!==t.network_mode&&"dhcp"!==t.network_mode6&&""!==t.network_mode6,label:"Add Interface",value:this.state.addExternalIface,disabled:!h.length||this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addExternalIface:e})},onSubmit:this.onAddExternalIface},h),e.createElement("label",{className:"bp3-label",style:Wh.label},"Internal Interfaces",e.createElement(hl,{title:"Internal Interfaces",content:"Internal interfaces for instance private VPC interface. If zone network mode is default this must be a bridge interface. Set zone network mode to VXLan to use non-bridge interface. Leave blank to use external interface."}),e.createElement("div",null,l)),e.createElement(Xh,{label:"Add Interface",value:this.state.addInternalIface,disabled:!d.length||this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addInternalIface:e})},onSubmit:this.onAddInternalIface},d),e.createElement("label",{className:"bp3-label",hidden:"static"!==t.network_mode,style:Wh.label},"External IPv4 Block Attachments",T),e.createElement("label",{className:"bp3-label",hidden:"static"!==t.network_mode6,style:Wh.label},"External IPv6 Block Attachments",P),e.createElement("label",{className:"bp3-label",hidden:"oracle"!==t.network_mode,style:Wh.label},"Oracle Cloud Subnets",e.createElement(hl,{title:"Oracle Cloud Subnets",content:"Oracle Cloud VCN subnets available to attach to instances."}),e.createElement("div",null,u)),e.createElement(Xh,{label:"Add Subnet",hidden:"oracle"!==t.network_mode,value:this.state.addOracleSubnet,disabled:!p.length||this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addOracleSubnet:e})},onSubmit:this.onAddOracleSubnet},p),e.createElement(Hl,{disabled:this.state.disabled,label:"Host Network Block",help:"IP address block to use for static address on host network.",value:t.host_block,onChange:e=>{this.set("host_block",e)}},m),e.createElement(ul,{disabled:this.state.disabled,hidden:!t.host_block,label:"Host Network NAT",help:"Enable NAT to on the host network.",checked:t.host_nat,onToggle:()=>{this.set("host_nat",!t.host_nat)}}),e.createElement(ul,{disabled:this.state.disabled,hidden:!t.host_block,label:"Oracle Cloud host routing",help:"Automatically update Oracle Cloud routing tables with host network.",checked:t.oracle_host_route,onToggle:()=>{this.set("oracle_host_route",!t.oracle_host_route)}}),e.createElement(vl,{disabled:this.state.disabled,hidden:!t.oracle_host_route&&"oracle"!==t.network_mode&&"oracle"!==t.network_mode6,label:"Oracle Cloud User OCID",help:"User OCID for Oracle Cloud API authentication.",type:"text",placeholder:"Enter user OCID",value:t.oracle_user,onChange:e=>{this.set("oracle_user",e)}}),e.createElement(rh,{disabled:this.state.disabled,hidden:!t.oracle_host_route&&"oracle"!==t.network_mode&&"oracle"!==t.network_mode6,label:"Oracle Cloud Public Key",help:"Public key for Oracle Cloud API authentication.",placeholder:"Oracle Cloud public key",readOnly:!0,rows:6,value:t.oracle_public_key,onChange:e=>{this.set("oracle_public_key",e)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Default instance public IPv4 address",help:"Enable or disable default option for instance public IPv4 address.",checked:!t.default_no_public_address,onToggle:()=>{this.set("default_no_public_address",!t.default_no_public_address)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Default instance public IPv6 address",help:"Enable or disable default option for instance public IPv6 address.",checked:!t.default_no_public_address6,onToggle:()=>{this.set("default_no_public_address6",!t.default_no_public_address6)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Jumbo frames external",help:"Enable jumbo frames on external interfaces, requires node restart when changed. Node external interfaces must be configured for 9000 MTU. Also requires internal jumbo frames.",checked:t.jumbo_frames,onToggle:()=>{this.set("jumbo_frames",!t.jumbo_frames)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Jumbo frames internal",help:"Enable jumbo frames on internal interfaces, requires node restart when changed. Node interal interfaces must be configured for 9000 MTU.",checked:t.jumbo_frames||t.jumbo_frames_internal,onToggle:()=>{this.set("jumbo_frames_internal",!t.jumbo_frames_internal)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Instance iSCSI support",help:"Enable iSCSI disk support for instances.",checked:t.iscsi,onToggle:()=>{this.set("iscsi",!t.iscsi)}}),e.createElement(ul,{disabled:this.state.disabled,label:"PCI Passthough",help:"Enable PCI passthrough support for instances.",checked:t.pci_passthrough,onToggle:()=>{this.set("pci_passthrough",!t.pci_passthrough)}}),e.createElement(ul,{disabled:this.state.disabled,label:"USB Passthough",help:"Enable USB passthrough support for instances.",checked:t.usb_passthrough,onToggle:()=>{this.set("usb_passthrough",!t.usb_passthrough)}}),e.createElement(ul,{disabled:this.state.disabled,label:"HugePages",help:"Static hugepages provide a sector of the system memory to be dedicated for hugepages. This memory will be used for instances allowing higher memory performance and preventing the host system from disturbing memory dedicated for virtual instances. This option should always be used on production systems. The hugepages size must be set with the option below or manually with sysctl. Enabling this option while instances are running is likely to crash the system.",checked:t.hugepages,onToggle:()=>{this.set("hugepages",!t.hugepages)}}),e.createElement(Uh,{label:"HugePages Size",help:"Size of hugepages space in megabytes. Set this option to the size of memory that will be dedicated for virtual instances. It is recommended to leave 4GB of memory for the host system. Set to 0 if the hugepages size is being manually configured.",min:0,minorStepSize:0,stepSize:1024,majorStepSize:1024,disabled:this.state.disabled,hidden:!t.hugepages,selectAllOnFocus:!0,onChange:e=>{this.set("hugepages_size",e)},value:t.hugepages_size}),e.createElement(ul,{disabled:this.state.disabled,label:"Firewall",help:"Configure firewall on node. Incorrectly configuring the firewall can block access to the node.",checked:t.firewall,onToggle:()=>{this.toggleFirewall()}}),e.createElement(ul,{disabled:this.state.disabled,label:"Desktop GUI",help:"Enable support for desktop GUI display for instances. Requires Xorg or Wayland session to be running.",checked:t.gui,onToggle:()=>{this.set("gui",!t.gui)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Desktop GUI Mode",help:"Enable support for desktop GUI display for instances. Requires Xorg or Wayland session to be running.",checked:t.gui,onToggle:()=>{this.set("gui",!t.gui)}}),e.createElement(Hl,{hidden:!t.gui,disabled:this.state.disabled,label:"Desktop GUI Mode",help:"Desktop GUI display mode. SDL is recommended for better compatibility.",value:t.gui_mode,onChange:e=>{this.set("gui_mode",e)}},e.createElement("option",{value:"sdl"},"SDL"),e.createElement("option",{value:"gtk"},"GTK")),e.createElement(vl,{disabled:this.state.disabled,hidden:!t.gui,label:"Desktop GUI User",help:"Username of user to open desktop GUI window.",type:"text",placeholder:"Enter username",value:t.gui_user,onChange:e=>{this.set("gui_user",e)}})),e.createElement("div",{style:Wh.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.node.id||"None"},{label:"Version",value:t.software_version||"Unknown"},{valueClass:n?"":"bp3-text-intent-danger",label:"Timestamp",value:Lr(this.props.node.timestamp)||"Inactive"},{label:"CPU Units",value:(this.props.node.cpu_units||"Unknown").toString()},{label:"CPU Units Reserved",value:(this.props.node.cpu_units_res||0).toString()},{label:"Memory Units",value:(this.props.node.memory_units||"Unknown").toString()},{label:"Memory Units Reserved",value:(this.props.node.memory_units_res||0).toString()},{label:"Default Interface",value:this.props.node.default_interface||"Unknown"},{label:"Hostname",value:t.hostname||"Unknown"},{label:"Public IPv4",value:s,copy:!0},{label:"Public IPv6",value:i,copy:!0},{label:"Requests",value:this.props.node.requests_min+"/min"}],bars:r}),e.createElement(Hl,{hidden:-1===a.indexOf("hypervisor"),disabled:this.state.disabled,label:"Hypervisor Mode",help:"Hypervisor mode, select KVM if CPU has hardware virtualization support.",value:t.hypervisor,onChange:e=>{this.set("hypervisor",e)}},e.createElement("option",{value:"qemu"},"QEMU"),e.createElement("option",{value:"kvm"},"KVM")),e.createElement(Hl,{hidden:-1===a.indexOf("hypervisor"),disabled:this.state.disabled,label:"Hypervisor VGA Type",help:"Type of VGA card to emulate. Virtio provides the best performance. VMware provides better performance then standard. Virtio is required for UEFI guests.",value:t.vga,onChange:e=>{this.set("vga",e)}},e.createElement("option",{value:"virtio"},"Virtio"),e.createElement("option",{value:"virtio_egl"},"Virtio OpenGL"),e.createElement("option",{value:"vmware"},"VMware"),e.createElement("option",{value:"std"},"Standard")),e.createElement(Hl,{hidden:-1===a.indexOf("hypervisor")||"virtio_egl"!==t.vga,disabled:this.state.disabled||!z,label:"Hypervisor EGL Render",help:"Graphics card to use for EGL rendering.",value:t.vga_render,onChange:e=>{this.set("vga_render",e)}},M),e.createElement("label",{className:"bp3-label",style:Wh.label},"Instance Passthrough Disks",e.createElement(hl,{title:"Instance Direct Disks",content:"Disk devices available to instances for passthrough."}),e.createElement("div",null,f)),e.createElement(Xh,{label:"Add Disk",value:this.state.addDrive,disabled:!v.length||this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addDrive:e})},onSubmit:this.onAddDrive},v),e.createElement("label",{className:"bp3-label"},"Network Roles",e.createElement(hl,{title:"Network Roles",content:"Network roles that will be matched with firewall rules. Network roles are case-sensitive. Only firewall roles without an organization will match."}),e.createElement("div",null,x)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addNetworkRole,onChange:e=>{this.setState({...this.state,addNetworkRole:e})},onSubmit:this.onAddNetworkRole}),e.createElement("label",{className:"bp3-label",style:Wh.label,hidden:"http"===t.protocol},"Certificates",e.createElement(hl,{title:"Certificates",content:"The certificates to use for this nodes web server. The certificates must be valid for all the domains that this node provides access to. This includes the management domain and any service domains."}),e.createElement("div",null,g)),e.createElement(Xh,{hidden:"http"===t.protocol,label:"Add Certificate",value:this.state.addCert,disabled:this.state.disabled||!b,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addCert:e})},onSubmit:this.onAddCert},y),e.createElement(Bh,{disabled:this.state.disabled,label:"Forwarded for header",help:"Enable when using a load balancer. This header value will be used to get the users IP address. It is important to only enable this when a load balancer is used. If it is enabled without a load balancer users can spoof their IP address by providing a value for the header that will not be overwritten by a load balancer. Additionally the nodes firewall should be configured to only accept requests from the load balancer to prevent requests being sent directly to the node bypassing the load balancer.",type:"text",placeholder:"Forwarded for header",value:t.forwarded_for_header,checked:this.state.forwardedChecked,defaultValue:"X-Forwarded-For",onChange:(e,t)=>{let n;n=this.state.changed?{...this.state.node}:{...this.props.node},n.forwarded_for_header=t,this.setState({...this.state,changed:!0,forwardedChecked:e,node:n})}}),e.createElement(Bh,{label:"Forwarded proto header",help:"Enable when using a load balancer. This header value will be used to get the users protocol. This will redirect users to https when the forwarded protocol is http.",type:"text",placeholder:"Forwarded proto header",value:t.forwarded_proto_header,checked:this.state.forwardedProtoChecked,defaultValue:"X-Forwarded-Proto",onChange:(e,t)=>{let n;n=this.state.changed?{...this.state.node}:{...this.props.node},n.forwarded_proto_header=t,this.setState({...this.state,changed:!0,forwardedProtoChecked:e,node:n})}}))),e.createElement(ml,{style:Wh.save,hidden:!this.state.node,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,forwardedChecked:!1,forwardedProtoChecked:!1,node:null})},onSave:this.onSave},e.createElement(Ih,{disabled:this.state.disabled||this.state.changed,node:this.props.node,datacenters:this.props.datacenters,zones:this.props.zones,blocks:this.props.blocks})))}}const Yh={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"}};class Zh extends e.Component{render(){let t=this.props.node;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:Yh.cardOpen},e.createElement(Qh,{node:this.props.node,certificates:this.props.certificates,datacenters:this.props.datacenters,zones:this.props.zones,blocks:this.props.blocks,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n=0!==t.requests_min||0!==t.memory||0!==t.load1||0!==t.load5||0!==t.load15,a={...Yh.card};n||(a.opacity=.6);let s={width:(t.memory||0)+"%"},i={width:(t.hugepages_used||0)+"%",backgroundColor:"#7207d4"},r={width:(t.load1||0)+"%"},o={width:(t.load5||0)+"%"};return e.createElement("div",{className:"bp3-card bp3-row",style:a,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:Yh.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:Yh.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:Yh.nameSpan},t.name))),e.createElement("div",{className:"bp3-cell",style:Yh.item},t.requests_min+"/min"),e.createElement("div",{className:"bp3-cell",style:Yh.item},Hr(t.timestamp)||"Inactive"),e.createElement("div",{className:"bp3-cell",style:Yh.bars},e.createElement("div",{className:"bp3-progress-bar bp3-no-stripes bp3-intent-success",style:Yh.bar},e.createElement("div",{className:"bp3-progress-meter",style:r})),e.createElement("div",{className:"bp3-progress-bar bp3-no-stripes bp3-intent-warning",style:Yh.bar},e.createElement("div",{className:"bp3-progress-meter",style:o})),e.createElement("div",{className:"bp3-progress-bar bp3-no-stripes bp3-intent-primary",style:Yh.barLast,hidden:t.hugepages},e.createElement("div",{className:"bp3-progress-meter",style:s})),e.createElement("div",{className:"bp3-progress-bar bp3-no-stripes",style:Yh.barLast,hidden:!t.hugepages},e.createElement("div",{className:"bp3-progress-meter",style:i}))))}}const qh={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class Jh extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.zones&&this.props.zones.length)for(let n of this.props.zones)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));return e.createElement("div",{className:"layout horizontal wrap",style:qh.filters},e.createElement(ho,{style:qh.input,placeholder:"Node ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:qh.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement(ho,{style:qh.role,placeholder:"Network Role",value:this.props.filter.network_role,onChange:e=>{let t={...this.props.filter};e?t.network_role=e:delete t.network_role,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:qh.type},e.createElement("select",{value:this.props.filter.zone||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.zone:t.zone=n,this.props.onFilter(t)}},t)),e.createElement(uo,{style:qh.check,label:"Admin",checked:this.props.filter.admin,onToggle:()=>{let e={...this.props.filter};void 0===e.admin?e.admin=!0:!0===e.admin?e.admin=!1:delete e.admin,this.props.onFilter(e)}}),e.createElement(uo,{style:qh.check,label:"User",checked:this.props.filter.user,onToggle:()=>{let e={...this.props.filter};void 0===e.user?e.user=!0:!0===e.user?e.user=!1:delete e.user,this.props.onFilter(e)}}),e.createElement(uo,{style:qh.check,label:"Hypervisor",checked:this.props.filter.hypervisor,onToggle:()=>{let e={...this.props.filter};void 0===e.hypervisor?e.hypervisor=!0:!0===e.hypervisor?e.hypervisor=!1:delete e.hypervisor,this.props.onFilter(e)}}))}}const $h={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class ed extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:ph.page,pageCount:ph.pageCount,pages:ph.pages,count:ph.count})},this.state={page:ph.page,pageCount:ph.pageCount,pages:ph.pages,count:ph.count}}componentDidMount(){ph.addChangeListener(this.onChange)}componentWillUnmount(){ph.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{Th(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{Th(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:$h.button,disabled:0===t,type:"button",onClick:()=>{Th(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:$h.button,disabled:t===n-1,type:"button",onClick:()=>{Th(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{Th(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const td={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class nd extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=ph.nodes,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,nodes:e,filter:ph.filter,certificates:fh.certificates,datacenters:gh.datacenters,zones:yh.zones,blocks:wh.blocks,selected:t,opened:a})},this.state={nodes:ph.nodes,filter:ph.filter,certificates:fh.certificates,datacenters:gh.datacenters,zones:yh.zones,blocks:wh.blocks,selected:{},opened:{},lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){ph.addChangeListener(this.onChange),fh.addChangeListener(this.onChange),gh.addChangeListener(this.onChange),yh.addChangeListener(this.onChange),wh.addChangeListener(this.onChange),xh(),Ph(),Hh(),Nh(),Oh(),this.interval=setInterval((()=>{xh(!0)}),1e3)}componentWillUnmount(){ph.removeChangeListener(this.onChange),fh.removeChangeListener(this.onChange),gh.removeChangeListener(this.onChange),yh.removeChangeListener(this.onChange),wh.removeChangeListener(this.onChange),clearInterval(this.interval)}render(){let t=[];this.state.nodes.forEach((n=>{t.push(e.createElement(Zh,{key:n.id,node:n,certificates:this.state.certificates,datacenters:this.state.datacenters,zones:this.state.zones,blocks:this.state.blocks,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.nodes;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";return this.state.filter&&(n+="bp3-active"),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:td.header},e.createElement("h2",{style:td.heading},"Nodes"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:td.buttons},e.createElement("button",{className:n,style:td.button,type:"button",onClick:()=>{null===this.state.filter?Lh({}):Lh(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:td.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All")))),e.createElement(Jh,{filter:this.state.filter,onFilter:e=>{Lh(e)},zones:this.state.zones}),e.createElement("div",{style:td.itemsBox},e.createElement("div",{style:td.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:td.placeholder},e.createElement("td",{colSpan:4,style:td.placeholder})))),e.createElement(ed,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const ad="policy.sync";const sd=new class extends hr{constructor(){super(...arguments),this._policies=Object.freeze([]),this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._policies=Object.freeze([]),this._map={},this.emitChange()}get policies(){return this._policies}get policiesM(){let e=[];return this._policies.forEach((t=>{e.push({...t})})),e}policy(e){let t=this._map[e];return void 0===t?null:this._policies[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{vn.get("/policy").set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===od){if(s)return Ui(i,"Failed to load policies"),void a(s);lr.dispatch({type:ad,data:{policies:i.body}}),n()}else n()}))}))}function hd(){let e=zr();ld=e;let t=(new Nr).loading();return new Promise(((n,a)=>{vn.get("/settings").set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===ld){if(s)return Ui(i,"Failed to sync builds"),void a(s);lr.dispatch({type:id,data:i.body}),n()}else n()}))}))}kr.register((e=>{if("policy.change"===e.type)$i||cd()})),kr.register((e=>{if("settings.change"===e.type)$i||hd()}));const dd={item:{margin:"9px 5px 0 5px",height:"20px"}};class ud extends e.Component{constructor(e,t){super(e,t),this.onAddValue=e=>{if(!e)return;let t=this.clone(),n=[...t.values];-1===n.indexOf(e)&&n.push(e),n.sort(),t.values=n,this.props.onChange(t)},this.state={addValue:""}}clone(){return{...this.props.rule}}onRemoveValue(e){let t=this.clone(),n=[...t.values],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.values=n,this.props.onChange(t))}render(){let t,n,a,s,i,r=this.props.rule;switch(this.props.rule.type){case"operating_system":n="Permitted Operating Systems",a="Operating system policies",i=ar;break;case"browser":n="Permitted Browsers",a="Browser policies",i=sr;break;case"location":n="Permitted Locations",a="Location policies",i=ir;break;case"whitelist_networks":n="Permitted Networks",a="Permitted network policies",s="Add network";break;case"blacklist_networks":n="Blocked Networks",a="Blocked network policies",s="Add network"}let o=[];for(let n in i)i.hasOwnProperty(n)&&(t||(t=n),o.push(e.createElement("option",{key:n,value:n},i[n])));let l,c=[];for(let t of r.values||[])c.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:dd.item,key:t},i&&i[t]||t,e.createElement("button",{className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveValue(t)}})));return l=i?e.createElement(Xh,{hidden:null==r.values,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",value:this.state.addValue,onChange:e=>{this.setState({...this.state,addValue:e})},onSubmit:()=>{this.onAddValue(this.state.addValue||t)}},o):e.createElement(Ll,{hidden:null==r.values,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:s,value:this.state.addValue,onChange:e=>{this.setState({...this.state,addValue:e})},onSubmit:()=>{this.onAddValue(this.state.addValue),this.setState({...this.state,addValue:null})}}),e.createElement("div",null,e.createElement(ul,{label:a,help:"Turn on to enable policy.",checked:null!=r.values,onToggle:()=>{let e=this.clone();e.values=null==r.values?[]:null,this.props.onChange(e)}}),e.createElement(ul,{label:"Disabled user on failure",help:"This will disable the user when the policy check fails. It is generally only useful for the location check to disable a user account when an authentication occurs from a foreign country. It is important to consider that the policy check is the last check that occurs during authentication. An authentication attempt with an incorrect password from a foreign country would not trigger a policy failure or disable the user.",checked:r.disable,hidden:null==r.values,onToggle:()=>{let e=this.clone();e.disable=!e.disable,this.props.onChange(e)}}),e.createElement("label",{className:"bp3-label",hidden:null==r.values},n,e.createElement(hl,{title:n,content:"One of the values must match for the check to pass."}),e.createElement("div",null,c)),l)}}const pd={card:{position:"relative",padding:"10px 10px 0 10px",marginBottom:"5px"},remove:{position:"absolute",top:"5px",right:"5px"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"}};class md extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/policy/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save policy"),void a(e)):void n())))}))}(this.state.policy).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,policy:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/policy/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete policies"),void a(e)):void n())))}))}(this.props.policy.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onAddRole=()=>{let e;e=this.state.changed?{...this.state.policy}:{...this.props.policy};let t=[...e.roles||[]];this.state.addRole&&(-1===t.indexOf(this.state.addRole)&&t.push(this.state.addRole),t.sort(),e.roles=t,this.setState({...this.state,changed:!0,message:"",addRole:"",policy:e}))},this.state={disabled:!1,changed:!1,message:"",policy:null,addRole:null}}set(e,t){let n;n=this.state.changed?{...this.state.policy}:{...this.props.policy},n[e]=t,this.setState({...this.state,changed:!0,policy:n})}setRule(e,t){let n;n=this.state.changed?{...this.state.policy}:{...this.props.policy};let a={...n.rules||{}};null==t.values?delete a[e]:a[e]=t,n.rules=a,this.setState({...this.state,changed:!0,policy:n})}onRemoveRole(e){let t;t=this.state.changed?{...this.state.policy}:{...this.props.policy};let n=[...t.roles||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.roles=n,this.setState({...this.state,changed:!0,message:"",addRole:"",policy:t}))}render(){let t=this.state.policy||this.props.policy,n=[];for(let a of t.roles||[])n.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:pd.item,key:a},a,e.createElement("button",{className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveRole(a)}})));let a=t.rules||{},s=a.operating_system||{type:"operating_system"},i=a.browser||{type:"browser"},r=a.location||{type:"location"},o=a.whitelist_networks||{type:"whitelist_networks"},l=a.blacklist_networks||{type:"blacklist_networks"},c=[],h=[],d=[];if(this.props.providers.length)for(let t of this.props.providers)c.push(t.id),h.push(e.createElement("option",{key:t.id,value:t.id},t.name)),d.push(e.createElement("option",{key:t.id,value:t.id},t.name));else h.push(e.createElement("option",{key:"null",value:""},"None")),d.push(e.createElement("option",{key:"null",value:""},"None"));let u=t.admin_secondary&&-1!==c.indexOf(t.admin_secondary),p=t.user_secondary&&-1!==c.indexOf(t.user_secondary);return e.createElement("div",{className:"bp3-card",style:pd.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:pd.group},e.createElement("div",{style:pd.remove},e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Policy",confirmMsg:"Permanently delete this policy",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of policy",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Policy comment.",placeholder:"Policy comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement("label",{className:"bp3-label"},"Roles",e.createElement(hl,{title:"Roles",content:"Roles associated with this policy. All requests from users with associated roles must pass this policy check."}),e.createElement("div",null,n)),e.createElement(Ll,{buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addRole,onChange:e=>{this.setState({...this.state,addRole:e})},onSubmit:this.onAddRole}),e.createElement(ul,{label:"Admin two-factor authentication",help:"Require admins to use two-factor authentication.",checked:u,onToggle:()=>{if(u)this.set("admin_secondary",null);else{if(0===this.props.providers.length)return void Xi("No two-factor authentication providers exist");this.set("admin_secondary",this.props.providers[0].id)}}}),e.createElement(Hl,{disabled:this.state.disabled,label:"Admin Two-Factor Provider",help:"Two-factor authentication provider that will be used. For users matching multiple policies the first provider will be used.",hidden:!u,value:t.admin_secondary,onChange:e=>{this.set("admin_secondary",e)}},h),e.createElement(ul,{label:"User two-factor authentication",help:"Require users to use two-factor authentication.",checked:p,onToggle:()=>{if(p)this.set("user_secondary",null);else{if(0===this.props.providers.length)return void Xi("No two-factor authentication providers exist");this.set("user_secondary",this.props.providers[0].id)}}}),e.createElement(Hl,{disabled:this.state.disabled,label:"User Two-Factor Provider",help:"Two-factor authentication provider that will be used. For users matching multiple policies the first provider will be used.",hidden:!p,value:t.user_secondary,onChange:e=>{this.set("user_secondary",e)}},d),e.createElement(ud,{rule:o,onChange:e=>{this.setRule("whitelist_networks",e)}}),e.createElement(ud,{rule:l,onChange:e=>{this.setRule("blacklist_networks",e)}})),e.createElement("div",{style:pd.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.policy.id||"None"}]}),e.createElement(ul,{label:"Enabled",help:"Enable or disable policy.",checked:!t.disabled,onToggle:()=>{this.set("disabled",!t.disabled)}}),e.createElement(ud,{rule:r,onChange:e=>{this.setRule("location",e)}}),e.createElement(ud,{rule:s,onChange:e=>{this.setRule("operating_system",e)}}),e.createElement(ud,{rule:i,onChange:e=>{this.setRule("browser",e)}}),e.createElement(ul,{label:"Admin WebAuthn device authentication",help:"Require admins to use WebAuthn device authentication.",checked:t.admin_device_secondary,onToggle:()=>{this.set("admin_device_secondary",!t.admin_device_secondary)}}),e.createElement(ul,{label:"User WebAuthn device authentication",help:"Require users to use WebAuthn device authentication.",checked:t.user_device_secondary,onToggle:()=>{this.set("user_device_secondary",!t.user_device_secondary)}}))),e.createElement(ml,{style:pd.save,hidden:!this.state.policy,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,policy:null})},onSave:this.onSave}))}}const fd={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class vd extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,policies:sd.policies,providers:rd.settings?rd.settings.auth_secondary_providers:[]})},this.state={policies:sd.policies,providers:rd.settings?rd.settings.auth_secondary_providers:[],disabled:!1}}componentDidMount(){sd.addChangeListener(this.onChange),rd.addChangeListener(this.onChange),cd(),hd()}componentWillUnmount(){sd.removeChangeListener(this.onChange),rd.removeChangeListener(this.onChange)}render(){let t=[];return this.state.policies.forEach((n=>{t.push(e.createElement(md,{key:n.id,policy:n,providers:this.state.providers}))})),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:fd.header},e.createElement("h2",{style:fd.heading},"Policies"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:fd.buttons},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:fd.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/policy").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create policy"),void a(e)):void n())))}))}(null).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-filter",title:"No policies",description:"Add a new policy to get started."}))}}let gd;function bd(){let e=zr();gd=e;let t=(new Nr).loading();return new Promise(((n,a)=>{vn.get("/organization").set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===gd){if(s)return Ui(i,"Failed to load organizations"),void a(s);lr.dispatch({type:vr,data:{organizations:i.body}}),n()}else n()}))}))}kr.register((e=>{if("organization.change"===e.type)bd()}));const yd={group:{width:"100%",maxWidth:"310px",marginTop:"5px"},domain:{width:"100%",borderRadius:"0 3px 3px 0"},domainBox:{flex:"1"}};class _d extends e.Component{render(){return e.createElement("div",{className:"bp3-control-group",style:yd.group},e.createElement("div",{style:yd.domainBox},e.createElement("input",{className:"bp3-input",style:yd.domain,disabled:this.props.disabled,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Domain",value:this.props.domain||"",onChange:e=>{this.props.onChange(e.target.value)}})),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",disabled:this.props.disabled,onClick:()=>{this.props.onRemove()}}))}}const wd={card:{position:"relative",padding:"10px 10px 0 10px",marginBottom:"5px"},remove:{position:"absolute",top:"5px",right:"5px"},domain:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"}};class Cd extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/certificate/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save certificate"),void a(e)):void n())))}))}(this.state.certificate).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,certificate:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/certificate/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete certificates"),void a(e)):void n())))}))}(this.props.certificate.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onAddDomain=()=>{let e;e=this.state.changed?{...this.state.certificate}:{...this.props.certificate};let t=[...e.acme_domains,""];e.acme_domains=t,this.setState({...this.state,changed:!0,message:"",addDomain:"",certificate:e})},this.state={disabled:!1,changed:!1,message:"",certificate:null,addDomain:null}}set(e,t){let n;n=this.state.changed?{...this.state.certificate}:{...this.props.certificate},n[e]=t,this.setState({...this.state,changed:!0,certificate:n})}onChangeDomain(e,t){let n;n=this.state.changed?{...this.state.certificate}:{...this.props.certificate};let a=[...n.acme_domains];a[e]=t,n.acme_domains=a,this.setState({...this.state,changed:!0,message:"",certificate:n})}onRemoveDomain(e){let t;t=this.state.changed?{...this.state.certificate}:{...this.props.certificate};let n=[...t.acme_domains];n.splice(e,1),t.acme_domains=n,this.setState({...this.state,changed:!0,message:"",addDomain:"",certificate:t})}render(){let t=this.state.certificate||this.props.certificate,n=this.props.certificate.info||{},a=[];if(a.push(e.createElement("option",{key:"null",value:""},"Node Certificate")),this.props.organizations.length)for(let t of this.props.organizations)a.push(e.createElement("option",{key:t.id,value:t.id},t.name));let s=[];for(let n=0;n{this.onChangeDomain(a,e)},onRemove:()=>{this.onRemoveDomain(a)}}))}return e.createElement("div",{className:"bp3-card",style:wd.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:wd.group},e.createElement("div",{style:wd.remove},e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Certificate",confirmMsg:"Permanently delete this certificate",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of certificate",type:"text",placeholder:"Name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Certificate comment.",placeholder:"Certificate comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(rh,{readOnly:"text"!==t.type,label:"Private Key",help:"Certificate private key in PEM format",placeholder:"Private key",rows:6,value:t.key,onChange:e=>{this.set("key",e)}}),e.createElement(rh,{readOnly:"text"!==t.type,label:"Certificate Chain",help:"Certificate followed by certificate chain in PEM format",placeholder:"Certificate chain",rows:6,value:t.certificate,onChange:e=>{this.set("certificate",e)}}),e.createElement("label",{style:wd.itemsLabel,hidden:"lets_encrypt"!==t.type},"LetsEncrypt Domains",e.createElement(hl,{title:"LetsEncrypt Domains",content:"Enter domain names for the certificate. All domains names must point to a Pritunl Cloud server in the cluster. The servers must also have port 80 publicy open. The port will need to stay open to renew the certificate."})),e.createElement("div",{hidden:"lets_encrypt"!==t.type},s),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",disabled:this.state.disabled||$i,style:wd.itemsAdd,hidden:"lets_encrypt"!==t.type,type:"button",onClick:this.onAddDomain},"Add Domain")),e.createElement("div",{style:wd.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.certificate.id||"None"},{label:"Signature Algorithm",value:n.signature_alg||"Unknown"},{label:"Public Key Algorithm",value:n.public_key_alg||"Unknown"},{label:"Issuer",value:n.issuer||"Unknown"},{label:"Issued On",value:Lr(n.issued_on)||"Unknown"},{label:"Expires On",value:Lr(n.expires_on)||"Unknown"},{label:"DNS Names",value:n.dns_names||"Unknown"}]}),e.createElement(Hl,{label:"Type",disabled:this.state.disabled||$i,help:"Certificate type, use text to provide a certificate. LetsEncrypt provides free certificates that automatically renew.",value:t.type,onChange:e=>{this.set("type",e)}},e.createElement("option",{value:"text"},"Text"),e.createElement("option",{value:"lets_encrypt"},"LetsEncrypt")),e.createElement(Hl,{disabled:this.state.disabled,hidden:$i,label:"Organization",help:"Organization for certificate. Select node to create a certificate for nodes. Load balancers in the same organization will have access to this certificate.",value:t.organization,onChange:e=>{this.set("organization",e)}},a))),e.createElement(ml,{style:wd.save,hidden:!this.state.certificate,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,certificate:null})},onSave:this.onSave}))}}const Ed={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"},noCerts:{height:"auto"}};class Sd extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,certificates:fh.certificates,organizations:gr.organizations})},this.state={certificates:fh.certificates,organizations:gr.organizations,disabled:!1}}componentDidMount(){fh.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),Ph(),bd()}componentWillUnmount(){fh.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[];return this.state.certificates.forEach((n=>{t.push(e.createElement(Cd,{key:n.id,certificate:n,organizations:this.state.organizations}))})),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Ed.header},e.createElement("h2",{style:Ed.heading},"Certificates"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Ed.buttons},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:Ed.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/certificate").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create certificate"),void a(e)):void n())))}))}(null).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-endorsed",title:"No certificates",description:"Add a new certificate to get started."}))}}const kd={card:{position:"relative",padding:"10px 10px 0 10px",marginBottom:"5px"},remove:{position:"absolute",top:"5px",right:"5px"},role:{margin:"9px 5px 0 5px",height:"20px"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"}};class zd extends e.Component{constructor(e,t){super(e,t),this.onAddRole=()=>{let e;e=this.state.changed?{...this.state.organization}:{...this.props.organization};let t=[...e.roles];this.state.addRole&&(-1===t.indexOf(this.state.addRole)&&t.push(this.state.addRole),t.sort(),e.roles=t,this.setState({...this.state,changed:!0,message:"",addRole:"",organization:e}))},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/organization/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save organization"),void a(e)):void n())))}))}(this.state.organization).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,organization:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/organization/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete organizations"),void a(e)):void n())))}))}(this.props.organization.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",addRole:"",organization:null}}set(e,t){let n;n=this.state.changed?{...this.state.organization}:{...this.props.organization},n[e]=t,this.setState({...this.state,changed:!0,organization:n})}onRemoveRole(e){let t;t=this.state.changed?{...this.state.organization}:{...this.props.organization};let n=[...t.roles],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.roles=n,this.setState({...this.state,changed:!0,message:"",addRole:"",organization:t}))}render(){let t=this.state.organization||this.props.organization,n=[];for(let a of t.roles||[])n.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:kd.role,key:a},a,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveRole(a)}})));return e.createElement("div",{className:"bp3-card",style:kd.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:kd.group},e.createElement("div",{style:kd.remove},e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Organization",confirmMsg:"Permanently delete this organization",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of organization",type:"text",placeholder:"Name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Organization comment.",placeholder:"Organization comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}})),e.createElement("div",{style:kd.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.organization.id||"None"}]}),e.createElement("label",{className:"bp3-label"},"Roles",e.createElement(hl,{title:"Roles",content:"User roles will be used to match with organization roles. A user must have a matching role to access an organization."}),e.createElement("div",null,n)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addRole,onChange:e=>{this.setState({...this.state,addRole:e})},onSubmit:this.onAddRole}))),e.createElement(ml,{style:kd.save,hidden:!this.state.organization,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,organization:null})},onSave:this.onSave}))}}const Md={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"},noCerts:{height:"auto"}};class xd extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,organizations:gr.organizations})},this.state={organizations:gr.organizations,disabled:!1}}componentDidMount(){gr.addChangeListener(this.onChange),bd()}componentWillUnmount(){gr.removeChangeListener(this.onChange)}render(){let t=[];return this.state.organizations.forEach((n=>{t.push(e.createElement(zd,{key:n.id,organization:n}))})),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Md.header},e.createElement("h2",{style:Md.heading},"Organizations"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Md.buttons},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:Md.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/organization").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create organization"),void a(e)):void n())))}))}(null).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-people",title:"No organizations",description:"Add a new organization to get started."}))}}const Ad="storage.sync";const Td=new class extends hr{constructor(){super(...arguments),this._storages=Object.freeze([]),this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._storages=Object.freeze([]),this._map={},this.emitChange()}get storages(){return this._storages}get storagesM(){let e=[];return this._storages.forEach((t=>{e.push({...t})})),e}storage(e){let t=this._map[e];return void 0===t?null:this._storages[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{vn.get("/storage").set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Ld){if(s)return Ui(i,"Failed to load storages"),void a(s);lr.dispatch({type:Ad,data:{storages:i.body}}),n()}else n()}))}))}function Hd(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/storage/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save storage"),void a(e)):void n())))}))}kr.register((e=>{if("storage.change"===e.type)$i||Pd()}));const Nd={card:{position:"relative",padding:"10px 10px 0 10px",marginBottom:"5px"},remove:{position:"absolute",top:"5px",right:"5px"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"}};class Od extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/datacenter/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save datacenter"),void a(e)):void n())))}))}(this.state.datacenter).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,datacenter:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/datacenter/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete datacenters"),void a(e)):void n())))}))}(this.props.datacenter.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onAddStorage=()=>{let e;if(!this.state.addStorage&&!this.props.storages.length)return;let t=this.state.addStorage||this.props.storages[0].id;e=this.state.changed?{...this.state.datacenter}:{...this.props.datacenter};let n=[...e.public_storages||[]];-1===n.indexOf(t)&&n.push(t),n.sort(),e.public_storages=n,this.setState({...this.state,changed:!0,datacenter:e})},this.onRemoveStorage=e=>{let t;t=this.state.changed?{...this.state.datacenter}:{...this.props.datacenter};let n=[...t.public_storages||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.public_storages=n,this.setState({...this.state,changed:!0,datacenter:t}))},this.onAddOrganization=()=>{let e;if(!this.state.addOrganization&&!this.props.organizations.length)return;let t=this.state.addOrganization||this.props.organizations[0].id;e=this.state.changed?{...this.state.datacenter}:{...this.props.datacenter};let n=[...e.organizations||[]];-1===n.indexOf(t)&&n.push(t),n.sort(),e.organizations=n,this.setState({...this.state,changed:!0,datacenter:e})},this.onRemoveOrganization=e=>{let t;t=this.state.changed?{...this.state.datacenter}:{...this.props.datacenter};let n=[...t.organizations||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.organizations=n,this.setState({...this.state,changed:!0,datacenter:t}))},this.state={disabled:!1,changed:!1,message:"",datacenter:null,addStorage:"",addOrganization:null}}set(e,t){let n;n=this.state.changed?{...this.state.datacenter}:{...this.props.datacenter},n[e]=t,this.setState({...this.state,changed:!0,datacenter:n})}toggle(e){let t;t=this.state.changed?{...this.state.datacenter}:{...this.props.datacenter},t[e]=!t[e],this.setState({...this.state,changed:!0,datacenter:t})}render(){let t=this.state.datacenter||this.props.datacenter,n=[];for(let a of t.organizations||[]){let t=gr.organization(a);t&&n.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Nd.item,key:t.id},t.name,e.createElement("button",{className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveOrganization(t.id)}})))}let a=[];if(this.props.organizations.length)for(let t of this.props.organizations)a.push(e.createElement("option",{key:t.id,value:t.id},t.name));else a.push(e.createElement("option",{key:"null",value:""},"None"));let s=[];for(let n of t.public_storages||[]){let t=Td.storage(n);t&&s.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Nd.item,key:t.id},t.name,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveStorage(t.id)}})))}let i=!1,r=[e.createElement("option",{key:"null",value:""},"None")],o=[e.createElement("option",{key:"null",value:""},"None")],l=[];if(this.props.storages.length)for(let t of this.props.storages)"public"===t.type?(i=!0,l.push(e.createElement("option",{key:t.id,value:t.id},t.name))):"private"===t.type&&(r.push(e.createElement("option",{key:t.id,value:t.id},t.name)),o.push(e.createElement("option",{key:t.id,value:t.id},t.name)));return i||l.push(e.createElement("option",{key:"null",value:""},"No Storages")),e.createElement("div",{className:"bp3-card",style:Nd.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Nd.group},e.createElement("div",{style:Nd.remove},e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Datacenter",confirmMsg:"Permanently delete this datacenter",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{disabled:this.state.disabled,label:"Name",help:"Name of datacenter",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Datacenter comment.",placeholder:"Datacenter comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Hl,{disabled:this.state.disabled,label:"Private Storage",help:"Private storage that will store instance snapshots.",value:t.private_storage,onChange:e=>{this.set("private_storage",e)}},r),e.createElement(Hl,{disabled:this.state.disabled,label:"Private Storage Class",help:"Private storage class to use when upload new objects.",value:t.private_storage_class,onChange:e=>{this.set("private_storage_class",e)}},e.createElement("option",{value:""},"Default"),e.createElement("option",{value:"aws_standard"},"AWS Standard"),e.createElement("option",{value:"aws_infrequent_access"},"AWS Standard-IA"),e.createElement("option",{value:"aws_glacier"},"AWS Glacier")),e.createElement(Hl,{disabled:this.state.disabled,label:"Backup Storage",help:"Backup storage that will store instance backups.",value:t.backup_storage,onChange:e=>{this.set("backup_storage",e)}},o),e.createElement(Hl,{disabled:this.state.disabled,label:"Backup Storage Class",help:"Backup storage class to use when upload new objects.",value:t.backup_storage_class,onChange:e=>{this.set("backup_storage_class",e)}},e.createElement("option",{value:""},"Default"),e.createElement("option",{value:"aws_standard"},"AWS Standard"),e.createElement("option",{value:"aws_infrequent_access"},"AWS Standard-IA"),e.createElement("option",{value:"aws_glacier"},"AWS Glacier"))),e.createElement("div",{style:Nd.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.datacenter.id||"None"}]}),e.createElement("label",{className:"bp3-label",style:Nd.label},"Public Storages",e.createElement(hl,{title:"Public Storages",content:"Public storages that can be used for new instance images."}),e.createElement("div",null,s)),e.createElement(Xh,{label:"Add Storage",value:this.state.addStorage,disabled:!i||this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addStorage:e})},onSubmit:this.onAddStorage},l),e.createElement(ul,{label:"Match organizations",help:"Limit what organizations can access this datacenter, by default all organizations will have access.",checked:t.match_organizations,onToggle:()=>{this.toggle("match_organizations")}}),e.createElement("label",{className:"bp3-label",style:Nd.label,hidden:!t.match_organizations},"Organizations",e.createElement(hl,{title:"Organizations",content:"Organizations that can access this zone."}),e.createElement("div",null,n)),e.createElement(Xh,{label:"Add Organization",value:this.state.addOrganization,disabled:!this.props.organizations.length,hidden:!t.match_organizations,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addOrganization:e})},onSubmit:this.onAddOrganization},a))),e.createElement(ml,{style:Nd.save,hidden:!this.state.datacenter,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,datacenter:null})},onSave:this.onSave}))}}const Vd={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"},noCerts:{height:"auto"}};class Dd extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,datacenters:gh.datacenters,storages:Td.storages,organizations:gr.organizations})},this.state={datacenters:gh.datacenters,storages:Td.storages,organizations:gr.organizations,disabled:!1}}componentDidMount(){gh.addChangeListener(this.onChange),Td.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),Hh(),Pd(),bd()}componentWillUnmount(){gh.removeChangeListener(this.onChange),Td.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[];return this.state.datacenters.forEach((n=>{t.push(e.createElement(Od,{key:n.id,datacenter:n,storages:this.state.storages,organizations:this.state.organizations}))})),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Vd.header},e.createElement("h2",{style:Vd.heading},"Datacenters"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Vd.buttons},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:Vd.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/datacenter").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create datacenter"),void a(e)):void n())))}))}(null).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-cloud",title:"No datacenters",description:"Add a new datacenter to get started."}))}}const Id="alert.sync",Rd="alert.traverse",Bd="alert.filter";const Fd=new class extends hr{constructor(){super(...arguments),this._alerts=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}get alerts(){return this._alerts}get alertsM(){let e=[];return this._alerts.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}alert(e){let t=this._map[e];return void 0===t?null:this._alerts[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}authority(e){let t=this._map[e];return void 0===t?null:this._authorities[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/alert").query({...Fd.filter,page:Fd.page,page_count:Fd.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===jd){if(s)return Ui(i,"Failed to load alerts"),void a(s);lr.dispatch({type:Id,data:{alerts:i.body.alerts,count:i.body.count}}),n()}else n()}))}))}function Yd(e){return lr.dispatch({type:Rd,data:{page:e}}),Qd()}function Zd(e){return lr.dispatch({type:Bd,data:{filter:e}}),Qd()}function qd(e){let t,n=zr();return Wd=n,e||(t=(new Nr).loading()),new Promise(((e,a)=>{vn.get("/authority").query({...Gd.filter,page:Gd.page,page_count:Gd.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===Wd){if(s)return Ui(i,"Failed to load authorities"),void a(s);lr.dispatch({type:Xd,data:{authorities:i.body.authorities,count:i.body.count}}),e()}else e()}))}))}function Jd(e){return lr.dispatch({type:Kd,data:{page:e}}),qd()}function $d(e){return lr.dispatch({type:Ud,data:{filter:e}}),qd()}kr.register((e=>{if("alert.change"===e.type)Qd()})),kr.register((e=>{if("authority.change"===e.type)$i||qd()}));const eu={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},remove:{position:"absolute",top:"5px",right:"5px"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"250px",margin:"0 10px"},controlButton:{marginRight:"10px"},save:{paddingBottom:"10px"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},header:{fontSize:"20px",marginTop:"-10px",paddingBottom:"2px",marginBottom:"10px",borderBottomStyle:"solid"},heading:{margin:"19px 0 0 0"},alertsButtons:{marginTop:"8px"},alertsAdd:{margin:"8px 0 0 8px"}};class tu extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/alert/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save alert"),void a(e)):void n())))}))}(this.state.alert).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,alert:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/alert/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>{if(t.done(),e)return Ui(s,"Failed to delete alerts"),void a(e);n()}))}))}(this.props.alert.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onAddRole=()=>{let e;e=this.state.changed?{...this.state.alert}:{...this.props.alert};let t=[...e.roles];this.state.addRole&&(-1===t.indexOf(this.state.addRole)&&t.push(this.state.addRole),t.sort(),e.roles=t,this.setState({...this.state,changed:!0,message:"",addRole:"",alert:e}))},this.onAddIgnore=()=>{let e;e=this.state.changed?{...this.state.alert}:{...this.props.alert};let t=[...e.ignores||[]];this.state.addIgnore&&(-1===t.indexOf(this.state.addIgnore)&&t.push(this.state.addIgnore),t.sort(),e.ignores=t,this.setState({...this.state,changed:!0,message:"",addIgnore:"",alert:e}))},this.state={disabled:!1,changed:!1,message:"",addRole:"",addIgnore:"",alert:null}}set(e,t){let n;n=this.state.changed?{...this.state.alert}:{...this.props.alert},n[e]=t,this.setState({...this.state,changed:!0,alert:n})}onRemoveRole(e){let t;t=this.state.changed?{...this.state.alert}:{...this.props.alert};let n=[...t.roles],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.roles=n,this.setState({...this.state,changed:!0,message:"",addRole:"",alert:t}))}onRemoveIgnore(e){let t;t=this.state.changed?{...this.state.alert}:{...this.props.alert};let n=[...t.ignores||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.ignores=n,this.setState({...this.state,changed:!0,message:"",addIgnore:"",alert:t}))}render(){let t=this.state.alert||this.props.alert,n=[];if(n.push(e.createElement("option",{key:"null",value:""},"Node Firewall")),this.props.organizations.length)for(let t of this.props.organizations)n.push(e.createElement("option",{key:t.id,value:t.id},t.name));let a=[{label:"ID",value:this.props.alert.id||"None"}],s=[];for(let n of t.roles)s.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:eu.item,key:n},n,e.createElement("button",{className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveRole(n)}})));let i=[];for(let n of t.ignores||[])i.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:eu.item,key:n},n,e.createElement("button",{className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveRole(n)}})));let r=!1,o=!1,l="",c="";switch(t.resource){case"system_cpu_level":r=!0,l="Usage Threshold",c="Maximum percent CPU usage as integer before alert is triggered.";break;case"system_memory_level":r=!0,l="Usage Threshold",c="Maximum percent memory usage as integer before alert is triggered.";break;case"system_swap_level":r=!0,l="Usage Threshold",c="Maximum percent swap usage as integer before alert is triggered.";break;case"system_hugepages_level":r=!0,l="Usage Threshold",c="Maximum percent hugepages usage as integer before alert is triggered.";break;case"disk_usage_level":r=!0,l="Usage Threshold",c="Maximum percent disk space usage as integer before alert is triggered.";break;case"kmsg_keyword":o=!0,l="Dmesg Keyword Match",c="Case insensitive dmesg match string to trigger alert."}return e.createElement("td",{className:"bp3-cell",colSpan:2,style:eu.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:eu.group},e.createElement("div",{className:"layout horizontal tab-close",style:eu.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox",style:eu.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Alert",confirmMsg:"Permanently delete this alert",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{disabled:this.state.disabled,label:"Name",help:"Name of alert",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement("label",{className:"bp3-label"},"Roles",e.createElement(hl,{title:"Roles",content:"The user roles that will be allowed access to this alert. At least one role must match for the user to access the alert."}),e.createElement("div",null,s)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addRole,onChange:e=>{this.setState({...this.state,addRole:e})},onSubmit:this.onAddRole}),e.createElement(Hl,{disabled:this.state.disabled,label:"Alert Type",help:"Type of alert",value:t.resource,onChange:e=>{this.set("resource",e)}},e.createElement("option",{value:"instance_offline"},"Instance Offline")),e.createElement("label",{className:"bp3-label",hidden:!0},"",e.createElement(hl,{title:"",content:""}),e.createElement("div",null,i)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add ignore",value:this.state.addIgnore,hidden:!0,onChange:e=>{this.setState({...this.state,addIgnore:e})},onSubmit:this.onAddIgnore})),e.createElement("div",{style:eu.group},e.createElement(Bo,{fields:a}),e.createElement(Hl,{disabled:this.state.disabled,hidden:$i,label:"Organization",help:"Organization for alert, both the organaization and role must match. Select node firewall to match node network roles.",value:t.organization,onChange:e=>{this.set("organization",e)}},n),e.createElement(vl,{disabled:this.state.disabled,label:l,help:c,type:"text",placeholder:"Default",value:t.value_int,hidden:!r,onChange:e=>{this.set("value_int",parseInt(e,10))}}),e.createElement(vl,{disabled:this.state.disabled,label:l,help:c,type:"text",placeholder:"Default",value:t.value_str,hidden:!o,onChange:e=>{this.set("value_str",e)}}),e.createElement(Hl,{disabled:this.state.disabled,label:"Alert Level",help:"Level of alert, used for matching device notifications. An endpoint role must also match a user role for ntofications.",value:(t.level||0).toString(),onChange:e=>{this.set("level",parseInt(e,10))}},e.createElement("option",{value:"1"},"Low"),e.createElement("option",{value:"5"},"Medium"),e.createElement("option",{value:"10"},"High")),e.createElement(vl,{disabled:this.state.disabled,label:"Alert Frequency",help:"Minimum duration in seconds between repeat alerts.",type:"text",placeholder:"Enter frequency",value:t.frequency,onChange:e=>{this.set("frequency",parseInt(e,10))}}))),e.createElement(ml,{style:eu.save,hidden:!this.state.alert&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,alert:null})},onSave:this.onSave}))}}const nu={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},icon:{marginRight:"3px"},tag:{margin:"8px 5px 0 5px",height:"20px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"}};class au extends e.Component{render(){let t=this.props.alert;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:nu.cardOpen},e.createElement(tu,{alert:this.props.alert,organizations:this.props.organizations,authorities:this.props.authorities,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n={...nu.card},a=[];for(let n of t.roles)a.push(e.createElement("div",{className:"bp3-tag bp3-intent-primary",style:nu.tag,key:n},n));return e.createElement("div",{className:"bp3-card bp3-row",style:n,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:nu.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:nu.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:nu.nameSpan},t.name))),e.createElement("div",{className:"flex bp3-cell",style:nu.roles},a))}}const su={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class iu extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){return null===this.props.filter?e.createElement("div",null):e.createElement("div",{className:"layout horizontal wrap",style:su.filters},e.createElement(ho,{style:su.input,placeholder:"Alert ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:su.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement(ho,{style:su.role,placeholder:"Role",value:this.props.filter.role,onChange:e=>{let t={...this.props.filter};e?t.role=e:delete t.role,this.props.onFilter(t)}}))}}const ru={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class ou extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:Fd.page,pageCount:Fd.pageCount,pages:Fd.pages,count:Fd.count})},this.state={page:Fd.page,pageCount:Fd.pageCount,pages:Fd.pages,count:Fd.count}}componentDidMount(){Fd.addChangeListener(this.onChange)}componentWillUnmount(){Fd.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{Yd(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{Yd(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:ru.button,disabled:0===t,type:"button",onClick:()=>{Yd(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:ru.button,disabled:t===n-1,type:"button",onClick:()=>{Yd(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{Yd(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const lu={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class cu extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=Fd.alerts,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,alerts:e,filter:Fd.filter,authorities:Gd.authorities,organizations:gr.organizations,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/alert").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete alerts"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={alerts:Fd.alerts,filter:Fd.filter,authorities:Gd.authorities,organizations:gr.organizations,selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){Fd.addChangeListener(this.onChange),Gd.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),Qd(),qd()}componentWillUnmount(){Fd.removeChangeListener(this.onChange),Gd.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[];this.state.alerts.forEach((n=>{t.push(e.createElement(au,{key:n.id,alert:n,authorities:this.state.authorities,organizations:this.state.organizations,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.alerts;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(n+="bp3-active");let a=[];for(let e of Object.keys(this.state.selected)){let t=Fd.alert(e);t?a.push(t.name||e):a.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:lu.header},e.createElement("h2",{style:lu.heading},"Alerts"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:lu.buttons},e.createElement("button",{className:n,style:lu.button,type:"button",onClick:()=>{null===this.state.filter?Zd({}):Zd(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:lu.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:lu.button,confirmMsg:"Permanently delete the selected alerts",confirmInput:!0,items:a,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete}),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:lu.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/alert").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create alert"),void a(e)):void n())))}))}({id:null}).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement(iu,{filter:this.state.filter,onFilter:e=>{Zd(e)},authorities:this.state.authorities}),e.createElement("div",{style:lu.itemsBox},e.createElement("div",{style:lu.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:lu.placeholder},e.createElement("td",{colSpan:5,style:lu.placeholder})))),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-notifications",title:"No alerts",description:"Add a new alert to get started."}),e.createElement(ou,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const hu={card:{position:"relative",padding:"10px 10px 0 10px",marginBottom:"5px"},remove:{position:"absolute",top:"5px",right:"5px"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"}};class du extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/zone/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save zone"),void a(e)):void n())))}))}(this.state.zone).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,zone:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/zone/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete zones"),void a(e)):void n())))}))}(this.props.zone.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",zone:null,addCert:null,forwardedChecked:!1}}set(e,t){let n;n=this.state.changed?{...this.state.zone}:{...this.props.zone},n[e]=t,this.setState({...this.state,changed:!0,zone:n})}render(){let t=this.state.zone||this.props.zone,n=gh.datacenter(this.props.zone.datacenter);return e.createElement("div",{className:"bp3-card",style:hu.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:hu.group},e.createElement("div",{style:hu.remove},e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Zone",confirmMsg:"Permanently delete this zone",confirmInput:!0,disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of zone",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Zone comment.",placeholder:"Zone comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Hl,{disabled:this.state.disabled,label:"Network Mode",help:"Network mode for internal VPC networking. If layer 2 networking with VLAN support isn't available VXLan must be used. A network bridge is required for the node internal interfaces when using default. Other zones in datacenter must use same network mode to support connectivity between zones.",value:t.network_mode,onChange:e=>{this.set("network_mode",e)}},e.createElement("option",{value:"default"},"Default"),e.createElement("option",{value:"vxlan_vlan"},"VXLAN"))),e.createElement("div",{style:hu.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.zone.id||"None"},{label:"Datacenter",value:n?n.name:this.props.zone.datacenter||"None"}]}))),e.createElement(ml,{style:hu.save,hidden:!this.state.zone,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,forwardedChecked:!1,zone:null})},onSave:this.onSave}))}}const uu={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},group:{margin:"15px 0 0 0",width:"220px"},select:{width:"100%",borderTopLeftRadius:"3px",borderBottomLeftRadius:"3px"},selectInner:{width:"100%"},selectBox:{flex:"1"}};class pu extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,zones:yh.zones,datacenters:gh.datacenters})},this.state={zones:yh.zones,datacenters:gh.datacenters,datacenter:"",disabled:!1}}componentDidMount(){yh.addChangeListener(this.onChange),gh.addChangeListener(this.onChange),Nh(),Hh()}componentWillUnmount(){yh.removeChangeListener(this.onChange),gh.removeChangeListener(this.onChange)}render(){let t=[];this.state.zones.forEach((n=>{t.push(e.createElement(du,{key:n.id,zone:n}))}));let n=!1,a=[];if(this.state.datacenters.length){n=!0;for(let t of this.state.datacenters)a.push(e.createElement("option",{key:t.id,value:t.id},t.name))}else a.push(e.createElement("option",{key:"null",value:""},"No Datacenters"));return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:uu.header},e.createElement("h2",{style:uu.heading},"Zones"),e.createElement("div",{className:"flex"}),e.createElement("div",null,e.createElement("div",{className:"bp3-control-group",style:uu.group},e.createElement("div",{style:uu.selectBox},e.createElement("div",{className:"bp3-select",style:uu.select},e.createElement("select",{style:uu.selectInner,disabled:!n||this.state.disabled,value:this.state.datacenter,onChange:e=>{this.setState({...this.state,datacenter:e.target.value})}},a))),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",disabled:!n||this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/zone").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create zone"),void a(e)):void n())))}))}({id:null,network_mode:"vxlan_vlan",datacenter:this.state.datacenter||this.state.datacenters[0].id}).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New"))))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-layout-circle",title:"No zones",description:"Add a new zone to get started."}))}}const mu={card:{position:"relative",padding:"10px 10px 0 10px",marginBottom:"5px"},remove:{position:"absolute",top:"5px",right:"5px"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},controlButton:{marginRight:"10px"}};class fu extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),Vh(this.state.block).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,block:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onSync=()=>{this.setState({...this.state,disabled:!0}),Vh(this.props.block).then((()=>{this.setState({...this.state,disabled:!1}),Fi("Block sync started")})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/block/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete blocks"),void a(e)):void n())))}))}(this.props.block.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onAddSubnet=()=>{let e;if(!this.state.addSubnet)return;e=this.state.changed?{...this.state.block}:{...this.props.block};let t=[...e.subnets||[]],n=this.state.addSubnet.trim();-1===t.indexOf(n)&&t.push(n),t.sort(),e.subnets=t,this.setState({...this.state,changed:!0,message:"",addSubnet:"",block:e})},this.onRemoveSubnet=e=>{let t;t=this.state.changed?{...this.state.block}:{...this.props.block};let n=[...t.subnets||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.subnets=n,this.setState({...this.state,changed:!0,message:"",block:t}))},this.onAddSubnet6=()=>{let e;if(!this.state.addSubnet6)return;e=this.state.changed?{...this.state.block}:{...this.props.block};let t=[...e.subnets6||[]],n=this.state.addSubnet6.trim();-1===t.indexOf(n)&&t.push(n),t.sort(),e.subnets6=t,this.setState({...this.state,changed:!0,message:"",addSubnet6:"",block:e})},this.onRemoveSubnet6=e=>{let t;t=this.state.changed?{...this.state.block}:{...this.props.block};let n=[...t.subnets6||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.subnets6=n,this.setState({...this.state,changed:!0,message:"",block:t}))},this.onAddExclude=()=>{let e;if(!this.state.addExclude)return;e=this.state.changed?{...this.state.block}:{...this.props.block};let t=[...e.excludes||[]],n=this.state.addExclude.trim();-1===t.indexOf(n)&&t.push(n),t.sort(),e.excludes=t,this.setState({...this.state,changed:!0,message:"",addExclude:"",block:e})},this.onRemoveExclude=e=>{let t;t=this.state.changed?{...this.state.block}:{...this.props.block};let n=[...t.excludes||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.excludes=n,this.setState({...this.state,changed:!0,message:"",block:t}))},this.state={disabled:!1,changed:!1,message:"",addSubnet:"",addSubnet6:"",addExclude:"",block:null}}set(e,t){let n;n=this.state.changed?{...this.state.block}:{...this.props.block},n[e]=t,this.setState({...this.state,changed:!0,block:n})}render(){let t=this.state.block||this.props.block,n=[];for(let a of t.subnets||[])n.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:mu.item,key:a},a,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveSubnet(a)}})));let a=[];for(let n of t.subnets6||[])a.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:mu.item,key:n},n,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveSubnet6(n)}})));let s=[];for(let n of t.excludes||[])s.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:mu.item,key:n},n,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveExclude(n)}})));return e.createElement("div",{className:"bp3-card",style:mu.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:mu.group},e.createElement("div",{style:mu.remove},e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Block",confirmMsg:"Permanently delete this block",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{disabled:this.state.disabled,label:"Name",help:"Name of IP block",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Block comment.",placeholder:"Block comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Hl,{disabled:this.state.disabled,label:"Network Mode",help:"Network mode IP block.",value:t.type,onChange:e=>{this.set("type",e)}},e.createElement("option",{value:"ipv4"},"IPv4"),e.createElement("option",{value:"ipv6"},"IPv6")),e.createElement(vl,{disabled:this.state.disabled,hidden:"ipv6"===t.type,label:"Netmask",help:"Netmask of IP block",type:"text",placeholder:"Enter netmask",value:t.netmask,onChange:e=>{this.set("netmask",e)}}),e.createElement("label",{className:"bp3-label",hidden:"ipv6"===t.type},"IP Addresses",e.createElement(hl,{title:"IP Addresses",content:"IP addresses that are available for instances."}),e.createElement("div",null,n)),e.createElement(Ll,{disabled:this.state.disabled,hidden:"ipv6"===t.type,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add addresses",value:this.state.addSubnet,onChange:e=>{this.setState({...this.state,addSubnet:e})},onSubmit:this.onAddSubnet}),e.createElement("label",{className:"bp3-label",hidden:"ipv6"!==t.type},"IPv6 Addresses",e.createElement(hl,{title:"IPv6 Addresses",content:"IPv6 addresses that are available for instances."}),e.createElement("div",null,a)),e.createElement(Ll,{disabled:this.state.disabled,hidden:"ipv6"!==t.type,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add addresses",value:this.state.addSubnet6,onChange:e=>{this.setState({...this.state,addSubnet6:e})},onSubmit:this.onAddSubnet6})),e.createElement("div",{style:mu.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.block.id||"None"}]}),e.createElement(vl,{disabled:this.state.disabled,hidden:"ipv6"===t.type,label:"Gateway",help:"Gateway address of IP block",type:"text",placeholder:"Enter gateway",value:t.gateway,onChange:e=>{this.set("gateway",e)}}),e.createElement(vl,{disabled:this.state.disabled,hidden:"ipv6"!==t.type,label:"IPv6 Gateway",help:"Gateway address of IPv6 block",type:"text",placeholder:"Enter IPv6 gateway",value:t.gateway6,onChange:e=>{this.set("gateway6",e)}}),e.createElement("label",{className:"bp3-label",hidden:"ipv6"===t.type},"IP Excludes",e.createElement(hl,{title:"IP Excludes",content:"IP addresses that are excluded from block. Add host or other reserved addresses here."}),e.createElement("div",null,s)),e.createElement(Ll,{disabled:this.state.disabled,hidden:"ipv6"===t.type,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add exclude",value:this.state.addExclude,onChange:e=>{this.setState({...this.state,addExclude:e})},onSubmit:this.onAddExclude}))),e.createElement(ml,{style:mu.save,hidden:!this.state.block,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,block:null})},onSave:this.onSave}))}}const vu={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"},noCerts:{height:"auto"}};class gu extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,blocks:wh.blocks})},this.state={blocks:wh.blocks,disabled:!1}}componentDidMount(){wh.addChangeListener(this.onChange),Oh()}componentWillUnmount(){wh.removeChangeListener(this.onChange)}render(){let t=[];return this.state.blocks.forEach((n=>{t.push(e.createElement(fu,{key:n.id,block:n}))})),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:vu.header},e.createElement("h2",{style:vu.heading},"Blocks"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:vu.buttons},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:vu.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/block").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create block"),void a(e)):void n())))}))}(null).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-ip-address",title:"No IP blocks",description:"Add a new IP block to get started."}))}}const bu="vpc.sync",yu="vpc.sync_names",_u="vpc.traverse",wu="vpc.filter";const Cu=new class extends hr{constructor(){super(...arguments),this._vpcs=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._vpcs=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get vpcs(){return this._vpcs}get vpcsM(){let e=[];return this._vpcs.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}vpc(e){let t=this._map[e];return void 0===t?null:this._vpcs[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/vpc").query({...Cu.filter,page:Cu.page,page_count:Cu.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===Eu){if(s)return Ui(i,"Failed to load vpcs"),void a(s);lr.dispatch({type:bu,data:{vpcs:i.body.vpcs,count:i.body.count}}),e()}else e()}))}))}function zu(e){return lr.dispatch({type:_u,data:{page:e}}),ku()}function Mu(e){return lr.dispatch({type:wu,data:{filter:e}}),ku()}kr.register((e=>{if("vpc.change"===e.type)ku()}));const xu={group:{width:"100%",maxWidth:"310px",marginTop:"5px"},input:{width:"100%"},inputBox:{flex:"1"}};class Au extends e.Component{clone(){return{...this.props.route}}render(){let t=this.props.route;return e.createElement("div",null,e.createElement("div",{className:"bp3-control-group",style:xu.group},e.createElement("div",{style:xu.inputBox},e.createElement("input",{className:"bp3-input",style:xu.input,disabled:this.props.disabled,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Destination",value:t.destination||"",onChange:e=>{let t=this.clone();t.destination=e.target.value,this.props.onChange(t)}})),e.createElement("div",{style:xu.inputBox},e.createElement("input",{className:"bp3-input",style:xu.input,disabled:this.props.disabled,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Target",value:t.target||"",onChange:e=>{let t=this.clone();t.target=e.target.value,this.props.onChange(t)}})),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",disabled:this.props.disabled,onClick:()=>{this.props.onRemove()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-success bp3-icon-add",onClick:()=>{this.props.onAdd()}})))}}const Tu={group:{width:"100%",maxWidth:"310px",marginTop:"5px"},input:{width:"100%"},inputBox:{flex:"1"}};class Lu extends e.Component{clone(){return{...this.props.subnet}}render(){let t=this.props.subnet;return e.createElement("div",null,e.createElement("div",{className:"bp3-control-group",style:Tu.group},e.createElement("div",{style:Tu.inputBox},e.createElement("input",{className:"bp3-input",style:Tu.input,disabled:this.props.disabled,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Name",value:t.name||"",onChange:e=>{let t=this.clone();t.name=e.target.value,this.props.onChange(t)}})),e.createElement("div",{style:Tu.inputBox},e.createElement("input",{className:"bp3-input",style:Tu.input,disabled:this.props.disabled,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Network",value:t.network||"",onChange:e=>{let t=this.clone();t.network=e.target.value,this.props.onChange(t)}})),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",disabled:this.props.disabled,onClick:()=>{this.props.onRemove()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-success bp3-icon-add",onClick:()=>{this.props.onAdd()}})))}}const Pu={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},role:{margin:"9px 5px 0 5px",height:"20px"},list:{marginBottom:"15px"}};class Hu extends e.Component{constructor(e,t){super(e,t),this.onAddSubnet=e=>{let t;t=this.state.changed?{...this.state.vpc}:{...this.props.vpc};let n=[...t.subnets||[]];0===n.length&&(n=[{}]),n.splice(e+1,0,{}),t.subnets=n,this.setState({...this.state,changed:!0,message:"",vpc:t})},this.onAddRoute=e=>{let t;t=this.state.changed?{...this.state.vpc}:{...this.props.vpc};let n=[...t.routes||[]];n.splice(e+1,0,{}),t.routes=n,this.setState({...this.state,changed:!0,message:"",vpc:t})},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/vpc/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save vpc"),void a(e)):void n())))}))}(this.state.vpc).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,vpc:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/vpc/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete vpc"),void a(e)):void n())))}))}(this.props.vpc.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",addNetworkRole:null,addVpc:null,vpc:null}}set(e,t){let n;n=this.state.changed?{...this.state.vpc}:{...this.props.vpc},n[e]=t,this.setState({...this.state,changed:!0,vpc:n})}onChangeSubnet(e,t){let n;n=this.state.changed?{...this.state.vpc}:{...this.props.vpc};let a=[...n.subnets||[]];0===a.length&&(a=[{}]),a[e]=t,n.subnets=a,this.setState({...this.state,changed:!0,message:"",vpc:n})}onRemoveSubnet(e){let t;t=this.state.changed?{...this.state.vpc}:{...this.props.vpc};let n=[...t.subnets||[]];0!==n.length&&n.splice(e,1),0===n.length&&(n=[{}]),t.subnets=n,this.setState({...this.state,changed:!0,message:"",vpc:t})}onChangeRoute(e,t){let n;n=this.state.changed?{...this.state.vpc}:{...this.props.vpc};let a=[...n.routes];a[e]=t,n.routes=a,this.setState({...this.state,changed:!0,message:"",vpc:n})}onRemoveRoute(e){let t;t=this.state.changed?{...this.state.vpc}:{...this.props.vpc};let n=[...t.routes];n.splice(e,1),t.routes=n,this.setState({...this.state,changed:!0,message:"",vpc:t})}render(){let t=this.state.vpc||this.props.vpc,n=gh.datacenter(t.datacenter),a=n?n.name:t.datacenter,s=gr.organization(this.props.vpc.organization),i=t.subnets||[];0===i.length&&i.push({});let r=[];for(let t=0;t{this.onChangeSubnet(n,e)},onAdd:()=>{this.onAddSubnet(n)},onRemove:()=>{this.onRemoveSubnet(n)}}))}let o=[e.createElement(Au,{disabled:!0,key:-1,route:{destination:"0.0.0.0/0",target:"0.0.0.0"},onAdd:()=>{this.onAddRoute(-1)}})];if(t.routes)for(let n=0;n<(t.routes||[]).length;n++){let a=n;o.push(e.createElement(Au,{key:a,route:t.routes[a],onChange:e=>{this.onChangeRoute(a,e)},onAdd:()=>{this.onAddRoute(a)},onRemove:()=>{this.onRemoveRoute(a)}}))}let l=[{label:"ID",value:this.props.vpc.id||"Unknown"},{label:"Datacenter",value:a},{label:"Organization",value:s?s.name:this.props.vpc.organization},{label:"VLAN Number",value:this.props.vpc.vpc_id||"Unknown"},{label:"Private IPv6 Network",value:this.props.vpc.network6||"Unknown",copy:!0}];return e.createElement("td",{className:"bp3-cell",colSpan:6,style:Pu.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Pu.group},e.createElement("div",{className:"layout horizontal tab-close",style:Pu.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox",style:Pu.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:Pu.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete VPC",confirmMsg:"Permanently delete this VPC",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of vpc",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"VPC comment.",placeholder:"VPC comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(vl,{label:"Network",help:"Network address of vpc with cidr.",type:"text",placeholder:"Enter network",value:t.network,onChange:e=>{this.set("network",e)}}),e.createElement("label",{style:Pu.itemsLabel},"Subnets",e.createElement(hl,{title:"Subnets",content:"Subnets in VPC, can only be added or removed. Once added a subnet network block cannot be modified."})),e.createElement("div",{style:Pu.list},r)),e.createElement("div",{style:Pu.group},e.createElement(Bo,{fields:l}),e.createElement("label",{style:Pu.itemsLabel},"Route Table",e.createElement(hl,{title:"Route Table",content:"VPC routing table, enter a CIDR network for the desitnation and IP address for taget."})),e.createElement("div",{style:Pu.list},o))),e.createElement(ml,{style:Pu.save,hidden:!this.state.vpc&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,vpc:null})},onSave:this.onSave}))}}const Nu={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},tag:{margin:"8px 5px 0 5px",height:"20px"}};class Ou extends e.Component{render(){let t=this.props.vpc;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:Nu.cardOpen},e.createElement(Hu,{organizations:this.props.organizations,vpc:this.props.vpc,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n={...Nu.card},a="";if(t.organization){let e=gr.organization(t.organization);a=e?e.name:t.organization}else a="Unknown";let s=gh.datacenter(t.datacenter),i=s?s.name:t.datacenter;return e.createElement("div",{className:"bp3-card bp3-row",style:n,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:Nu.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:Nu.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:Nu.nameSpan},t.name))),e.createElement("div",{className:"bp3-cell",style:Nu.item},e.createElement("span",{style:Nu.icon,className:"bp3-icon-standard bp3-text-muted "+(t.organization?"bp3-icon-people":"bp3-icon-layers")}),a),e.createElement("div",{className:"bp3-cell",style:Nu.item},e.createElement("span",{style:Nu.icon,className:"bp3-icon-standard bp3-text-muted bp3-icon-cloud"}),i),e.createElement("div",{className:"bp3-cell",style:Nu.item},e.createElement("span",{style:Nu.icon,className:"bp3-icon-standard bp3-text-muted bp3-icon-layout-auto"}),t.network))}}const Vu={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class Du extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.datacenters&&this.props.datacenters.length)for(let n of this.props.datacenters)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));let n=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.organizations&&this.props.organizations.length)for(let t of this.props.organizations)n.push(e.createElement("option",{key:t.id,value:t.id},t.name));return e.createElement("div",{className:"layout horizontal wrap",style:Vu.filters},e.createElement(ho,{style:Vu.input,placeholder:"VPC ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:Vu.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement(ho,{style:Vu.role,placeholder:"Network",value:this.props.filter.network,onChange:e=>{let t={...this.props.filter};e?t.network=e:delete t.network,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:Vu.type},e.createElement("select",{value:this.props.filter.datacenter||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.datacenter:t.datacenter=n,this.props.onFilter(t)}},t)),e.createElement("div",{className:"bp3-select",style:Vu.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},n)))}}const Iu={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class Ru extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:Cu.page,pageCount:Cu.pageCount,pages:Cu.pages,count:Cu.count})},this.state={page:Cu.page,pageCount:Cu.pageCount,pages:Cu.pages,count:Cu.count}}componentDidMount(){Cu.addChangeListener(this.onChange)}componentWillUnmount(){Cu.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{zu(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{zu(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:Iu.button,disabled:0===t,type:"button",onClick:()=>{zu(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:Iu.button,disabled:t===n-1,type:"button",onClick:()=>{zu(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{zu(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const Bu={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},group:{width:"100%"},groupBox:{margin:"16px 0 0 0",width:"100%",maxWidth:"420px"},groupBoxUser:{margin:"16px 0 0 0",width:"100%",maxWidth:"310px"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},input:{width:"107px"},select:{width:"100%"},selectFirst:{width:"100%",borderTopLeftRadius:"3px",borderBottomLeftRadius:"3px"},selectInner:{width:"100%"},selectBox:{flex:"1"},button:{margin:"8px 0 0 8px"},buttons:{margin:"8px 8px 0 0"}};class Fu extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=Cu.vpcs,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,vpcs:e,filter:Cu.filter,datacenters:gh.datacenters,organizations:gr.organizations,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/vpc").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete vpcs"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={vpcs:Cu.vpcs,filter:Cu.filter,datacenters:gh.datacenters,organizations:gr.organizations,network:"",organization:"",datacenter:"",selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){Cu.addChangeListener(this.onChange),gh.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),ku(),Hh(),bd()}componentWillUnmount(){Cu.removeChangeListener(this.onChange),gh.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[],n=!1,a=[];if(this.state.organizations.length){n=!0;for(let t of this.state.organizations)a.push(e.createElement("option",{key:t.id,value:t.id},t.name))}else a.push(e.createElement("option",{key:"null",value:""},"No Organizations"));let s=!1,i=[];if(this.state.datacenters.length){s=!0;for(let t of this.state.datacenters)i.push(e.createElement("option",{key:t.id,value:t.id},t.name))}else i.push(e.createElement("option",{key:"null",value:""},"No Datacenters"));this.state.vpcs.forEach((n=>{t.push(e.createElement(Ou,{key:n.id,vpc:n,organizations:this.state.organizations,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.vpcs;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let r="bp3-button bp3-intent-primary bp3-icon-filter ";return this.state.filter&&(r+="bp3-active"),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Bu.header},e.createElement("h2",{style:Bu.heading},"VPCs"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Bu.buttons},e.createElement("button",{className:r,style:Bu.button,type:"button",onClick:()=>{null===this.state.filter?Mu({}):Mu(null)}},"Filters")),e.createElement("div",{style:$i?Bu.groupBoxUser:Bu.groupBox},e.createElement("div",{className:"bp3-control-group",style:Bu.group},e.createElement("input",{className:"bp3-input",style:Bu.input,type:"text",disabled:!n||this.state.disabled,autoCapitalize:"off",spellCheck:!1,placeholder:"Enter network",value:this.state.network,onChange:e=>{this.setState({...this.state,network:e.target.value})}}),e.createElement("div",{style:Bu.selectBox,hidden:$i},e.createElement("div",{className:"bp3-select",style:Bu.selectFirst},e.createElement("select",{style:Bu.selectInner,disabled:!n||this.state.disabled,value:this.state.organization,onChange:e=>{this.setState({...this.state,organization:e.target.value})}},a))),e.createElement("div",{style:Bu.selectBox},e.createElement("div",{className:"bp3-select",style:Bu.select},e.createElement("select",{style:Bu.selectInner,disabled:!s||this.state.disabled,value:this.state.datacenter,onChange:e=>{this.setState({...this.state,datacenter:e.target.value})}},i))),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",disabled:!s||!n||this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/vpc").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create vpc"),void a(e)):void n())))}))}({id:null,network:this.state.network,organization:this.state.organization||this.state.organizations[0].id,datacenter:this.state.datacenter||this.state.datacenters[0].id}).then((()=>{this.setState({...this.state,network:"",disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New"))))),e.createElement(Du,{filter:this.state.filter,onFilter:e=>{Mu(e)},organizations:this.state.organizations,datacenters:this.state.datacenters}),e.createElement("div",{style:Bu.itemsBox},e.createElement("div",{style:Bu.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:Bu.placeholder},e.createElement("td",{colSpan:6,style:Bu.placeholder})))),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-layout-auto",title:"No vpcs",description:"Add a new vpc to get started."}),e.createElement(Ru,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const Xu="domain.sync",Ku="domain.sync_name",Uu="domain.traverse",Gu="domain.filter";const ju=new class extends hr{constructor(){super(...arguments),this._domains=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._domains=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get domains(){return this._domains}get domainsM(){let e=[];return this._domains.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}domain(e){let t=this._map[e];return void 0===t?null:this._domains[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/domain").query({...ju.filter,page:ju.page,page_count:ju.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===Wu){if(s)return Ui(i,"Failed to load domains"),void a(s);lr.dispatch({type:Xu,data:{domains:i.body.domains,count:i.body.count}}),e()}else e()}))}))}function Zu(e){return lr.dispatch({type:Uu,data:{page:e}}),Yu()}function qu(e){return lr.dispatch({type:Gu,data:{filter:e}}),Yu()}function Ju(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/domain").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create domain"),void a(e)):void n())))}))}kr.register((e=>{if("domain.change"===e.type)Yu()}));const $u={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},role:{margin:"9px 5px 0 5px",height:"20px"},rules:{marginBottom:"15px"}};class ep extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/domain/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save domain"),void a(e)):void n())))}))}(this.state.domain).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,domain:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/domain/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete domain"),void a(e)):void n())))}))}(this.props.domain.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",domain:null}}set(e,t){let n;n=this.state.changed?{...this.state.domain}:{...this.props.domain},n[e]=t,this.setState({...this.state,changed:!0,domain:n})}render(){let t=this.state.domain||this.props.domain,n=gr.organization(this.props.domain.organization);return e.createElement("td",{className:"bp3-cell",colSpan:5,style:$u.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:$u.group},e.createElement("div",{className:"layout horizontal tab-close",style:$u.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox",style:$u.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:$u.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Domain",confirmMsg:"Permanently delete this domain",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Domain",help:"Domain name.",type:"text",placeholder:"Enter domain",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Domain comment.",placeholder:"Domain comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Hl,{label:"Type",help:"Domain type.",value:t.type,onChange:e=>{this.set("type",e)}},e.createElement("option",{value:""},"Select Type"),e.createElement("option",{value:"route_53"},"AWS Route53")),e.createElement(vl,{hidden:"route_53"!==t.type,label:"AWS Access Key ID",help:"AWS access key ID.",type:"text",placeholder:"Enter access key ID",value:t.aws_id,onChange:e=>{this.set("aws_id",e)}}),e.createElement(vl,{hidden:"route_53"!==t.type,label:"AWS Secret Access Key",help:"AWS secret access key.",type:"text",placeholder:"Enter secret access key",value:t.aws_secret,onChange:e=>{this.set("aws_secret",e)}})),e.createElement("div",{style:$u.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.domain.id||"Unknown"},{label:"Organization",value:n?n.name:this.props.domain.organization}]}))),e.createElement(ml,{style:$u.save,hidden:!this.state.domain&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,domain:null})},onSave:this.onSave}))}}const tp={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},tag:{margin:"8px 5px 0 5px",height:"20px"}};class np extends e.Component{render(){let t=this.props.domain;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:tp.cardOpen},e.createElement(ep,{organizations:this.props.organizations,domain:this.props.domain,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n={...tp.card},a="";if(t.organization){let e=gr.organization(t.organization);a=e?e.name:t.organization}else a="Node Domain";return e.createElement("div",{className:"bp3-card bp3-row",style:n,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:tp.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:tp.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:tp.nameSpan},t.name))),e.createElement("div",{className:"bp3-cell",style:tp.item},e.createElement("span",{style:tp.icon,className:"bp3-icon-standard bp3-text-muted "+(t.organization?"bp3-icon-people":"bp3-icon-layers")}),a))}}const ap={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class sp extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.organizations&&this.props.organizations.length)for(let n of this.props.organizations)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));return e.createElement("div",{className:"layout horizontal wrap",style:ap.filters},e.createElement(ho,{style:ap.input,placeholder:"Domain ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:ap.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:ap.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},t)))}}const ip={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class rp extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:ju.page,pageCount:ju.pageCount,pages:ju.pages,count:ju.count})},this.state={page:ju.page,pageCount:ju.pageCount,pages:ju.pages,count:ju.count}}componentDidMount(){ju.addChangeListener(this.onChange)}componentWillUnmount(){ju.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{Zu(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{Zu(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:ip.button,disabled:0===t,type:"button",onClick:()=>{Zu(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:ip.button,disabled:t===n-1,type:"button",onClick:()=>{Zu(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{Zu(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const op={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},group:{width:"100%"},groupBox:{margin:"16px 0 0 8px",width:"100%",maxWidth:"200px"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},selectFirst:{width:"100%",borderTopLeftRadius:"3px",borderBottomLeftRadius:"3px"},selectInner:{width:"100%"},selectBox:{flex:"1"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class lp extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=ju.domains,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,domains:e,filter:ju.filter,organizations:gr.organizations,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/domain").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete domains"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={domains:ju.domains,filter:ju.filter,organizations:gr.organizations,organization:"",selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){ju.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),Yu(),bd()}componentWillUnmount(){ju.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[],n=!1,a=[];if(this.state.organizations.length){n=!0;for(let t of this.state.organizations)a.push(e.createElement("option",{key:t.id,value:t.id},t.name))}else a.push(e.createElement("option",{key:"null",value:""},"No Organizations"));this.state.domains.forEach((n=>{t.push(e.createElement(np,{key:n.id,domain:n,organizations:this.state.organizations,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.domains;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let s="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(s+="bp3-active");let i=[];for(let e of Object.keys(this.state.selected)){let t=ju.domain(e);t?i.push(t.name||e):i.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:op.header},e.createElement("h2",{style:op.heading},"Domains"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:op.buttons},e.createElement("button",{className:s,style:op.button,type:"button",onClick:()=>{null===this.state.filter?qu({}):qu(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:op.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",hidden:!$i,disabled:this.state.disabled,style:op.button,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),Ju({id:null}).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New"),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:op.button,confirmMsg:"Permanently delete the selected domains",confirmInput:!0,items:i,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete})),e.createElement("div",{style:op.groupBox,hidden:$i},e.createElement("div",{className:"bp3-control-group",style:op.group},e.createElement("div",{style:op.selectBox},e.createElement("div",{className:"bp3-select",style:op.selectFirst},e.createElement("select",{style:op.selectInner,disabled:!n||this.state.disabled,value:this.state.organization,onChange:e=>{this.setState({...this.state,organization:e.target.value})}},a))),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",disabled:!n||this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),Ju({id:null,organization:this.state.organization||this.state.organizations[0].id}).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New"))))),e.createElement(sp,{filter:this.state.filter,onFilter:e=>{qu(e)},organizations:this.state.organizations}),e.createElement("div",{style:op.itemsBox},e.createElement("div",{style:op.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:op.placeholder},e.createElement("td",{colSpan:5,style:op.placeholder})))),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-map-marker",title:"No domains",description:"Add a new domain to get started."}),e.createElement(rp,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const cp="balancer.sync",hp="balancer.traverse",dp="balancer.filter";const up=new class extends hr{constructor(){super(...arguments),this._balancers=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._balancers=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get balancers(){return this._balancers}get balancersM(){let e=[];return this._balancers.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}balancer(e){let t=this._map[e];return void 0===t?null:this._balancers[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/balancer").query({...up.filter,page:up.page,page_count:up.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===pp){if(s)return Ui(i,"Failed to load balancers"),void a(s);lr.dispatch({type:cp,data:{balancers:i.body.balancers,count:i.body.count}}),e()}else e()}))}))}function fp(e){return lr.dispatch({type:hp,data:{page:e}}),mp()}function vp(e){return lr.dispatch({type:dp,data:{filter:e}}),mp()}kr.register((e=>{if("balancer.change"===e.type)mp()}));const gp={group:{width:"100%",maxWidth:"310px",marginTop:"5px"},domain:{width:"100%",borderRadius:"0 3px 3px 0"},domainBox:{flex:"1"}};class bp extends e.Component{clone(){return{...this.props.domain}}render(){let t=this.props.domain;return e.createElement("div",{className:"bp3-control-group",style:gp.group},e.createElement("div",{style:gp.domainBox},e.createElement("input",{className:"bp3-input",style:gp.domain,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Domain",value:t.domain||"",onChange:e=>{let t=this.clone();t.domain=e.target.value,this.props.onChange(t)}})),e.createElement("div",{style:gp.domainBox},e.createElement("input",{className:"bp3-input",style:gp.domain,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Host",value:t.host||"",onChange:e=>{let t=this.clone();t.host=e.target.value,this.props.onChange(t)}})),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",onClick:()=>{this.props.onRemove()}}))}}const yp={group:{width:"100%",maxWidth:"310px",marginTop:"5px"},protocol:{flex:"0 1 auto"},hostname:{width:"100%"},hostnameBox:{flex:"1"},port:{flex:"0 1 auto",width:"52px",borderRadius:"0 3px 3px 0"}};class _p extends e.Component{clone(){return{...this.props.backend}}render(){let t=this.props.backend;return e.createElement("div",{className:"bp3-control-group",style:yp.group},e.createElement("div",{className:"bp3-select",style:yp.protocol},e.createElement("select",{value:t.protocol,onChange:e=>{let t=this.clone();t.protocol=e.target.value,this.props.onChange(t)}},e.createElement("option",{value:"http"},"HTTP"),e.createElement("option",{value:"https"},"HTTPS"))),e.createElement("div",{style:yp.hostnameBox},e.createElement("input",{className:"bp3-input",style:yp.hostname,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Hostname",value:t.hostname||"",onChange:e=>{let t=this.clone();t.hostname=e.target.value,this.props.onChange(t)}})),e.createElement("input",{className:"bp3-input",style:yp.port,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Port",value:t.port,onChange:e=>{let t=this.clone();t.port=parseInt(e.target.value,10),this.props.onChange(t)}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",onClick:()=>{this.props.onRemove()}}))}}const wp={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},role:{margin:"9px 5px 0 5px",height:"20px"},rules:{marginBottom:"15px"}};class Cp extends e.Component{constructor(e,t){super(e,t),this.onAddBackend=()=>{let e;e=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let t=[...e.backends,{protocol:"http",hostname:"",port:80}];e.backends=t,this.setState({...this.state,changed:!0,message:"",balancer:e})},this.onAddCert=()=>{let e;if(!this.state.addCert&&!this.props.certificates.length)return;e=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let t=this.state.addCert;if(!t)for(let n of this.props.certificates)if(n.organization===e.organization){t=n.id;break}let n=[...e.certificates||[]];-1===n.indexOf(t)&&n.push(t),n.sort(),e.certificates=n,this.setState({...this.state,changed:!0,balancer:e})},this.onRemoveCert=e=>{let t;t=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let n=[...t.certificates||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.certificates=n,this.setState({...this.state,changed:!0,balancer:t}))},this.onAddDomain=()=>{let e;e=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let t=[...e.domains,{}];e.domains=t,this.setState({...this.state,changed:!0,message:"",balancer:e})},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/balancer/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save balancer"),void a(e)):void n())))}))}(this.state.balancer).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,balancer:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/balancer/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete balancer"),void a(e)):void n())))}))}(this.props.balancer.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",balancer:null,addCert:null}}set(e,t){let n;n=this.state.changed?{...this.state.balancer}:{...this.props.balancer},n[e]=t,this.setState({...this.state,changed:!0,balancer:n})}onChangeBackend(e,t){let n;n=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let a=[...n.backends];a[e]=t,n.backends=a,this.setState({...this.state,changed:!0,message:"",balancer:n})}onRemoveBackend(e){let t;t=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let n=[...t.backends];n.splice(e,1),t.backends=n,this.setState({...this.state,changed:!0,message:"",balancer:t})}onChangeDomain(e,t){let n;n=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let a=[...n.domains];a[e]=t,n.domains=a,this.setState({...this.state,changed:!0,message:"",balancer:n})}onRemoveDomain(e){let t;t=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let n=[...t.domains];n.splice(e,1),t.domains=n,this.setState({...this.state,changed:!0,message:"",balancer:t})}render(){let t=this.state.balancer||this.props.balancer,n=!1,a=[];if(this.props.organizations.length){a.push(e.createElement("option",{key:"null",value:""},"Select Organization"));for(let t of this.props.organizations)n=!0,a.push(e.createElement("option",{key:t.id,value:t.id},t.name))}n||a.push(e.createElement("option",{key:"null",value:""},"No Organizations"));let s=[];for(let n=0;n{this.onChangeDomain(a,e)},onRemove:()=>{this.onRemoveDomain(a)}}))}let i=[];for(let n=0;n{this.onChangeBackend(a,e)},onRemove:()=>{this.onRemoveBackend(a)}}))}let r=[];for(let n of t.certificates||[]){let t=fh.certificate(n);t&&r.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:wp.item,key:t.id},t.name,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveCert(t.id)}})))}let o=!1,l=[];if(this.props.certificates.length)for(let n of this.props.certificates)n.organization===t.organization&&(o=!0,l.push(e.createElement("option",{key:n.id,value:n.id},n.name)));o||(l=[e.createElement("option",{key:"null",value:""},"No Certificates")]);let c=!1,h=[];if(this.props.datacenters.length){h.push(e.createElement("option",{key:"null",value:""},"Select Datacenter")),c=!0;for(let t of this.props.datacenters)h.push(e.createElement("option",{key:t.id,value:t.id},t.name))}c||h.push(e.createElement("option",{key:"null",value:""},"No Datacenters"));let d=0,u=0,p=0,m=[],f={},v=[],g=[],b=[],y=[],_=[],w=[];if(this.props.balancer.state&&t.states){for(let e in t.states){if(!t.states.hasOwnProperty(e))continue;let n=t.states[e];d+=n.requests||0,u+=n.retries||0,p+=n.websockets||0;for(let e of n.offline){let t=f[e];(void 0===t||t>1)&&(f[e]=1)}for(let e of n.unknown_low){let t=f[e];(void 0===t||t>2)&&(f[e]=2)}for(let e of n.unknown_mid){let t=f[e];(void 0===t||t>3)&&(f[e]=3)}for(let e of n.unknown_high){let t=f[e];(void 0===t||t>4)&&(f[e]=4)}for(let e of n.online){void 0===f[e]&&(f[e]=5)}}for(let e in f){if(!f.hasOwnProperty(e))continue;switch(f[e]){case 5:v.push(e);break;case 4:g.push(e);break;case 3:b.push(e);break;case 2:y.push(e);break;case 1:_.push(e)}}v.sort();for(let e of v)m.push(e+" - Online"),w.push("bp3-text-intent-success");g.sort();for(let e of g)m.push(e+" - Unknown High"),w.push("bp3-text-intent-warning");b.sort();for(let e of b)m.push(e+" - Unknown Mid"),w.push("bp3-text-intent-warning");y.sort();for(let e of y)m.push(e+" - Unknown Low"),w.push("bp3-text-intent-warning");_.sort();for(let e of _)m.push(e+" - Offline"),w.push("bp3-text-intent-danger")}return m.length||(m=["-"]),e.createElement("td",{className:"bp3-cell",colSpan:5,style:wp.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:wp.group},e.createElement("div",{className:"layout horizontal tab-close",style:wp.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox bp3-checkbox",style:wp.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:wp.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Balancer",confirmMsg:"Permanently delete this balancer",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{disabled:this.state.disabled,label:"Name",help:"Name of load balancer",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Load balancer comment.",placeholder:"Load balancer comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Active",help:"Enable or disable load balancer.",checked:t.state,onToggle:()=>{this.set("state",!t.state)}}),e.createElement(Hl,{label:"Type",help:"Load balancer type",value:t.type,onChange:e=>{this.set("type",e)}},e.createElement("option",{value:"http"},"HTTP")),e.createElement(Hl,{disabled:this.state.disabled||!c,label:"Datacenter",help:"Load balancer datacenter.",value:t.datacenter,onChange:e=>{this.set("datacenter",e)}},h),e.createElement("label",{style:wp.itemsLabel},"External Domains",e.createElement(hl,{title:"External Domains",content:"When a request comes into a node the requests host will be used to match the request with the domain of a load balancer. Some internal services will be expecting a specific host such as a web server that serves mutliple websites that is also matching the requests host to one of the mutliple websites. If the internal service is expecting a different host set the host field, otherwise leave it blank. Load balancers that are associated with the same datacenter should not also have the same domains."})),s,e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:wp.itemsAdd,type:"button",onClick:this.onAddDomain},"Add Domain"),e.createElement("label",{style:wp.itemsLabel},"Internal Backends",e.createElement(hl,{title:"Internal Backends",content:"After a node receives a request it will be forwarded to the internal servers and the response will be sent back to the user. Multiple internal servers can be added to balance the requests between the servers. If a domain is used with HTTPS the internal server must have a valid certificate. When an IP address is used with HTTPS the internal servers certificate will not be validated."})),i,e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:wp.itemsAdd,type:"button",onClick:this.onAddBackend},"Add Backend")),e.createElement("div",{style:wp.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.balancer.id||"Unknown"},{label:"Requests",value:d+"/min"},{label:"Retries",value:u+"/min"},{label:"WebSockets",value:p},{label:"Backends",value:m,valueClasses:w}]}),e.createElement(ul,{disabled:this.state.disabled,label:"WebSockets",help:"Enable or disable WebSocket support on balancer.",checked:t.websockets,onToggle:()=>{this.set("websockets",!t.websockets)}}),e.createElement(Hl,{disabled:this.state.disabled||!n,hidden:$i,label:"Organization",help:"Organization for balancer, both the organaization and role must match. Select balancer balancer to match balancer network roles.",value:t.organization,onChange:e=>{this.set("organization",e)}},a),e.createElement("label",{className:"bp3-label",style:wp.label},"Certificates",e.createElement(hl,{title:"Certificates",content:"The certificates to use for this load balancer. The certificates must be valid for all the domains that this load balancer provides access to."}),e.createElement("div",null,r)),e.createElement(Xh,{label:"Add Certificate",value:this.state.addCert,disabled:this.state.disabled||!o,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addCert:e})},onSubmit:this.onAddCert},l),e.createElement(vl,{label:"Health Check Path",help:"Path to check status of backend servers. Path must return 200-299 status code.",type:"text",placeholder:"Enter path",value:t.check_path,onChange:e=>{this.set("check_path",e)}}))),e.createElement(ml,{style:wp.save,hidden:!this.state.balancer&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,balancer:null})},onSave:this.onSave}))}}const Ep={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"2px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},tag:{margin:"8px 5px 0 5px",height:"20px"}};class Sp extends e.Component{render(){let t=this.props.balancer;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:Ep.cardOpen},e.createElement(Cp,{organizations:this.props.organizations,certificates:this.props.certificates,datacenters:this.props.datacenters,balancer:this.props.balancer,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n={...Ep.card},a="";if(!Mr(t.organization)){let e=gr.organization(t.organization);a=e?e.name:t.organization}let s=gh.datacenter(this.props.balancer.datacenter),i=s?s.name:null;return e.createElement("div",{className:"bp3-card bp3-row",style:n,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:Ep.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:Ep.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:Ep.nameSpan},t.name))),e.createElement("div",{className:"bp3-cell",style:Ep.item},e.createElement("span",{style:Ep.icon,hidden:!a,className:"bp3-icon-standard bp3-text-muted bp3-icon-people"}),a),e.createElement("div",{className:"bp3-cell",style:Ep.item},e.createElement("span",{style:Ep.icon,hidden:!i,className:"bp3-icon-standard bp3-text-muted bp3-icon-cloud"}),i))}}const kp={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class zp extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:up.page,pageCount:up.pageCount,pages:up.pages,count:up.count})},this.state={page:up.page,pageCount:up.pageCount,pages:up.pages,count:up.count}}componentDidMount(){up.addChangeListener(this.onChange)}componentWillUnmount(){up.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{fp(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{fp(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:kp.button,disabled:0===t,type:"button",onClick:()=>{fp(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:kp.button,disabled:t===n-1,type:"button",onClick:()=>{fp(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{fp(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const Mp={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class xp extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.organizations&&this.props.organizations.length)for(let n of this.props.organizations)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));return e.createElement("div",{className:"layout horizontal wrap",style:Mp.filters},e.createElement(ho,{style:Mp.input,placeholder:"Balancer ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:Mp.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:Mp.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},t)))}}const Ap={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class Tp extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=up.balancers,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,balancers:e,filter:up.filter,organizations:gr.organizations,certificates:fh.certificates,datacenters:gh.datacenters,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/balancer").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete balancers"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={balancers:up.balancers,filter:up.filter,organizations:gr.organizations,certificates:fh.certificates,datacenters:gh.datacenters,selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){up.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),fh.addChangeListener(this.onChange),gh.addChangeListener(this.onChange),mp(),bd(),Ph(),Hh(),this.interval=setInterval((()=>{mp(!0)}),5e3)}componentWillUnmount(){up.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange),fh.removeChangeListener(this.onChange),gh.removeChangeListener(this.onChange),clearInterval(this.interval)}render(){let t=[];this.state.balancers.forEach((n=>{t.push(e.createElement(Sp,{key:n.id,balancer:n,organizations:this.state.organizations,certificates:this.state.certificates,datacenters:this.state.datacenters,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.balancers;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(n+="bp3-active");let a=[];for(let e of Object.keys(this.state.selected)){let t=up.balancer(e);t?a.push(t.name||e):a.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Ap.header},e.createElement("h2",{style:Ap.heading},"Balancers"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Ap.buttons},e.createElement("button",{className:n,style:Ap.button,type:"button",onClick:()=>{null===this.state.filter?vp({}):vp(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:Ap.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:Ap.button,confirmMsg:"Permanently delete the selected balancers",confirmInput:!0,items:a,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete}),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:Ap.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/balancer").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create balancer"),void a(e)):void n())))}))}({}).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement(xp,{filter:this.state.filter,onFilter:e=>{vp(e)},organizations:this.state.organizations}),e.createElement("div",{style:Ap.itemsBox},e.createElement("div",{style:Ap.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:Ap.placeholder},e.createElement("td",{colSpan:5,style:Ap.placeholder})))),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-random",title:"No balancers",description:"Add a new balancer to get started."}),e.createElement(zp,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const Lp={card:{position:"relative",padding:"10px 10px 0 10px",marginBottom:"5px"},remove:{position:"absolute",top:"5px",right:"5px"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},controlButton:{marginRight:"10px"}};class Pp extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),Hd(this.state.storage).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,storage:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onSync=()=>{this.setState({...this.state,disabled:!0}),Hd(this.props.storage).then((()=>{this.setState({...this.state,disabled:!1}),Fi("Storage sync started")})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/storage/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete storages"),void a(e)):void n())))}))}(this.props.storage.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",storage:null}}set(e,t){let n;n=this.state.changed?{...this.state.storage}:{...this.props.storage},n[e]=t,this.setState({...this.state,changed:!0,storage:n})}render(){let t=this.state.storage||this.props.storage;return e.createElement("div",{className:"bp3-card",style:Lp.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Lp.group},e.createElement("div",{style:Lp.remove},e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Storage",confirmMsg:"Permanently delete this storage",confirmInput:!0,disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{disabled:this.state.disabled,label:"Name",help:"Name of storage",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Storage comment.",placeholder:"Storage comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(vl,{disabled:this.state.disabled,label:"Endpoint",help:"Storage endpoint domain and port",type:"text",placeholder:"Enter endpoint",value:t.endpoint,onChange:e=>{this.set("endpoint",e)}}),e.createElement(vl,{disabled:this.state.disabled,label:"Bucket",help:"Storage bucket name",type:"text",placeholder:"Enter bucket",value:t.bucket,onChange:e=>{this.set("bucket",e)}})),e.createElement("div",{style:Lp.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.storage.id||"None"}]}),e.createElement(Hl,{disabled:this.state.disabled,label:"Type",help:"Select public for read only storages with virtual machine images. Select private for read-write storages for snapshots.",value:t.type,onChange:e=>{this.set("type",e)}},e.createElement("option",{value:"public"},"Public"),e.createElement("option",{value:"private"},"Private")),e.createElement(vl,{disabled:this.state.disabled,label:"Access Key",help:"Storage access key",type:"text",placeholder:"Enter access key",value:t.access_key,onChange:e=>{this.set("access_key",e)}}),e.createElement(vl,{disabled:this.state.disabled,label:"Secret Key",help:"Storage secret key",type:"text",placeholder:"Enter secret key",value:t.secret_key,onChange:e=>{this.set("secret_key",e)}}),e.createElement(ul,{label:"SSL Connection",help:"Use secure SSL connection.",disabled:this.state.disabled,checked:!t.insecure,onToggle:()=>{this.set("insecure",!t.insecure)}}))),e.createElement(ml,{style:Lp.save,hidden:!this.state.storage,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,storage:null})},onSave:this.onSave},e.createElement(Rr,{label:"Sync",className:"bp3-intent-success bp3-icon-refresh",progressClassName:"bp3-intent-success",style:Lp.controlButton,disabled:this.state.disabled,onConfirm:()=>{this.onSync()}})))}}const Hp={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"},noCerts:{height:"auto"}};class Np extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,storages:Td.storages})},this.state={storages:Td.storages,disabled:!1}}componentDidMount(){Td.addChangeListener(this.onChange),Pd()}componentWillUnmount(){Td.removeChangeListener(this.onChange)}render(){let t=[];return this.state.storages.forEach((n=>{t.push(e.createElement(Pp,{key:n.id,storage:n}))})),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Hp.header},e.createElement("h2",{style:Hp.heading},"Storages"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Hp.buttons},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:Hp.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/storage").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create storage"),void a(e)):void n())))}))}(null).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-database",title:"No storages",description:"Add a new storage to get started."}))}}const Op="image.sync",Vp="image.sync_datacenter",Dp="image.traverse",Ip="image.filter";const Rp=new class extends hr{constructor(){super(...arguments),this._images=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._images=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get images(){return this._images}get imagesM(){let e=[];return this._images.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}image(e){let t=this._map[e];return void 0===t?null:this._images[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/image").query({...Rp.filter,page:Rp.page,page_count:Rp.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Bp){if(s)return Ui(i,"Failed to load images"),void a(s);lr.dispatch({type:Op,data:{images:i.body.images,count:i.body.count}}),n()}else n()}))}))}function Xp(e){let t=zr();if(Bp=t,!e)return lr.dispatch({type:Vp,data:{images:[]}}),Promise.resolve();let n=(new Nr).loading();return new Promise(((a,s)=>{vn.get("/image").query({datacenter:e}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,i)=>{if(n.done(),i&&401===i.status)return window.location.href="/login",void a();if(t===Bp){if(e)return Ui(i,"Failed to load images names"),void s(e);lr.dispatch({type:Vp,data:{images:i.body}}),a()}else a()}))}))}function Kp(e){return lr.dispatch({type:Dp,data:{page:e}}),Fp()}function Up(e){return lr.dispatch({type:Ip,data:{filter:e}}),Fp()}kr.register((e=>{if("image.change"===e.type)Fp()}));const Gp={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"}};class jp extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/image/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save image"),void a(e)):void n())))}))}(this.state.image).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,image:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/image/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete image"),void a(e)):void n())))}))}(this.props.image.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",image:null}}set(e,t){let n;n=this.state.changed?{...this.state.image}:{...this.props.image},n[e]=t,this.setState({...this.state,changed:!0,image:n})}render(){let t=this.state.image||this.props.image,n=gr.organization(this.props.image.organization),a=Td.storage(this.props.image.storage),s=t.type;s&&(s=s.charAt(0).toUpperCase()+s.slice(1));let i="";i=t.organization?n?n.name:t.organization:"Public Image",t.signed&&(i="Signed Public Image");let r="Default";switch(this.props.image.storage_class){case"aws_standard":r="AWS Standard";break;case"aws_infrequent_access":r="AWS Standard-IA";break;case"aws_glacier":r="AWS Glacier";break;case"oracle_standard":r="Oracle Standard";break;case"oracle_archive":r="Oracle Archive"}return e.createElement("td",{className:"bp3-cell",colSpan:5,style:Gp.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Gp.group},e.createElement("div",{className:"layout horizontal tab-close",style:Gp.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox",style:Gp.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:Gp.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Image",confirmMsg:"Permanently delete this image",confirmInput:!0,items:[t.name],disabled:"public"===this.props.image.type||this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of image",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Image comment.",placeholder:"Image comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}})),e.createElement("div",{style:Gp.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.image.id||"Unknown"},{label:"Storage",value:a?a.name:this.props.image.storage||"Unknown"},{label:"Organization",value:i},{label:"Type",value:s||"Unknown"},{label:"Key",value:this.props.image.key||"Unknown"},{label:"Storage Class",value:r},{label:"Last Modified",value:Lr(this.props.image.last_modified)||"Unknown"},{label:"ETag",value:this.props.image.etag||"Unknown"}]}))),e.createElement(ml,{style:Gp.save,hidden:!this.state.image&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,image:null})},onSave:this.onSave}))}}const Wp={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"}};class Qp extends e.Component{render(){let t=this.props.image;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:Wp.cardOpen},e.createElement(jp,{image:this.props.image,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n={...Wp.card},a="",s="",i="";if(t.organization){let e=gr.organization(t.organization);s="bp3-text-muted bp3-icon-people",i=e?e.name:t.organization}else s="bp3-text-muted bp3-icon-globe",i="Public Image";t.signed&&(a="bp3-text-intent-success",s="bp3-icon-endorsed",i="Signed Public Image");let r="bp3-icon-box";switch(this.props.image.storage_class){case"aws_standard":case"oracle_standard":r="bp3-icon-box";break;case"aws_infrequent_access":r="bp3-icon-compressed";break;case"aws_glacier":case"oracle_archive":r="bp3-icon-snowflake"}return e.createElement("div",{className:"bp3-card bp3-row",style:n,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:Wp.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:Wp.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:Wp.nameSpan},t.name))),e.createElement("div",{className:"bp3-cell "+a,style:Wp.item},e.createElement("span",{style:Wp.icon,className:"bp3-icon-standard "+s}),i),e.createElement("div",{className:"bp3-cell",style:Wp.item},e.createElement("span",{style:Wp.icon,hidden:!t.key,className:"bp3-icon-standard bp3-text-muted "+r}),t.key))}}const Yp={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class Zp extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.organizations&&this.props.organizations.length)for(let n of this.props.organizations)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));return e.createElement("div",{className:"layout horizontal wrap",style:Yp.filters},e.createElement(ho,{style:Yp.input,placeholder:"Image ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:Yp.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:Yp.type},e.createElement("select",{value:this.props.filter.type||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.type:t.type=n,this.props.onFilter(t)}},e.createElement("option",{value:"any"},"Any"),e.createElement("option",{value:"private"},"Private"),e.createElement("option",{value:"public"},"Public"))),e.createElement("div",{className:"bp3-select",style:Yp.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},t)))}}const qp={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class Jp extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:Rp.page,pageCount:Rp.pageCount,pages:Rp.pages,count:Rp.count})},this.state={page:Rp.page,pageCount:Rp.pageCount,pages:Rp.pages,count:Rp.count}}componentDidMount(){Rp.addChangeListener(this.onChange)}componentWillUnmount(){Rp.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{Kp(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{Kp(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:qp.button,disabled:0===t,type:"button",onClick:()=>{Kp(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:qp.button,disabled:t===n-1,type:"button",onClick:()=>{Kp(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{Kp(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const $p={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class em extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=Rp.images,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,images:e,filter:Rp.filter,organizations:gr.organizations,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/image").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete images"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={images:Rp.images,filter:Rp.filter,organizations:gr.organizations,selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){Rp.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),Fp(),bd()}componentWillUnmount(){Rp.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[];this.state.images.forEach((n=>{t.push(e.createElement(Qp,{key:n.id,image:n,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.images;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(n+="bp3-active");let a=[];for(let e of Object.keys(this.state.selected)){let t=Rp.image(e);t?a.push(t.name||e):a.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:$p.header},e.createElement("h2",{style:$p.heading},"Images"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:$p.buttons},e.createElement("button",{className:n,style:$p.button,type:"button",onClick:()=>{null===this.state.filter?Up({}):Up(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:$p.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:$p.button,confirmMsg:"Permanently force delete the selected images",confirmInput:!0,items:a,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete})))),e.createElement(Zp,{filter:this.state.filter,onFilter:e=>{Up(e)},organizations:this.state.organizations}),e.createElement("div",{style:$p.itemsBox},e.createElement("div",{style:$p.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:$p.placeholder},e.createElement("td",{colSpan:5,style:$p.placeholder})))),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-compressed",title:"No images",description:"Add a new image to get started."}),e.createElement(Jp,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const tm="disk.sync",nm="disk.traverse",am="disk.filter";const sm=new class extends hr{constructor(){super(...arguments),this._disks=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._disks=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get disks(){return this._disks}get disksM(){let e=[];return this._disks.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}disk(e){let t=this._map[e];return void 0===t?null:this._disks[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/disk").query({...sm.filter,page:sm.page,page_count:sm.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===im){if(s)return Ui(i,"Failed to load disks"),void a(s);lr.dispatch({type:tm,data:{disks:i.body.disks,count:i.body.count}}),e()}else e()}))}))}function om(e){return lr.dispatch({type:nm,data:{page:e}}),rm()}function lm(e){return lr.dispatch({type:am,data:{filter:e}}),rm()}function cm(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/disk/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save disk"),void a(e)):void n())))}))}function hm(e,t){let n=(new Nr).loading();return new Promise(((a,s)=>{vn.put("/disk").send({ids:e,state:t}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,t)=>(n.done(),t&&401===t.status?(window.location.href="/login",void a()):e?(Ui(t,"Failed to update disks"),void s(e)):void a())))}))}kr.register((e=>{if("disk.change"===e.type)rm()}));const dm={group:{marginBottom:"15px",width:"100%",maxWidth:"280px"},select:{width:"100%",borderTopLeftRadius:"3px",borderBottomLeftRadius:"3px"},selectInner:{width:"100%"},selectBox:{flex:"1"}};class um extends e.Component{render(){let t="bp3-button";return this.props.buttonClass&&(t+=" "+this.props.buttonClass),e.createElement("div",{className:"bp3-control-group",style:dm.group,hidden:this.props.hidden},e.createElement("div",{style:dm.selectBox},e.createElement("div",{className:"bp3-select",style:dm.select},e.createElement("select",{style:dm.selectInner,disabled:this.props.disabled,value:this.props.value||"",onChange:e=>{this.props.onChange(e.target.value)}},this.props.children))),e.createElement(Rr,{label:this.props.label,className:t,progressClassName:this.props.progressClassName,confirmMsg:this.props.confirmMsg,disabled:this.props.disabled,onConfirm:this.props.onSubmit}))}}const pm="instance.sync",mm="instance.sync_node",fm="instance.traverse",vm="instance.filter";const gm=new class extends hr{constructor(){super(...arguments),this._instances=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._instances=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get instances(){return this._instances}get instancesM(){let e=[];return this._instances.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}instance(e){let t=this._map[e];return void 0===t?null:this._instances[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/instance").query({...gm.filter,page:gm.page,page_count:gm.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===bm){if(s)return Ui(i,"Failed to load instances"),void a(s);lr.dispatch({type:pm,data:{instances:i.body.instances,count:i.body.count}}),e()}else e()}))}))}function _m(e){return lr.dispatch({type:fm,data:{page:e}}),ym()}function wm(e){return lr.dispatch({type:vm,data:{filter:e}}),ym()}function Cm(e,t){let n=(new Nr).loading();return new Promise(((a,s)=>{vn.put("/instance").send({ids:e,state:t}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,t)=>(n.done(),t&&401===t.status?(window.location.href="/login",void a()):e?(Ui(t,"Failed to update instances"),void s(e)):void a())))}))}function Em(e){let t=zr();if(bm=t,!e)return Promise.resolve();let n=(new Nr).loading();return new Promise(((a,s)=>{vn.get("/instance").query({node_names:e}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((i,r)=>{if(n.done(),r&&401===r.status)return window.location.href="/login",void a();if(t===bm){if(i)return Ui(r,"Failed to load instance names"),void s(i);lr.dispatch({type:mm,data:{node:e,instances:r.body}}),a()}else a()}))}))}kr.register((e=>{if("instance.change"===e.type)ym()}));const Sm=new class extends hr{constructor(){super(...arguments),this._instances=new Map(Object.freeze([])),this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._instances=new Map(Object.freeze([])),this._map={},this.emitChange()}instances(e){return this._instances.get(e)||[]}instance(e){let t=this._map[e];return void 0===t?null:this._instances.get(t[0])[t[1]]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e,t){for(let e=0;e{this.setState({...this.state,instances:Sm.instances(this.props.disk.node)})},this.onSave=()=>{this.setState({...this.state,disabled:!0});let e={...this.state.disk};this.state.resizeDisk&&e.new_size>e.size&&(e.state="expand"),cm(e).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,disk:null,changed:!1,resizeDisk:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/disk/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete disk"),void a(e)):void n())))}))}(this.props.disk.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onRestoreBackup=()=>{let e,t;if(this.state.restoreImage)e=this.state.restoreImage;else{if(!this.props.disk.backups||!this.props.disk.backups.length)return;e=this.props.disk.backups[0].image}this.setState({...this.state,disabled:!0}),t=this.state.changed?{...this.state.disk}:{...this.props.disk},t.state="restore",t.restore_image=e,cm(t).then((()=>{Fi("Disk restore started"),this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",disk:null,instances:null,restoreImage:null,resizeDisk:!1}}componentDidMount(){Sm.addChangeListener(this.onChange),Em(this.props.disk.node)}componentWillUnmount(){Sm.removeChangeListener(this.onChange)}set(e,t){let n;n=this.state.changed?{...this.state.disk}:{...this.props.disk},n[e]=t,"instance"!==e||Number(n.index)||(n.index="0"),this.setState({...this.state,changed:!0,disk:n})}setResizeDisk(e){let t;t=this.state.changed?{...this.state.disk}:{...this.props.disk},t.new_size=e?t.size:0,this.setState({...this.state,changed:!0,resizeDisk:e,disk:t})}render(){let t=this.state.disk||this.props.disk,n=ph.node(this.props.disk.node),a=gr.organization(this.props.disk.organization),s=!1,i=[];if(null===this.state.instances)i=[e.createElement("option",{key:"null",value:""},"Loading")];else{if(this.state.instances.length){i.push(e.createElement("option",{key:"null",value:""},"Detached Disk")),s=!0;for(let t of this.state.instances)i.push(e.createElement("option",{key:t.id,value:t.id},t.name))}s||(i=[e.createElement("option",{key:"null",value:""},"No Instances")])}let r=[];for(let n of t.backups||[])r.push(e.createElement("option",{key:n.image,value:n.image},n.name));let o=!1;r.length?o=!0:r=[e.createElement("option",{key:"null",value:""},"No Backups")];let l="Unknown",c="tab-close ";switch(this.props.disk.state){case"provision":l="Provisioning",c+=" bp3-text-intent-primary";break;case"available":l=this.props.disk.instance?"Connected":"Available",c+=" bp3-text-intent-success";break;case"destroy":l="Destroying",c+=" bp3-text-intent-danger";break;case"snapshot":l="Snapshotting",c+=" bp3-text-intent-primary";break;case"backup":l="Backing Up",c+=" bp3-text-intent-primary";break;case"restore":l="Restoring",c+=" bp3-text-intent-primary";break;case"expand":l="Expanding",c+=" bp3-text-intent-primary"}let h=[{label:"ID",value:this.props.disk.id||"Unknown"},{label:"Image",value:this.props.disk.image||"Blank Disk"},{label:"Organization",value:a?a.name:this.props.disk.organization},{label:"Node",value:(n?n.name:this.props.disk.node)||"-"},{label:"Size",value:this.props.disk.size+"GB"}],d=this.props.disk.backing_image;return d&&(d=d.replace("-","\n"),h.splice(2,0,{label:"Backing Image",value:d})),e.createElement("td",{className:"bp3-cell",colSpan:5,style:km.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:km.group},e.createElement("div",{className:"layout horizontal tab-close",style:km.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox tab-close",style:km.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:c,style:km.status},e.createElement("span",{style:km.icon,className:"bp3-icon-standard bp3-icon-pulse"}),l),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:km.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Disk",confirmMsg:"Permanently delete this disk",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of disk.",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Disk comment.",placeholder:"Disk comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Hl,{disabled:this.state.disabled||!s,label:"Instance",help:"Instance to attach disk to.",value:t.instance,onChange:e=>{this.set("instance",e)}},i),e.createElement(Uh,{label:"Index",help:"Index to attach disk.",hidden:!t.instance,min:0,max:8,minorStepSize:1,stepSize:1,majorStepSize:1,disabled:this.state.disabled,selectAllOnFocus:!0,value:Number(t.index)||0,onChange:e=>{this.set("index",String(e))}}),e.createElement(ul,{disabled:this.state.disabled,label:"Delete protection",help:"Block disk from being deleted.",checked:t.delete_protection,onToggle:()=>{this.set("delete_protection",!t.delete_protection)}})),e.createElement("div",{style:km.group},e.createElement(Bo,{fields:h}),e.createElement(ul,{disabled:this.state.disabled||"available"!=t.state,label:"Resize disk",help:"Change size of disk. Instance will be stopped.",checked:this.state.resizeDisk,onToggle:()=>{this.setResizeDisk(!this.state.resizeDisk)}}),e.createElement(Uh,{label:"New Size",help:"New disk size in gigabytes.",hidden:!this.state.resizeDisk,min:t.size,minorStepSize:1,stepSize:1,majorStepSize:1,disabled:this.state.disabled,selectAllOnFocus:!0,value:t.new_size,onChange:e=>{this.set("new_size",e)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Automatic backup",help:"Automatically backup disk daily.",checked:t.backup,onToggle:()=>{this.set("backup",!t.backup)}}),e.createElement("label",{className:"bp3-label",style:km.label},"Restore Backup",e.createElement(hl,{title:"Restore Backup",content:"Select a backup to restore and replace the existing disk with the backup image. Instance will be stopped."})),e.createElement(um,{label:"Restore",value:this.state.restoreImage,disabled:!o||this.state.disabled,confirmMsg:"Confirm disk restore",buttonClass:"bp3-intent-success bp3-icon-box",progressClassName:"bp3-intent-success",onChange:e=>{this.setState({...this.state,restoreImage:e})},onSubmit:this.onRestoreBackup},r))),e.createElement(ml,{style:km.save,hidden:!this.state.disk&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,disk:null})},onSave:this.onSave}))}}const Mm={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},tag:{margin:"8px 5px 0 5px",height:"20px"}};class xm extends e.Component{render(){let t=this.props.disk,n=ph.node(this.props.disk.node);if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:Mm.cardOpen},e.createElement(zm,{organizations:this.props.organizations,disk:this.props.disk,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let a="";if(t.organization){let e=gr.organization(t.organization);a=e?e.name:t.organization}else a="Node Disk";let s="Unknown",i="bp3-cell";switch(t.state){case"provision":s="Provisioning",i+=" bp3-text-intent-primary";break;case"available":s=t.instance?"Connected":"Available",i+=" bp3-text-intent-success";break;case"destroy":s="Destroying",i+=" bp3-text-intent-danger";break;case"snapshot":s="Snapshotting",i+=" bp3-text-intent-primary";break;case"backup":s="Backing Up",i+=" bp3-text-intent-primary";break;case"restore":s="Restoring",i+=" bp3-text-intent-primary";break;case"expand":s="Expanding",i+=" bp3-text-intent-primary"}return e.createElement("div",{className:"bp3-card bp3-row",style:Mm.card,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:Mm.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:Mm.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:Mm.nameSpan},t.name))),e.createElement("div",{className:i,style:Mm.item},e.createElement("span",{style:Mm.icon,className:"bp3-icon-standard bp3-icon-pulse"}),s),e.createElement("div",{className:"bp3-cell",style:Mm.item},e.createElement("span",{style:Mm.icon,className:"bp3-icon-standard bp3-text-muted "+(t.organization?"bp3-icon-people":"bp3-icon-layers")}),a),e.createElement("div",{className:"bp3-cell",style:Mm.item},e.createElement("span",{style:Mm.icon,className:"bp3-icon-standard bp3-text-muted bp3-icon-layers"}),n?n.name:this.props.disk.node),e.createElement("div",{className:"bp3-cell",style:Mm.item},e.createElement("span",{style:Mm.icon,className:"bp3-icon-standard bp3-text-muted bp3-icon-database"}),t.size,"GB"))}}const Am={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class Tm extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.organizations&&this.props.organizations.length)for(let n of this.props.organizations)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));let n=[e.createElement("option",{key:"key",value:"any"},"Any Node")];if(this.props.nodes&&this.props.nodes.length)for(let t of this.props.nodes)n.push(e.createElement("option",{key:t.id,value:t.id},t.name));return e.createElement("div",{className:"layout horizontal wrap",style:Am.filters},e.createElement(ho,{style:Am.input,placeholder:"Disk ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:Am.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement(ho,{style:Am.input,placeholder:"Instance ID",value:this.props.filter.instance,onChange:e=>{let t={...this.props.filter};e?t.instance=e:delete t.instance,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:Am.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},t)),e.createElement("div",{className:"bp3-select",style:Am.type,hidden:$i},e.createElement("select",{value:this.props.filter.node||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.node:t.node=n,this.props.onFilter(t)}},n)))}}const Lm={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class Pm extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:sm.page,pageCount:sm.pageCount,pages:sm.pages,count:sm.count})},this.state={page:sm.page,pageCount:sm.pageCount,pages:sm.pages,count:sm.count}}componentDidMount(){sm.addChangeListener(this.onChange)}componentWillUnmount(){sm.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{om(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{om(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:Lm.button,disabled:0===t,type:"button",onClick:()=>{om(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:Lm.button,disabled:t===n-1,type:"button",onClick:()=>{om(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{om(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const Hm=new class extends hr{constructor(){super(...arguments),this._images=Object.freeze([]),this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._images=Object.freeze([]),this._map={},this.emitChange()}get images(){return this._images}get imagesM(){let e=[];return this._images.forEach((t=>{e.push({...t})})),e}image(e){let t=this._map[e];return void 0===t?null:this._images[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{e.push({...t})})),e}node(e){let t=this._map[e];return void 0===t?null:this._nodes[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{this.setState({...this.state,images:Hm.images,nodes:Nm.nodes,instances:Sm.instances(this.state.disk.node)})},this.onCreate=()=>{this.setState({...this.state,disabled:!0});let e={...this.state.disk};this.props.organizations.length&&!e.organization&&(e.organization=this.props.organizations[0].id),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/disk").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create disk"),void a(e)):void n())))}))}(e).then((()=>{this.setState({...this.state,message:"Disk created successfully",changed:!1}),setTimeout((()=>{this.setState({...this.state,disabled:!1,changed:!0})}),2e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.state={closed:!1,disabled:!1,changed:!1,message:"",disk:{name:"New Disk",index:"1",size:10},datacenter:"",zone:"",images:[],nodes:[],instances:[],hiddenImages:!1}}componentDidMount(){Hm.addChangeListener(this.onChange),Nm.addChangeListener(this.onChange),Sm.addChangeListener(this.onChange),Xp(""),Ah("")}componentWillUnmount(){Hm.removeChangeListener(this.onChange),Nm.removeChangeListener(this.onChange),Sm.removeChangeListener(this.onChange)}set(e,t){let n={...this.state.disk};n[e]=t,this.setState({...this.state,changed:!0,disk:n})}render(){let t=this.state.disk,n=[];if(this.props.organizations.length)for(let t of this.props.organizations)n.push(e.createElement("option",{key:t.id,value:t.id},t.name));let a=!1,s=[];if(this.props.datacenters.length){s.push(e.createElement("option",{key:"null",value:""},"Select Datacenter")),a=!0;for(let t of this.props.datacenters)s.push(e.createElement("option",{key:t.id,value:t.id},t.name))}a||s.push(e.createElement("option",{key:"null",value:""},"No Datacenters"));let i=this.state.datacenter,r=!1,o=[];if(this.props.zones.length){o.push(e.createElement("option",{key:"null",value:""},"Select Zone"));for(let t of this.props.zones)t.datacenter===i&&(r=!0,o.push(e.createElement("option",{key:t.id,value:t.id},t.name)))}r||(o=[e.createElement("option",{key:"null",value:""},"No Zones")]);let l=!1,c=[];if(this.state.nodes.length){c.push(e.createElement("option",{key:"null",value:""},"Select Node")),l=!0;for(let t of this.state.nodes)c.push(e.createElement("option",{key:t.id,value:t.id},t.name))}l||(c=[e.createElement("option",{key:"null",value:""},"No Nodes")]);let h=!1,d=[];if(this.state.instances.length){d.push(e.createElement("option",{key:"null",value:""},"Detached Disk")),h=!0;for(let t of this.state.instances)d.push(e.createElement("option",{key:t.id,value:t.id},t.name))}h||(d=[e.createElement("option",{key:"null",value:""},"No Instances")]);let u=[e.createElement("option",{key:"null",value:""},"Blank Disk")],p=new Map,m=new Map;if(this.state.images.length){for(let e of this.state.images){if(!this.state.hiddenImages&&e.signed){let t=e.key.split("_");if(t.length>=2&&t[t.length-1].length>=4){let n=t[0]+"_"+e.firmware,a=parseInt(t[t.length-1].substring(0,4),10);if(a){let t=m.get(n);(!t||a>t[0])&&m.set(n,[a,e.id,e.name]);continue}}}p.set(e.id,e.name)}for(let t of p.entries())u.push(e.createElement("option",{key:t[0],value:t[0]},t[1]));for(let t of m.entries())u.push(e.createElement("option",{key:t[1][1],value:t[1][1]},t[1][2]))}return e.createElement("div",{className:"bp3-card bp3-row",style:Dm.row},e.createElement("td",{className:"bp3-cell",colSpan:5,style:Dm.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Dm.group},e.createElement("div",{style:Dm.buttons}),e.createElement(vl,{label:"Name",help:"Name of disk",type:"text",placeholder:"Enter name",disabled:this.state.disabled,value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(Hl,{disabled:this.state.disabled,label:"Organization",help:"Organization for disk.",value:t.organization,onChange:e=>{this.set("organization",e)}},n),e.createElement(Hl,{disabled:this.state.disabled||!a,label:"Datacenter",help:"Datacenter for disk.",value:this.state.datacenter,onChange:e=>{this.setState({...this.state,datacenter:e,disk:{...this.state.disk,node:"",image:""}}),Xp(e),Ah("")}},s),e.createElement(Hl,{disabled:this.state.disabled||!r,label:"Zone",help:"Zone for disk.",value:this.state.zone,onChange:e=>{this.setState({...this.state,zone:e,disk:{...this.state.disk,node:"",instance:""}}),Ah(e)}},o),e.createElement(Hl,{disabled:this.state.disabled||!l,label:"Node",help:"Node to run disk on.",value:t.node,onChange:e=>{this.setState({...this.state,disk:{...this.state.disk,node:e,instance:""}}),Em(e)}},c),e.createElement(ul,{disabled:this.state.disabled,label:"Delete protection",help:"Block disk from being deleted.",checked:t.delete_protection,onToggle:()=>{this.set("delete_protection",!t.delete_protection)}})),e.createElement("div",{style:Dm.group},e.createElement(Hl,{disabled:this.state.disabled||!h,label:"Instance",help:"Instance to attach disk to.",value:t.instance,onChange:e=>{this.set("instance",e)}},d),e.createElement(Uh,{label:"Index",help:"Index to attach disk.",hidden:!t.instance,min:0,max:8,minorStepSize:1,stepSize:1,majorStepSize:1,disabled:this.state.disabled,selectAllOnFocus:!0,value:Number(t.index),onChange:e=>{this.set("index",String(e))}}),e.createElement(Hl,{disabled:this.state.disabled,label:"Image",help:"Starting image for disk.",value:t.image,onChange:e=>{this.set("image",e)}},u),e.createElement(ul,{label:"Show hidden images",help:"Show previous versions of images.",checked:this.state.hiddenImages,onToggle:()=>{this.setState({...this.state,hiddenImages:!this.state.hiddenImages})}}),e.createElement(ul,{label:"Linked disk image",help:"Link to source disk image instead of creating full copy. This will reduce disk size and provide faster creation.",checked:t.backing,onToggle:()=>{this.set("backing",!t.backing)}}),e.createElement(Uh,{label:"Size",help:"Disk size in gigabytes.",min:10,minorStepSize:1,stepSize:1,majorStepSize:2,disabled:this.state.disabled,selectAllOnFocus:!0,value:t.size,onChange:e=>{this.set("size",e)}}))),e.createElement(Vm,{style:Dm.save,hidden:!this.state.disk,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,closed:this.state.closed,light:!0,onCancel:this.props.onClose,onCreate:this.onCreate})))}}const Rm={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"},debug:{margin:"0 0 4px 0"},debugButton:{opacity:.5,margin:"8px 0 0 8px"}};class Bm extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=sm.disks,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,disks:e,filter:sm.filter,organizations:gr.organizations,datacenters:gh.datacenters,zones:yh.zones,nodes:ph.nodes,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/disk").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete disks"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onForceDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/disk").query({force:!0}).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete disks"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onSnapshot=()=>{this.setState({...this.state,disabled:!0}),hm(Object.keys(this.state.selected),"snapshot").then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onBackup=()=>{this.setState({...this.state,disabled:!0}),hm(Object.keys(this.state.selected),"backup").then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disks:sm.disks,filter:sm.filter,debug:!1,organizations:gr.organizations,datacenters:gh.datacenters,zones:yh.zones,nodes:ph.nodes,selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){gm.addChangeListener(this.onChange),sm.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),gh.addChangeListener(this.onChange),yh.addChangeListener(this.onChange),ph.addChangeListener(this.onChange),ym(),rm(),bd(),Hh(),Nh(),xh()}componentWillUnmount(){gm.removeChangeListener(this.onChange),sm.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange),gh.removeChangeListener(this.onChange),yh.removeChangeListener(this.onChange),ph.removeChangeListener(this.onChange)}render(){let t,n=[];this.state.disks.forEach((t=>{n.push(e.createElement(xm,{key:t.id,disk:t,organizations:this.state.organizations,selected:!!this.state.selected[t.id],open:!!this.state.opened[t.id],onSelect:e=>{let n={...this.state.selected};if(e){let e,a,s=this.state.disks;for(let n=0;na&&(a=[e,e=a][0]);for(let t=e;t<=a;t++)n[s[t].id]=!0;return void this.setState({...this.state,lastSelected:t.id,selected:n})}}n[t.id]?delete n[t.id]:n[t.id]=!0,this.setState({...this.state,lastSelected:t.id,selected:n})},onOpen:()=>{let e={...this.state.opened};e[t.id]?delete e[t.id]:e[t.id]=!0,this.setState({...this.state,opened:e})}}))})),this.state.newOpened&&(t=e.createElement(Im,{organizations:this.state.organizations,datacenters:this.state.datacenters,zones:this.state.zones,onClose:()=>{this.setState({...this.state,newOpened:!1})}}));let a="bp3-button bp3-icon-console ";this.state.debug&&(a+="bp3-active");let s="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(s+="bp3-active");let i=[];for(let e of Object.keys(this.state.selected)){let t=sm.disk(e);t?i.push(t.name||e):i.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Rm.header},e.createElement("h2",{style:Rm.heading},"Disks"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Rm.buttons},e.createElement("button",{className:a,style:Rm.debugButton,hidden:$i,type:"button",onClick:()=>{this.setState({...this.state,debug:!this.state.debug})}},"Debug"),e.createElement("button",{className:s,style:Rm.button,type:"button",onClick:()=>{null===this.state.filter?lm({}):lm(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:Rm.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement(Rr,{label:"Snapshot Selected",className:"bp3-intent-primary bp3-icon-floppy-disk",progressClassName:"bp3-intent-primary",safe:!0,style:Rm.button,confirmMsg:"Snapshot the selected disks",items:i,disabled:!this.selected||this.state.disabled,onConfirm:this.onSnapshot}),e.createElement(Rr,{label:"Backup Selected",className:"bp3-intent-primary bp3-icon-compressed",progressClassName:"bp3-intent-primary",safe:!0,style:Rm.button,confirmMsg:"Backup the selected disks",items:i,disabled:!this.selected||this.state.disabled,onConfirm:this.onBackup}),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:Rm.button,confirmMsg:"Permanently delete the selected disks",confirmInput:!0,items:i,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete}),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:Rm.button,disabled:this.state.disabled||this.state.newOpened,type:"button",onClick:()=>{this.setState({...this.state,newOpened:!0})}},"New"))),e.createElement("div",{className:"layout horizontal wrap",style:Rm.debug,hidden:!this.state.debug},e.createElement(Rr,{label:"Force Delete Selected",className:"bp3-intent-danger bp3-icon-warning-sign",progressClassName:"bp3-intent-danger",safe:!0,style:Rm.button,confirmMsg:"Permanently force delete the selected disks",items:i,disabled:!this.selected||this.state.disabled,onConfirm:this.onForceDelete}))),e.createElement(Tm,{filter:this.state.filter,onFilter:e=>{lm(e)},organizations:this.state.organizations,nodes:this.state.nodes}),e.createElement("div",{style:Rm.itemsBox},e.createElement("div",{style:Rm.items},t,n,e.createElement("tr",{className:"bp3-card bp3-row",style:Rm.placeholder},e.createElement("td",{colSpan:5,style:Rm.placeholder})))),e.createElement(To,{hidden:!!n.length,iconClass:"bp3-icon-floppy-disk",title:"No disks",description:"Add a new disk to get started."}),e.createElement(Pm,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const Fm=new class extends hr{constructor(){super(...arguments),this._domains=Object.freeze([]),this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._domains=Object.freeze([]),this._map={},this.emitChange()}get domains(){return this._domains}get domainsM(){let e=[];return this._domains.forEach((t=>{e.push({...t})})),e}domain(e){let t=this._map[e];return void 0===t?null:this._domains[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{e.push({...t})})),e}vpc(e){let t=this._map[e];return void 0===t?null:this._vpcs[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{let t=this.clone();t.uri=e.target.value,this.props.onChange(t)}})),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",disabled:this.props.disabled,onClick:()=>{this.props.onRemove()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-success bp3-icon-add",onClick:()=>{this.props.onAdd()}})))}}const jm={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%",maxWidth:"1060px"},button:{height:"30px"},controlButton:{marginRight:"10px",marginBottom:"10px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",wordBreak:"break-all"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},list:{marginBottom:"15px"},group:{flex:1,minWidth:"280px",margin:"0 10px"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},role:{margin:"9px 5px 0 5px",height:"20px"},vncBox:{position:"relative"}};class Wm extends e.Component{constructor(t,n){super(t,n),this.onTogleVnc=()=>{this.state.vnc?this.vncRfb&&this.vncRfb.disconnect():this.connectVnc(),this.setState({...this.state,vnc:!this.state.vnc})},this.connectVnc=()=>{this.vncRfb=new Km.Z(this.vncRef.current,"wss://"+location.hostname+(location.port?":"+location.port:"")+"/instance/"+this.props.instance.id+"/vnc?csrf_token="+Wi,{shared:!0,wsProtocols:["binary"],credentials:{password:this.props.instance.vnc_password}}),this.vncRfb.addEventListener("disconnect",function(){setTimeout(function(){this.state.vnc&&this.vncState&&this.connectVnc()}.bind(this),250)}.bind(this)),this.state.vncScale&&(this.vncRfb.scaleViewport="scale")},this.onToggleVncCtrl=()=>{this.vncRfb&&(this.state.vncCtrl?this.vncRfb.sendKey(65507,"ControlLeft",!1):this.vncRfb.sendKey(65507,"ControlLeft",!0)),this.setState({...this.state,vncCtrl:!this.state.vncCtrl})},this.onToggleVncAlt=()=>{this.vncRfb&&(this.state.vncAlt?this.vncRfb.sendKey(65513,"AltLeft",!1):this.vncRfb.sendKey(65513,"AltLeft",!0)),this.setState({...this.state,vncAlt:!this.state.vncAlt})},this.onToggleVncSuper=()=>{this.vncRfb&&(this.state.vncSuper?this.vncRfb.sendKey(65515,"MetaLeft",!1):this.vncRfb.sendKey(65515,"MetaLeft",!0)),this.setState({...this.state,vncSuper:!this.state.vncSuper})},this.onVncCtrlAltDel=()=>{this.vncRfb&&this.vncRfb.sendCtrlAltDel()},this.onVncTab=()=>{this.vncRfb&&this.vncRfb.sendKey(65289,"Tab")},this.onVncEsc=()=>{this.vncRfb&&this.vncRfb.sendKey(65307,"Escape")},this.onToggleVncFullscreen=()=>{document.fullscreenElement?document.exitFullscreen&&document.exitFullscreen():this.vncRef&&this.vncRef.current.requestFullscreen&&this.vncRef.current.requestFullscreen()},this.onToggleVncScale=()=>{let e,t=this.state.vncScale;if(t)this.vncRfb.scaleViewport="";else{let t=this.vncRfb._canvas.height/this.vncRfb._canvas.width;e=Math.floor(this.vncRef.current.offsetWidth*t)}this.setState({...this.state,vncScale:!this.state.vncScale,vncHeight:e}),t||(this.vncRfb.scaleViewport="scale",setTimeout((()=>{this.state.vncScale&&(this.vncRfb.scaleViewport="scale"),setTimeout((()=>{this.state.vncScale&&(this.vncRfb.scaleViewport="scale"),setTimeout((()=>{this.state.vncScale&&(this.vncRfb.scaleViewport="scale"),setTimeout((()=>{this.state.vncScale&&(this.vncRfb.scaleViewport="scale"),setTimeout((()=>{this.state.vncScale&&(this.vncRfb.scaleViewport="scale"),setTimeout((()=>{this.state.vncScale&&(this.vncRfb.scaleViewport="scale")}),50)}),50)}),50)}),50)}),50)}),50))},this.onAddNetworkRole=()=>{let e;if(!this.state.addNetworkRole)return;e=this.state.changed?{...this.state.instance}:{...this.props.instance};let t=[...e.network_roles||[]];-1===t.indexOf(this.state.addNetworkRole)&&t.push(this.state.addNetworkRole),t.sort(),e.network_roles=t,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",instance:e})},this.onRemoveNetworkRole=e=>{let t;t=this.state.changed?{...this.state.instance}:{...this.props.instance};let n=[...t.network_roles||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.network_roles=n,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",instance:t}))},this.onAddDriveDevice=()=>{let e,t=this.props.instance.info.drive_devices||[];if(!this.state.addDriveDevice&&!t.length)return;let n=this.state.addDriveDevice;n||(n=t[0].id),e=this.state.changed?{...this.state.instance}:{...this.props.instance};let a=[...e.drive_devices||[]],s=-1;for(let e=0;e{let t;t=this.state.changed?{...this.state.instance}:{...this.props.instance};let n=[...t.drive_devices||[]],a=-1;for(let t=0;t{let e,t=this.props.instance.info.isos||[];if(!this.state.addIso&&!t.length)return;let n=this.state.addIso;n||(n=t[0].name),e=this.state.changed?{...this.state.instance}:{...this.props.instance};let a=[...e.isos||[]],s=-1;for(let e=0;e{let t;t=this.state.changed?{...this.state.instance}:{...this.props.instance};let n=[...t.isos||[]],a=-1;for(let t=0;t{let e,t=this.props.instance.info.usb_devices||[];if(!this.state.addUsbDevice&&!t.length)return;let n=this.state.addUsbDevice;n||(n=t[0].vendor+":"+t[0].product);let a=-1!==n.indexOf("-");e=this.state.changed?{...this.state.instance}:{...this.props.instance};let s=[...e.usb_devices||[]],i=-1;for(let e=0;e{let t;t=this.state.changed?{...this.state.instance}:{...this.props.instance};let n=[...t.usb_devices||[]],a=-1!==e.indexOf("-"),s=-1;for(let t=0;t{let e,t=this.props.instance.info.pci_devices||[];if(!this.state.addPciDevice&&!t.length)return;let n=this.state.addPciDevice;n||(n=t[0].slot),e=this.state.changed?{...this.state.instance}:{...this.props.instance};let a=[...e.pci_devices||[]],s=-1;for(let e=0;e{let t;t=this.state.changed?{...this.state.instance}:{...this.props.instance};let n=[...t.pci_devices||[]],a=-1;for(let t=0;t{let t;t=this.state.changed?{...this.state.instance}:{...this.props.instance};let n=[...t.iscsi_devices||[]];0===n.length&&(n=[{}]),n.splice(e+1,0,{}),t.iscsi_devices=n,this.setState({...this.state,changed:!0,message:"",instance:t})},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/instance/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save instance"),void a(e)):void n())))}))}({...this.state.instance,state:null}).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,instance:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/instance/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete instance"),void a(e)):void n())))}))}(this.props.instance.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",instance:null,addCert:null,addNetworkRole:"",addVpc:"",addDriveDevice:"",addIso:"",addUsbDevice:"",addPciDevice:"",forwardedChecked:!1,vnc:!1,vncCtrl:!1,vncAlt:!1,vncSuper:!1,vncScale:!1,vncHeight:null},this.vncRef=e.createRef()}componentDidMount(){this.vncState=!0}componentWillUnmount(){this.vncState=!1,this.vncRfb&&this.vncRfb.disconnect()}set(e,t){let n;n=this.state.changed?{...this.state.instance}:{...this.props.instance},n[e]=t,this.setState({...this.state,changed:!0,instance:n})}onChangeIscsiDevice(e,t){let n;n=this.state.changed?{...this.state.instance}:{...this.props.instance};let a=[...n.iscsi_devices||[]];0===a.length&&(a=[{}]),a[e]=t,n.iscsi_devices=a,this.setState({...this.state,changed:!0,message:"",instance:n})}onRemoveIscsiDevice(e){let t;t=this.state.changed?{...this.state.instance}:{...this.props.instance};let n=[...t.iscsi_devices||[]];0!==n.length&&n.splice(e,1),0===n.length&&(n=[{}]),t.iscsi_devices=n,this.setState({...this.state,changed:!0,message:"",instance:t})}update(e){this.setState({...this.state,disabled:!0}),Cm([this.props.instance.id],e).then((()=>{setTimeout((()=>{this.setState({...this.state,disabled:!1})}),250)})).catch((()=>{this.setState({...this.state,disabled:!1})}))}render(){let t=this.state.instance||this.props.instance,n=this.props.instance.info||{},a=gr.organization(this.props.instance.organization),s=yh.zone(this.props.instance.zone),i=this.props.instance.private_ips;i&&i.length||(i="None");let r=this.props.instance.private_ips6;r&&r.length||(r="None");let o=this.props.instance.gateway_ips;o&&o.length||(o="None");let l=this.props.instance.gateway_ips6;l&&l.length||(l="None");let c=this.props.instance.public_ips;c&&c.length||(c="None");let h=this.props.instance.public_ips6;h&&h.length||(h="None");let d=this.props.instance.host_ips;d&&d.length||(d="None");let u=this.props.instance.oracle_private_ips;u&&u.length||(u=null);let p=this.props.instance.oracle_public_ips;p&&p.length||(p=null);let m="no-select tab-close";switch(t.status){case"Running":m+=" bp3-text-intent-success";break;case"Restart Required":m+=" bp3-text-intent-warning";break;case"Stopped":case"Failed":case"Destroying":m+=" bp3-text-intent-danger"}let f=[];for(let n of t.network_roles||[])f.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:jm.role,key:n},n,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveNetworkRole(n)}})));let v=!1,g=[];if(this.props.vpcs&&this.props.vpcs.length){g.push(e.createElement("option",{key:"null",value:""},"Select Vpc"));for(let n of this.props.vpcs)n.organization===t.organization&&(v=!0,g.push(e.createElement("option",{key:n.id,value:n.id},n.name)))}v||(g=[e.createElement("option",{key:"null",value:""},"No Vpcs")]);let b=!1,y=[];if(this.props.vpcs&&this.props.vpcs.length){y.push(e.createElement("option",{key:"null",value:""},"Select Subnet"));for(let n of this.props.vpcs)if(n.organization===t.organization&&n.id===t.vpc)for(let t of n.subnets||[])b=!0,y.push(e.createElement("option",{key:t.id,value:t.id},t.name+" - "+t.network))}b||(y=[e.createElement("option",{key:"null",value:""},"No Subnets")]);let _=[e.createElement("option",{key:"null",value:""},"Disabled")];if(this.props.instance.info.oracle_subnets)for(let t of this.props.instance.info.oracle_subnets||[])_.push(e.createElement("option",{key:t.id,value:t.id},t.name));let w=[e.createElement("option",{key:"null",value:""},"No Domain")];if(this.props.domains&&this.props.domains.length)for(let n of this.props.domains)n.organization===t.organization&&w.push(e.createElement("option",{key:n.id,value:n.id},n.name));let C=[];for(let n of t.drive_devices||[]){let t=n.id;C.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:jm.item,key:t},t,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveDriveDevice(t)}})))}let E=this.props.instance.info.drive_devices,S=[];for(let t=0;t<(E||[]).length;t++){let n=E[t];S.push(e.createElement("option",{key:n.id,value:n.id},n.id))}let k=[];for(let n of t.isos||[]){let t=n.name;k.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:jm.item,key:t},t,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveIso(t)}})))}let z=this.props.instance.info.isos,M=[];for(let t=0;t<(z||[]).length;t++){let n=z[t];M.push(e.createElement("option",{key:n.name,value:n.name},n.name))}let x=[];for(let n of t.usb_devices||[]){let t="";t=n.bus&&n.address?n.bus+"-"+n.address:n.vendor+":"+n.product,x.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:jm.item,key:t},t,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveUsbDevice(t)}})))}let A=this.props.instance.info.usb_devices,T=[];for(let t=0;t<(A||[]).length;t++){let n=A[t];T.push(e.createElement("option",{key:t+"_"+n.vendor+":"+n.product,value:n.vendor+":"+n.product},"Device="+n.vendor+":"+n.product+" ("+n.name+")"))}for(let t=0;t<(A||[]).length;t++){let n=A[t];T.push(e.createElement("option",{key:t+"_"+n.bus+"-"+n.address,value:n.bus+"-"+n.address},"Bus="+n.bus+" Port="+n.address+" ("+n.name+")"))}let L=[];for(let n of t.pci_devices||[]){let t=n.slot;L.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:jm.item,key:t},t,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemovePciDevice(t)}})))}let P=this.props.instance.info.pci_devices,H=[];for(let t=0;t<(P||[]).length;t++){let n=P[t];H.push(e.createElement("option",{key:n.slot,value:n.slot},n.slot+" "+n.class+":"+n.name))}let N=[...t.iscsi_devices||[]];0===N.length&&N.push({});let O=[];for(let t=0;t{this.onChangeIscsiDevice(n,e)},onAdd:()=>{this.onAddIscsiDevice(n)},onRemove:()=>{this.onRemoveIscsiDevice(n)}}))}let V=[{label:"ID",value:this.props.instance.id||"None"},{label:"Organization",value:a?a.name:this.props.instance.organization||"None"},{label:"Zone",value:s?s.name:this.props.instance.zone||"None"},{label:"Node",value:n.node||"None"},{label:"State",value:(this.props.instance.state||"None")+":"+(this.props.instance.vm_state||"None")},{label:"Uptime",value:this.props.instance.uptime||"-"},{label:"Public MAC Address",value:this.props.instance.public_mac||"Unknown",copy:!0},{label:"QEMU Version",value:this.props.instance.qemu_version||"Unknown"},{label:"Platform",value:this.props.instance.uefi?"UEFI":"BIOS"},{label:"SecureBoot",value:this.props.instance.secure_boot?"Enabled":"Disabled"},{label:"Public IPv4",value:c,copy:!0},{label:"Public IPv6",value:h,copy:!0},{label:"Private IPv4",value:i,copy:!0},{label:"Private IPv6",value:r,copy:!0},{label:"Gateway IPv4",value:o,copy:!0},{label:"Gateway IPv6",value:l,copy:!0}];if(p&&V.push({label:"Oracle Public IPv4",value:p,copy:!0}),u&&V.push({label:"Oracle Private IPv4",value:u,copy:!0}),V.push({label:"Host IPv4",value:d,copy:!0}),this.props.instance.info.mtu&&V.push({label:"Network MTU",value:this.props.instance.info.mtu,copy:!0}),V.push({label:"Network Namespace",value:this.props.instance.network_namespace||"None",copy:!0}),this.props.instance.root_enabled&&V.push({label:"Root Password",value:this.props.instance.root_passwd,copy:!0}),this.props.instance.vnc){let e;this.props.instance.info.node_public_ip&&V.push({label:"VNC IP",value:this.props.instance.info.node_public_ip,copy:!0}),e=this.props.instance.vnc_display?this.props.instance.vnc_display+5900:"-",V.push({label:"VNC Port",value:e,copy:!0},{label:"VNC Password",value:this.props.instance.vnc_password,copy:!0})}this.props.instance.spice&&(this.props.instance.info.node_public_ip&&V.push({label:"Spice IP",value:this.props.instance.info.node_public_ip,copy:!0}),V.push({label:"Spice Port",value:this.props.instance.spice_port||"-",copy:!0},{label:"Spice Password",value:this.props.instance.spice_password,copy:!0})),V.push({label:"Disks",value:n.disks||""},{label:"Firewall Rules",value:this.props.instance.info.firewall_rules||""},{label:"Authorities",value:this.props.instance.info.authorities||""});let D={height:this.state.vncHeight?this.state.vncHeight+"px":"100%",marginBottom:"10px"};return e.createElement("td",{className:"bp3-cell",colSpan:6,style:jm.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:jm.group},e.createElement("div",{className:"layout horizontal tab-close",style:jm.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox",style:jm.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:m,style:jm.status},e.createElement("span",{style:jm.icon,hidden:!t.status,className:"bp3-icon-standard bp3-icon-power"}),t.status),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:jm.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Instance",confirmMsg:"Permanently delete this instance",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of instance",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Instance comment.",placeholder:"Instance comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Uh,{label:"Memory Size",help:"Instance memory size in megabytes.",min:256,minorStepSize:256,stepSize:512,majorStepSize:1024,disabled:this.state.disabled,selectAllOnFocus:!0,onChange:e=>{this.set("memory",e)},value:t.memory}),e.createElement(Uh,{label:"Processors",help:"Number of instance processors.",min:1,minorStepSize:1,stepSize:1,majorStepSize:2,disabled:this.state.disabled,selectAllOnFocus:!0,onChange:e=>{this.set("processors",e)},value:t.processors}),e.createElement("label",{className:"bp3-label"},"Network Roles",e.createElement(hl,{title:"Network Roles",content:"Network roles that will be matched with firewall rules. Network roles are case-sensitive."}),e.createElement("div",null,f)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addNetworkRole,onChange:e=>{this.setState({...this.state,addNetworkRole:e})},onSubmit:this.onAddNetworkRole}),e.createElement("label",{className:"bp3-label",style:jm.label,hidden:!k.length&&!M.length},"ISO Images",e.createElement(hl,{title:"ISO Images",content:"ISO images to attach to instance."}),e.createElement("div",null,k)),e.createElement(Xh,{hidden:!M.length,label:"Add ISO",value:this.state.addIso,disabled:this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addIso:e})},onSubmit:this.onAddIso},M),e.createElement("label",{className:"bp3-label",style:jm.label,hidden:!C.length&&!S.length},"Disk Passthrough Devices",e.createElement(hl,{title:"Disk Passthrough Devices",content:"Passthrough node disk to instance."}),e.createElement("div",null,C)),e.createElement(Xh,{hidden:!S.length,label:"Add Device",value:this.state.addDriveDevice,disabled:this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addDriveDevice:e})},onSubmit:this.onAddDriveDevice},S),e.createElement("label",{hidden:!(n.iscsi||this.props.instance.iscsi_devices&&0!==this.props.instance.iscsi_devices.length),style:jm.itemsLabel},"iSCSI Devices",e.createElement(hl,{title:"iSCSI Devices",content:"Mount iSCSI disks with URI, below are examples without and with authentication.",examples:["iscsi://10.0.0.1/iqn.2001-04.com.example/lun","iscsi://username:password@10.0.0.1/iqn.2001-04.com.example/lun"]})),e.createElement("div",{hidden:!(n.iscsi||this.props.instance.iscsi_devices&&0!==this.props.instance.iscsi_devices.length),style:jm.list},O),e.createElement("label",{className:"bp3-label",style:jm.label,hidden:!L.length&&!H.length},"PCI Devices",e.createElement(hl,{title:"PCI Devices",content:"PCI devices to for host passthrough to instance."}),e.createElement("div",null,L)),e.createElement(Xh,{hidden:!H.length,label:"Add Device",value:this.state.addPciDevice,disabled:this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addPciDevice:e})},onSubmit:this.onAddPciDevice},H),e.createElement("label",{className:"bp3-label",style:jm.label,hidden:null===A},"USB Devices",e.createElement(hl,{title:"USB Devices",content:"USB devices to for host passthrough to instance."}),e.createElement("div",null,x)),e.createElement(Xh,{hidden:null===A,label:"Add Device",value:this.state.addUsbDevice,disabled:!T.length||this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addUsbDevice:e})},onSubmit:this.onAddUsbDevice},T),e.createElement(Hl,{disabled:this.state.disabled||!v,label:"VPC",help:"VPC for instance.",value:t.vpc,onChange:e=>{this.set("vpc",e)}},g),e.createElement(Hl,{disabled:this.state.disabled||!v,label:"Subnet",help:"Subnet for instance.",value:t.subnet,onChange:e=>{this.set("subnet",e)}},y),e.createElement(Hl,{disabled:this.state.disabled,hidden:_.length<=1,label:"Oracle Cloud Subnet",help:"Oracle Cloud subnet for instance.",value:t.oracle_subnet,onChange:e=>{this.set("oracle_subnet",e)}},_),e.createElement(Hl,{disabled:this.state.disabled,label:"DNS Domain",help:"Domain to create DNS name using instance name.",value:t.domain,onChange:e=>{this.set("domain",e)}},w),e.createElement(Hl,{disabled:this.state.disabled,label:"CloudInit Type",help:"Target operating system for cloud init",value:t.cloud_type,onChange:e=>{this.set("cloud_type",e)}},e.createElement("option",{key:"linux",value:"linux"},"Linux"),",",e.createElement("option",{key:"bsd",value:"bsd"},"BSD"),","),e.createElement(ul,{disabled:this.state.disabled,label:"Root enabled",help:"Enable root unix account for VNC/Spice access. Random password will be generated.",checked:t.root_enabled,onToggle:()=>{this.set("root_enabled",!t.root_enabled)}}),e.createElement(ul,{disabled:this.state.disabled,label:"VNC server",help:"Enable VNC server for remote control of instance.",checked:t.vnc,onToggle:()=>{this.set("vnc",!t.vnc)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Spice server",help:"Enable Spice server for remote control of instance.",checked:t.spice,onToggle:()=>{this.set("spice",!t.spice)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Desktop GUI",help:"Enable desktop GUI window for instance display.",checked:t.gui,onToggle:()=>{this.set("gui",!t.gui)}}),e.createElement(ul,{disabled:this.state.disabled,label:"UEFI",help:"Enable UEFI boot, requires OVMF package for UEFI image.",checked:t.uefi,onToggle:()=>{this.set("uefi",!t.uefi)}}),e.createElement(ul,{disabled:this.state.disabled,hidden:!t.uefi,label:"SecureBoot",help:"Enable secure boot, requires OVMF package for UEFI image.",checked:t.secure_boot,onToggle:()=>{this.set("secure_boot",!t.secure_boot)}}),e.createElement(ul,{disabled:this.state.disabled,hidden:!t.uefi,label:"TPM",help:"Enable TPM, requires swtpm and OVMF package.",checked:t.tpm,onToggle:()=>{this.set("tpm",!t.tpm)}}),e.createElement(ul,{disabled:this.state.disabled,label:"DHCP server",help:"Enable instance DHCP server, use for instances without cloud init network configuration support.",checked:t.dhcp_server,onToggle:()=>{this.set("dhcp_server",!t.dhcp_server)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Delete protection",help:"Block instance and any attached disks from being deleted.",checked:t.delete_protection,onToggle:()=>{this.set("delete_protection",!t.delete_protection)}}),e.createElement(ul,{label:"Public IPv4 address",help:"Enable or disable public IPv4 address for instance. Node must have network mode configured to assign public address.",checked:!t.no_public_address,onToggle:()=>{this.set("no_public_address",!t.no_public_address)}}),e.createElement(ul,{label:"Public IPv6 address",help:"Enable or disable public IPv6 address for instance. Node must have network mode configured to assign public address.",checked:!t.no_public_address6,onToggle:()=>{this.set("no_public_address6",!t.no_public_address6)}}),e.createElement(ul,{label:"Host address",help:"Enable or disable host address for instance. Node must have host networking configured to assign host address.",checked:!t.no_host_address,onToggle:()=>{this.set("no_host_address",!t.no_host_address)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Skip source/destination check",help:"Allow network traffic from non-instance addresses.",checked:t.skip_source_dest_check,onToggle:()=>{this.set("skip_source_dest_check",!t.skip_source_dest_check)}})),e.createElement("div",{style:jm.group},e.createElement(Bo,{fields:V}))),e.createElement(ml,{hidden:!this.state.instance&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,wrap:!0,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,forwardedChecked:!1,instance:null})},onSave:this.onSave},e.createElement(Rr,{label:"Start",className:"bp3-intent-success bp3-icon-power",progressClassName:"bp3-intent-success",style:jm.controlButton,hidden:"stop"!==this.props.instance.state,disabled:this.state.disabled,onConfirm:()=>{this.update("start")}}),e.createElement(Rr,{label:"Stop",className:"bp3-intent-danger bp3-icon-power",progressClassName:"bp3-intent-danger",style:jm.controlButton,hidden:"start"!==this.props.instance.state,disabled:this.state.disabled,onConfirm:()=>{this.update("stop")}}),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-console",hidden:this.state.vnc||!this.props.instance.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onTogleVnc()}},"VNC Console"),e.createElement("button",{className:"bp3-button bp3-intent-danger bp3-icon-console",hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onTogleVnc()}},"VNC Console")),e.createElement("div",{style:jm.vncBox},e.createElement("div",{className:"layout horizontal"},e.createElement("button",{className:"bp3-button bp3-icon-key-control"+(this.state.vncCtrl?" bp3-active":""),hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onToggleVncCtrl()}},"Ctrl"),e.createElement("button",{className:"bp3-button bp3-icon-key-option"+(this.state.vncAlt?" bp3-active":""),hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onToggleVncAlt()}},"Alt"),e.createElement("button",{className:"bp3-button bp3-icon-key-command"+(this.state.vncSuper?" bp3-active":""),hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onToggleVncSuper()}},"Super"),e.createElement("button",{className:"bp3-button bp3-icon-key-tab",hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onVncTab()}},"Tab"),e.createElement("button",{className:"bp3-button bp3-icon-key-escape",hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onVncEsc()}},"Esc"),e.createElement("button",{className:"bp3-button bp3-icon-fullscreen",hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onToggleVncFullscreen()}},"Fullscreen"),e.createElement("button",{className:"bp3-button bp3-icon-zoom-to-fit"+(this.state.vncScale?" bp3-active":""),hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onToggleVncScale()}},"Scale"),e.createElement("button",{className:"bp3-button bp3-icon-control",hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onVncCtrlAltDel()}},"Ctrl+Alt+Del")),e.createElement("div",{ref:this.vncRef,style:D,hidden:!this.state.vnc})))}}const Qm={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"}};class Ym extends e.Component{render(){let t=this.props.instance;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:Qm.cardOpen},e.createElement(Wm,{instance:this.props.instance,vpcs:this.props.vpcs,domains:this.props.domains,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n=ph.node(this.props.instance.node),a=n?n.name:null,s=yh.zone(this.props.instance.zone),i=s?s.name:null,r={...Qm.card},o="",l="";t.public_ips&&t.public_ips.length>0?o=t.public_ips[0]:t.host_ips&&t.host_ips.length>0&&(o=t.host_ips[0]),t.private_ips&&t.private_ips.length>0&&(l=t.private_ips[0]);let c="bp3-cell";switch(t.status){case"Running":c+=" bp3-text-intent-success";break;case"Restart Required":c+=" bp3-text-intent-warning";break;case"Stopped":case"Failed":case"Destroying":c+=" bp3-text-intent-danger"}return e.createElement("div",{className:"bp3-card bp3-row",style:r,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:Qm.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:Qm.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:Qm.nameSpan},t.name))),e.createElement("div",{className:c,style:Qm.item},e.createElement("span",{style:Qm.icon,hidden:!t.status,className:"bp3-icon-standard bp3-icon-power"}),t.status),e.createElement("div",{className:"bp3-cell",style:Qm.item},e.createElement("span",{style:Qm.icon,hidden:!a,className:"bp3-icon-standard bp3-text-muted bp3-icon-layers"}),a),e.createElement("div",{className:"bp3-cell",style:Qm.item},e.createElement("span",{style:Qm.icon,hidden:!i,className:"bp3-icon-standard bp3-text-muted bp3-icon-layout-circle"}),i),e.createElement("div",{className:"bp3-cell",style:Qm.item},e.createElement("span",{style:Qm.icon,hidden:!o,className:"bp3-icon-standard bp3-text-muted bp3-icon-ip-address"}),o),e.createElement("div",{className:"bp3-cell",style:Qm.item},e.createElement("span",{style:Qm.icon,hidden:!l,className:"bp3-icon-standard bp3-text-muted bp3-icon-ip-address"}),l))}}const Zm={dialog:{height:"500px",width:"90%",maxWidth:"700px"},textarea:{resize:"none",fontSize:"12px",fontFamily:'"Lucida Console", Monaco, monospace'}};class qm extends e.Component{render(){return this.props.open?e.createElement("div",null,e.createElement(ra,{title:"Oracle Linux End-User License Agreement",style:Zm.dialog,isOpen:this.props.open,usePortal:!0,portalContainer:document.body,onClose:()=>{this.props.onClose()}},e.createElement("textarea",{className:"bp3-dialog-body bp3-input",style:Zm.textarea,autoCapitalize:"off",spellCheck:!1,readOnly:!0,value:"ORACLE LINUX LICENSE AGREEMENT \n\n“We,” “us,” “our” and “Oracle” refers to Oracle America, Inc. “You” and “your” refers to the \nindividual or entity that has acquired the Oracle Linux programs. “Oracle Linux programs” \nrefers to the Linux software product which you have acquired. “License” refers to your right to \nuse the Oracle Linux programs under the terms of this Agreement and the licenses referenced \nherein. This Agreement is governed by the substantive and procedural laws of the United States \nand the State of California and you and Oracle agree to submit to the exclusive jurisdiction of, \nand venue in, the courts of San Francisco or Santa Clara counties in California in any dispute \narising out of or relating to this Agreement.\n\nWe are willing to provide a copy of the Oracle Linux programs to you only upon the condition \nthat you accept all of the terms contained in this Agreement. Read the terms carefully and \nindicate your acceptance by either selecting the “Accept” button at the bottom of the page to \nconfirm your acceptance, if you are downloading the Oracle Linux programs, or continuing to \ninstall the Oracle Linux programs, if you have received this Agreement during the installation \nprocess. If you are not willing to be bound by these terms, select the “Do Not Accept” button or \ndiscontinue the installation process.\n\n1. Grant of Licenses to the Oracle Linux programs. Subject to the terms of this Agreement, \nOracle grants to you a license to the Oracle Linux programs under the GNU General Public \nLicense version 2.0. The Oracle Linux programs contain many components developed by Oracle \nand various third parties. The license for each component is located in the licensing \ndocumentation and/or in the component's source code. In addition, a list of components may be \ndelivered with the Oracle Linux programs and the Additional Oracle Linux programs (as defined \nbelow) or accessed online at http://oss.oracle.com/linux/legal/oracle-list.html. The source code \nfor the Oracle Linux Programs and the Additional Oracle Linux programs can be found and \naccessed online at https://oss.oracle.com/sources/. This agreement does not limit, supersede or \nmodify your rights under the license associated with any separately licensed individual \ncomponent.\n\n2. Licenses to Additional Oracle Linux programs. Certain third-party technology (collectively \nthe “Additional Oracle Linux programs”) may be included on the same medium or as part of the \ndownload of Oracle Linux programs you receive, but is not part of the Oracle Linux programs. \nEach Additional Oracle Linux program is licensed solely under the terms of the Mozilla Public \nLicense, Apache License, Common Public License, GNU Lesser General Public License, \nNetscape Public License or similar license that is included with the relevant Additional Oracle \nLinux program. \n\n3. Ownership. The Oracle Linux programs and their components and the Additional Oracle \nLinux programs are owned by Oracle or its licensors. Subject to the licenses granted and/or \nreferenced herein, title to the Oracle Linux programs and their components and the Additional \nOracle Linux programs remains with Oracle and/or its licensors. \n\n4. Trademark License. You are permitted to distribute unmodified Oracle Linux programs or \nunmodified Additional Oracle Linux programs without removing the trademark(s) owned by \nOracle or its affiliates that are included in the unmodified Oracle Linux programs or unmodified \nAdditional Oracle Linux programs (the “Oracle Linux trademarks”). You may only distribute \nmodified Oracle Linux programs or modified Additional Oracle Linux programs if you remove \nrelevant images containing the Oracle Linux trademarks. Certain files, identified in \nhttp://oss.oracle.com/linux/legal/oracle-list.html, include such trademarks. Do not delete these \nfiles, as deletion may corrupt the Oracle Linux programs or Additional Oracle Linux programs. \nYou are not granted any other rights to Oracle Linux trademarks, and you acknowledge that you \nshall not gain any proprietary interest in the Oracle Linux trademarks. All goodwill arising out of \nuse of the Oracle Linux trademarks shall inure to the benefit of Oracle or its affiliates. You may \nnot use any trademarks owned by Oracle or its affiliates (including “ORACLE”) or potentially \nconfusing variations (such as, “ORA”) as a part of your logo(s), product name(s), service \nname(s), company name, or domain name(s) even if such products, services or domains include, \nor are related to, the Oracle Linux programs or Additional Oracle Linux programs. \n\n5. Limited Warranty. THE ORACLE LINUX PROGRAMS AND ADDITIONAL ORACLE \nLINUX PROGRAMS ARE PROVIDED \"AS IS\" WITHOUT WARRANTY OF ANY KIND. \nWE FURTHER DISCLAIM ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING \nWITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR \nFITNESS FOR A PARTICULAR PURPOSE.\n\n6. Limitation of Liability. IN NO EVENT SHALL WE BE LIABLE FOR ANY INDIRECT, \nINCIDENTAL, SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR DAMAGES \nFOR LOSS OF PROFITS, REVENUE, DATA OR DATA USE, INCURRED BY YOU OR \nANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT, EVEN IF WE \nHAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. OUR ENTIRE \nLIABILITY FOR DAMAGES HEREUNDER SHALL IN NO EVENT EXCEED ONE \nHUNDRED DOLLARS (U.S.).\n\n7. No Technical Support. Our technical support organization will not provide technical support, \nphone support, or updates to you for the materials licensed under this Agreement. Technical \nsupport, if available, may be acquired from Oracle or its affiliates under a separate agreement.\n\n8. Relationship Between the Parties. The relationship between you and us is that of \nlicensee/licensor. Neither party will represent that it has any authority to assume or create any \nobligation, express or implied, on behalf of the other party, nor to represent the other party as \nagent, employee, franchisee, or in any other capacity. Nothing in this Agreement shall be \nconstrued to limit either party's right to independently develop or distribute programs that are \nfunctionally similar to the other party’s products, so long as proprietary information of the other \nparty is not included in such programs.\n\n9. Entire Agreement. You agree that this Agreement is the complete Agreement for the Oracle \nLinux programs and the Additional Oracle Linux programs, and this Agreement supersedes all \nprior or contemporaneous Agreements or representations. If any term of this Agreement is found \nto be invalid or unenforceable, the remaining provisions will remain effective. Neither the \nUniform Computer Information Transactions Act nor the United Nations Convention on the \nInternational Sale of Goods applies to this agreement.\n\nYou can find a copy of the GNU General Public License version 2.0 in the “copying” or \n“license” file included with the Oracle Linux programs or here: \nhttp://oss.oracle.com/licenses/GPL-2.\n\nOFFER TO PROVIDE SOURCE CODE\n\nFor software that you receive from Oracle in binary form that is licensed under an open source \nlicense that gives you the right to receive the source code for that binary, you can obtain a copy \nof the applicable source code from https://oss.oracle.com/sources/ or \nhttp://www.oracle.com/goto/opensourcecode. Alternatively, if the source code for the \ntechnology was not provided to you with the binary, you can also receive a copy of the source \ncode on physical media by submitting a written request to:\n \nOracle America, Inc. \nAttn: Associate General Counsel \nDevelopment and Engineering Legal \n500 Oracle Parkway, 10th Floor \nRedwood Shores, CA 94065 \n \nOr, you may send an email to Oracle using the form linked from \nhttp://www.oracle.com/goto/opensourcecode. Your written or emailed request should include:\n•\tThe name of the component or binary file(s) for which you are requesting the source code\n•\tThe name and version number of the Oracle product\n•\tThe date you received the Oracle product\n•\tYour name\n•\tYour company name (if applicable)\n•\tYour return mailing address and email\n•\tA telephone number in the event we need to reach you.\nWe may charge you a fee to cover the cost of physical media and processing. Your request must \nbe sent (i) within three (3) years of the date you received the Oracle product that included the \ncomponent or binary file(s) that are the subject of your request, or (ii) in the case of code \nlicensed under the GPL v3, for as long as Oracle offers spare parts or customer support for that \nproduct model or version.\n\nLast updated 24 March 2017"}),e.createElement("div",{className:"bp3-dialog-footer"},e.createElement("div",{className:"bp3-dialog-footer-actions"},e.createElement("button",{className:"bp3-button bp3-intent-danger",type:"button",onClick:()=>{this.props.onClose()}},"Decline"),e.createElement("button",{className:"bp3-button bp3-intent-success",type:"button",onClick:()=>{ji(!0),new Promise(((e,t)=>{vn.put("/license").send({oracle:Gi}).set("Accept","application/json").set("Csrf-Token",Wi).end(((n,a)=>a&&401===a.status?(window.location.href="/login",void e()):n?(Ui(a,"Failed to save license state"),void t(n)):void e()))})),this.props.onClose()}},"Accept"))))):e.createElement("div",null)}}const Jm={row:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},card:{position:"relative",padding:"10px 10px 0 10px",width:"100%"},buttons:{position:"absolute",top:"5px",right:"5px"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},role:{margin:"9px 5px 0 5px",height:"20px"}};class $m extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,images:Hm.images,nodes:Nm.nodes})},this.onCreate=()=>{this.setState({...this.state,disabled:!0});let e={...this.state.instance};this.props.organizations.length&&!e.organization&&(e.organization=this.props.organizations[0].id),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/instance").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create instance"),void a(e)):void n())))}))}(e).then((()=>{this.setState({...this.state,message:"Instance created successfully",changed:!1}),setTimeout((()=>{this.setState({...this.state,disabled:!1,changed:!0})}),2e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onAddNetworkRole=()=>{if(!this.state.addNetworkRole)return;let e={...this.state.instance},t=[...e.network_roles||[]];-1===t.indexOf(this.state.addNetworkRole)&&t.push(this.state.addNetworkRole),t.sort(),e.network_roles=t,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",instance:e})},this.onRemoveNetworkRole=e=>{let t={...this.state.instance},n=[...t.network_roles||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.network_roles=n,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",instance:t}))},this.onImageselect=e=>{let t={...this.state.instance},n=this.imagesMap.get(e);t.image=e,-1!==n.indexOf("BSD")?(t.secure_boot=!1,t.cloud_type="bsd"):(this.state.secureBootChanged||(t.secure_boot=!0),t.cloud_type="linux"),this.setState({...this.state,changed:!0,instance:t})},this.state={closed:!1,disabled:!1,changed:!1,message:"",licenseOpen:!1,instance:this.default,datacenter:"",images:[],nodes:[],addNetworkRole:"",addVpc:"",dhcpChanged:!1,secureBootChanged:!1,hiddenImages:!1}}componentDidMount(){Hm.addChangeListener(this.onChange),Nm.addChangeListener(this.onChange)}componentWillUnmount(){Hm.removeChangeListener(this.onChange),Nm.removeChangeListener(this.onChange)}get default(){return{id:null,name:"New instance",uefi:!0,secure_boot:!0,init_disk_size:10,memory:1024,processors:1,count:1}}set(e,t){let n={...this.state.instance};n[e]=t,this.setState({...this.state,changed:!0,instance:n})}onUefi(e){let t={...this.state.instance};t.uefi!==e&&(t.image=""),t.uefi=e,this.setState({...this.state,changed:!0,instance:t})}onSecureBoot(e){let t={...this.state.instance};t.secure_boot!==e&&(t.image=""),t.secure_boot=e,this.setState({...this.state,changed:!0,instance:t,secureBootChanged:!0})}onDhcpServer(e){let t={...this.state.instance};t.dhcp_server=e,this.setState({...this.state,changed:!0,instance:t,dhcpChanged:!0})}onNode(e){let t={...this.state.instance};t.node=e;let n=Nm.node(t.node);n&&(t.no_public_address=n.default_no_public_address,t.no_public_address6=n.default_no_public_address6),this.setState({...this.state,changed:!0,instance:t})}render(){let t,n=this.state.instance;n.node&&(t=Nm.node(n.node));let a=!!this.props.organizations.length,s=[];if(this.props.organizations&&this.props.organizations.length){s.push(e.createElement("option",{key:"null",value:""},"Select Organization"));for(let t of this.props.organizations)s.push(e.createElement("option",{key:t.id,value:t.id},t.name))}a||s.push(e.createElement("option",{key:"null",value:""},"No Organizations"));let i=!1,r=[];if(this.props.datacenters&&this.props.datacenters.length){r.push(e.createElement("option",{key:"null",value:""},"Select Datacenter")),i=!0;for(let t of this.props.datacenters)r.push(e.createElement("option",{key:t.id,value:t.id},t.name))}i||r.push(e.createElement("option",{key:"null",value:""},"No Datacenters"));let o=this.state.datacenter,l=!1,c=[];if(this.props.zones&&this.props.zones.length){c.push(e.createElement("option",{key:"null",value:""},"Select Zone"));for(let t of this.props.zones)t.datacenter===o&&(l=!0,c.push(e.createElement("option",{key:t.id,value:t.id},t.name)))}l||(c=[e.createElement("option",{key:"null",value:""},"No Zones")]);let h=!1,d=[];if(this.state.nodes&&this.state.nodes.length){d.push(e.createElement("option",{key:"null",value:""},"Select Node")),h=!0;for(let t of this.state.nodes)d.push(e.createElement("option",{key:t.id,value:t.id},t.name))}h||(d=[e.createElement("option",{key:"null",value:""},"No Nodes")]);let u=!1,p=[];if(this.props.vpcs&&this.props.vpcs.length){p.push(e.createElement("option",{key:"null",value:""},"Select Vpc"));for(let t of this.props.vpcs){if($i){if(t.organization!==gr.current)continue}else if(t.organization!==n.organization)continue;t.datacenter===this.state.datacenter&&(u=!0,p.push(e.createElement("option",{key:t.id,value:t.id},t.name)))}}u||(p=[e.createElement("option",{key:"null",value:""},"No Vpcs")]);let m=!1,f=[];if(this.props.vpcs&&this.props.vpcs.length){f.push(e.createElement("option",{key:"null",value:""},"Select Subnet"));for(let t of this.props.vpcs){if($i){if(t.organization!==gr.current)continue}else if(t.organization!==n.organization)continue;if(t.datacenter===this.state.datacenter&&t.id===n.vpc)for(let n of t.subnets||[])m=!0,f.push(e.createElement("option",{key:n.id,value:n.id},n.name+" - "+n.network))}}m||(f=[e.createElement("option",{key:"null",value:""},"No Subnets")]);let v=[e.createElement("option",{key:"null",value:""},"Disabled")];if(t&&t.oracle_subnets&&t.oracle_subnets.length){let n=new Map;for(let e of t.available_vpcs||[])for(let t of e.subnets||[])n.set(t.id,e.name+" - "+t.name);for(let a of t.oracle_subnets||[])v.push(e.createElement("option",{key:a,value:a},n.get(a)||a))}let g=[e.createElement("option",{key:"null",value:""},"No Domain")];if(this.props.domains&&this.props.domains.length)for(let t of this.props.domains)($i||t.organization===n.organization)&&g.push(e.createElement("option",{key:t.id,value:t.id},t.name));let b=!1,y=[];this.imagesMap=new Map;let _=new Map;if(this.state.images.length){y.push(e.createElement("option",{key:"null",value:""},"Select Image")),b=!0;for(let e of this.state.images)if((!n.uefi||"bios"!==e.firmware)&&(n.uefi||"uefi"!==e.firmware)){if(!this.state.hiddenImages&&e.signed){let t=e.key.split("_");if(t.length>=2&&t[t.length-1].length>=4){let n=t[0]+"_"+e.firmware,a=parseInt(t[t.length-1].substring(0,4),10);if(a){let t=_.get(n);(!t||a>t[0])&&_.set(n,[a,e.id,e.name]);continue}}}this.imagesMap.set(e.id,e.name)}for(let t of this.imagesMap.entries())y.push(e.createElement("option",{key:t[0],value:t[0]},t[1]));for(let t of _.entries())this.imagesMap.set(t[1][1],t[1][2]),y.push(e.createElement("option",{key:t[1][1],value:t[1][1]},t[1][2]))}let w=[];for(let t of n.network_roles||[])w.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Jm.role,key:t},t,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveNetworkRole(t)}})));return b||(y=[e.createElement("option",{key:"null",value:""},"No Images")]),e.createElement("div",{className:"bp3-card bp3-row",style:Jm.row},e.createElement("td",{className:"bp3-cell",colSpan:6,style:Jm.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement(qm,{open:this.state.licenseOpen,onClose:()=>{this.setState({...this.state,licenseOpen:!1})}}),e.createElement("div",{style:Jm.group},e.createElement("div",{style:Jm.buttons}),e.createElement(vl,{label:"Name",help:"Name of instance. String formatting such as %d or %02d can be used to add the instance number or zero padded number.",type:"text",placeholder:"Enter name",disabled:this.state.disabled,value:n.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Instance comment.",placeholder:"Instance comment",rows:3,value:n.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Hl,{disabled:this.state.disabled||!a,hidden:$i,label:"Organization",help:"Organization for instance.",value:n.organization,onChange:e=>{this.set("organization",e)}},s),e.createElement(Hl,{disabled:this.state.disabled||!i,label:"Datacenter",help:"Datacenter for instance.",value:this.state.datacenter,onChange:e=>{this.setState({...this.state,datacenter:e,instance:{...this.state.instance,node:"",zone:"",image:""}}),Xp(e),Ah("")}},r),e.createElement(Hl,{disabled:this.state.disabled||!l,label:"Zone",help:"Zone for instance.",value:n.zone,onChange:e=>{this.setState({...this.state,instance:{...this.state.instance,node:"",zone:e}}),Ah(e)}},c),e.createElement(Hl,{disabled:this.state.disabled||!h,label:"Node",help:"Node to run instance on.",value:n.node,onChange:e=>{this.onNode(e)}},d),e.createElement(Hl,{disabled:this.state.disabled||!u,label:"VPC",help:"VPC for instance.",value:n.vpc,onChange:e=>{this.setState({...this.state,instance:{...this.state.instance,vpc:e}})}},p),e.createElement(Hl,{disabled:this.state.disabled||!u,label:"Subnet",help:"Subnet for instance.",value:n.subnet,onChange:e=>{this.setState({...this.state,instance:{...this.state.instance,subnet:e}})}},f),e.createElement(Hl,{disabled:this.state.disabled,hidden:v.length<=1,label:"Oracle Cloud Subnet",help:"Oracle Cloud subnet for instance.",value:n.oracle_subnet,onChange:e=>{this.setState({...this.state,instance:{...this.state.instance,oracle_subnet:e}})}},v),e.createElement(Hl,{disabled:this.state.disabled,label:"DNS Domain",help:"Domain to create DNS name using instance name.",value:n.domain,onChange:e=>{this.set("domain",e)}},g),e.createElement(Hl,{disabled:this.state.disabled,label:"CloudInit Type",help:"Target operating system for cloud init",value:n.cloud_type,onChange:e=>{this.set("cloud_type",e)}},e.createElement("option",{key:"linux",value:"linux"},"Linux"),",",e.createElement("option",{key:"bsd",value:"bsd"},"BSD"),","),e.createElement(ul,{disabled:this.state.disabled,label:"Root enabled",help:"Enable root unix account for VNC/Spice access. Random password will be generated.",checked:n.root_enabled,onToggle:()=>{this.set("root_enabled",!n.root_enabled)}}),e.createElement(ul,{disabled:this.state.disabled,label:"VNC server",help:"Enable VNC server for remote control of instance.",checked:n.vnc,onToggle:()=>{this.set("vnc",!n.vnc)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Spice server",help:"Enable Spice server for remote control of instance.",checked:n.spice,onToggle:()=>{this.set("spice",!n.spice)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Desktop GUI",help:"Enable desktop GUI window for instance display.",checked:n.gui,onToggle:()=>{this.set("gui",!n.gui)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Start instance",help:"Automatically start instance. Disable to get the public MAC address before instance is started for first time.",checked:!n.state,onToggle:()=>{"stop"===n.state?this.set("state",""):this.set("state","stop")}}),e.createElement(ul,{disabled:this.state.disabled,label:"UEFI",help:"Enable UEFI boot, requires OVMF package for UEFI image.",checked:n.uefi,onToggle:()=>{this.onUefi(!n.uefi)}}),e.createElement(ul,{disabled:this.state.disabled,hidden:!n.uefi,label:"SecureBoot",help:"Enable secure boot, requires OVMF package for UEFI image.",checked:n.secure_boot,onToggle:()=>{this.onSecureBoot(!n.secure_boot)}}),e.createElement(ul,{disabled:this.state.disabled,hidden:!n.uefi,label:"TPM",help:"Enable TPM, requires swtpm and OVMF package.",checked:n.tpm,onToggle:()=>{this.set("tpm",!n.tpm)}}),e.createElement(ul,{disabled:this.state.disabled,label:"DHCP server",help:"Enable instance DHCP server, use for instances without cloud init network configuration support.",checked:n.dhcp_server,onToggle:()=>{this.onDhcpServer(!n.dhcp_server)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Delete protection",help:"Block instance and any attached disks from being deleted.",checked:n.delete_protection,onToggle:()=>{this.set("delete_protection",!n.delete_protection)}})),e.createElement("div",{style:Jm.group},e.createElement(Hl,{disabled:this.state.disabled||!b,label:"Image",help:"Starting image for node.",value:n.image,onChange:this.onImageselect},y),e.createElement(ul,{label:"Show hidden images",help:"Show previous versions of images.",checked:this.state.hiddenImages,onToggle:()=>{this.setState({...this.state,hiddenImages:!this.state.hiddenImages})}}),e.createElement(ul,{label:"Linked disk image",help:"Link to source disk image instead of creating full copy. This will reduce disk size and provide faster startup.",checked:n.image_backing,onToggle:()=>{this.set("image_backing",!n.image_backing)}}),e.createElement("label",{className:"bp3-label"},"Network Roles",e.createElement(hl,{title:"Network Roles",content:"Network roles that will be matched with firewall rules. Network roles are case-sensitive."}),e.createElement("div",null,w)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addNetworkRole,onChange:e=>{this.setState({...this.state,addNetworkRole:e})},onSubmit:this.onAddNetworkRole}),e.createElement(Uh,{label:"Disk Size",help:"Instance memory size in megabytes.",min:10,minorStepSize:1,stepSize:2,majorStepSize:5,disabled:this.state.disabled,selectAllOnFocus:!0,onChange:e=>{this.set("init_disk_size",e)},value:n.init_disk_size}),e.createElement(Uh,{label:"Memory Size",help:"Instance memory size in megabytes.",min:256,minorStepSize:256,stepSize:512,majorStepSize:1024,disabled:this.state.disabled,selectAllOnFocus:!0,onChange:e=>{this.set("memory",e)},value:n.memory}),e.createElement(Uh,{label:"Processors",help:"Number of instance processors.",min:1,minorStepSize:1,stepSize:1,majorStepSize:2,disabled:this.state.disabled,selectAllOnFocus:!0,onChange:e=>{this.set("processors",e)},value:n.processors}),e.createElement(Uh,{label:"Count",help:"Number of instances to create.",min:1,minorStepSize:1,stepSize:1,majorStepSize:1,disabled:this.state.disabled,selectAllOnFocus:!0,onChange:e=>{this.set("count",e)},value:n.count}),e.createElement(ul,{disabled:this.state.disabled,label:"Public IPv4 address",help:"Enable or disable public IPv4 address for instance. Node must have network mode configured to assign public address.",checked:!n.no_public_address,onToggle:()=>{this.set("no_public_address",!n.no_public_address)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Public IPv6 address",help:"Enable or disable public IPv6 address for instance. Node must have network mode configured to assign public address.",checked:!n.no_public_address6,onToggle:()=>{this.set("no_public_address6",!n.no_public_address6)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Host address",help:"Enable or disable host address for instance. Node must have host networking configured to assign host address.",checked:!n.no_host_address,onToggle:()=>{this.set("no_host_address",!n.no_host_address)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Skip source/destination check",help:"Allow network traffic from non-instance addresses.",checked:n.skip_source_dest_check,onToggle:()=>{this.set("skip_source_dest_check",!n.skip_source_dest_check)}}))),e.createElement(Vm,{style:Jm.save,hidden:!this.state.instance,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,closed:this.state.closed,light:!0,onCancel:this.props.onClose,onCreate:this.onCreate})))}}const ef={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},shortInput:{width:"180px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class tf extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any Organization")];if(this.props.organizations&&this.props.organizations.length)for(let n of this.props.organizations)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));let n=[e.createElement("option",{key:"key",value:"any"},"Any Node")];if(this.props.nodes&&this.props.nodes.length)for(let t of this.props.nodes)n.push(e.createElement("option",{key:t.id,value:t.id},t.name));let a=[e.createElement("option",{key:"key",value:"any"},"Any Zone")];if(this.props.zones&&this.props.zones.length)for(let t of this.props.zones)a.push(e.createElement("option",{key:t.id,value:t.id},t.name));let s=[e.createElement("option",{key:"key",value:"any"},"Any VPC")];if(this.props.vpcs&&this.props.vpcs.length)for(let t of this.props.vpcs)s.push(e.createElement("option",{key:t.id,value:t.id},t.name));let i=[e.createElement("option",{key:"key",value:"any"},"Any Subnet")];if(this.props.vpcs&&this.props.vpcs.length)for(let t of this.props.vpcs)if(t.id===this.props.filter.vpc)for(let n of t.subnets||[])i.push(e.createElement("option",{key:n.id,value:n.id},n.name+" - "+n.network));return e.createElement("div",{className:"layout horizontal wrap",style:ef.filters},e.createElement(ho,{style:ef.input,placeholder:"Instance ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:ef.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement(ho,{style:ef.shortInput,placeholder:"Network Role",value:this.props.filter.network_role,onChange:e=>{let t={...this.props.filter};e?t.network_role=e:delete t.network_role,this.props.onFilter(t)}}),e.createElement(ho,{style:ef.shortInput,placeholder:"Network Namespace",value:this.props.filter.network_namespace,onChange:e=>{let t={...this.props.filter};e?t.network_namespace=e:delete t.network_namespace,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:ef.type},e.createElement("select",{value:this.props.filter.node||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.node:t.node=n,this.props.onFilter(t)}},n)),e.createElement("div",{className:"bp3-select",style:ef.type},e.createElement("select",{value:this.props.filter.zone||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.zone:t.zone=n,this.props.onFilter(t)}},a)),e.createElement("div",{className:"bp3-select",style:ef.type},e.createElement("select",{value:this.props.filter.vpc||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?(delete t.vpc,delete t.subnet):t.vpc!==n&&(t.vpc=n,delete t.subnet),this.props.onFilter(t)}},s)),e.createElement("div",{className:"bp3-select",style:ef.type},e.createElement("select",{value:this.props.filter.subnet||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.subnet:t.subnet=n,this.props.onFilter(t)}},i)),e.createElement("div",{className:"bp3-select",style:ef.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},t)))}}const nf={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class af extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:gm.page,pageCount:gm.pageCount,pages:gm.pages,count:gm.count})},this.state={page:gm.page,pageCount:gm.pageCount,pages:gm.pages,count:gm.count}}componentDidMount(){gm.addChangeListener(this.onChange)}componentWillUnmount(){gm.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{_m(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{_m(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:nf.button,disabled:0===t,type:"button",onClick:()=>{_m(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:nf.button,disabled:t===n-1,type:"button",onClick:()=>{_m(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{_m(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const sf={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"},debug:{margin:"0 0 4px 0"},debugButton:{opacity:.5,margin:"8px 0 0 8px"}};class rf extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=gm.instances,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,instances:e,filter:gm.filter,organizations:gr.organizations,domains:Fm.domains,vpcs:Xm.vpcs,datacenters:gh.datacenters,nodes:ph.nodes,zones:yh.zones,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/instance").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete instances"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onForceDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/instance").query({force:!0}).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to force delete instances"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={instances:gm.instances,filter:gm.filter,debug:!1,organizations:gr.organizations,domains:Fm.domains,vpcs:Xm.vpcs,datacenters:gh.datacenters,nodes:ph.nodes,zones:yh.zones,selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){gm.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),Fm.addChangeListener(this.onChange),Xm.addChangeListener(this.onChange),gh.addChangeListener(this.onChange),ph.addChangeListener(this.onChange),yh.addChangeListener(this.onChange),ym(),bd(),function(){let e=zr();Qu=e;let t=(new Nr).loading();new Promise(((n,a)=>{vn.get("/domain").query({names:!0}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Qu){if(s)return Ui(i,"Failed to load domain names"),void a(s);lr.dispatch({type:Ku,data:{domains:i.body}}),n()}else n()}))}))}(),function(){let e=zr();Su=e;let t=(new Nr).loading();new Promise(((n,a)=>{vn.get("/vpc").query({names:"true"}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Su){if(s)return Ui(i,"Failed to load vpcs names"),void a(s);lr.dispatch({type:yu,data:{vpcs:i.body}}),n()}else n()}))}))}(),Hh(),xh(),Nh(),this.interval=setInterval((()=>{ym(!0)}),1e3)}componentWillUnmount(){gm.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange),Fm.removeChangeListener(this.onChange),Xm.removeChangeListener(this.onChange),gh.removeChangeListener(this.onChange),ph.removeChangeListener(this.onChange),yh.removeChangeListener(this.onChange),clearInterval(this.interval)}updateSelected(e){this.setState({...this.state,disabled:!0}),Cm(Object.keys(this.state.selected),e).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}render(){let t,n=[];this.state.instances.forEach((t=>{n.push(e.createElement(Ym,{key:t.id,instance:t,domains:this.state.domains,vpcs:this.state.vpcs,selected:!!this.state.selected[t.id],open:!!this.state.opened[t.id],onSelect:e=>{let n={...this.state.selected};if(e){let e,a,s=this.state.instances;for(let n=0;na&&(a=[e,e=a][0]);for(let t=e;t<=a;t++)n[s[t].id]=!0;return void this.setState({...this.state,lastSelected:t.id,selected:n})}}n[t.id]?delete n[t.id]:n[t.id]=!0,this.setState({...this.state,lastSelected:t.id,selected:n})},onOpen:()=>{let e={...this.state.opened};e[t.id]?delete e[t.id]:e[t.id]=!0,this.setState({...this.state,opened:e})}}))})),this.state.newOpened&&(t=e.createElement($m,{organizations:this.state.organizations,vpcs:this.state.vpcs,domains:this.state.domains,datacenters:this.state.datacenters,zones:this.state.zones,onClose:()=>{this.setState({...this.state,newOpened:!1})}}));let a="bp3-button bp3-icon-console ";this.state.debug&&(a+="bp3-active");let s="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(s+="bp3-active");let i=[];for(let e of Object.keys(this.state.selected)){let t=gm.instance(e);t?i.push(t.name||e):i.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:sf.header},e.createElement("h2",{style:sf.heading},"Instances"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:sf.buttons},e.createElement("button",{className:a,style:sf.debugButton,hidden:$i,type:"button",onClick:()=>{this.setState({...this.state,debug:!this.state.debug})}},"Debug"),e.createElement("button",{className:s,style:sf.button,type:"button",onClick:()=>{null===this.state.filter?wm({}):wm(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:sf.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement(Rr,{label:"Start Selected",className:"bp3-intent-success bp3-icon-power",progressClassName:"bp3-intent-success",safe:!0,style:sf.button,confirmMsg:"Start the selected instances",items:i,disabled:!this.selected||this.state.disabled,onConfirm:()=>{this.updateSelected("start")}}),e.createElement(Rr,{label:"Stop Selected",className:"bp3-intent-warning bp3-icon-power",progressClassName:"bp3-intent-warning",safe:!0,style:sf.button,confirmMsg:"Stop the selected instances",items:i,disabled:!this.selected||this.state.disabled,onConfirm:()=>{this.updateSelected("stop")}}),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:sf.button,confirmMsg:"Permanently delete the selected instances",confirmInput:!0,items:i,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete}),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:sf.button,disabled:this.state.disabled||this.state.newOpened,type:"button",onClick:()=>{this.setState({...this.state,newOpened:!0})}},"New"))),e.createElement("div",{className:"layout horizontal wrap",style:sf.debug,hidden:!this.state.debug},e.createElement(Rr,{label:"Force Delete Selected",className:"bp3-intent-danger bp3-icon-warning-sign",progressClassName:"bp3-intent-danger",style:sf.button,confirmMsg:"Permanently force delete the selected instances",items:i,disabled:!this.selected||this.state.disabled,onConfirm:this.onForceDelete}))),e.createElement(tf,{filter:this.state.filter,onFilter:e=>{wm(e)},nodes:this.state.nodes,zones:this.state.zones,vpcs:this.state.vpcs,organizations:this.state.organizations}),e.createElement("div",{style:sf.itemsBox},e.createElement("div",{style:sf.items},t,n,e.createElement("tr",{className:"bp3-card bp3-row",style:sf.placeholder},e.createElement("td",{colSpan:6,style:sf.placeholder})))),e.createElement(To,{hidden:!!n.length,iconClass:"bp3-icon-dashboard",title:"No instances",description:"Add a new instance to get started."}),e.createElement(af,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const of="firewall.sync",lf="firewall.traverse",cf="firewall.filter";const hf=new class extends hr{constructor(){super(...arguments),this._firewalls=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._firewalls=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get firewalls(){return this._firewalls}get firewallsM(){let e=[];return this._firewalls.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}firewall(e){let t=this._map[e];return void 0===t?null:this._firewalls[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/firewall").query({...hf.filter,page:hf.page,page_count:hf.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===df){if(s)return Ui(i,"Failed to load firewalls"),void a(s);lr.dispatch({type:of,data:{firewalls:i.body.firewalls,count:i.body.count}}),e()}else e()}))}))}function pf(e){return lr.dispatch({type:lf,data:{page:e}}),uf()}function mf(e){return lr.dispatch({type:cf,data:{filter:e}}),uf()}kr.register((e=>{if("firewall.change"===e.type)uf()}));const ff={group:{width:"100%",maxWidth:"310px",marginTop:"5px"},sourceGroup:{width:"100%",maxWidth:"219px",marginTop:"5px"},protocol:{flex:"0 1 auto"},port:{width:"100%"},portBox:{flex:"1"},other:{flex:"0 1 auto",width:"52px",borderRadius:"0 3px 3px 0"}};class vf extends e.Component{constructor(){super(...arguments),this.onAddSourceIp=e=>{let t=this.clone(),n=[...t.source_ips||[]];n.splice(e+1,0,""),t.source_ips=n,this.props.onChange(t)},this.onChangeSourceIp=(e,t)=>{let n=this.clone(),a=[...n.source_ips||[]];a[e]=t,n.source_ips=a,this.props.onChange(n)},this.onRemoveSourceIp=e=>{let t=this.clone(),n=[...t.source_ips||[]];n.splice(e,1),t.source_ips=n,this.props.onChange(t)}}clone(){return{...this.props.rule}}render(){let t=this.props.rule,n=t.port,a="";switch(t.protocol){case"all":n=null,a="Allow all traffic";break;case"icmp":n=null,a="Allow all ICMP traffic"}let s=t.source_ips||[];0===s.length&&s.push("");let i=[];return s.forEach(((t,n)=>{i.push(e.createElement("div",{className:"bp3-control-group",style:ff.sourceGroup,key:n},e.createElement("input",{className:"bp3-input",style:ff.port,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Source IP range",value:t,onChange:e=>{this.onChangeSourceIp(n,e.target.value)}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",onClick:()=>{this.onRemoveSourceIp(n)}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-success bp3-icon-add",onClick:()=>{this.onAddSourceIp(n)}})))})),e.createElement("div",null,e.createElement("div",{className:"bp3-control-group",style:ff.group},e.createElement("div",{className:"bp3-select",style:ff.protocol},e.createElement("select",{value:t.protocol,onChange:e=>{let t=this.clone();t.protocol=e.target.value,"all"!==t.protocol&&"icmp"!==t.protocol||(t.port=null),this.props.onChange(t)}},e.createElement("option",{value:"all"},"All Traffic"),e.createElement("option",{value:"icmp"},"ICMP"),e.createElement("option",{value:"tcp"},"TCP"),e.createElement("option",{value:"udp"},"UDP"))),e.createElement("div",{style:ff.portBox},e.createElement("input",{className:"bp3-input",style:ff.port,disabled:!!a,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:a||"Enter port range",value:t.port||"",onChange:e=>{let t=this.clone();t.port=e.target.value,this.props.onChange(t)}})),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",onClick:()=>{this.props.onRemove()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-success bp3-icon-add",onClick:()=>{this.props.onAdd()}})),i)}}const gf={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},role:{margin:"9px 5px 0 5px",height:"20px"},rules:{marginBottom:"15px"}};class bf extends e.Component{constructor(e,t){super(e,t),this.onAddNetworkRole=()=>{let e;if(!this.state.addNetworkRole)return;e=this.state.changed?{...this.state.firewall}:{...this.props.firewall};let t=[...e.network_roles||[]];-1===t.indexOf(this.state.addNetworkRole)&&t.push(this.state.addNetworkRole),t.sort(),e.network_roles=t,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",firewall:e})},this.onRemoveNetworkRole=e=>{let t;t=this.state.changed?{...this.state.firewall}:{...this.props.firewall};let n=[...t.network_roles||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.network_roles=n,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",firewall:t}))},this.onAddIngress=e=>{let t;t=this.state.changed?{...this.state.firewall}:{...this.props.firewall};let n=[...t.ingress];n.splice(e+1,0,{protocol:"all",source_ips:["0.0.0.0/0","::/0"]}),t.ingress=n,this.setState({...this.state,changed:!0,message:"",firewall:t})},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/firewall/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save firewall"),void a(e)):void n())))}))}(this.state.firewall).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,firewall:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/firewall/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete firewall"),void a(e)):void n())))}))}(this.props.firewall.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",addNetworkRole:null,firewall:null,ingress:null}}set(e,t){let n;n=this.state.changed?{...this.state.firewall}:{...this.props.firewall},n[e]=t,this.setState({...this.state,changed:!0,firewall:n})}onChangeIngress(e,t){let n;n=this.state.changed?{...this.state.firewall}:{...this.props.firewall};let a=[...n.ingress];a[e]=t,n.ingress=a,this.setState({...this.state,changed:!0,message:"",firewall:n})}onRemoveIngress(e){let t;t=this.state.changed?{...this.state.firewall}:{...this.props.firewall};let n=[...t.ingress];n.splice(e,1),n.length||(n=[{protocol:"all",source_ips:["0.0.0.0/0","::/0"]}]),t.ingress=n,this.setState({...this.state,changed:!0,message:"",firewall:t})}render(){let t=this.state.firewall||this.props.firewall,n=[];if(n.push(e.createElement("option",{key:"null",value:""},"Node Firewall")),this.props.organizations.length)for(let t of this.props.organizations)n.push(e.createElement("option",{key:t.id,value:t.id},t.name));let a=[];for(let n of t.network_roles||[])a.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:gf.role,key:n},n,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveNetworkRole(n)}})));let s=[];for(let n=0;n{this.onChangeIngress(a,e)},onAdd:()=>{this.onAddIngress(a)},onRemove:()=>{this.onRemoveIngress(a)}}))}return e.createElement("td",{className:"bp3-cell",colSpan:5,style:gf.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:gf.group},e.createElement("div",{className:"layout horizontal tab-close",style:gf.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox",style:gf.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:gf.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Firewall",confirmMsg:"Permanently delete this firewall",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of firewall",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Firewall comment.",placeholder:"Firewall comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement("label",{style:gf.itemsLabel},"Ingress Rules",e.createElement(hl,{title:"Ingress Rules",content:"Firewall rules."})),e.createElement("div",{style:gf.rules},s)),e.createElement("div",{style:gf.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.firewall.id||"Unknown"}]}),e.createElement(Hl,{disabled:this.state.disabled,hidden:$i,label:"Organization",help:"Organization for firewall, both the organaization and role must match. Select node firewall to match node network roles.",value:t.organization,onChange:e=>{this.set("organization",e)}},n),e.createElement("label",{className:"bp3-label"},"Network Roles",e.createElement(hl,{title:"Network Roles",content:"Network roles that will be matched with firewall rules. Network roles are case-sensitive."}),e.createElement("div",null,a)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addNetworkRole,onChange:e=>{this.setState({...this.state,addNetworkRole:e})},onSubmit:this.onAddNetworkRole}))),e.createElement(ml,{style:gf.save,hidden:!this.state.firewall&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,firewall:null})},onSave:this.onSave}))}}const yf={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},tag:{margin:"8px 5px 0 5px",height:"20px"}};class _f extends e.Component{render(){let t=this.props.firewall;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:yf.cardOpen},e.createElement(bf,{organizations:this.props.organizations,firewall:this.props.firewall,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n={...yf.card},a=[];for(let n of t.network_roles||[])a.push(e.createElement("div",{className:"bp3-tag bp3-intent-primary",style:yf.tag,key:n},n));let s="";if(Mr(t.organization))s="Node Firewall";else{let e=gr.organization(t.organization);s=e?e.name:t.organization}return e.createElement("div",{className:"bp3-card bp3-row",style:n,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:yf.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:yf.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:yf.nameSpan},t.name))),e.createElement("div",{className:"bp3-cell",style:yf.item},e.createElement("span",{style:yf.icon,className:"bp3-icon-standard bp3-text-muted "+(t.organization?"bp3-icon-people":"bp3-icon-layers")}),s),e.createElement("div",{className:"flex bp3-cell",style:yf.roles},a))}}const wf={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class Cf extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.organizations&&this.props.organizations.length)for(let n of this.props.organizations)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));return e.createElement("div",{className:"layout horizontal wrap",style:wf.filters},e.createElement(ho,{style:wf.input,placeholder:"Firewall ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:wf.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement(ho,{style:wf.role,placeholder:"Network Role",value:this.props.filter.network_role,onChange:e=>{let t={...this.props.filter};e?t.network_role=e:delete t.network_role,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:wf.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},t)))}}const Ef={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class Sf extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:hf.page,pageCount:hf.pageCount,pages:hf.pages,count:hf.count})},this.state={page:hf.page,pageCount:hf.pageCount,pages:hf.pages,count:hf.count}}componentDidMount(){hf.addChangeListener(this.onChange)}componentWillUnmount(){hf.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{pf(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{pf(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:Ef.button,disabled:0===t,type:"button",onClick:()=>{pf(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:Ef.button,disabled:t===n-1,type:"button",onClick:()=>{pf(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{pf(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const kf={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class zf extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=hf.firewalls,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,firewalls:e,filter:hf.filter,organizations:gr.organizations,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/firewall").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete firewalls"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={firewalls:hf.firewalls,filter:hf.filter,organizations:gr.organizations,selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){hf.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),uf(),bd()}componentWillUnmount(){hf.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[];this.state.firewalls.forEach((n=>{t.push(e.createElement(_f,{key:n.id,firewall:n,organizations:this.state.organizations,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.firewalls;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(n+="bp3-active");let a=[];for(let e of Object.keys(this.state.selected)){let t=hf.firewall(e);t?a.push(t.name||e):a.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:kf.header},e.createElement("h2",{style:kf.heading},"Firewalls"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:kf.buttons},e.createElement("button",{className:n,style:kf.button,type:"button",onClick:()=>{null===this.state.filter?mf({}):mf(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:kf.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:kf.button,confirmMsg:"Permanently delete the selected firewalls",confirmInput:!0,items:a,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete}),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:kf.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0});let e="";this.state.organizations.length&&(e=this.state.organizations[0].id),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/firewall").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create firewall"),void a(e)):void n())))}))}({organization:e,ingress:[{source_ips:["0.0.0.0/0","::/0"],protocol:"icmp"},{source_ips:["0.0.0.0/0","::/0"],protocol:"tcp",port:"22"}],comment:"22/tcp - SSH connections"}).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement(Cf,{filter:this.state.filter,onFilter:e=>{mf(e)},organizations:this.state.organizations}),e.createElement("div",{style:kf.itemsBox},e.createElement("div",{style:kf.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:kf.placeholder},e.createElement("td",{colSpan:5,style:kf.placeholder})))),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-key",title:"No firewalls",description:"Add a new firewall to get started."}),e.createElement(Sf,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const Mf={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},role:{margin:"9px 5px 0 5px",height:"20px"},rules:{marginBottom:"15px"}};class xf extends e.Component{constructor(e,t){super(e,t),this.onAddRole=()=>{let e;if(!this.state.addRole)return;e=this.state.changed?{...this.state.authority}:{...this.props.authority};let t=[...e.roles||[]];-1===t.indexOf(this.state.addRole)&&t.push(this.state.addRole),t.sort(),e.roles=t,this.setState({...this.state,changed:!0,message:"",addRole:"",authority:e})},this.onRemoveRole=e=>{let t;t=this.state.changed?{...this.state.authority}:{...this.props.authority};let n=[...t.roles||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.roles=n,this.setState({...this.state,changed:!0,message:"",addRole:"",authority:t}))},this.onAddNetworkRole=()=>{let e;if(!this.state.addNetworkRole)return;e=this.state.changed?{...this.state.authority}:{...this.props.authority};let t=[...e.network_roles||[]];-1===t.indexOf(this.state.addNetworkRole)&&t.push(this.state.addNetworkRole),t.sort(),e.network_roles=t,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",authority:e})},this.onRemoveNetworkRole=e=>{let t;t=this.state.changed?{...this.state.authority}:{...this.props.authority};let n=[...t.network_roles||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.network_roles=n,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",authority:t}))},this.onSave=()=>{this.setState({...this.state,disabled:!0});let e={...this.state.authority};this.props.organizations.length&&!e.organization&&(e.organization=this.props.organizations[0].id),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/authority/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save authority"),void a(e)):void n())))}))}(e).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,authority:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/authority/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete authority"),void a(e)):void n())))}))}(this.props.authority.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",addRole:null,addNetworkRole:null,authority:null}}set(e,t){let n;n=this.state.changed?{...this.state.authority}:{...this.props.authority},n[e]=t,this.setState({...this.state,changed:!0,authority:n})}render(){let t=this.state.authority||this.props.authority,n=!!this.props.organizations.length,a=[];if(this.props.organizations.length)for(let t of this.props.organizations)a.push(e.createElement("option",{key:t.id,value:t.id},t.name));n||a.push(e.createElement("option",{key:"null",value:""},"No Organizations"));let s=[];for(let n of t.roles||[])s.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Mf.role,key:n},n,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveRole(n)}})));let i=[];for(let n of t.network_roles||[])i.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Mf.role,key:n},n,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveNetworkRole(n)}})));return e.createElement("td",{className:"bp3-cell",colSpan:5,style:Mf.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Mf.group},e.createElement("div",{className:"layout horizontal tab-close",style:Mf.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox",style:Mf.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:Mf.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Authority",confirmMsg:"Permanently delete this authority",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of authority",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Authority comment.",placeholder:"Authority comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Hl,{label:"Type",help:"Authority type. SSH keys will be saved to ~/.ssh/authorized_keys. SSH certificates will be saved to the SSH server configuration.",value:t.type,onChange:e=>{this.set("type",e)}},e.createElement("option",{value:"ssh_key"},"SSH Key"),e.createElement("option",{value:"ssh_certificate"},"SSH Certificate")),e.createElement(rh,{hidden:"ssh_key"!==t.type,label:"SSH Key",help:"SSH authorized public key in PEM format.",placeholder:"Public key",rows:6,value:t.key,onChange:e=>{this.set("key",e)}}),e.createElement(rh,{hidden:"ssh_certificate"!==t.type,label:"SSH Certificate",help:"SSH certificate authority in PEM format.",placeholder:"Certificate authority",rows:6,value:t.certificate,onChange:e=>{this.set("certificate",e)}}),e.createElement("label",{className:"bp3-label",hidden:"ssh_certificate"!==t.type},"Roles",e.createElement(hl,{title:"Roles",content:"Roles that will be matched with authority principles. Roles are case-sensitive."}),e.createElement("div",null,s)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",hidden:"ssh_certificate"!==t.type,label:"Add",type:"text",placeholder:"Add role",value:this.state.addRole,onChange:e=>{this.setState({...this.state,addRole:e})},onSubmit:this.onAddRole})),e.createElement("div",{style:Mf.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.authority.id||"Unknown"}]}),e.createElement(Hl,{disabled:this.state.disabled||!n,hidden:$i,label:"Organization",help:"Organization for authority, both the organaization and role must match. Select node authority to match node network roles.",value:t.organization,onChange:e=>{this.set("organization",e)}},a),e.createElement("label",{className:"bp3-label"},"Network Roles",e.createElement(hl,{title:"Network Roles",content:"Network roles that will be matched with authorities. Network roles are case-sensitive."}),e.createElement("div",null,i)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addNetworkRole,onChange:e=>{this.setState({...this.state,addNetworkRole:e})},onSubmit:this.onAddNetworkRole}))),e.createElement(ml,{style:Mf.save,hidden:!this.state.authority&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,authority:null})},onSave:this.onSave}))}}const Af={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},tag:{margin:"8px 5px 0 5px",height:"20px"}};class Tf extends e.Component{render(){let t=this.props.authority;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:Af.cardOpen},e.createElement(xf,{organizations:this.props.organizations,authority:this.props.authority,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n={...Af.card},a=[];for(let n of t.network_roles||[])a.push(e.createElement("div",{className:"bp3-tag bp3-intent-primary",style:Af.tag,key:n},n));let s="";if(t.organization){let e=gr.organization(t.organization);s=e?e.name:t.organization}else s="No Organization";return e.createElement("div",{className:"bp3-card bp3-row",style:n,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:Af.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:Af.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:Af.nameSpan},t.name))),e.createElement("div",{className:"bp3-cell",style:Af.item},e.createElement("span",{style:Af.icon,className:"bp3-icon-standard bp3-text-muted bp3-icon-people"}),s),e.createElement("div",{className:"flex bp3-cell",style:Af.roles},a))}}const Lf={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class Pf extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.organizations&&this.props.organizations.length)for(let n of this.props.organizations)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));return e.createElement("div",{className:"layout horizontal wrap",style:Lf.filters},e.createElement(ho,{style:Lf.input,placeholder:"Authority ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:Lf.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement(ho,{style:Lf.role,placeholder:"Role",value:this.props.filter.role,onChange:e=>{let t={...this.props.filter};e?t.role=e:delete t.role,this.props.onFilter(t)}}),e.createElement(ho,{style:Lf.role,placeholder:"Network Role",value:this.props.filter.network_role,onChange:e=>{let t={...this.props.filter};e?t.network_role=e:delete t.network_role,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:Lf.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},t)))}}const Hf={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class Nf extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:Gd.page,pageCount:Gd.pageCount,pages:Gd.pages,count:Gd.count})},this.state={page:Gd.page,pageCount:Gd.pageCount,pages:Gd.pages,count:Gd.count}}componentDidMount(){Gd.addChangeListener(this.onChange)}componentWillUnmount(){Gd.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{Jd(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{Jd(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:Hf.button,disabled:0===t,type:"button",onClick:()=>{Jd(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:Hf.button,disabled:t===n-1,type:"button",onClick:()=>{Jd(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{Jd(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const Of={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class Vf extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=Gd.authorities,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,authorities:e,filter:Gd.filter,organizations:gr.organizations,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/authority").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete authorities"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={authorities:Gd.authorities,filter:Gd.filter,organizations:gr.organizations,selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){Gd.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),qd(),bd()}componentWillUnmount(){Gd.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[];this.state.authorities.forEach((n=>{t.push(e.createElement(Tf,{key:n.id,authority:n,organizations:this.state.organizations,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.authorities;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(n+="bp3-active");let a=[];for(let e of Object.keys(this.state.selected)){let t=Gd.authority(e);t?a.push(t.name||e):a.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Of.header},e.createElement("h2",{style:Of.heading},"Authorities"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Of.buttons},e.createElement("button",{className:n,style:Of.button,type:"button",onClick:()=>{null===this.state.filter?$d({}):$d(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:Of.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:Of.button,confirmMsg:"Permanently delete the selected authorities",confirmInput:!0,items:a,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete}),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:Of.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/authority").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create authority"),void a(e)):void n())))}))}({name:"New Authority"}).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement(Pf,{filter:this.state.filter,onFilter:e=>{$d(e)},organizations:this.state.organizations}),e.createElement("div",{style:Of.itemsBox},e.createElement("div",{style:Of.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:Of.placeholder},e.createElement("td",{colSpan:5,style:Of.placeholder})))),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-office",title:"No authorities",description:"Add a new authority to get started."}),e.createElement(Nf,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const Df="log.sync",If="log.traverse",Rf="log.filter";const Bf=new class extends hr{constructor(){super(...arguments),this._logs=Object.freeze([]),this._filter=null,this._token=lr.register(this._callback.bind(this))}_reset(){this._logs=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this.emitChange()}get logs(){return this._logs}get logsM(){let e=[];return this._logs.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||50}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.level!==this._filter.level)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){for(let t=0;t{vn.get("/log").query({...Bf.filter,page:Bf.page,page_count:Bf.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Ff){if(s)return Ui(i,"Failed to load logs"),void a(s);lr.dispatch({type:Df,data:{logs:i.body.logs,count:i.body.count}}),n()}else n()}))}))}function Kf(e){return lr.dispatch({type:If,data:{page:e}}),Xf()}function Uf(e){return lr.dispatch({type:Rf,data:{filter:e}}),Xf()}kr.register((e=>{if("log.change"===e.type)$i||-1===window.location.hash.indexOf("/logs")||Xf()}));const Gf={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none"},timestamp:{verticalAlign:"top",display:"table-cell",padding:"6px"},level:{verticalAlign:"top",display:"table-cell",padding:"6px"},message:{verticalAlign:"top",display:"table-cell",padding:"6px"},fields:{verticalAlign:"top",display:"table-cell",padding:"6px"},buttons:{verticalAlign:"top",display:"table-cell",padding:"0",width:"30px"},key:{fontWeight:"bold"},value:{},dialog:{height:"500px",width:"90%",maxWidth:"700px"},dialogBody:{height:"100%"},textarea:{resize:"none",fontSize:"12px",fontFamily:'"Lucida Console", Monaco, monospace',marginBottom:0}};class jf extends e.Component{constructor(e,t){super(e,t),this.state={stack:!1}}render(){let t=this.props.log,n="bp3-cell ";switch(t.level){case"debug":n+="bp3-text-intent-success";break;case"info":n+="bp3-text-intent-primary";break;case"warning":n+="bp3-text-intent-warning";break;case"error":case"fatal":case"panic":n+="bp3-text-intent-danger"}let a=[];for(let n in t.fields){if(!t.fields.hasOwnProperty(n))continue;let s=t.fields[n];a.push(e.createElement("div",{key:n},e.createElement("span",{style:Gf.key},n,": "),e.createElement("span",{style:Gf.value},JSON.stringify(s))))}return e.createElement("div",{className:"bp3-card bp3-row",style:Gf.card},e.createElement("div",{className:n,style:Gf.timestamp},Hr(t.timestamp)||"Unknown"),e.createElement("div",{className:n,style:Gf.level},t.level),e.createElement("div",{className:n,style:Gf.message},t.message),e.createElement("div",{className:"bp3-cell",style:Gf.fields},a),e.createElement("div",{className:"bp3-cell",style:Gf.buttons},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-document-open",hidden:!t.stack,onClick:()=>{this.setState({...this.state,stack:!0})}})),e.createElement(ra,{title:"Stack Trace",style:Gf.dialog,isOpen:this.state.stack,usePortal:!0,portalContainer:document.body,onClose:()=>{this.setState({...this.state,stack:!1})}},e.createElement("textarea",{className:"bp3-dialog-body bp3-input",style:Gf.textarea,autoCapitalize:"off",spellCheck:!1,readOnly:!0,value:t.stack||""})))}}const Wf={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class Qf extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){return null===this.props.filter?e.createElement("div",null):e.createElement("div",{className:"layout horizontal wrap",style:Wf.filters},e.createElement(ho,{style:Wf.input,placeholder:"Message",value:this.props.filter.message,onChange:e=>{let t={...this.props.filter};e?t.message=e:delete t.message,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:Wf.type},e.createElement("select",{value:this.props.filter.level||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.level:t.level=n,this.props.onFilter(t)}},e.createElement("option",{value:"any"},"Any"),e.createElement("option",{value:"debug"},"Debug"),e.createElement("option",{value:"info"},"Info"),e.createElement("option",{value:"warning"},"Warning"),e.createElement("option",{value:"error"},"Error"),e.createElement("option",{value:"fatal"},"Fatal"),e.createElement("option",{value:"panic"},"Panic"))))}}const Yf={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class Zf extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:Bf.page,pageCount:Bf.pageCount,pages:Bf.pages,count:Bf.count})},this.state={page:Bf.page,pageCount:Bf.pageCount,pages:Bf.pages,count:Bf.count}}componentDidMount(){Bf.addChangeListener(this.onChange)}componentWillUnmount(){Bf.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{Kf(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{Kf(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:Yf.button,disabled:0===t,type:"button",onClick:()=>{Kf(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:Yf.button,disabled:t===n-1,type:"button",onClick:()=>{Kf(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{Kf(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const qf={logs:{width:"100%",marginTop:"-3px",display:"table",borderSpacing:"0 3px"},logsBox:{width:"100%",overflowY:"auto"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class Jf extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,logs:Bf.logs,filter:Bf.filter})},this.state={logs:Bf.logs,filter:Bf.filter}}componentDidMount(){Bf.addChangeListener(this.onChange),Xf()}componentWillUnmount(){Bf.removeChangeListener(this.onChange)}render(){let t=[];this.state.logs.forEach((n=>{t.push(e.createElement(jf,{key:n.id,log:n}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";return this.state.filter&&(n+="bp3-active"),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:qf.header},e.createElement("h2",{style:qf.heading},"Logs"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:qf.buttons},e.createElement("button",{className:n,style:qf.button,type:"button",onClick:()=>{null===this.state.filter?Uf({}):Uf(null)}},"Filters")))),e.createElement(Qf,{filter:this.state.filter,onFilter:e=>{Uf(e)}}),e.createElement("div",{style:qf.logsBox},e.createElement("div",{style:qf.logs},t)),e.createElement(Zf,null))}}const $f={label:{fontSize:"16px",margin:"0 0 7px 0"},card:{marginBottom:"5px"},role:{margin:"9px 5px 0 5px",height:"20px"}};class ev extends e.Component{constructor(e,t){super(e,t),this.state={addRole:""}}clone(){return{...this.props.provider}}azure(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Directory ID",help:"Azure active directory ID",type:"text",placeholder:"Azure directory ID",value:t.tenant,onChange:e=>{let t=this.clone();t.tenant=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Application ID",help:"Azure application ID",type:"text",placeholder:"Azure application ID",value:t.client_id,onChange:e=>{let t=this.clone();t.client_id=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Application Secret",help:"Azure application secret",type:"text",placeholder:"Azure application secret",value:t.client_secret,onChange:e=>{let t=this.clone();t.client_secret=e,this.props.onChange(t)}}))}authzero(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Auth0 Sub-Domain",help:"Subdomain of Auth0 application. Enter subdomain portion only such as 'pritunl' for pritunl.auth0.com",type:"text",placeholder:"Auth0 sub-domain",value:t.domain,onChange:e=>{let t=this.clone();t.domain=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Client ID",help:"Auth0 application client ID",type:"text",placeholder:"Auth0 client ID",value:t.client_id,onChange:e=>{let t=this.clone();t.client_id=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Client Secret",help:"Auth0 application client secret",type:"text",placeholder:"Auth0 client secret",value:t.client_secret,onChange:e=>{let t=this.clone();t.client_secret=e,this.props.onChange(t)}}))}google(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Domain",help:"Domain segment of email address to match",type:"text",placeholder:"Google domain to match",value:t.domain,onChange:e=>{let t=this.clone();t.domain=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Google Admin Email",help:"Optional, the email address of an administrator user in the Google G Suite to delegate API access to. This user will be used to get the groups of Google users. Only needed when providing the Google JSON private key.",type:"text",placeholder:"Google admin email",value:t.google_email,onChange:e=>{let t=this.clone();t.google_email=e,this.props.onChange(t)}}),e.createElement(rh,{label:"Google JSON Private Key",help:"Optional, private key for service account in JSON format. This will copy the Google users groups to Pritunl Cloud. Also requires Google admin email.",placeholder:"Google JSON private key",rows:6,value:t.google_key,onChange:e=>{let t=this.clone();t.google_key=e,this.props.onChange(t)}}))}onelogin(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Issuer URL",help:"Single sign-on URL found in OneLogin app settings",type:"text",placeholder:"OneLogin issuer URL",value:t.issuer_url,onChange:e=>{let t=this.clone();t.issuer_url=e,this.props.onChange(t)}}),e.createElement(vl,{label:"SAML 2.0 Endpoint (HTTP)",help:"SAML 2.0 endpoint found in OneLogin app settings",type:"text",placeholder:"OneLogin SAML endpoint",value:t.saml_url,onChange:e=>{let t=this.clone();t.saml_url=e,this.props.onChange(t)}}),e.createElement(rh,{label:"X.509 Certificate",help:"X.509 certificate found in OneLogin app settings",placeholder:"OneLogin X.509 certificate",rows:6,value:t.saml_cert,onChange:e=>{let t=this.clone();t.saml_cert=e,this.props.onChange(t)}}))}okta(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Identity Provider Single Sign-On URL",help:"Single sign-on URL found in Okta app settings",type:"text",placeholder:"Okta single sign-on URL",value:t.saml_url,onChange:e=>{let t=this.clone();t.saml_url=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Identity Provider Issuer URL",help:"Issuer URL found in Okta app settings",type:"text",placeholder:"Okta issuer URL",value:t.issuer_url,onChange:e=>{let t=this.clone();t.issuer_url=e,this.props.onChange(t)}}),e.createElement(rh,{label:"X.509 Certificate",help:"X.509 certificate found in Okta app settings",placeholder:"Okta X.509 certificate",rows:6,value:t.saml_cert,onChange:e=>{let t=this.clone();t.saml_cert=e,this.props.onChange(t)}}))}jumpcloud(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Identity Provider Single Sign-On URL",help:"Single sign-on URL found in JumpCloud app settings",type:"text",placeholder:"JumpCloud single sign-on URL",value:t.saml_url,onChange:e=>{let t=this.clone();t.saml_url=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Identity Provider Issuer URL",help:"Issuer URL found in JumpCloud app settings",type:"text",placeholder:"JumpCloud issuer URL",value:t.issuer_url,onChange:e=>{let t=this.clone();t.issuer_url=e,this.props.onChange(t)}}),e.createElement(rh,{label:"X.509 Certificate",help:"X.509 certificate found in JumpCloud app settings",placeholder:"JumpCloud X.509 certificate",rows:6,value:t.saml_cert,onChange:e=>{let t=this.clone();t.saml_cert=e,this.props.onChange(t)}}),e.createElement(vl,{label:"JumpCloud App ID",help:"Optional, ID of JumpCloud Pritunl app. This can be found in the URL of the app settings page. Required to verify user is attached to JumpCloud application",type:"text",placeholder:"JumpCloud app ID",value:t.jumpcloud_app_id,onChange:e=>{let t=this.clone();t.jumpcloud_app_id=e,this.props.onChange(t)}}),e.createElement(vl,{label:"JumpCloud API Key",help:"JumpCloud API key for user account status verfication",type:"text",placeholder:"JumpCloud client secret",value:t.jumpcloud_secret,onChange:e=>{let t=this.clone();t.jumpcloud_secret=e,this.props.onChange(t)}}))}render(){let t,n=this.props.provider,a="";switch(n.type){case"azure":a="Azure",t=this.azure();break;case"authzero":a="Auth0",t=this.authzero();break;case"google":a="Google",t=this.google();break;case"onelogin":a="OneLogin",t=this.onelogin();break;case"okta":a="Okta",t=this.okta();break;case"jumpcloud":a="JumpCloud",t=this.jumpcloud()}let s=[];for(let t of n.default_roles)s.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:$f.role,key:t},t,e.createElement("button",{className:"bp3-tag-remove",onMouseUp:()=>{let e=[...this.props.provider.default_roles],n=e.indexOf(t);if(-1===n)return;e.splice(n,1);let a=this.clone();a.default_roles=e,this.props.onChange(a)}})));return e.createElement("div",{className:"bp3-card",style:$f.card},e.createElement("h6",{style:$f.label},a),e.createElement(Bo,{fields:[{label:"ID",value:n.id||"None"}]}),e.createElement(vl,{label:"Label",help:"Provider label that will be shown to users on the login page",type:"text",placeholder:"Provider label",value:n.label,onChange:e=>{let t=this.clone();t.label=e,this.props.onChange(t)}}),e.createElement("label",{className:"bp3-label",hidden:!n.auto_create},"Default Roles",e.createElement(hl,{title:"Default Roles",content:"When the user has authenticated for the first time these roles will be given to the user. These roles may also be used to update the users roles depending on the role management option."}),e.createElement("div",null,s)),e.createElement(Ll,{buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add default role",hidden:!n.auto_create,value:this.state.addRole,onChange:e=>{this.setState({...this.state,addRole:e})},onSubmit:()=>{let e=[...this.props.provider.default_roles];if(!this.state.addRole)return;-1===e.indexOf(this.state.addRole)&&e.push(this.state.addRole),e.sort();let t=this.clone();t.default_roles=e,this.props.onChange(t),this.setState({...this.state,addRole:""})}}),e.createElement(ul,{label:"Create user on authentication",help:"Create the user on first authentication. If this is disabled all users must be manually created before they are able to authenticate.",checked:n.auto_create,onToggle:()=>{let e=this.clone();e.auto_create=!e.auto_create,e.auto_create||"set_on_insert"!==e.role_management||(e.role_management="merge"),this.props.onChange(e)}}),e.createElement(Hl,{label:"Role Management",help:"When the user authenticates for the first time a user will be created and the users roles will be set to the roles configured above. This is referenced as set on insert. It may be desired to update the roles on subsequent authentications. For this the merge mode can be used which will take the users current roles and merge them with the roles configured above using all the roles from both sets. Overwrite mode will replace the users roles on every authentication with the roles configured above. It is important to consider that if a users roles are modified those modifications will be lost when the overwrite mode is used.",value:n.role_management,onChange:e=>{let t=this.clone();t.role_management=e,this.props.onChange(t)}},e.createElement("option",{value:"set_on_insert",hidden:!n.auto_create},"Set on insert"),e.createElement("option",{value:"merge"},"Merge"),e.createElement("option",{value:"overwrite"},"Overwrite")),t,e.createElement("button",{className:"bp3-button bp3-intent-danger",onClick:()=>{this.props.onRemove()}},"Remove"))}}const tv={label:{fontSize:"16px",margin:"0 0 7px 0"},card:{marginBottom:"5px"},role:{margin:"9px 5px 0 5px",height:"20px"}};class nv extends e.Component{clone(){return{...this.props.provider}}duo(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Duo API Hostname",help:"Duo API hostname found in Duo admin console.",type:"text",placeholder:"Duo API hostname",value:t.duo_hostname,onChange:e=>{let t=this.clone();t.duo_hostname=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Duo Integration Key",help:"Duo integration key found in Duo admin console.",type:"text",placeholder:"Duo integration key",value:t.duo_key,onChange:e=>{let t=this.clone();t.duo_key=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Duo Secret Key",help:"Duo secret key found in Duo admin console.",type:"text",placeholder:"Duo secret key",value:t.duo_secret,onChange:e=>{let t=this.clone();t.duo_secret=e,this.props.onChange(t)}}),e.createElement(ul,{label:"Push authentication",help:"Allow push authentication.",checked:t.push_factor,onToggle:()=>{let e=this.clone();e.push_factor=!e.push_factor,this.props.onChange(e)}}),e.createElement(ul,{label:"Phone authentication",help:"Allow phone authentication.",checked:t.phone_factor,onToggle:()=>{let e=this.clone();e.phone_factor=!e.phone_factor,this.props.onChange(e)}}),e.createElement(ul,{label:"Passcode authentication",help:"Allow passcode authentication.",checked:t.passcode_factor,onToggle:()=>{let e=this.clone();e.passcode_factor=!e.passcode_factor,this.props.onChange(e)}}),e.createElement(ul,{label:"SMS authentication",help:"Allow SMS authentication.",checked:t.sms_factor,onToggle:()=>{let e=this.clone();e.sms_factor=!e.sms_factor,this.props.onChange(e)}}))}onelogin(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"OneLogin API Client ID",help:"OneLogin API client ID found in OneLogin admin console.",type:"text",placeholder:"OneLogin API client ID",value:t.one_login_id,onChange:e=>{let t=this.clone();t.one_login_id=e,this.props.onChange(t)}}),e.createElement(vl,{label:"OneLogin API Client Secret",help:"OneLogin API client secret found in OneLogin admin console.",type:"text",placeholder:"OneLogin API client secret",value:t.one_login_secret,onChange:e=>{let t=this.clone();t.one_login_secret=e,this.props.onChange(t)}}),e.createElement(Hl,{label:"OneLogin API Region",help:"OneLogin region for API requests.",value:t.one_login_region,onChange:e=>{let t=this.clone();t.one_login_region=e,this.props.onChange(t)}},e.createElement("option",{value:"us"},"United States"),e.createElement("option",{value:"eu"},"Europe")),e.createElement(ul,{label:"Push authentication",help:"Allow push authentication.",checked:t.push_factor,onToggle:()=>{let e=this.clone();e.push_factor=!e.push_factor,this.props.onChange(e)}}),e.createElement(ul,{label:"Passcode authentication",help:"Allow passcode authentication.",checked:t.passcode_factor,onToggle:()=>{let e=this.clone();e.passcode_factor=!e.passcode_factor,this.props.onChange(e)}}))}okta(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Okta Domain",help:"Okta domain used to login to Okta such as 'pritunl.okta.com'.",type:"text",placeholder:"Okta domain",value:t.okta_domain,onChange:e=>{let t=this.clone();t.okta_domain=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Okta API Token",help:"Okta API token found in Okta admin console.",type:"text",placeholder:"Okta API token",value:t.okta_token,onChange:e=>{let t=this.clone();t.okta_token=e,this.props.onChange(t)}}),e.createElement(ul,{label:"Push authentication",help:"Allow push authentication.",checked:t.push_factor,onToggle:()=>{let e=this.clone();e.push_factor=!e.push_factor,this.props.onChange(e)}}),e.createElement(ul,{label:"Passcode authentication",help:"Allow passcode authentication.",checked:t.passcode_factor,onToggle:()=>{let e=this.clone();e.passcode_factor=!e.passcode_factor,this.props.onChange(e)}}))}render(){let t,n=this.props.provider,a="";switch(n.type){case"duo":a="Duo",t=this.duo();break;case"one_login":a="OneLogin",t=this.onelogin();break;case"okta":a="Okta",t=this.okta()}return e.createElement("div",{className:"bp3-card",style:tv.card},e.createElement("h6",{style:tv.label},a),e.createElement(Bo,{fields:[{label:"ID",value:n.id||"None"}]}),e.createElement(vl,{label:"Name",help:"Two-factor provider name.",type:"text",placeholder:"Two-factor provider name",value:n.name,onChange:e=>{let t=this.clone();t.name=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Label",help:"Two-factor provider label that will be shown to users on the login page.",type:"text",placeholder:"Two-factor provider label",value:n.label,onChange:e=>{let t=this.clone();t.label=e,this.props.onChange(t)}}),t,e.createElement("button",{className:"bp3-button bp3-intent-danger",onClick:()=>{this.props.onRemove()}},"Remove"))}}const av={providers:{paddingBottom:"6px",marginBottom:"5px",borderBottomStyle:"solid"},providersLabel:{margin:0},secondaryProviders:{paddingBottom:"6px",marginTop:"5px",marginBottom:"5px",borderBottomStyle:"solid"}};class sv extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,changed:!1,settings:rd.settingsM})},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/settings").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to commit settings"),void a(e)):(lr.dispatch({type:id,data:s.body}),void n()))))}))}(this.state.settings).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1})})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.set=(e,t)=>{let n={...this.state.settings};n[e]=t,this.setState({...this.state,changed:!0,message:"",settings:n})},this.state={changed:!1,disabled:!1,message:"",provider:"google",secondaryProvider:"duo",settings:rd.settingsM}}componentDidMount(){rd.addChangeListener(this.onChange),hd()}componentWillUnmount(){rd.removeChangeListener(this.onChange)}render(){let t=this.state.settings;if(!t)return e.createElement("div",null);let n=!!fr.subscription&&fr.subscription.active,a=[];for(let n=0;n{let t=[...this.state.settings.auth_providers];t[n]=e,this.set("auth_providers",t)},onRemove:()=>{let e=[...this.state.settings.auth_providers];e.splice(n,1),this.set("auth_providers",e)}}));let s=[];for(let n=0;n{let t=[...this.state.settings.auth_secondary_providers];t[n]=e,this.set("auth_secondary_providers",t)},onRemove:()=>{let e=[...this.state.settings.auth_secondary_providers];e.splice(n,1),this.set("auth_secondary_providers",e)}}));return e.createElement(vo,null,e.createElement(bo,{label:"Settings"}),e.createElement(Al,null,e.createElement(xl,{hidden:n},e.createElement(To,{hidden:!1,iconClass:"bp3-icon-credit-card",title:"Subscription Required",description:"Subscription required for single sign-on."})),e.createElement(xl,{hidden:!n},e.createElement("div",{className:"bp3-border",style:av.providers},e.createElement("h5",{style:av.providersLabel},"Authentication Providers")),a,e.createElement(Xh,{label:"Add Provider",value:this.state.provider,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,provider:e})},onSubmit:()=>{let e=[...t.auth_providers,{type:this.state.provider,default_roles:[],auto_create:!0,role_management:"set_on_insert"}];this.set("auth_providers",e)}},e.createElement("option",{value:"authzero"},"Auth0"),e.createElement("option",{value:"azure"},"Azure"),e.createElement("option",{value:"google"},"Google"),e.createElement("option",{value:"onelogin"},"OneLogin"),e.createElement("option",{value:"okta"},"Okta"),e.createElement("option",{value:"jumpcloud"},"JumpCloud"))),e.createElement(xl,null,e.createElement("div",{className:"bp3-border",style:av.secondaryProviders},e.createElement("h5",{style:av.providersLabel},"Two-Factor Providers")),s,e.createElement(Xh,{label:"Add Secondary Provider",value:this.state.secondaryProvider,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,secondaryProvider:e})},onSubmit:()=>{let e=[...t.auth_secondary_providers,{type:this.state.secondaryProvider}];this.set("auth_secondary_providers",e)}},e.createElement("option",{value:"duo"},"Duo"),e.createElement("option",{value:"one_login"},"OneLogin"),e.createElement("option",{value:"okta"},"Okta")),e.createElement(vl,{label:"Admin Session Expire Minutes",help:"Number of inactive minutes before a admin session expires",type:"text",placeholder:"Session expire",value:this.state.settings.auth_admin_expire,onChange:e=>{this.set("auth_admin_expire",parseInt(e,10))}}),e.createElement(vl,{label:"Admin Session Max Duration Minutes",help:"Number of minutes from start of a admin session until expiration",type:"text",placeholder:"Session max duration",value:this.state.settings.auth_admin_max_duration,onChange:e=>{this.set("auth_admin_max_duration",parseInt(e,10))}}),e.createElement(vl,{label:"User Session Expire Minutes",help:"Number of inactive minutes before a user session expires",type:"text",placeholder:"Session expire",value:this.state.settings.auth_user_expire,onChange:e=>{this.set("auth_user_expire",parseInt(e,10))}}),e.createElement(vl,{label:"User Session Max Duration Minutes",help:"Number of minutes from start of a user session until expiration",type:"text",placeholder:"Session max duration",value:this.state.settings.auth_user_max_duration,onChange:e=>{this.set("auth_user_max_duration",parseInt(e,10))}}))),e.createElement(ml,{message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,onCancel:()=>{this.setState({...this.state,changed:!1,message:"Your changes have been discarded",settings:rd.settingsM})},onSave:this.onSave}))}}const iv={select:{marginRight:"11px"}};class rv extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,organizations:gr.organizations,current:gr.current})},this.state={organizations:gr.organizations,current:null}}componentDidMount(){gr.addChangeListener(this.onChange)}componentWillUnmount(){gr.removeChangeListener(this.onChange)}render(){let t=[];return this.state.organizations.forEach((n=>{t.push(e.createElement("option",{key:n.id,value:n.id},n.name))})),e.createElement("div",{style:iv.select},e.createElement("div",{className:"bp3-select",hidden:this.props.hidden},e.createElement("select",{value:this.state.current||"",onChange:e=>{var t;t=e.target.value,lr.dispatch({type:pr,data:{current:t}}),lr.dispatch({type:mr,data:{current:t}})}},t)))}}const ov={card:{minWidth:"310px",maxWidth:"380px",width:"calc(100% - 20px)",margin:"60px auto"},nav:{overflowX:"auto",overflowY:"auto",userSelect:"none",height:"auto"},navTitle:{flexWrap:"wrap",height:"auto"},navGroup:{flexWrap:"wrap",height:"auto",padding:"10px 0"},link:{padding:"0 7px",color:"inherit"},sub:{color:"inherit"},heading:{marginRight:"11px",marginBottom:"2px",fontSize:"18px",fontWeight:"bold",width:"100px"}};class lv extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,subscription:fr.subscription,current:gr.current})},this.state={subscription:fr.subscription,current:gr.current,disabled:!1}}componentDidMount(){$i?(gr.addChangeListener(this.onChange),bd()):(fr.addChangeListener(this.onChange),Vr(!1))}componentWillUnmount(){$i?gr.removeChangeListener(this.onChange):fr.removeChangeListener(this.onChange)}render(){return!$i&&!this.state.subscription||$i&&void 0===this.state.current?e.createElement("div",null):$i&&!this.state.current?e.createElement("div",null,e.createElement("div",{className:"bp3-callout bp3-intent-danger bp3-icon-error",style:ov.card},e.createElement("h4",{className:"bp3-callout-title"},"No Organization"),"Account does not have access to any organizations",e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-log-out",onClick:()=>{window.location.href="/logout"}},"Logout"))):e.createElement(on,null,e.createElement("div",null,e.createElement("nav",{className:"bp3-navbar layout horizontal",style:ov.nav},e.createElement("div",{className:"bp3-navbar-group bp3-align-left flex",style:ov.navTitle},e.createElement("img",{className:"logo-light bp3-navbar-heading",style:ov.heading,src:"data:image/png;base64,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",alt:"Pritunl Cloud"}),e.createElement("img",{className:"logo-dark bp3-navbar-heading",style:ov.heading,src:"data:image/png;base64,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",alt:"Pritunl Cloud"}),e.createElement(rv,{hidden:!$i})),e.createElement("div",{className:"bp3-navbar-group bp3-align-right",style:ov.navGroup},e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-people",style:ov.link,hidden:$i,to:"/users"},"Users"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-layers",style:ov.link,hidden:$i,to:"/nodes"},"Nodes"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-filter",style:ov.link,hidden:$i,to:"/policies"},"Policies"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-endorsed",style:ov.link,to:"/certificates"},"Certificates"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-people",style:ov.link,hidden:$i,to:"/organizations"},"Organizations"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-cloud",style:ov.link,hidden:$i,to:"/datacenters"},"Datacenters"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-layout-circle",style:ov.link,hidden:$i,to:"/zones"},"Zones"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-ip-address",style:ov.link,hidden:$i,to:"/blocks"},"IP Blocks"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-layout-auto",style:ov.link,to:"/vpcs"},"VPCs"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-map-marker",style:ov.link,hidden:$i,to:"/domains"},"Domains"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-random",style:ov.link,to:"/balancers"},"Load Balancers"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-database",style:ov.link,hidden:$i,to:"/storages"},"Storages"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-compressed",style:ov.link,to:"/images"},"Images"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-floppy-disk",style:ov.link,to:"/disks"},"Disks"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-dashboard",style:ov.link,to:"/instances"},"Instances"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-key",style:ov.link,to:"/firewalls"},"Firewalls"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-office",style:ov.link,to:"/authorities"},"Authorities"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-notifications",style:ov.link,to:"/alerts"},"Alerts"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-history",style:ov.link,hidden:$i,to:"/logs"},"Logs"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-settings",style:ov.link,hidden:$i,to:"/settings"},"Settings"),e.createElement(pn,{to:"/subscription",style:ov.sub,hidden:$i},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-credit-card",style:ov.link,onClick:()=>{Vr(!0)}},"Subscription")),e.createElement(en,{render:t=>e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-refresh",disabled:this.state.disabled,onClick:()=>{let e=t.location.pathname;this.setState({...this.state,disabled:!0}),"/users"===e?qr().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):e.startsWith("/user/")?(Zr(Qr.user?Qr.user.id:null).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})),xo().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})),ro().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))):"/nodes"===e?(xh().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})),Ph().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})),Hh().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})),Nh().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})),Oh().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))):"/policies"===e?(hd(),cd().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))):"/certificates"===e?Ph().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/organizations"===e?bd().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/datacenters"===e?Hh().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/zones"===e?Nh().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/blocks"===e?Oh().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/vpcs"===e?ku().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/domains"===e?Yu().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/balancers"===e?mp().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/storages"===e?Pd().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/images"===e?Fp().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/disks"===e?rm().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/instances"===e?ym().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/firewalls"===e?uf().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/authorities"===e?qd().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/alerts"===e?Qd().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/logs"===e?Xf().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/settings"===e?hd().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/subscription"===e?Vr(!0).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):this.setState({...this.state,disabled:!1})}},"Refresh")}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-log-out",onClick:()=>{window.location.href="/logout"}},"Logout"),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-moon",onClick:()=>{"light"===Yi?qi():Zi(),new Promise(((e,t)=>{vn.put("/theme").send({theme:Yi}).set("Accept","application/json").set("Csrf-Token",Wi).end(((n,a)=>a&&401===a.status?(window.location.href="/login",void e()):n?(Ui(a,"Failed to save theme"),void t(n)):void e()))}))}}))),e.createElement(Cr,{intent:"primary"}),e.createElement(en,{path:"/",exact:!0,render:()=>$i?e.createElement(Fu,null):e.createElement(Co,null)}),e.createElement(en,{path:"/reload",render:()=>e.createElement(Zt,{to:"/"})}),e.createElement(en,{path:"/users",render:()=>e.createElement(Co,null)}),e.createElement(en,{exact:!0,path:"/user",render:()=>e.createElement(lh,null)}),e.createElement(en,{path:"/user/:userId",render:t=>e.createElement(lh,{userId:t.match.params.userId})}),e.createElement(en,{path:"/nodes",render:()=>e.createElement(nd,null)}),e.createElement(en,{path:"/policies",render:()=>e.createElement(vd,null)}),e.createElement(en,{path:"/certificates",render:()=>e.createElement(Sd,null)}),e.createElement(en,{path:"/organizations",render:()=>e.createElement(xd,null)}),e.createElement(en,{path:"/datacenters",render:()=>e.createElement(Dd,null)}),e.createElement(en,{path:"/zones",render:()=>e.createElement(pu,null)}),e.createElement(en,{path:"/blocks",render:()=>e.createElement(gu,null)}),e.createElement(en,{path:"/vpcs",render:()=>e.createElement(Fu,null)}),e.createElement(en,{path:"/domains",render:()=>e.createElement(lp,null)}),e.createElement(en,{path:"/balancers",render:()=>e.createElement(Tp,null)}),e.createElement(en,{path:"/storages",render:()=>e.createElement(Np,null)}),e.createElement(en,{path:"/images",render:()=>e.createElement(em,null)}),e.createElement(en,{path:"/disks",render:()=>e.createElement(Bm,null)}),e.createElement(en,{path:"/instances",render:()=>e.createElement(rf,null)}),e.createElement(en,{path:"/firewalls",render:()=>e.createElement(zf,null)}),e.createElement(en,{path:"/authorities",render:()=>e.createElement(Vf,null)}),e.createElement(en,{path:"/alerts",render:()=>e.createElement(cu,null)}),e.createElement(en,{path:"/logs",render:()=>e.createElement(Jf,null)}),e.createElement(en,{path:"/settings",render:()=>e.createElement(sv,null)}),e.createElement(en,{path:"/subscription",render:()=>e.createElement(Fr,null)})))}}let cv=!1;function hv(){let e="",t=window.location;"https:"===t.protocol?e+="wss":e+="ws",e+="://"+t.host+"/event?csrf_token="+Wi;let n=new WebSocket(e);n.addEventListener("close",(()=>{setTimeout((()=>{hv()}),500)})),n.addEventListener("message",(e=>{console.log(JSON.parse(e.data).data),kr.dispatch(JSON.parse(e.data).data)}))}function dv(){cv||(cv=!0,hv())}new Promise(((e,t)=>{vn.get("/csrf").set("Accept","application/json").end(((n,a)=>{if(a&&401===a.status)return window.location.href="/login",void e();n?t(n):(Wi=a.body.token,ji(!!a.body.oracle_license),"light"===a.body.theme?Zi():qi(),e())}))})).then((()=>{$e(),Bi||(Ri?Bi=Ri.create({position:f},document.getElementById("toaster")):console.error("Failed to load toaster")),dv(),t.render(e.createElement("div",null,e.createElement(lv,null)),document.getElementById("app"))}))})()})(); + */var n,a,s,i;if("object"==typeof performance&&"function"==typeof performance.now){var r=performance;t.unstable_now=function(){return r.now()}}else{var o=Date,l=o.now();t.unstable_now=function(){return o.now()-l}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var c=null,h=null,d=function(){if(null!==c)try{var e=t.unstable_now();c(!0,e),c=null}catch(e){throw setTimeout(d,0),e}};n=function(e){null!==c?setTimeout(n,0,e):(c=e,setTimeout(d,0))},a=function(e,t){h=setTimeout(e,t)},s=function(){clearTimeout(h)},t.unstable_shouldYield=function(){return!1},i=t.unstable_forceFrameRate=function(){}}else{var u=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var f=!1,v=null,g=-1,b=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},i=function(){},t.unstable_forceFrameRate=function(e){0>e||125>>1,s=e[a];if(!(void 0!==s&&0k(r,n))void 0!==l&&0>k(l,r)?(e[a]=l,e[o]=n,a=o):(e[a]=r,e[i]=n,a=i);else{if(!(void 0!==l&&0>k(l,n)))break e;e[a]=l,e[o]=n,a=o}}}return t}return null}function k(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var z=[],M=[],x=1,A=null,T=3,L=!1,P=!1,H=!1;function N(e){for(var t=E(M);null!==t;){if(null===t.callback)S(M);else{if(!(t.startTime<=e))break;S(M),t.sortIndex=t.expirationTime,C(z,t)}t=E(M)}}function O(e){if(H=!1,N(e),!P)if(null!==E(z))P=!0,n(V);else{var t=E(M);null!==t&&a(O,t.startTime-e)}}function V(e,n){P=!1,H&&(H=!1,s()),L=!0;var i=T;try{for(N(n),A=E(z);null!==A&&(!(A.expirationTime>n)||e&&!t.unstable_shouldYield());){var r=A.callback;if("function"==typeof r){A.callback=null,T=A.priorityLevel;var o=r(A.expirationTime<=n);n=t.unstable_now(),"function"==typeof o?A.callback=o:A===E(z)&&S(z),N(n)}else S(z);A=E(z)}if(null!==A)var l=!0;else{var c=E(M);null!==c&&a(O,c.startTime-n),l=!1}return l}finally{A=null,T=i,L=!1}}var D=i;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){P||L||(P=!0,n(V))},t.unstable_getCurrentPriorityLevel=function(){return T},t.unstable_getFirstCallbackNode=function(){return E(z)},t.unstable_next=function(e){switch(T){case 1:case 2:case 3:var t=3;break;default:t=T}var n=T;T=t;try{return e()}finally{T=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=D,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=T;T=e;try{return t()}finally{T=n}},t.unstable_scheduleCallback=function(e,i,r){var o=t.unstable_now();switch("object"==typeof r&&null!==r?r="number"==typeof(r=r.delay)&&0o?(e.sortIndex=r,C(M,e),null===E(z)&&e===E(M)&&(H?s():H=!0,a(O,r-o))):(e.sortIndex=l,C(z,e),P||L||(P=!0,n(V))),e},t.unstable_wrapCallback=function(e){var t=T;return function(){var n=T;T=t;try{return e.apply(this,arguments)}finally{T=n}}}},2851:(e,t,n)=>{"use strict";e.exports=n(1196)},3680:(e,t,n)=>{"use strict";var a=n(1801),s=n(7615),i=n(3126),r=a("%TypeError%"),o=a("%WeakMap%",!0),l=a("%Map%",!0),c=s("WeakMap.prototype.get",!0),h=s("WeakMap.prototype.set",!0),d=s("WeakMap.prototype.has",!0),u=s("Map.prototype.get",!0),p=s("Map.prototype.set",!0),m=s("Map.prototype.has",!0),f=function(e,t){for(var n,a=e;null!==(n=a.next);a=n)if(n.key===t)return a.next=n.next,n.next=e.next,e.next=n,n};e.exports=function(){var e,t,n,a={assert:function(e){if(!a.has(e))throw new r("Side channel does not contain "+i(e))},get:function(a){if(o&&a&&("object"==typeof a||"function"==typeof a)){if(e)return c(e,a)}else if(l){if(t)return u(t,a)}else if(n)return function(e,t){var n=f(e,t);return n&&n.value}(n,a)},has:function(a){if(o&&a&&("object"==typeof a||"function"==typeof a)){if(e)return d(e,a)}else if(l){if(t)return m(t,a)}else if(n)return function(e,t){return!!f(e,t)}(n,a);return!1},set:function(a,s){o&&a&&("object"==typeof a||"function"==typeof a)?(e||(e=new o),h(e,a,s)):l?(t||(t=new l),p(t,a,s)):(n||(n={key:{},next:null}),function(e,t,n){var a=f(e,t);a?a.value=n:e.next={key:t,next:e.next,value:n}}(n,a,s))}};return a}},2858:e=>{"use strict";function t(e){return function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return n(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return n(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n{"use strict";function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}var s;"undefined"!=typeof window?s=window:"undefined"==typeof self?(console.warn("Using browser-only version of superagent in non-browser environment"),s=void 0):s=self;var i=n(1069),r=n(5799),o=n(5907),l=n(4287),c=n(1960),h=n(969),d=n(2858);function u(){}e.exports=function(e,n){return"function"==typeof n?new t.Request("GET",e).end(n):1===arguments.length?new t.Request("GET",e):new t.Request(e,n)};var p=t=e.exports;t.Request=_,p.getXHR=function(){if(s.XMLHttpRequest&&(!s.location||"file:"!==s.location.protocol||!s.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}throw new Error("Browser-only version of superagent could not find XHR")};var m="".trim?function(e){return e.trim()}:function(e){return e.replace(/(^\s*|\s*$)/g,"")};function f(e){if(!c(e))return e;var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&v(t,n,e[n]);return t.join("&")}function v(e,t,n){if(void 0!==n)if(null!==n)if(Array.isArray(n))n.forEach((function(n){v(e,t,n)}));else if(c(n))for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&v(e,"".concat(t,"[").concat(a,"]"),n[a]);else e.push(encodeURI(t)+"="+encodeURIComponent(n));else e.push(encodeURI(t))}function g(e){for(var t,n,a={},s=e.split("&"),i=0,r=s.length;i0||e instanceof Object)?t(e):null)},y.prototype.toError=function(){var e=this.req,t=e.method,n=e.url,a="cannot ".concat(t," ").concat(n," (").concat(this.status,")"),s=new Error(a);return s.status=this.status,s.method=t,s.url=n,s},p.Response=y,i(_.prototype),l(_.prototype),_.prototype.type=function(e){return this.set("Content-Type",p.types[e]||e),this},_.prototype.accept=function(e){return this.set("Accept",p.types[e]||e),this},_.prototype.auth=function(e,t,n){1===arguments.length&&(t=""),"object"===a(t)&&null!==t&&(n=t,t=""),n||(n={type:"function"==typeof btoa?"basic":"auto"});var s=function(e){if("function"==typeof btoa)return btoa(e);throw new Error("Cannot use basic auth, btoa is not a function")};return this._auth(e,t,n,s)},_.prototype.query=function(e){return"string"!=typeof e&&(e=f(e)),e&&this._query.push(e),this},_.prototype.attach=function(e,t,n){if(t){if(this._data)throw new Error("superagent can't mix .send() and .attach()");this._getFormData().append(e,t,n||t.name)}return this},_.prototype._getFormData=function(){return this._formData||(this._formData=new s.FormData),this._formData},_.prototype.callback=function(e,t){if(this._shouldRetry(e,t))return this._retry();var n=this._callback;this.clearTimeout(),e&&(this._maxRetries&&(e.retries=this._retries-1),this.emit("error",e)),n(e,t)},_.prototype.crossDomainError=function(){var e=new Error("Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.");e.crossDomain=!0,e.status=this.status,e.method=this.method,e.url=this.url,this.callback(e)},_.prototype.agent=function(){return console.warn("This is not supported in browser version of superagent"),this},_.prototype.ca=_.prototype.agent,_.prototype.buffer=_.prototype.ca,_.prototype.write=function(){throw new Error("Streaming is not supported in browser version of superagent")},_.prototype.pipe=_.prototype.write,_.prototype._isHost=function(e){return e&&"object"===a(e)&&!Array.isArray(e)&&"[object Object]"!==Object.prototype.toString.call(e)},_.prototype.end=function(e){this._endCalled&&console.warn("Warning: .end() was called twice. This is not supported in superagent"),this._endCalled=!0,this._callback=e||u,this._finalizeQueryString(),this._end()},_.prototype._setUploadTimeout=function(){var e=this;this._uploadTimeout&&!this._uploadTimeoutTimer&&(this._uploadTimeoutTimer=setTimeout((function(){e._timeoutError("Upload timeout of ",e._uploadTimeout,"ETIMEDOUT")}),this._uploadTimeout))},_.prototype._end=function(){if(this._aborted)return this.callback(new Error("The request has been aborted even before .end() was called"));var e=this;this.xhr=p.getXHR();var t=this.xhr,n=this._formData||this._data;this._setTimeouts(),t.onreadystatechange=function(){var n=t.readyState;if(n>=2&&e._responseTimeoutTimer&&clearTimeout(e._responseTimeoutTimer),4===n){var a;try{a=t.status}catch(e){a=0}if(!a){if(e.timedout||e._aborted)return;return e.crossDomainError()}e.emit("end")}};var a=function(t,n){n.total>0&&(n.percent=n.loaded/n.total*100,100===n.percent&&clearTimeout(e._uploadTimeoutTimer)),n.direction=t,e.emit("progress",n)};if(this.hasListeners("progress"))try{t.addEventListener("progress",a.bind(null,"download")),t.upload&&t.upload.addEventListener("progress",a.bind(null,"upload"))}catch(e){}t.upload&&this._setUploadTimeout();try{this.username&&this.password?t.open(this.method,this.url,!0,this.username,this.password):t.open(this.method,this.url,!0)}catch(e){return this.callback(e)}if(this._withCredentials&&(t.withCredentials=!0),!this._formData&&"GET"!==this.method&&"HEAD"!==this.method&&"string"!=typeof n&&!this._isHost(n)){var s=this._header["content-type"],i=this._serializer||p.serialize[s?s.split(";")[0]:""];!i&&b(s)&&(i=p.serialize["application/json"]),i&&(n=i(n))}for(var r in this.header)null!==this.header[r]&&Object.prototype.hasOwnProperty.call(this.header,r)&&t.setRequestHeader(r,this.header[r]);this._responseType&&(t.responseType=this._responseType),this.emit("request",this),t.send(void 0===n?null:n)},p.agent=function(){return new d},["GET","POST","OPTIONS","PATCH","PUT","DELETE"].forEach((function(e){d.prototype[e.toLowerCase()]=function(t,n){var a=new p.Request(e,t);return this._setDefaults(a),n&&a.end(n),a}})),d.prototype.del=d.prototype.delete,p.get=function(e,t,n){var a=p("GET",e);return"function"==typeof t&&(n=t,t=null),t&&a.query(t),n&&a.end(n),a},p.head=function(e,t,n){var a=p("HEAD",e);return"function"==typeof t&&(n=t,t=null),t&&a.query(t),n&&a.end(n),a},p.options=function(e,t,n){var a=p("OPTIONS",e);return"function"==typeof t&&(n=t,t=null),t&&a.send(t),n&&a.end(n),a},p.del=w,p.delete=w,p.patch=function(e,t,n){var a=p("PATCH",e);return"function"==typeof t&&(n=t,t=null),t&&a.send(t),n&&a.end(n),a},p.post=function(e,t,n){var a=p("POST",e);return"function"==typeof t&&(n=t,t=null),t&&a.send(t),n&&a.end(n),a},p.put=function(e,t,n){var a=p("PUT",e);return"function"==typeof t&&(n=t,t=null),t&&a.send(t),n&&a.end(n),a}},1960:e=>{"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(e)}e.exports=function(e){return null!==e&&"object"===t(e)}},4287:(e,t,n)=>{"use strict";function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}var s=n(1960);function i(e){if(e)return function(e){for(var t in i.prototype)Object.prototype.hasOwnProperty.call(i.prototype,t)&&(e[t]=i.prototype[t]);return e}(e)}e.exports=i,i.prototype.clearTimeout=function(){return clearTimeout(this._timer),clearTimeout(this._responseTimeoutTimer),clearTimeout(this._uploadTimeoutTimer),delete this._timer,delete this._responseTimeoutTimer,delete this._uploadTimeoutTimer,this},i.prototype.parse=function(e){return this._parser=e,this},i.prototype.responseType=function(e){return this._responseType=e,this},i.prototype.serialize=function(e){return this._serializer=e,this},i.prototype.timeout=function(e){if(!e||"object"!==a(e))return this._timeout=e,this._responseTimeout=0,this._uploadTimeout=0,this;for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(t){case"deadline":this._timeout=e.deadline;break;case"response":this._responseTimeout=e.response;break;case"upload":this._uploadTimeout=e.upload;break;default:console.warn("Unknown timeout option",t)}return this},i.prototype.retry=function(e,t){return 0!==arguments.length&&!0!==e||(e=1),e<=0&&(e=0),this._maxRetries=e,this._retries=0,this._retryCallback=t,this};var r=new Set(["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"]),o=new Set([408,413,429,500,502,503,504,521,522,524]);i.prototype._shouldRetry=function(e,t){if(!this._maxRetries||this._retries++>=this._maxRetries)return!1;if(this._retryCallback)try{var n=this._retryCallback(e,t);if(!0===n)return!0;if(!1===n)return!1}catch(e){console.error(e)}if(t&&t.status&&o.has(t.status))return!0;if(e){if(e.code&&r.has(e.code))return!0;if(e.timeout&&"ECONNABORTED"===e.code)return!0;if(e.crossDomain)return!0}return!1},i.prototype._retry=function(){return this.clearTimeout(),this.req&&(this.req=null,this.req=this.request()),this._aborted=!1,this.timedout=!1,this.timedoutError=null,this._end()},i.prototype.then=function(e,t){var n=this;if(!this._fullfilledPromise){var a=this;this._endCalled&&console.warn("Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"),this._fullfilledPromise=new Promise((function(e,t){a.on("abort",(function(){if(!(n._maxRetries&&n._maxRetries>n._retries))if(n.timedout&&n.timedoutError)t(n.timedoutError);else{var e=new Error("Aborted");e.code="ABORTED",e.status=n.status,e.method=n.method,e.url=n.url,t(e)}})),a.end((function(n,a){n?t(n):e(a)}))}))}return this._fullfilledPromise.then(e,t)},i.prototype.catch=function(e){return this.then(void 0,e)},i.prototype.use=function(e){return e(this),this},i.prototype.ok=function(e){if("function"!=typeof e)throw new Error("Callback required");return this._okCallback=e,this},i.prototype._isResponseOK=function(e){return!!e&&(this._okCallback?this._okCallback(e):e.status>=200&&e.status<300)},i.prototype.get=function(e){return this._header[e.toLowerCase()]},i.prototype.getHeader=i.prototype.get,i.prototype.set=function(e,t){if(s(e)){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&this.set(n,e[n]);return this}return this._header[e.toLowerCase()]=t,this.header[e]=t,this},i.prototype.unset=function(e){return delete this._header[e.toLowerCase()],delete this.header[e],this},i.prototype.field=function(e,t){if(null==e)throw new Error(".field(name, val) name can not be empty");if(this._data)throw new Error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()");if(s(e)){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&this.field(n,e[n]);return this}if(Array.isArray(t)){for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&this.field(e,t[a]);return this}if(null==t)throw new Error(".field(name, val) val can not be empty");return"boolean"==typeof t&&(t=String(t)),this._getFormData().append(e,t),this},i.prototype.abort=function(){return this._aborted||(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort")),this},i.prototype._auth=function(e,t,n,a){switch(n.type){case"basic":this.set("Authorization","Basic ".concat(a("".concat(e,":").concat(t))));break;case"auto":this.username=e,this.password=t;break;case"bearer":this.set("Authorization","Bearer ".concat(e))}return this},i.prototype.withCredentials=function(e){return void 0===e&&(e=!0),this._withCredentials=e,this},i.prototype.redirects=function(e){return this._maxRedirects=e,this},i.prototype.maxResponseSize=function(e){if("number"!=typeof e)throw new TypeError("Invalid argument");return this._maxResponseSize=e,this},i.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},i.prototype.send=function(e){var t=s(e),n=this._header["content-type"];if(this._formData)throw new Error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()");if(t&&!this._data)Array.isArray(e)?this._data=[]:this._isHost(e)||(this._data={});else if(e&&this._data&&this._isHost(this._data))throw new Error("Can't merge these send calls");if(t&&s(this._data))for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(this._data[a]=e[a]);else"string"==typeof e?(n||this.type("form"),(n=this._header["content-type"])&&(n=n.toLowerCase().trim()),this._data="application/x-www-form-urlencoded"===n?this._data?"".concat(this._data,"&").concat(e):e:(this._data||"")+e):this._data=e;return!t||this._isHost(e)||n||this.type("json"),this},i.prototype.sortQuery=function(e){return this._sort=void 0===e||e,this},i.prototype._finalizeQueryString=function(){var e=this._query.join("&");if(e&&(this.url+=(this.url.includes("?")?"&":"?")+e),this._query.length=0,this._sort){var t=this.url.indexOf("?");if(t>=0){var n=this.url.slice(t+1).split("&");"function"==typeof this._sort?n.sort(this._sort):n.sort(),this.url=this.url.slice(0,t)+"?"+n.join("&")}}},i.prototype._appendQueryString=function(){console.warn("Unsupported")},i.prototype._timeoutError=function(e,t,n){if(!this._aborted){var a=new Error("".concat(e+t,"ms exceeded"));a.timeout=t,a.code="ECONNABORTED",a.errno=n,this.timedout=!0,this.timedoutError=a,this.abort(),this.callback(a)}},i.prototype._setTimeouts=function(){var e=this;this._timeout&&!this._timer&&(this._timer=setTimeout((function(){e._timeoutError("Timeout of ",e._timeout,"ETIME")}),this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout((function(){e._timeoutError("Response timeout of ",e._responseTimeout,"ETIMEDOUT")}),this._responseTimeout))}},969:(e,t,n)=>{"use strict";var a=n(3094);function s(e){if(e)return function(e){for(var t in s.prototype)Object.prototype.hasOwnProperty.call(s.prototype,t)&&(e[t]=s.prototype[t]);return e}(e)}e.exports=s,s.prototype.get=function(e){return this.header[e.toLowerCase()]},s.prototype._setHeaderProperties=function(e){var t=e["content-type"]||"";this.type=a.type(t);var n=a.params(t);for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(this[s]=n[s]);this.links={};try{e.link&&(this.links=a.parseLinks(e.link))}catch(e){}},s.prototype._setStatusProperties=function(e){var t=e/100|0;this.statusCode=e,this.status=this.statusCode,this.statusType=t,this.info=1===t,this.ok=2===t,this.redirect=3===t,this.clientError=4===t,this.serverError=5===t,this.error=(4===t||5===t)&&this.toError(),this.created=201===e,this.accepted=202===e,this.noContent=204===e,this.badRequest=400===e,this.unauthorized=401===e,this.notAcceptable=406===e,this.forbidden=403===e,this.notFound=404===e,this.unprocessableEntity=422===e}},3094:(e,t)=>{"use strict";function n(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var s=0,i=function(){};return{s:i,n:function(){return s>=e.length?{done:!0}:{done:!1,value:e[s++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,o=!0,l=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){l=!0,r=e},f:function(){try{o||null==n.return||n.return()}finally{if(l)throw r}}}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n{"use strict";var t=function(){};e.exports=t},4654:()=>{}},t={};function n(a){var s=t[a];if(void 0!==s)return s.exports;var i=t[a]={exports:{}};return e[a](i,i.exports,n),i.exports}n.amdD=function(){throw new Error("define cannot be used indirect")},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{"use strict";var e=n(7841),t=n(3961),a="left",s="right",i=0,r=1,o=2,l=3,c=4,h="none",d="primary",u="success",p="warning",m="danger",f="bottom",v="bottom-left",g="bottom-right",b="left",y="left-bottom",_="left-top",w="right",C="right-bottom",E="right-top",S="top",k="top-left",z="top-right";var M={}.BLUEPRINT_NAMESPACE||{}.REACT_APP_BLUEPRINT_NAMESPACE||"bp3",x=M+"-active",A=M+"-align-left",T=M+"-align-right",L=M+"-dark",P=M+"-disabled",H=M+"-fill",N=M+"-fixed",O=M+"-large",V=M+"-loading",D=M+"-minimal",I=M+"-outlined",R=M+"-round",B=M+"-small",F=M+"-vertical",X=(Ze(S),Ze(f),Ze(b),Ze(w),Qe(i),Qe(r),Qe(o),Qe(l),Qe(c),Ye(d)),K=(Ye(u),Ye(p),Ye(m),M+"-focus-disabled"),U=M+"-text-overflow-ellipsis",G=M+"-blockquote",j=M+"-code",W=M+"-code-block",Q=M+"-heading",Y=M+"-list",Z=M+"-button",q=Z+"-group",J=Z+"-spinner",$=Z+"-text",ee=M+"-control-group",te=M+"-dialog",ne=te+"-container",ae=te+"-close-button",se=te+"-header",ie=M+"-divider",re=M+"-html-select",oe=M+"-input",le=oe+"-group",ce=oe+"-left-container",he=oe+"-action",de=M+"-label",ue=M+"-menu",pe=ue+"-item",me=pe+"-label",fe=M+"-submenu",ve=ue+"-divider",ge=ue+"-header",be=M+"-numeric-input",ye=M+"-overlay",_e=ye+"-backdrop",we=ye+"-content",Ce=ye+"-inline",Ee=ye+"-open",Se=ye+"-scroll-container",ke=M+"-popover",ze=ke+"-arrow",Me=ke+"-backdrop",xe=ke+"-capturing-dismiss",Ae=ke+"-content",Te=ke+"-dismiss",Le=Te+"-override",Pe=ke+"-open",He=ke+"-target",Ne=ke+"-wrapper",Oe=M+"-transition-container",Ve=M+"-portal",De=M+"-spinner",Ie=De+"-animation",Re=De+"-head",Be=M+"-no-spin",Fe=De+"-track",Xe=M+"-toast",Ke=Xe+"-container",Ue=Xe+"-message",Ge=M+"-tooltip",je=M+"-icon";function We(e){switch(e){case a:return A;case s:return T;default:return}}function Qe(e){if(void 0!==e)return M+"-elevation-"+e}function Ye(e){if(null!=e&&e!==h)return M+"-intent-"+e.toLowerCase()}function Ze(e){if(void 0!==e)return M+"-position-"+e}var qe=function(){function e(e,t){var n=this;this.container=e,this.className=t,this.isRunning=!1,this.handleKeyDown=function(e){9===e.which&&(n.reset(),n.container.addEventListener("mousedown",n.handleMouseDown))},this.handleMouseDown=function(){n.reset(),n.container.classList.add(n.className),n.container.addEventListener("keydown",n.handleKeyDown)}}return e.prototype.isActive=function(){return this.isRunning},e.prototype.start=function(){this.container.addEventListener("mousedown",this.handleMouseDown),this.isRunning=!0},e.prototype.stop=function(){this.reset(),this.isRunning=!1},e.prototype.reset=function(){this.container.classList.remove(this.className),this.container.removeEventListener("keydown",this.handleKeyDown),this.container.removeEventListener("mousedown",this.handleMouseDown)},e}(),Je="undefined"!=typeof document?new qe(document.documentElement,K):{isActive:function(){return!0},start:function(){return!0},stop:function(){return!0}},$e=function(){return Je.start()};function et(e,t){return et=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},et(e,t)}function tt(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,et(e,t)}function nt(){return nt=Object.assign||function(e){for(var t=1;t=0;h--){var d=s[h];"."===d?st(s,h):".."===d?(st(s,h),c++):c&&(st(s,h),c--)}if(!o)for(;c--;c)s.unshift("..");!o||""===s[0]||s[0]&&at(s[0])||s.unshift("");var u=s.join("/");return n&&"/"!==u.substr(-1)&&(u+="/"),u};function rt(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const ot=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,a){return e(t,n[a])}));if("object"==typeof t||"object"==typeof n){var a=rt(t),s=rt(n);return a!==t||s!==n?e(a,s):Object.keys(Object.assign({},t,n)).every((function(a){return e(t[a],n[a])}))}return!1};var lt="Invariant failed";function ct(e,t){if(!e)throw new Error(lt)}function ht(e){return"/"===e.charAt(0)?e:"/"+e}function dt(e){return"/"===e.charAt(0)?e.substr(1):e}function ut(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function pt(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function mt(e){var t=e.pathname,n=e.search,a=e.hash,s=t||"/";return n&&"?"!==n&&(s+="?"===n.charAt(0)?n:"?"+n),a&&"#"!==a&&(s+="#"===a.charAt(0)?a:"#"+a),s}function ft(e,t,n,a){var s;"string"==typeof e?(s=function(e){var t=e||"/",n="",a="",s=t.indexOf("#");-1!==s&&(a=t.substr(s),t=t.substr(0,s));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===a?"":a}}(e),s.state=t):(void 0===(s=nt({},e)).pathname&&(s.pathname=""),s.search?"?"!==s.search.charAt(0)&&(s.search="?"+s.search):s.search="",s.hash?"#"!==s.hash.charAt(0)&&(s.hash="#"+s.hash):s.hash="",void 0!==t&&void 0===s.state&&(s.state=t));try{s.pathname=decodeURI(s.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+s.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(s.key=n),a?s.pathname?"/"!==s.pathname.charAt(0)&&(s.pathname=it(s.pathname,a.pathname)):s.pathname=a.pathname:s.pathname||(s.pathname="/"),s}function vt(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,a,s){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof a?a(i,s):s(!0):s(!1!==i)}else s(!0)},appendListener:function(e){var n=!0;function a(){n&&e.apply(void 0,arguments)}return t.push(a),function(){n=!1,t=t.filter((function(e){return e!==a}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),a=0;at?n.splice(t,n.length-t,s):n.push(s),h({action:a,location:s,index:t,entries:n})}}))},replace:function(e,t){var a="REPLACE",s=ft(e,t,d(),v.location);c.confirmTransitionTo(s,a,n,(function(e){e&&(v.entries[v.index]=s,h({action:a,location:s}))}))},go:f,goBack:function(){f(-1)},goForward:function(){f(1)},canGo:function(e){var t=v.index+e;return t>=0&&t=0||(s[n]=e[n]);return s}n(1281);var Ft=function(e){var t=Dt();return t.displayName=e,t},Xt=Ft("Router-History"),Kt=function(e){var t=Dt();return t.displayName=e,t},Ut=Kt("Router"),Gt=function(t){function n(e){var n;return(n=t.call(this,e)||this).state={location:e.history.location},n._isMounted=!1,n._pendingLocation=null,e.staticContext||(n.unlisten=e.history.listen((function(e){n._isMounted?n.setState({location:e}):n._pendingLocation=e}))),n}tt(n,t),n.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var a=n.prototype;return a.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},a.componentWillUnmount=function(){this.unlisten&&this.unlisten()},a.render=function(){return e.createElement(Ut.Provider,{value:{history:this.props.history,location:this.state.location,match:n.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},e.createElement(Xt.Provider,{children:this.props.children||null,value:this.props.history}))},n}(e.Component);e.Component;var jt=function(e){function t(){return e.apply(this,arguments)||this}tt(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(e.Component);var Wt={},Qt=0;function Yt(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(Wt[e])return Wt[e];var t=Rt().compile(e);return Qt<1e4&&(Wt[e]=t,Qt++),t}(e)(t,{pretty:!0})}function Zt(t){var n=t.computedMatch,a=t.to,s=t.push,i=void 0!==s&&s;return e.createElement(Ut.Consumer,null,(function(t){t||ct(!1);var s=t.history,r=t.staticContext,o=i?s.push:s.replace,l=ft(n?"string"==typeof a?Yt(a,n.params):nt({},a,{pathname:Yt(a.pathname,n.params)}):a);return r?(o(l),null):e.createElement(jt,{onMount:function(){o(l)},onUpdate:function(e,t){var n,a,s=ft(t.to);n=s,a=nt({},l,{key:s.key}),n.pathname===a.pathname&&n.search===a.search&&n.hash===a.hash&&n.key===a.key&&ot(n.state,a.state)||o(l)},to:a})}))}var qt={},Jt=0;function $t(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,a=n.path,s=n.exact,i=void 0!==s&&s,r=n.strict,o=void 0!==r&&r,l=n.sensitive,c=void 0!==l&&l;return[].concat(a).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var a=function(e,t){var n=""+t.end+t.strict+t.sensitive,a=qt[n]||(qt[n]={});if(a[e])return a[e];var s=[],i={regexp:Rt()(e,s,t),keys:s};return Jt<1e4&&(a[e]=i,Jt++),i}(n,{end:i,strict:o,sensitive:c}),s=a.regexp,r=a.keys,l=s.exec(e);if(!l)return null;var h=l[0],d=l.slice(1),u=e===h;return i&&!u?null:{path:n,url:"/"===n&&""===h?"/":h,isExact:u,params:r.reduce((function(e,t,n){return e[t.name]=d[n],e}),{})}}),null)}var en=function(t){function n(){return t.apply(this,arguments)||this}return tt(n,t),n.prototype.render=function(){var t=this;return e.createElement(Ut.Consumer,null,(function(n){n||ct(!1);var a=t.props.location||n.location,s=nt({},n,{location:a,match:t.props.computedMatch?t.props.computedMatch:t.props.path?$t(a.pathname,t.props):n.match}),i=t.props,r=i.children,o=i.component,l=i.render;return Array.isArray(r)&&0===r.length&&(r=null),e.createElement(Ut.Provider,{value:s},s.match?r?"function"==typeof r?r(s):r:o?e.createElement(o,s):l?l(s):null:"function"==typeof r?r(s):null)}))},n}(e.Component);function tn(e){return"/"===e.charAt(0)?e:"/"+e}function nn(e,t){if(!e)return t;var n=tn(e);return 0!==t.pathname.indexOf(n)?t:nt({},t,{pathname:t.pathname.substr(n.length)})}function an(e){return"string"==typeof e?e:mt(e)}function sn(e){return function(){ct(!1)}}function rn(){}e.Component;e.Component;e.useContext;e.Component;var on=function(t){function n(){for(var e,n=arguments.length,a=new Array(n),s=0;s=0;o--)(s=e[o])&&(r=(i<3?s(r):i>3?s(t,n,r):s(t,n))||r);return i>3&&r&&Object.defineProperty(t,n,r),r}function Cn(){for(var e=0,t=0,n=arguments.length;t0){for(var e=0,t=a.timeoutIds;e0){for(var e=0,t=a.requestIds;e0?e.createElement(n,{},t):void 0:"number"==typeof t||"symbol"==typeof t.type||Array.isArray(t)?e.createElement(n,{},t):function(e){return"object"==typeof e&&void 0!==e.type&&void 0!==e.props}(t)?t:void 0}function Vn(e,t){return null!=e&&null!=e.type&&null!=e.type.displayName&&e.type.displayName===t.displayName}function Dn(){return void 0!==e.createRef?e.createRef():{current:null}}var In=n(9018),Rn={add:["M10.99 6.99h-2v-2c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1zm-3-7c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.68 6-6 6z"],"add-column-left":["M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 14H2V2h8v12zm4 0h-3V2h3v12zM4 9h1v1c0 .55.45 1 1 1s1-.45 1-1V9h1c.55 0 1-.45 1-1s-.45-1-1-1H7V6c0-.55-.45-1-1-1s-1 .45-1 1v1H4c-.55 0-1 .45-1 1s.45 1 1 1z"],"add-column-right":["M8 9h1v1c0 .55.45 1 1 1s1-.45 1-1V9h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V6c0-.55-.45-1-1-1s-1 .45-1 1v1H8c-.55 0-1 .45-1 1s.45 1 1 1zm7-9H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 14H2V2h3v12zm9 0H6V2h8v12z"],"add-location":["M8 0a1 1 0 110 2 6 6 0 106 6 1 1 0 012 0 8 8 0 11-8-8zm0 5a3 3 0 110 6 3 3 0 010-6zm5-5a1 1 0 011 1v.999L15 2a1 1 0 010 2h-1v1a1 1 0 01-2 0V4h-1a1 1 0 010-2h1V1a1 1 0 011-1z"],"add-row-bottom":["M6 11h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1s-.45-1-1-1H9V8c0-.55-.45-1-1-1s-1 .45-1 1v1H6c-.55 0-1 .45-1 1s.45 1 1 1zm9-11H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V6h12v8zm0-9H2V2h12v3z"],"add-row-top":["M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2v-3h12v3zm0-4H2V2h12v8zM6 7h1v1c0 .55.45 1 1 1s1-.45 1-1V7h1c.55 0 1-.45 1-1s-.45-1-1-1H9V4c0-.55-.45-1-1-1s-1 .45-1 1v1H6c-.55 0-1 .45-1 1s.45 1 1 1z"],"add-to-artifact":["M14 4.01h-1v-1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1 0-.56-.45-1-1-1zm-13 2h6c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm8 6H1c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1 0-.56-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1 0-.56-.45-1-1-1z"],"add-to-folder":["M.01 7V5H16v7c0 .55-.45 1-1 1H9.005v-2.99C8.974 8.332 7.644 7 5.996 7H.01zM15 2H7.416L5.706.29a.996.996 0 00-.71-.29H1C.45 0 0 .45 0 1v3h15.99V3c.01-.55-.44-1-.99-1zM5.997 9H2c-.55 0-1 .45-1 1s.45 1 1 1h1.589L.3 14.29a1.003 1.003 0 001.42 1.42l3.287-3.29v1.59c0 .55.45 1 1 1 .549 0 .999-.45.999-1v-4A1.02 1.02 0 005.996 9z"],airplane:["M16 1.5A1.498 1.498 0 0013.44.44L9.91 3.97 2 1 1 3l5.93 3.95L3.88 10H1l-1 1 3 2 2 3 1-1v-2.88l3.05-3.05L13 15l2-1-2.97-7.91 3.53-3.53c.27-.27.44-.65.44-1.06z"],"align-center":["M4 4c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1H4zM1 3h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm13 10H2c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm1-6H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-5 5c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1h4z"],"align-justify":["M15 12.98H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-14-10h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1 0 .56.45 1 1 1zm14 4H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-3H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0 6H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],"align-left":["M13 13H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zM1 3h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm0 3h8c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 1H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM1 12h4c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1z"],"align-right":["M15 12.98H3c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm-14-10h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1 0 .56.45 1 1 1zm14 1H7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm0 6h-4c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1zm0-3H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],"alignment-bottom":["M10 12h3c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm5 2H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM3 12h3c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1z"],"alignment-horizontal-center":["M15 7h-1V6c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v1H7V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4H1c-.55 0-1 .45-1 1s.45 1 1 1h1v4c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V9h2v1c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V9h1c.55 0 1-.45 1-1s-.45-1-1-1z"],"alignment-left":["M9 9H5c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zM1 0C.45 0 0 .45 0 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm13 2H5c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"],"alignment-right":["M11 9H7c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm4-9c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-4 2H2c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"],"alignment-top":["M15 0H1C.45 0 0 .45 0 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM6 4H3c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm7 0h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z"],"alignment-vertical-center":["M13 2H9V1c0-.55-.45-1-1-1S7 .45 7 1v1H3c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h4v2H6c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1H9V7h4c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"],annotation:["M15.52 2.77c.3-.29.48-.7.48-1.15C16 .73 15.27 0 14.38 0c-.45 0-.85.18-1.15.48l-1.34 1.34 2.3 2.3 1.33-1.35zM7.4 10.9l6.21-6.21-2.3-2.3L5.1 8.6l2.3 2.3zM14 14H2V2h6.34l2-2H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V5.66l-2 2V14zM3 13l3.58-1.29-2.29-2.27L3 13z"],"app-header":["M15 0a1 1 0 011 1v14a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h14zM6 4a1 1 0 00-1.993-.117L4 4v8a1 1 0 001.993.117L6 12V9h4v3a1 1 0 001.993.117L12 12V4a1 1 0 00-1.993-.117L10 4v3H6V4z"],application:["M3.5 7h7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-7c-.28 0-.5.22-.5.5s.22.5.5.5zM15 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm-1 12H2V5h12v8zM3.5 9h4c.28 0 .5-.22.5-.5S7.78 8 7.5 8h-4c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-5c-.28 0-.5.22-.5.5s.22.5.5.5z"],applications:["M3.5 11h2c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-2c-.28 0-.5.22-.5.5s.22.5.5.5zm0-2h5c.28 0 .5-.22.5-.5S8.78 8 8.5 8h-5c-.28 0-.5.22-.5.5s.22.5.5.5zM11 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 10H2V7h8v7zm5-14H5c-.55 0-1 .45-1 1v2h2V2h8v7h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM3.5 13h3c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-3c-.28 0-.5.22-.5.5s.22.5.5.5z"],archive:["M13.382 0a1 1 0 01.894.553L16 4v11a1 1 0 01-1 1H1a1 1 0 01-1-1V4L1.724.553A1 1 0 012.618 0h10.764zM8 6c-.55 0-1 .45-1 1v2.59l-.29-.29-.081-.076A.97.97 0 006 9a1.003 1.003 0 00-.71 1.71l2 2 .096.084c.168.13.38.206.614.206.28 0 .53-.11.71-.29l2-2 .084-.096A1.003 1.003 0 009.29 9.29l-.29.3V7l-.007-.116A1.004 1.004 0 008 6zm5-4H3L2 4h12l-1-2z"],array:["M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm4 7a1 1 0 110 2 1 1 0 010-2zM5 7a1 1 0 110 2 1 1 0 010-2zm6 0a1 1 0 110 2 1 1 0 010-2z"],"array-boolean":["M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm7 6a1 1 0 01.993.883L12 7v2a1 1 0 01-.883.993L11 10H5a1 1 0 01-.993-.883L4 9V7a1 1 0 01.883-.993L5 6h6zm0 1H8v2h3V7z"],"array-date":["M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm6.5 4a.5.5 0 01.5.5V5a1 1 0 01.993.883L12 6v5a1 1 0 01-.883.993L11 12H5a1 1 0 01-.993-.883L4 11V6a1 1 0 01.883-.993L5 5v-.5a.5.5 0 011 0V5h4v-.5a.5.5 0 01.5-.5zm.5 3H5v4h6V7z"],"array-numeric":["M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm6.904 5c.256 0 .483.037.68.112a1.343 1.343 0 01.812.788c.072.184.108.385.108.604 0 .23-.05.441-.152.636a1.314 1.314 0 01-.456.492v.016l.08.04c.055.031.111.072.168.124.085.077.163.172.232.284a1.673 1.673 0 01.24.872c0 .25-.043.477-.128.68a1.518 1.518 0 01-.896.852 1.937 1.937 0 01-.68.116c-.427 0-.792-.101-1.096-.304a1.362 1.362 0 01-.584-.864c-.01-.053.01-.088.064-.104l.696-.16.033-.002c.03.002.051.022.063.058.059.16.155.296.288.408.133.112.312.168.536.168.256 0 .453-.076.592-.228a.827.827 0 00.208-.58c0-.277-.08-.495-.24-.652-.16-.157-.376-.236-.648-.236h-.232l-.035-.005c-.03-.01-.045-.035-.045-.075v-.632l.005-.035c.01-.03.035-.045.075-.045h.216l.138-.009a.734.734 0 00.438-.207c.144-.144.216-.336.216-.576a.745.745 0 00-.192-.532c-.128-.136-.307-.204-.536-.204-.203 0-.363.05-.48.152a.815.815 0 00-.248.408c-.016.048-.048.067-.096.056l-.68-.16-.034-.012c-.028-.016-.038-.044-.03-.084a1.347 1.347 0 01.516-.828c.136-.104.296-.185.48-.244A1.98 1.98 0 0110.904 5zm-6.152.088l.035.005c.03.01.045.035.045.075v5.28l-.005.035c-.01.03-.035.045-.075.045h-.736l-.035-.005c-.03-.01-.045-.035-.045-.075V6.16H3.92l-.832.584-.032.016C3.02 6.773 3 6.751 3 6.696V5.88l.006-.04a.157.157 0 01.05-.072l.872-.632.04-.027a.236.236 0 01.104-.021h.68zM7.344 5c.256 0 .483.04.68.12.197.08.364.188.5.324s.24.296.312.48c.072.184.108.383.108.596 0 .245-.045.47-.136.676-.09.205-.216.404-.376.596l-1.584 1.92v.016h2.016l.035.005c.03.01.045.035.045.075v.64l-.005.035c-.01.03-.035.045-.075.045H5.808l-.035-.005c-.03-.01-.045-.035-.045-.075v-.6l.004-.04a.132.132 0 01.036-.064l1.92-2.392.1-.133a1.95 1.95 0 00.156-.267.985.985 0 00.096-.432.736.736 0 00-.188-.512c-.125-.139-.303-.208-.532-.208-.219 0-.39.061-.512.184a.826.826 0 00-.224.496c-.01.053-.04.075-.088.064L5.792 6.4l-.034-.012c-.028-.016-.038-.044-.03-.084a1.425 1.425 0 01.94-1.192A1.88 1.88 0 017.344 5z"],"array-string":["M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm1.61 5c.514 0 .962.212 1.343.637.382.425.573.997.573 1.716 0 .838-.258 1.588-.773 2.252-.514.663-1.327 1.2-2.437 1.609v-.465l.233-.095a3.09 3.09 0 001.274-1.017c.366-.505.55-1.03.55-1.577a.478.478 0 00-.057-.26c-.018-.037-.043-.056-.074-.056s-.08.025-.149.075c-.198.142-.446.214-.744.214-.36 0-.675-.145-.944-.433A1.453 1.453 0 014 6.572c0-.422.155-.79.465-1.102.31-.313.692-.47 1.144-.47zm4.474 0c.514 0 .963.212 1.344.637.381.425.572.997.572 1.716 0 .838-.257 1.588-.772 2.252-.515.663-1.327 1.2-2.437 1.609v-.465l.233-.095a3.09 3.09 0 001.274-1.017c.366-.505.549-1.03.549-1.577a.478.478 0 00-.056-.26c-.019-.037-.044-.056-.075-.056-.03 0-.08.025-.149.075-.198.142-.446.214-.744.214-.36 0-.674-.145-.944-.433a1.453 1.453 0 01-.405-1.028c0-.422.155-.79.466-1.102.31-.313.691-.47 1.144-.47z"],"array-timestamp":["M15 0a1 1 0 01.993.883L16 1v14a1 1 0 01-.883.993L15 16h-3a1 1 0 01-.117-1.993L12 14h2V2h-2a1 1 0 01-.993-.883L11 1a1 1 0 01.883-.993L12 0h3zM4 0a1 1 0 01.117 1.993L4 2H2v12h2a1 1 0 01.993.883L5 15a1 1 0 01-.883.993L4 16H1a1 1 0 01-.993-.883L0 15V1A1 1 0 01.883.007L1 0h3zm4 3a5 5 0 110 10A5 5 0 018 3zm0 1a4 4 0 100 8 4 4 0 000-8zm2.354 1.646a.5.5 0 01.057.638l-.057.07-2 2a.5.5 0 01-.638.057l-.07-.057-1-1a.5.5 0 01.638-.765l.07.057.646.647 1.646-1.647a.5.5 0 01.708 0z"],"arrow-bottom-left":["M14 3a1.003 1.003 0 00-1.71-.71L4 10.59V6c0-.55-.45-1-1-1s-1 .45-1 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1H5.41l8.29-8.29c.19-.18.3-.43.3-.71z"],"arrow-bottom-right":["M13 5c-.55 0-1 .45-1 1v4.59l-8.29-8.3a1.003 1.003 0 00-1.42 1.42l8.3 8.29H6c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z"],"arrow-down":["M13 8c-.3 0-.5.1-.7.3L9 11.6V2c0-.5-.4-1-1-1s-1 .5-1 1v9.6L3.7 8.3C3.5 8.1 3.3 8 3 8c-.5 0-1 .5-1 1 0 .3.1.5.3.7l5 5c.2.2.4.3.7.3s.5-.1.7-.3l5-5c.2-.2.3-.4.3-.7 0-.6-.4-1-1-1z"],"arrow-left":["M13.99 6.99H4.41L7.7 3.7a1.003 1.003 0 00-1.42-1.42l-5 5a1.014 1.014 0 000 1.42l5 5a1.003 1.003 0 001.42-1.42L4.41 8.99H14c.55 0 1-.45 1-1s-.46-1-1.01-1z"],"arrow-right":["M14.7 7.29l-5-5a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l3.29 3.29H1.99c-.55 0-1 .45-1 1s.45 1 1 1h9.59l-3.29 3.29a1.003 1.003 0 001.42 1.42l5-5c.18-.18.29-.43.29-.71s-.12-.52-.3-.7z"],"arrow-top-left":["M13.71 12.29L5.41 4H10c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1s1-.45 1-1V5.41l8.29 8.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],"arrow-top-right":["M13 2H6c-.55 0-1 .45-1 1s.45 1 1 1h4.59L2.3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L12 5.41V10c0 .55.45 1 1 1s1-.45 1-1V3c0-.55-.45-1-1-1z"],"arrow-up":["M13.7 6.3l-5-5C8.5 1.1 8.3 1 8 1s-.5.1-.7.3l-5 5c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3L7 4.4V14c0 .6.4 1 1 1s1-.4 1-1V4.4l3.3 3.3c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7z"],"arrows-horizontal":["M15.7 7.3l-4-4c-.2-.2-.4-.3-.7-.3-.6 0-1 .5-1 1 0 .3.1.5.3.7L12.6 7H3.4l2.3-2.3c.2-.2.3-.4.3-.7 0-.5-.4-1-1-1-.3 0-.5.1-.7.3l-4 4c-.2.2-.3.4-.3.7s.1.5.3.7l4 4c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7L3.4 9h9.2l-2.3 2.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l4-4c.2-.2.3-.4.3-.7s-.1-.5-.3-.7z"],"arrows-vertical":["M12 10c-.3 0-.5.1-.7.3L9 12.6V3.4l2.3 2.3c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7l-4-4C8.5.1 8.3 0 8 0s-.5.1-.7.3l-4 4c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3L7 3.4v9.2l-2.3-2.3c-.2-.2-.4-.3-.7-.3-.5 0-1 .4-1 1 0 .3.1.5.3.7l4 4c.2.2.4.3.7.3s.5-.1.7-.3l4-4c.2-.2.3-.4.3-.7 0-.6-.4-1-1-1z"],asterisk:["M14.54 11.18l.01-.02L9.8 8l4.75-3.17-.01-.02c.27-.17.46-.46.46-.81 0-.55-.45-1-1-1-.21 0-.39.08-.54.18l-.01-.02L9 6.13V1c0-.55-.45-1-1-1S7 .45 7 1v5.13L2.55 3.17l-.01.01A.969.969 0 002 3c-.55 0-1 .45-1 1 0 .35.19.64.46.82l-.01.01L6.2 8l-4.75 3.17.01.02c-.27.17-.46.46-.46.81 0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02L7 9.87V15c0 .55.45 1 1 1s1-.45 1-1V9.87l4.45 2.96.01-.02c.15.11.33.19.54.19.55 0 1-.45 1-1 0-.35-.19-.64-.46-.82z"],"automatic-updates":["M8 14c-3.31 0-6-2.69-6-6 0-1.77.78-3.36 2-4.46V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1s.45 1 1 1h1.74A7.95 7.95 0 000 8c0 4.42 3.58 8 8 8 .55 0 1-.45 1-1s-.45-1-1-1zM8 2a5.9 5.9 0 012.95.81l1.47-1.47A7.893 7.893 0 008 0c-.55 0-1 .45-1 1s.45 1 1 1zm2.71 6.71l5-5a1.003 1.003 0 00-1.42-1.42L10 6.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42l2 2c.18.18.43.29.71.29s.53-.11.71-.29zM16 8c0-.55-.06-1.08-.16-1.6l-1.87 1.87A5.966 5.966 0 0112 12.45V11c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1h-1.74A7.95 7.95 0 0016 8z"],backlink:["M14 10a1 1 0 110 2h-.585l2.292 2.293a1 1 0 01-1.32 1.497l-.094-.083L12 13.415V14a1 1 0 11-2 0l.003-3.075.012-.1.012-.059.033-.108.034-.081.052-.098.067-.096.08-.09a1.01 1.01 0 01.112-.097l.11-.071.143-.065.076-.024.091-.02.116-.014L14 10zM6.036 6.136l-3.45 3.45-.117.127a2 2 0 002.818 2.818l.127-.117 3.45-3.449a4 4 0 01-.885 3.704l-.15.16-1 1A4 4 0 011.02 8.33l.15-.16 1-1a3.998 3.998 0 013.865-1.035zm4.671-1.843a1 1 0 01.083 1.32l-.083.094-5 5a1 1 0 01-1.497-1.32l.083-.094 5-5a1 1 0 011.414 0zm3.121-3.121a4 4 0 01.151 5.497l-.15.16-1 1a3.998 3.998 0 01-3.864 1.036l3.45-3.45.116-.128a2 2 0 00-2.818-2.818l-.127.117-3.45 3.45A4 4 0 017.02 2.33l.15-.16 1-1a4 4 0 015.657 0z"],badge:["M13.36 4.59c-.15-1.13.5-2.01 1.1-2.87L13.43.53c-1.72.88-4.12.65-5.63-.53-1.51 1.18-3.91 1.41-5.63.52l-1.03 1.2c.61.86 1.25 1.74 1.1 2.87-.3 2.29-2.45 4.17-1.32 6.68.45 1.14 1.44 1.9 2.72 2.2 1.56.36 3.52.72 4.16 2.53.64-1.81 2.6-2.16 4.16-2.54 1.28-.3 2.27-1.06 2.72-2.2 1.12-2.5-1.03-4.38-1.32-6.67z"],"ban-circle":["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm3 9H5c-.55 0-1-.45-1-1s.45-1 1-1h6c.55 0 1 .45 1 1s-.45 1-1 1z"],"bank-account":["M15.36 6.46l-.62-.14c-.31-1.12-.98-2.15-1.87-2.99l.4-1.77a.438.438 0 00-.49-.56c-.85.09-1.6.42-2.14.98-.84-.32-1.87-.51-2.85-.51-2.49 0-4.63 1.17-5.92 2.89-.18-.04-.36-.09-.53-.09-.76 0-1.34.61-1.34 1.4 0 .56.31 1.03.76 1.26-.05.33-.09.7-.09 1.07 0 1.68.71 3.17 1.83 4.34l-.27 1.59c-.09.56.35 1.07.89 1.07h.58c.45 0 .8-.33.89-.79l.04-.37c.94.42 2 .7 3.16.7 1.11 0 2.23-.23 3.16-.7l.05.37c.09.47.45.79.89.79h.58c.53 0 .98-.51.89-1.07l-.27-1.54c.62-.61 1.07-1.35 1.38-2.15l.8-.19c.4-.09.71-.47.71-.93V7.4c.09-.47-.22-.84-.62-.94zM12 8c-.6 0-1-.7-1-1.5S11.4 5 12 5s1 .7 1 1.5S12.6 8 12 8zM6.21 4.92c-.41.2-.91.04-1.12-.36-.21-.4-.04-.88.37-1.07 1.35-.65 2.73-.65 4.08 0 .41.2.58.68.37 1.07-.21.4-.71.56-1.12.36-.87-.43-1.71-.43-2.58 0z"],barcode:["M0 14h2V2H0v12zm6 0h1V2H6v12zm2 0h1V2H8v12zm-5 0h2V2H3v12zM15 2v12h1V2h-1zm-5 12h1V2h-1v12zm2 0h2V2h-2v12z"],blank:[],"blocked-person":["M9.39 12.69c-1.2-.53-1.04-.85-1.08-1.29-.01-.07-.01-.13-.02-.2.41-.37.75-.87.97-1.44 0 0 .01-.03.01-.04.05-.13.09-.26.13-.39.27-.06.43-.36.5-.63.01-.03.03-.08.05-.12C8.18 7.8 6.94 6.04 6.94 4c0-.32.04-.62.09-.92-.17-.03-.35-.08-.51-.08-.65 0-1.37.2-1.88.59-.5.38-.87.92-1.05 1.51-.04.14-.07.27-.09.41-.09.48-.14 1.23-.14 1.74v.06c-.19.08-.36.27-.4.68-.03.31.1.59.16.7.06.28.23.59.51.64.04.14.08.27.13.39 0 .01.01.02.01.02v.01c.22.59.57 1.1.99 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.12 1.29-1.2.53-3.01 1.1-3.38 1.95C-.12 15.5.03 16 .03 16h12.96s.15-.5-.22-1.36c-.37-.85-2.18-1.42-3.38-1.95zM11.97 0C9.75 0 7.94 1.79 7.94 4s1.8 4 4.03 4S16 6.21 16 4s-1.8-4-4.03-4zM9.96 4c0-1.1.9-2 2.01-2 .37 0 .72.11 1.02.28l-2.75 2.73c-.17-.3-.28-.64-.28-1.01zm2.01 2c-.37 0-.72-.11-1.02-.28l2.75-2.73c.18.3.28.64.28 1.01.01 1.1-.9 2-2.01 2z"],bold:["M11.7 7c.2-.4.3-1 .3-1.5v-.4V5c0-.1 0-.2-.1-.3v-.1C11.4 3.1 10.1 2 8.5 2H4c-.5 0-1 .4-1 1v10c0 .5.4 1 1 1h5c2.2 0 4-1.8 4-4 0-1.2-.5-2.3-1.3-3zM6 5h2c.6 0 1 .4 1 1s-.4 1-1 1H6V5zm3 6H6V9h3c.6 0 1 .4 1 1s-.4 1-1 1z"],book:["M2 1v14c0 .55.45 1 1 1h1V0H3c-.55 0-1 .45-1 1zm11-1h-1v7l-2-2-2 2V0H5v16h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],bookmark:["M11.2.01h-.15C11.03.01 11.02 0 11 0H5c-.02 0-.03.01-.05.01H4.8c-.44 0-.8.37-.8.82v14.75c0 .45.25.56.57.24l2.87-2.94c.31-.32.82-.32 1.13 0l2.87 2.94c.31.32.57.21.57-.24V.83C12 .38 11.64.01 11.2.01z"],box:["M6 10h4c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1zm9.93-4.37v-.02L13.94.63C13.78.26 13.42 0 13 0H3c-.42 0-.78.26-.93.63L.08 5.61l-.01.02C.03 5.74 0 5.87 0 6v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.13-.03-.26-.07-.37zM9 2h3.32l1.2 3H9V2zM3.68 2H7v3H2.48l1.2-3zM14 14H2V7h12v7z"],briefcase:["M15 3.98h-3v-2c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v4h3v-1h2v1h6v-1h2v1h3v-4c0-.55-.45-1-1-1zm-5 0H6v-1h4v1zm3 7h-2v-1H5v1H3v-1H0v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-4h-3v1z"],"bring-data":["M14 14a1 1 0 010 2H2a1 1 0 010-2h12zM7.995 3.005c.55 0 1 .45 1 .999v5.584l1.29-1.288a1.002 1.002 0 011.42 1.419l-3 2.996a1.015 1.015 0 01-1.42 0l-3-2.997A1.002 1.002 0 015.705 8.3l1.29 1.29V4.013c0-.55.45-1.009 1-1.009zM14 0a1 1 0 110 2 1 1 0 010-2zm-3 0a1 1 0 110 2 1 1 0 010-2zM8 0a1 1 0 110 2 1 1 0 010-2zM5 0a1 1 0 110 2 1 1 0 010-2zM2 0a1 1 0 110 2 1 1 0 010-2z"],build:["M15.39 12.41L7.7 6l1.07-1.1c.34-.34-.12-.63.12-1.26.88-2.17 3.41-2.35 3.41-2.35s.36-.37.71-.72C9.74-.81 7.53.53 6.54 1.4L3.12 4.9l-.71.72c-.39.4-.39 1.05 0 1.45l-.7.72c-.39-.4-1.02-.4-1.41 0s-.39 1.05 0 1.45l1.41 1.45c.39.4 1.02.4 1.41 0s.39-1.05 0-1.45l.71-.72c.39.4 1.02.4 1.41 0l.8-.82 6.39 7.67c.82.82 2.14.82 2.96 0 .81-.82.81-2.15 0-2.96z"],calculator:["M13 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM6 14H4v-2h2v2zm0-3H4V9h2v2zm0-3H4V6h2v2zm3 6H7v-2h2v2zm0-3H7V9h2v2zm0-3H7V6h2v2zm3 6h-2V9h2v5zm0-6h-2V6h2v2zm0-3H4V2h8v3z"],calendar:["M11 3c.6 0 1-.5 1-1V1c0-.6-.4-1-1-1s-1 .4-1 1v1c0 .5.4 1 1 1zm3-2h-1v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H6v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H1c-.6 0-1 .5-1 1v12c0 .6.4 1 1 1h13c.6 0 1-.4 1-1V2c0-.6-.5-1-1-1zM5 13H2v-3h3v3zm0-4H2V6h3v3zm4 4H6v-3h3v3zm0-4H6V6h3v3zm4 4h-3v-3h3v3zm0-4h-3V6h3v3zM4 3c.6 0 1-.5 1-1V1c0-.6-.4-1-1-1S3 .4 3 1v1c0 .5.4 1 1 1z"],camera:["M15 3h-2.59L10.7 1.29A.956.956 0 0010 1H6c-.28 0-.53.11-.71.29L3.59 3H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h2.56c1.1 1.22 2.67 2 4.44 2s3.34-.78 4.44-2H15c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM3 6H1V5h2v1zm5 6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"caret-down":["M12 6.5c0-.28-.22-.5-.5-.5h-7a.495.495 0 00-.37.83l3.5 4c.09.1.22.17.37.17s.28-.07.37-.17l3.5-4c.08-.09.13-.2.13-.33z"],"caret-left":["M9.5 4c-.13 0-.24.05-.33.13l-4 3.5c-.1.09-.17.22-.17.37s.07.28.17.37l4 3.5a.495.495 0 00.83-.37v-7c0-.28-.22-.5-.5-.5z"],"caret-right":["M11 8c0-.15-.07-.28-.17-.37l-4-3.5A.495.495 0 006 4.5v7a.495.495 0 00.83.37l4-3.5c.1-.09.17-.22.17-.37z"],"caret-up":["M11.87 9.17s.01 0 0 0l-3.5-4C8.28 5.07 8.15 5 8 5s-.28.07-.37.17l-3.5 4a.495.495 0 00.37.83h7a.495.495 0 00.37-.83z"],"cell-tower":["M8.97 6.76c-.01-.05-.04-.08-.06-.13-.02-.05-.03-.1-.05-.15.08-.14.14-.3.14-.48 0-.55-.45-1-1-1s-1 .45-1 1c0 .18.06.34.14.48-.03.05-.03.1-.05.15-.02.05-.05.08-.06.13l-2 8c-.13.54.19 1.08.73 1.21a.995.995 0 001.21-.73L7.53 13h.94l.56 2.24a1 1 0 001.94-.48l-2-8zM3.72 1.7C4.1 1.3 4.09.67 3.7.28S2.67-.09 2.28.3c-3.05 3.12-3.05 8.28 0 11.4a.996.996 0 101.43-1.39c-2.28-2.35-2.28-6.27.01-8.61zM11.6 3.2c-.44-.33-1.07-.24-1.4.2-.33.44-.24 1.07.2 1.4.43.32.53 1.96-.04 2.43-.42.35-.48.98-.13 1.41.35.42.98.48 1.41.13 1.59-1.33 1.39-4.5-.04-5.57z","M13.72.3c-.39-.4-1.02-.4-1.41-.02s-.41 1.02-.03 1.42c2.29 2.34 2.29 6.26 0 8.6-.39.39-.38 1.03.02 1.41s1.03.38 1.41-.02c3.05-3.11 3.05-8.27.01-11.39zM5.4 7.23c-.57-.47-.47-2.11-.04-2.43.44-.33.53-.96.2-1.4s-.96-.53-1.4-.2c-1.44 1.07-1.63 4.24-.04 5.57.42.35 1.05.3 1.41-.13.35-.42.29-1.06-.13-1.41z"],changes:["M8.29 7.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L13 7.59V1c0-.55-.45-1-1-1s-1 .45-1 1v6.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42zM14.5 13h-13c-.83 0-1.5.67-1.5 1.5S.67 16 1.5 16h13c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5zM1 5c.28 0 .53-.11.71-.29L3 3.41V10c0 .55.45 1 1 1s1-.45 1-1V3.41L6.29 4.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3C4.53.11 4.28 0 4 0s-.53.11-.71.29l-3 3A1.003 1.003 0 001 5z"],chart:["M0 15c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V9.4L0 11v4zm6-5.5V15c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-5l-1 1-3-1.5zM13 7l-1 1v7c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V7.88c-.26.07-.58.12-1 .12-1.96 0-2-1-2-1zm2-6h-3c-.55 0-1 .45-1 1s.45 1 1 1h.59L8.8 6.78 5.45 5.11v.01C5.31 5.05 5.16 5 5 5s-.31.05-.44.11V5.1l-4 2v.01C.23 7.28 0 7.61 0 8c0 .55.45 1 1 1 .16 0 .31-.05.44-.11v.01L5 7.12 8.55 8.9v-.01c.14.06.29.11.45.11.28 0 .53-.11.71-.29L14 4.41V5c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z"],chat:["M6 10c-1.1 0-2-.9-2-2V3H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1v2a1.003 1.003 0 001.71.71L5.41 13H10c.55 0 1-.45 1-1v-1.17l-.83-.83H6zm9-10H6c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h4.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V9c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],"chevron-backward":["M7.41 8l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L6 6.59V4c0-.55-.45-1-1-1s-1 .45-1 1v8c0 .55.45 1 1 1s1-.45 1-1V9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L7.41 8z"],"chevron-down":["M12 5c-.28 0-.53.11-.71.29L8 8.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0012 5z"],"chevron-forward":["M10 3c-.55 0-1 .45-1 1v2.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L7.59 8 4.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L9 9.41V12c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z"],"chevron-left":["M7.41 8l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C5.11 7.47 5 7.72 5 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L7.41 8z"],"chevron-right":["M10.71 7.29l-4-4a1.003 1.003 0 00-1.42 1.42L8.59 8 5.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],"chevron-up":["M12.71 9.29l-4-4C8.53 5.11 8.28 5 8 5s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 7.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],circle:["M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6z"],"circle-arrow-down":["M11 7c-.28 0-.53.11-.71.29L9 8.59V5c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0011 7zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"],"circle-arrow-left":["M11 7H7.41L8.7 5.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C4.11 7.47 4 7.72 4 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L7.41 9H11c.55 0 1-.45 1-1s-.45-1-1-1zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"],"circle-arrow-right":["M8.71 4.29a1.003 1.003 0 00-1.42 1.42L8.59 7H5c-.55 0-1 .45-1 1s.45 1 1 1h3.59L7.3 10.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"],"circle-arrow-up":["M8.71 4.29C8.53 4.11 8.28 4 8 4s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L7 7.41V11c0 .55.45 1 1 1s1-.45 1-1V7.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"],citation:["M15.02 5c0-1.66-1.34-3-3-3s-3 1.34-3 3a2.996 2.996 0 003.6 2.94C12.1 9.76 11.14 11 10.02 11c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5-3.13 5-7 0-.2-.02-.39-.04-.58.01-.14.04-.28.04-.42zm-11-3c-1.66 0-3 1.34-3 3a2.996 2.996 0 003.6 2.94C4.1 9.76 3.14 11 2.02 11c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5-3.13 5-7 0-.2-.02-.39-.04-.58.01-.14.04-.28.04-.42 0-1.66-1.35-3-3-3z"],clean:["M12 8l-1.2 2.796-2.8 1.2 2.8 1.197L12 16l1.2-2.807L16 12l-2.8-1.204zM5 0L3.5 3.5 0 4.995 3.5 6.5 5 10l1.5-3.5L10 5 6.5 3.5z"],clipboard:["M11 2c0-.55-.45-1-1-1h.22C9.88.4 9.24 0 8.5 0S7.12.4 6.78 1H7c-.55 0-1 .45-1 1v1h5V2zm2 0h-1v2H5V2H4c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"],cloud:["M12 6c-.03 0-.07 0-.1.01A5 5 0 002 7c0 .11.01.22.02.33A3.51 3.51 0 000 10.5C0 12.43 1.57 14 3.5 14H12c2.21 0 4-1.79 4-4s-1.79-4-4-4z"],"cloud-download":["M11 11c-.28 0-.53.11-.71.29L9 12.59V8c0-.55-.45-1-1-1s-1 .45-1 1v4.59L5.71 11.3A.965.965 0 005 11a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0011 11zm1-7c-.03 0-.07 0-.1.01A5 5 0 002 5c0 .11.01.22.02.33A3.51 3.51 0 000 8.5c0 1.41.84 2.61 2.03 3.17C2.2 10.17 3.46 9 5 9c.06 0 .13.02.19.02C5.07 8.7 5 8.36 5 8c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .36-.07.7-.19 1.02.06 0 .13-.02.19-.02 1.48 0 2.7 1.07 2.95 2.47A3.964 3.964 0 0016 8c0-2.21-1.79-4-4-4z"],"cloud-upload":["M8.71 7.29C8.53 7.11 8.28 7 8 7s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L7 10.41V15c0 .55.45 1 1 1s1-.45 1-1v-4.59l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM12 4c-.03 0-.07 0-.1.01A5 5 0 002 5c0 .11.01.22.02.33a3.495 3.495 0 00.07 6.37c-.05-.23-.09-.46-.09-.7 0-.83.34-1.58.88-2.12l3-3a2.993 2.993 0 014.24 0l3 3c.54.54.88 1.29.88 2.12 0 .16-.02.32-.05.47C15.17 10.78 16 9.5 16 8c0-2.21-1.79-4-4-4z"],code:["M15.71 7.29l-3-3a1.003 1.003 0 00-1.42 1.42L13.59 8l-2.29 2.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM5 5a1.003 1.003 0 00-1.71-.71l-3 3C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L2.41 8 4.7 5.71c.19-.18.3-.43.3-.71zm4-3c-.48 0-.87.35-.96.81l-2 10c-.01.06-.04.12-.04.19 0 .55.45 1 1 1 .48 0 .87-.35.96-.81l2-10c.01-.06.04-.12.04-.19 0-.55-.45-1-1-1z"],"code-block":["M15 3h-2V2c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1H7V2c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-8.29 8.29a1.003 1.003 0 01-1.42 1.42l-3-3C2.11 9.53 2 9.28 2 9s.11-.53.29-.71l3-3a1.003 1.003 0 011.42 1.42L4.41 9l2.3 2.29zm7-1.58l-3 3a1.003 1.003 0 01-1.42-1.42L11.59 9l-2.3-2.29a1.003 1.003 0 011.42-1.42l3 3c.18.18.29.43.29.71s-.11.53-.29.71z"],cog:["M15.19 6.39h-1.85c-.11-.37-.27-.71-.45-1.04l1.36-1.36c.31-.31.31-.82 0-1.13l-1.13-1.13a.803.803 0 00-1.13 0l-1.36 1.36c-.33-.17-.67-.33-1.04-.44V.79c0-.44-.36-.8-.8-.8h-1.6c-.44 0-.8.36-.8.8v1.86c-.39.12-.75.28-1.1.47l-1.3-1.3c-.3-.3-.79-.3-1.09 0L1.82 2.91c-.3.3-.3.79 0 1.09l1.3 1.3c-.2.34-.36.7-.48 1.09H.79c-.44 0-.8.36-.8.8v1.6c0 .44.36.8.8.8h1.85c.11.37.27.71.45 1.04l-1.36 1.36c-.31.31-.31.82 0 1.13l1.13 1.13c.31.31.82.31 1.13 0l1.36-1.36c.33.18.67.33 1.04.44v1.86c0 .44.36.8.8.8h1.6c.44 0 .8-.36.8-.8v-1.86c.39-.12.75-.28 1.1-.47l1.3 1.3c.3.3.79.3 1.09 0l1.09-1.09c.3-.3.3-.79 0-1.09l-1.3-1.3c.19-.35.36-.71.48-1.1h1.85c.44 0 .8-.36.8-.8v-1.6a.816.816 0 00-.81-.79zm-7.2 4.6c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"],"collapse-all":["M7.29 6.71c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L8 4.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4zm1.42 2.58C8.53 9.11 8.28 9 8 9s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 11.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4z"],"column-layout":["M15 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM4 13H2V3h2v10zm3 0H5V3h2v10zm7 0H8V3h6v10z"],comment:["M14 1H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h2v3a1.003 1.003 0 001.71.71L8.41 12H14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM3.5 8C2.67 8 2 7.33 2 6.5S2.67 5 3.5 5 5 5.67 5 6.5 4.33 8 3.5 8zm4 0C6.67 8 6 7.33 6 6.5S6.67 5 7.5 5 9 5.67 9 6.5 8.33 8 7.5 8zm4 0c-.83 0-1.5-.67-1.5-1.5S10.67 5 11.5 5s1.5.67 1.5 1.5S12.33 8 11.5 8z"],comparison:["M7.99-.01c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1v-14c0-.55-.45-1-1-1zm-3 3h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm10 0h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm0 3h-4v-2h4v2zm0 3h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm0 3h-4v-2h4v2zm-10-3h-4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1z"],compass:["M12 8c0 .14-.03.27-.08.39l-3 6.99c-.15.37-.51.62-.92.62s-.77-.25-.92-.61l-3-6.99a1.006 1.006 0 010-.79l3-6.99C7.23.25 7.59 0 8 0s.77.25.92.61l3 6.99c.05.13.08.26.08.4zM8 3.54L6.09 8h3.82L8 3.54z"],compressed:["M15.93 5.63v-.02L13.94.63C13.78.26 13.42 0 13 0H3c-.42 0-.78.26-.93.63L.08 5.61l-.01.02C.03 5.74 0 5.87 0 6v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.13-.03-.26-.07-.37zM9 2h3.32l1.2 3H9V2zM3.68 2H7v3H2.48l1.2-3zM14 14H2V7h5v2.59l-1.29-1.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L9 9.59V7h5v7z"],confirm:["M8.7 4.29a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l5-5a1.003 1.003 0 00-1.42-1.42l-4.29 4.3L8.7 4.29zm5.22 3.01c.03.23.07.45.07.69 0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6c.81 0 1.59.17 2.3.46l1.5-1.5A7.998 7.998 0 00-.01 7.99c0 4.42 3.58 8 8 8s8-3.58 8-8c0-.83-.13-1.64-.36-2.39l-1.71 1.7z"],console:["M15 15H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h14c.55 0 1 .45 1 1v12c0 .55-.45 1-1 1zM14 5H2v8h12V5zM4 6c.28 0 .53.11.71.29l2 2c.18.18.29.43.29.71s-.11.53-.29.71l-2 2a1.003 1.003 0 01-1.42-1.42L4.59 9l-1.3-1.29A1.003 1.003 0 014 6zm5 4h3c.55 0 1 .45 1 1s-.45 1-1 1H9c-.55 0-1-.45-1-1s.45-1 1-1z"],contrast:["M15.2 6.4h-1.44c-.13-.47-.32-.92-.56-1.34L14.26 4c.31-.31.31-.82 0-1.13l-1.13-1.13a.803.803 0 00-1.13 0L10.94 2.8c-.42-.24-.86-.42-1.34-.56V.8c0-.44-.36-.8-.8-.8H7.2c-.44 0-.8.36-.8.8v1.44c-.5.14-.96.34-1.4.59l-1-1c-.3-.3-.79-.3-1.09 0L1.83 2.91c-.3.3-.3.79 0 1.09l1 1c-.25.44-.45.9-.59 1.4H.8c-.44 0-.8.36-.8.8v1.6c0 .44.36.8.8.8h1.44c.13.47.32.92.56 1.34L1.74 12c-.31.31-.31.82 0 1.13l1.13 1.13c.31.31.82.31 1.13 0l1.06-1.06c.42.24.86.42 1.34.56v1.44c0 .44.36.8.8.8h1.6c.44 0 .8-.36.8-.8v-1.44c.5-.14.96-.33 1.4-.59l1 1c.3.3.79.3 1.09 0l1.09-1.09c.3-.3.3-.79 0-1.09l-1-1c.25-.43.45-.9.59-1.4h1.44c.44 0 .8-.36.8-.8V7.2a.818.818 0 00-.81-.8zM8 12c-2.21 0-4-1.79-4-4s1.79-4 4-4v8z"],control:["M13 8H8v5h5V8zm0-5H8v4h5V3zm2-3H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V2h12v12zM7 3H3v10h4V3z"],"credit-card":["M14.99 2.95h-14c-.55 0-1 .45-1 1v1h16v-1c0-.55-.45-1-1-1zm-15 10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-6h-16v6zm5.5-2h5c.28 0 .5.22.5.5s-.22.5-.5.5h-5c-.28 0-.5-.22-.5-.5s.23-.5.5-.5zm-3 0h1c.28 0 .5.22.5.5s-.22.5-.5.5h-1c-.28 0-.5-.22-.5-.5s.23-.5.5-.5z"],cross:["M9.41 8l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L8 6.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L6.59 8 3.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L8 9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L9.41 8z"],crown:["M2 6l3 2 3-4 3 4 3-2-1 6H3L2 6zm6-5a1 1 0 110 2 1 1 0 010-2zM1 3a1 1 0 110 2 1 1 0 010-2zm14 0a1 1 0 110 2 1 1 0 010-2zM3 13h10v2H3v-2z"],cube:["M14.194 3.54L8 7.41 1.806 3.54 7.504.283a1 1 0 01.992 0l5.698 3.255zm.75.71a1 1 0 01.056.33v6.84a1 1 0 01-.504.868L8.5 15.714V8.277l6.444-4.027zm-13.888 0L7.5 8.277v7.437l-5.996-3.426A1 1 0 011 11.42V4.58a1 1 0 01.056-.33z"],"cube-add":["M14 2h1a1 1 0 010 2h-1v1a1 1 0 01-2 0V4h-1a1 1 0 010-2h1V1a1 1 0 012 0v1zM9.136.65a3.001 3.001 0 00.992 5.222c.018.058.038.115.059.172L8 7.41 1.806 3.54 7.504.283a1 1 0 01.992 0l.64.365zM15 7.235v4.184a1 1 0 01-.504.868L8.5 15.714V8.277l2.187-1.367A2.994 2.994 0 0013 8c.768 0 1.47-.289 2-.764zM1.056 4.25L7.5 8.277v7.437l-5.996-3.426A1 1 0 011 11.42V4.58a1 1 0 01.056-.33z"],"cube-remove":["M10.365 5.933L8 7.41 1.806 3.54 7.504.283a1 1 0 01.992 0l.64.365a3.001 3.001 0 001.228 5.283zM15 6v5.42a1 1 0 01-.504.868L8.5 15.714V8.277L12.143 6H15zM1.056 4.25L7.5 8.277v7.437l-5.996-3.426A1 1 0 011 11.42V4.58a1 1 0 01.056-.33zM11 2h4a1 1 0 010 2h-4a1 1 0 010-2z"],"curved-range-chart":["M15 12H3.12l1.81-1.39c1.73 1.01 5.53-.03 9.08-2.61l-1.22-1.5C10.3 8.3 7.86 9.37 6.65 9.29L14.3 3.4l-.6-.8-7.83 6.03c-.01-1.07 1.8-3.19 4.47-5.13L9.12 2C5.38 4.7 3.34 8.1 4.25 9.87L2 11.6V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],cut:["M13 2s.71-1.29 0-2L8.66 5.07l1.05 1.32L13 2zm.07 8c-.42 0-.82.09-1.18.26L3.31 0c-.69.71 0 2 0 2l3.68 5.02-2.77 3.24A2.996 2.996 0 000 13c0 1.66 1.34 3 3 3s3-1.34 3-3c0-.46-.11-.89-.29-1.27L8.1 8.54l2.33 3.19c-.18.39-.29.82-.29 1.27 0 1.66 1.31 3 2.93 3S16 14.66 16 13s-1.31-3-2.93-3zM3 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm10.07 0c-.54 0-.98-.45-.98-1s.44-1 .98-1 .98.45.98 1-.44 1-.98 1z"],cycle:["M13 9a3 3 0 110 6 3 3 0 010-6zM3 9a3 3 0 110 6 3 3 0 010-6zm6.169-5.27l.087.09 1.51 1.746 1.589.549a1 1 0 01.65 1.16l-.032.112a1 1 0 01-1.159.65l-.112-.032-1.843-.636a1 1 0 01-.337-.198l-.092-.093-.959-1.109L7.041 7.5l1.691 1.819a1 1 0 01.26.556L9 10v3a1 1 0 01-1.993.117L7 13l-.001-2.608-2.056-2.211a1 1 0 01-.081-1.264l.082-.1 2.825-3.026a1 1 0 011.4-.061zM13 10.5a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm-10 0a1.5 1.5 0 100 3 1.5 1.5 0 000-3zM11 1a1.5 1.5 0 110 3 1.5 1.5 0 010-3z"],dashboard:["M5 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM4 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-2c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-2 6c0 1.1.9 2 2 2s2-.9 2-2c0-.53-2-5-2-5s-2 4.47-2 5zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm4-9c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zm0 2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"],"data-connection":["M1 9.52c.889.641 2.308 1.133 4.003 1.354L5 11a5.994 5.994 0 002.664 4.988c-.217.008-.44.012-.664.012-3.215 0-5.846-.85-5.993-1.906L1 14V9.52zM11 6c2.762 0 5 2.238 5 5s-2.238 5-5 5-5-2.238-5-5 2.238-5 5-5zm1 1l-4 5h2.5l-.5 3 4-5h-2.5l.5-3zm1-3.48v1.822a6.002 6.002 0 00-7.9 4.556l-.248-.03c-2.168-.28-3.733-.966-3.845-1.774L1 8V3.52C2.22 4.4 4.44 5 7 5s4.78-.6 6-1.48zM7 0c3.31 0 6 .9 6 2s-2.69 2-6 2c-3.32 0-6-.9-6-2s2.68-2 6-2z"],"data-lineage":["M1.067 0C.477 0 0 .478 0 1.067V3.2c0 .59.478 1.067 1.067 1.067h2.24a5.342 5.342 0 002.9 3.734 5.337 5.337 0 00-2.9 3.733h-2.24C.477 11.733 0 12.21 0 12.8v2.133C0 15.523.478 16 1.067 16H6.4c.59 0 1.067-.478 1.067-1.067V12.8c0-.59-.478-1.067-1.067-1.067H4.401a4.27 4.27 0 013.92-3.194l.212-.006V9.6c0 .59.478 1.067 1.067 1.067h5.333c.59 0 1.067-.478 1.067-1.067V6.4c0-.59-.478-1.067-1.067-1.067H9.6c-.59 0-1.067.478-1.067 1.067v1.067a4.268 4.268 0 01-4.132-3.2H6.4c.59 0 1.067-.478 1.067-1.067V1.067C7.467.477 6.989 0 6.4 0H1.067z"],database:["M8 4c3.31 0 6-.9 6-2s-2.69-2-6-2C4.68 0 2 .9 2 2s2.68 2 6 2zm-6-.48V8c0 1.1 2.69 2 6 2s6-.9 6-2V3.52C12.78 4.4 10.56 5 8 5s-4.78-.6-6-1.48zm0 6V14c0 1.1 2.69 2 6 2s6-.9 6-2V9.52C12.78 10.4 10.56 11 8 11s-4.78-.6-6-1.48z"],delete:["M11.99 4.99a1.003 1.003 0 00-1.71-.71l-2.29 2.3L5.7 4.29a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l2.29 2.29-2.29 2.29A1.003 1.003 0 005.7 11.7l2.29-2.29 2.29 2.29a1.003 1.003 0 001.42-1.42L9.41 7.99 11.7 5.7c.18-.18.29-.43.29-.71zm-4-5c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.68 6-6 6z"],delta:["M8 0L0 16h16L8 0zM7 5l5 10H2L7 5z"],"derive-column":["M6.08 6.67h-.84c.24-.92.56-1.6.96-2.03.24-.27.48-.4.71-.4.05 0 .08.01.11.04s.04.06.04.1c0 .04-.03.11-.1.21-.06.1-.1.2-.1.29 0 .13.05.24.15.33.1.09.23.14.39.14.17 0 .31-.06.42-.17A.58.58 0 008 4.73c0-.22-.09-.39-.26-.53-.17-.13-.44-.2-.81-.2-.59 0-1.12.16-1.59.48-.48.32-.93.85-1.36 1.59-.15.26-.29.42-.42.49s-.35.11-.64.1l-.19.65h.81l-1.19 4.37c-.2.72-.33 1.16-.4 1.33-.1.24-.26.45-.46.62-.08.07-.18.1-.3.1-.03 0-.06-.01-.08-.03l-.03-.04c0-.02.03-.06.09-.11.06-.06.09-.14.09-.26 0-.13-.05-.23-.14-.32a.6.6 0 00-.4-.13c-.21 0-.38.05-.51.16s-.21.25-.21.4c0 .16.08.3.23.42.16.12.4.18.74.18.53 0 .99-.13 1.4-.39.41-.26.76-.65 1.07-1.19.3-.54.62-1.4.94-2.59l.68-2.53h.82l.2-.63zM15 0H8c-.55 0-1 .45-1 1v2h2V2h5v12H9v-1H7v2c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM8.3 9.94c.18.52.33.89.46 1.13.13.24.28.4.44.51.17.1.37.16.62.16.24 0 .49-.08.74-.25.33-.21.66-.58 1.01-1.09l-.21-.11c-.23.31-.41.5-.52.57a.44.44 0 01-.26.07c-.12 0-.24-.07-.36-.21-.2-.24-.46-.91-.8-2 .3-.49.55-.81.75-.96.15-.11.3-.16.47-.16.06 0 .17.02.34.06.16.04.31.06.43.06.17 0 .31-.06.43-.17.1-.11.16-.25.16-.43 0-.19-.06-.33-.17-.44-.12-.11-.28-.16-.49-.16-.19 0-.37.04-.54.13-.17.09-.39.27-.65.56-.2.21-.48.58-.87 1.11-.15-.66-.41-1.26-.78-1.81l-2.05.33-.04.21c.15-.03.28-.04.39-.04.2 0 .37.08.5.25.21.26.5 1.03.88 2.33-.29.37-.49.61-.6.72-.18.18-.33.3-.44.36-.09.04-.19.07-.3.07-.09 0-.23-.04-.42-.13a.866.866 0 00-.36-.09c-.2 0-.36.06-.49.18a.59.59 0 00-.19.46c0 .17.06.32.18.43.12.11.28.16.48.16.2 0 .38-.04.55-.11.17-.08.39-.24.65-.49.24-.27.6-.66 1.06-1.21z"],desktop:["M15 0H1C.45 0 0 .45 0 1v10c0 .55.45 1 1 1h4.75l-.5 2H4c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1h-1.25l-.5-2H15c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 10H2V2h12v8z"],diagnosis:["M3.2 1a1 1 0 01.117 1.993L3.2 3H3v3a2 2 0 001.85 1.995L5 8a2 2 0 001.995-1.85L7 6V3h-.2a1 1 0 01-.993-.883L5.8 2a1 1 0 01.883-.993L6.8 1H8a1 1 0 01.993.883L9 2v4a4.002 4.002 0 01-3.007 3.876v.007L6 10a3 3 0 005.995.176L12 10V7.792a2.5 2.5 0 112 0V10a5 5 0 01-10 0c0-.042.003-.084.008-.125A4 4 0 011.005 6.2L1 6V2a1 1 0 01.883-.993L2 1h1.2z"],"diagram-tree":["M15 8v3h-2V9H9v2H7V9H3v2H1V8a1 1 0 011-1h5V5h2v2h5a1 1 0 011 1zM1 12h2a1 1 0 011 1v2a1 1 0 01-1 1H1a1 1 0 01-1-1v-2a1 1 0 011-1zm12 0h2a1 1 0 011 1v2a1 1 0 01-1 1h-2a1 1 0 01-1-1v-2a1 1 0 011-1zm-6 0h2a1 1 0 011 1v2a1 1 0 01-1 1H7a1 1 0 01-1-1v-2a1 1 0 011-1zM7 0h2a1 1 0 011 1v2a1 1 0 01-1 1H7a1 1 0 01-1-1V1a1 1 0 011-1z"],"direction-left":["M16 1.99l-16 6 16 6-4-6z"],"direction-right":["M16 7.99l-16-6 4 6-4 6z"],disable:["M7.99-.01c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm-6 8c0-3.31 2.69-6 6-6 1.3 0 2.49.42 3.47 1.12l-8.35 8.35c-.7-.98-1.12-2.17-1.12-3.47zm6 6c-1.3 0-2.49-.42-3.47-1.12l8.35-8.35c.7.98 1.12 2.17 1.12 3.47 0 3.32-2.68 6-6 6z"],document:["M9 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5L9 0zm3 14H4V2h4v4h4v8z"],"document-open":["M6 12c0 .55.45 1 1 1s1-.45 1-1V8c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1s.45 1 1 1h1.59L1.3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L6 10.41V12zm4-12H4c-.55 0-1 .45-1 1v4h2V2h4v4h4v8H5.24l-1.8 1.8c.16.12.35.2.56.2h10c.55 0 1-.45 1-1V5l-5-5z"],"document-share":["M10 14H2V2h4v4h1c0-.83.36-1.55.91-2.09l-.03-.03.9-.9C8.3 2.45 8 1.77 8 1L7 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V8.22c-.53.48-1.23.78-2 .78v5zm5-14h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.29a1.003 1.003 0 001.42 1.42L14 3.41V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z"],dollar:["M12.83 9.51c-.1-.3-.25-.58-.45-.84s-.45-.49-.75-.7c-.3-.2-.65-.36-1.05-.48-.16-.04-.43-.11-.8-.2-.35-.09-.73-.18-1.12-.28-.39-.1-.74-.19-1.06-.27-.31-.08-.49-.12-.54-.13-.43-.12-.78-.29-1.05-.52-.27-.23-.4-.55-.4-.95 0-.29.07-.53.21-.72.14-.19.32-.34.54-.46.22-.11.46-.19.72-.24.26-.05.52-.08.77-.08.74 0 1.35.15 1.83.46.48.3.75.83.81 1.56h2.14c0-.6-.13-1.13-.38-1.58-.25-.45-.59-.84-1.02-1.15-.43-.31-.93-.54-1.49-.7-.24-.06-.49-.1-.75-.14V1c0-.55-.45-1-1-1s-1 .45-1 1v1.08c-.23.03-.46.07-.68.13-.54.13-1.02.34-1.44.61-.42.28-.76.63-1.02 1.05-.26.43-.39.93-.39 1.5 0 .3.04.59.13.88.09.29.23.56.44.82.21.26.48.49.83.7.35.21.79.38 1.31.51.85.21 1.56.38 2.14.52.58.13 1.08.28 1.52.42.25.09.48.23.69.44.21.21.32.53.32.97 0 .21-.05.42-.14.63-.09.21-.24.39-.45.55-.21.16-.47.29-.81.39-.33.1-.73.15-1.2.15-.43 0-.84-.05-1.21-.14-.37-.09-.7-.24-.99-.43-.29-.2-.51-.45-.67-.76-.16-.31-.24-.68-.24-1.12H3c.01.71.15 1.32.43 1.84.27.52.64.94 1.1 1.27.46.33.99.58 1.61.74.27.07.56.12.85.16V15c0 .55.45 1 1 1s1-.45 1-1v-1.05c.3-.03.61-.08.9-.15.58-.13 1.1-.34 1.56-.63.46-.29.83-.66 1.11-1.11.28-.45.42-1 .42-1.64 0-.31-.05-.61-.15-.91z"],dot:["M8 5a3 3 0 100 6 3 3 0 100-6z"],"double-caret-horizontal":["M13.71 7.29l-3-3A1.003 1.003 0 009 5v6a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM6 4c-.28 0-.53.11-.71.29l-3 3C2.11 7.47 2 7.72 2 8c0 .28.11.53.29.71l3 3A1.003 1.003 0 007 11V5c0-.55-.45-1-1-1z"],"double-caret-vertical":["M5 7h6a1.003 1.003 0 00.71-1.71l-3-3C8.53 2.11 8.28 2 8 2s-.53.11-.71.29l-3 3A1.003 1.003 0 005 7zm6 2H5a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0011 9z"],"double-chevron-down":["M7.29 8.71c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L8 6.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4zM12 8c-.28 0-.53.11-.71.29L8 11.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0012 8z"],"double-chevron-left":["M4.41 8L7.7 4.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C2.11 7.47 2 7.72 2 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L4.41 8zm5 0l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C7.11 7.47 7 7.72 7 8c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L9.41 8z"],"double-chevron-right":["M9 8c0-.28-.11-.53-.29-.71l-4-4a1.003 1.003 0 00-1.42 1.42L6.59 8 3.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4C8.89 8.53 9 8.28 9 8zm4.71-.71l-4-4a1.003 1.003 0 00-1.42 1.42L11.59 8 8.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],"double-chevron-up":["M4 8c.28 0 .53-.11.71-.29L8 4.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4C8.53 2.11 8.28 2 8 2s-.53.11-.71.29l-4 4A1.003 1.003 0 004 8zm4.71-.71C8.53 7.11 8.28 7 8 7s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 9.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4z"],"doughnut-chart":["M11.86 7h4.05C15.45 3.39 12.61.52 9 .07v4.07A4 4 0 0111.86 7zM12 8c0 2.21-1.79 4-4 4s-4-1.79-4-4 1.79-4 4-4V0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8h-4z"],download:["M7.99-.01c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zM11.7 9.7l-3 3c-.18.18-.43.29-.71.29s-.53-.11-.71-.29l-3-3A1.003 1.003 0 015.7 8.28l1.29 1.29V3.99c0-.55.45-1 1-1s1 .45 1 1v5.59l1.29-1.29a1.003 1.003 0 011.71.71c0 .27-.11.52-.29.7z"],"drag-handle-horizontal":["M2 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm8-2c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-4-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"],"drag-handle-vertical":["M6 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-6c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zM6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4 8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"],draw:["M14.9 11c-.3 0-.5.1-.7.3l-3 3c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3l3-3c.2-.2.3-.4.3-.7 0-.5-.4-1-1-1zm-1-1v-.2l-1-5c-.1-.3-.3-.6-.6-.7l-11-4-.3.3 5.8 5.8c.2-.1.4-.2.6-.2.8 0 1.5.7 1.5 1.5S8.3 9 7.4 9s-1.5-.7-1.5-1.5c0-.2.1-.4.2-.6L.3 1.1l-.3.3 4 11c.1.3.4.6.7.6l5 1h.2c.3 0 .5-.1.7-.3l3-3c.2-.2.3-.4.3-.7z"],"drawer-left":["M7 0a1 1 0 011 1v14a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h6zM6 2H2v12h4V2zm2 5h4.59L11.3 5.71A.965.965 0 0111 5a1.003 1.003 0 011.71-.71l3 3c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-3 3a1.003 1.003 0 01-1.42-1.42L12.59 9H8V7z"],"drawer-left-filled":["M1 0h6a1 1 0 011 1v14a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1zm7 7h4.59L11.3 5.71A.965.965 0 0111 5a1.003 1.003 0 011.71-.71l3 3c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-3 3a1.003 1.003 0 01-1.42-1.42L12.59 9H8V7z"],"drawer-right":["M15 0a1 1 0 011 1v14a1 1 0 01-1 1H9a1 1 0 01-1-1V1a1 1 0 011-1h6zm-1 2h-4v12h4V2zM8 7H3.41L4.7 5.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 9H8V7z"],"drawer-right-filled":["M9 0h6a1 1 0 011 1v14a1 1 0 01-1 1H9a1 1 0 01-1-1V1a1 1 0 011-1zM8 7H3.41L4.7 5.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 9H8V7z"],"drive-time":["M15.12 4.76h-1.05l-.76-2.12c-.19-.53-.76-1.08-1.27-1.24 0 0-1.32-.4-4.04-.4-2.72 0-4.04.4-4.04.4-.5.16-1.07.71-1.26 1.24l-.77 2.12H.88c-.48 0-.88.42-.88.94s.4.94.88.94h.38L1 7c-.03.69 0 1.44 0 2v5c0 .66.38 1 1 1s1-.34 1-1v-1h10v1c0 .66.38 1 1 1s1-.34 1-1V9c0-.56-.01-1.37 0-2l-.26-.37h.38c.48 0 .88-.42.88-.93 0-.52-.4-.94-.88-.94zM5 10H3V8h2v2zm8 0h-2V8h2v2zm0-4H3c-.18 0-.06-.82 0-1l.73-1.63C3.79 3.19 3.82 3 4 3h8c.18 0 .21.19.27.37L13 5c.06.18.18 1 0 1z"],duplicate:["M15 0H5c-.55 0-1 .45-1 1v2h2V2h8v7h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 10H2V6h8v8z"],edit:["M3.25 10.26l2.47 2.47 6.69-6.69-2.46-2.48-6.7 6.7zM.99 14.99l3.86-1.39-2.46-2.44-1.4 3.83zm12.25-14c-.48 0-.92.2-1.24.51l-1.44 1.44 2.47 2.47 1.44-1.44c.32-.32.51-.75.51-1.24.01-.95-.77-1.74-1.74-1.74z"],eject:["M4 9h8a1.003 1.003 0 00.71-1.71l-4-4C8.53 3.11 8.28 3 8 3s-.53.11-.71.29l-4 4A1.003 1.003 0 004 9zm8 1H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1z"],emoji:["M8 0a8 8 0 110 16A8 8 0 018 0zm0 1a7 7 0 100 14A7 7 0 008 1zM4 8c.228 2.262 2 4 4 4 1.938 0 3.77-1.738 3.984-3.8L12 8h1c-.128 2.888-2.317 5-5 5a5 5 0 01-4.995-4.783L3 8h1zm2-3a1 1 0 110 2 1 1 0 010-2zm4 0a1 1 0 110 2 1 1 0 010-2z"],endorsed:["M15.86 7.5l-.81-1.42V4.5c0-.36-.19-.68-.49-.87l-1.37-.8-.81-1.41c-.19-.31-.51-.49-.86-.49H9.89L8.5.14a.948.948 0 00-1 0l-1.39.8H4.52a1 1 0 00-.86.49l-.8 1.37-1.44.83c-.3.19-.49.51-.49.87v1.65l-.8 1.37c-.08.15-.13.32-.13.49s.05.34.14.49l.8 1.37v1.65c0 .36.19.68.49.87l1.42.81.8 1.37c.19.31.51.49.86.49H6.1l1.39.8c.15.09.32.14.48.14s.34-.05.49-.14l1.39-.8h1.63a1 1 0 00.86-.49l.81-1.41 1.37-.8c.3-.19.49-.51.49-.87V9.93l.81-1.42a.89.89 0 00.04-1.01zm-4.12-.82l-4.01 4.01c-.18.18-.43.29-.71.29s-.53-.11-.71-.29l-2-2c-.18-.19-.3-.44-.3-.71a1.003 1.003 0 011.71-.71l1.3 1.3 3.3-3.3a1.003 1.003 0 011.71.71.95.95 0 01-.29.7z"],envelope:["M0 3.06v9.88L4.94 8 0 3.06zM14.94 2H1.06L8 8.94 14.94 2zm-6.41 8.53c-.14.14-.32.22-.53.22s-.39-.08-.53-.22L6 9.06 1.06 14h13.88L10 9.06l-1.47 1.47zM11.06 8L16 12.94V3.06L11.06 8z"],equals:["M3 5h10a1 1 0 010 2H3a1 1 0 110-2zm0 4h10a1 1 0 010 2H3a1 1 0 010-2z"],eraser:["M8.06 13.91l7.63-7.44c.41-.4.41-1.05 0-1.45L10.86.3c-.41-.4-1.08-.4-1.49 0L.31 9.13c-.41.4-.41 1.05 0 1.45l5.58 5.44h8.12v-.01c.55 0 1-.45 1-1s-.45-1-1-1H7.96l.1-.1zm-2.17.06L1.67 9.85l4.22-4.11 4.22 4.11-4.22 4.12z"],error:["M7.99-.01c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm1 13h-2v-2h2v2zm0-3h-2v-7h2v7z"],euro:["M6.52 3.18c.51-.27 1.12-.4 1.83-.4.48 0 .91.06 1.27.18.37.12.68.29.96.51.18.14.3.33.44.51l1.53-1.53c-.12-.11-.23-.22-.36-.32a5.61 5.61 0 00-1.74-.83c-.66-.2-1.36-.3-2.1-.3-.99 0-1.88.18-2.66.53-.79.35-1.45.82-2 1.41-.55.58-.96 1.27-1.26 2.06H2c-.55 0-1 .45-1 1s.45 1 1 1h.04c-.01.17-.04.33-.04.5 0 .17.03.33.04.5H2c-.55 0-1 .45-1 1s.45 1 1 1h.43c0 .01 0 .02.01.02a6.2 6.2 0 001.25 2.07 5.77 5.77 0 002 1.4c.78.34 1.67.51 2.66.51.81 0 1.54-.12 2.21-.36.67-.24 1.25-.59 1.75-1.03l.03-.03-1.55-1.33c-.01.01-.02.03-.03.04-.29.3-.63.53-1.02.69-.4.17-.85.25-1.37.25-.71 0-1.32-.13-1.83-.4s-.93-.62-1.25-1.07c-.19-.24-.34-.49-.46-.76H9c.55 0 1-.45 1-1s-.45-1-1-1H4.35c-.01-.17-.03-.33-.03-.5 0-.17.02-.34.03-.5H10c.55 0 1-.45 1-1s-.45-1-1-1H4.83c.13-.27.27-.52.44-.76.32-.44.74-.8 1.25-1.06zM14 8.98v0z"],exchange:["M1.99 5.99c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.89-2-2-2zm4.15 1.86a.495.495 0 10.7-.7L5.7 5.99h5.79c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H5.7l1.15-1.15a.495.495 0 10-.7-.7l-2 2c-.1.09-.16.21-.16.35s.06.26.15.35l2 2.01zm7.85-1.86c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.89-2-2-2zM9.85 8.14a.533.533 0 00-.36-.15.495.495 0 00-.35.85l1.15 1.15h-5.8c-.28 0-.5.22-.5.5s.22.5.5.5h5.79l-1.15 1.15a.495.495 0 10.7.7l2-2c.09-.09.15-.22.15-.35s-.06-.26-.15-.35l-1.98-2z"],"exclude-row":["M0 10a1.003 1.003 0 001.71.71L3 9.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 8 5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L3 6.59l-1.29-1.3A1.003 1.003 0 00.29 6.71L1.59 8 .29 9.29C.11 9.47 0 9.72 0 10zm1-7h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 10H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-1-7H9c-1.1 0-2 .9-2 2s.9 2 2 2h5c1.1 0 2-.9 2-2s-.9-2-2-2z"],"expand-all":["M4 7c.28 0 .53-.11.71-.29L8 3.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4C8.53 1.11 8.28 1 8 1s-.53.11-.71.29l-4 4A1.003 1.003 0 004 7zm8 2c-.28 0-.53.11-.71.29L8 12.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0012 9z"],export:["M4 6c.28 0 .53-.11.71-.29L7 3.41V11c0 .55.45 1 1 1s1-.45 1-1V3.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4C8.53.11 8.28 0 8 0s-.53.11-.71.29l-4 4A1.003 1.003 0 004 6zm11 5c-.55 0-1 .45-1 1v2H2v-2c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1z"],"eye-off":["M16 7.97v-.02-.01-.02-.02a.672.672 0 00-.17-.36c-.49-.63-1.07-1.2-1.65-1.72l-3.16 2.26a2.978 2.978 0 01-2.98 2.9c-.31 0-.6-.06-.88-.15L5.09 12.3c.44.19.9.36 1.37.47.97.23 1.94.24 2.92.05.88-.17 1.74-.54 2.53-.98 1.25-.7 2.39-1.67 3.38-2.75.18-.2.37-.41.53-.62.09-.1.15-.22.17-.36v-.02-.02-.01-.02-.03c.01-.02.01-.03.01-.04zm-.43-4.17c.25-.18.43-.46.43-.8 0-.55-.45-1-1-1-.22 0-.41.08-.57.2l-.01-.01-2.67 1.91c-.69-.38-1.41-.69-2.17-.87a6.8 6.8 0 00-2.91-.05c-.88.18-1.74.54-2.53.99-1.25.7-2.39 1.67-3.38 2.75-.18.2-.37.41-.53.62-.23.29-.23.63-.01.92.51.66 1.11 1.25 1.73 1.79.18.16.38.29.56.44l-2.09 1.5.01.01c-.25.18-.43.46-.43.8 0 .55.45 1 1 1 .22 0 .41-.08.57-.2l.01.01 14-10-.01-.01zm-10.41 5a3.03 3.03 0 01-.11-.8 2.99 2.99 0 012.99-2.98c.62 0 1.19.21 1.66.53L5.16 8.8z"],"eye-on":["M10.29 6.7c.18.18.43.29.71.29s.53-.11.71-.29l4-4c.17-.18.29-.43.29-.7a1.003 1.003 0 00-1.71-.71L11 4.58 9.71 3.29A.997.997 0 009 3c-.55 0-1 .44-1 1a1 1 0 00.3.7l1.99 2zM16 7.96v-.02-.01-.02-.02a.64.64 0 00-.17-.36c-.3-.4-.65-.76-1-1.12l-1.7 1.7c-.55.55-1.3.88-2.13.88-.06 0-.11-.01-.17-.02C10.42 10.15 9.32 11 8.01 11A3.005 3.005 0 016.4 5.46c-.24-.43-.39-.93-.39-1.46 0-.26.04-.5.1-.74-.7.2-1.37.5-2.01.86-1.26.7-2.4 1.68-3.4 2.77-.18.21-.36.41-.53.63-.22.29-.22.64 0 .93.51.67 1.12 1.27 1.73 1.81 1.33 1.17 2.85 2.15 4.53 2.55.97.23 1.95.24 2.92.05.89-.18 1.74-.54 2.54-.99 1.25-.71 2.4-1.69 3.39-2.78.18-.2.37-.41.54-.63.09-.1.15-.23.17-.37v-.02-.02-.01-.02-.03c.01-.01.01-.02.01-.03zM8.01 9c.48 0 .87-.35.96-.81a.55.55 0 01-.07-.09l-.02.01L7.8 7.03c-.45.1-.79.48-.79.96 0 .56.45 1.01 1 1.01z"],"eye-open":["M8.002 7.003a1.003 1.003 0 000 2.005 1.003 1.003 0 000-2.005zm7.988.972v-.02-.01-.02-.02a.675.675 0 00-.17-.36c-.509-.673-1.118-1.264-1.737-1.806-1.328-1.173-2.846-2.155-4.523-2.546a6.702 6.702 0 00-2.925-.06c-.889.18-1.738.541-2.546.992C2.84 4.837 1.692 5.81.694 6.902c-.18.211-.36.411-.53.632a.742.742 0 000 .932c.51.672 1.119 1.264 1.738 1.805 1.328 1.173 2.846 2.156 4.523 2.547.968.23 1.947.24 2.925.04.889-.18 1.738-.542 2.546-.993 1.248-.712 2.397-1.684 3.395-2.777.18-.2.37-.411.54-.632.09-.1.149-.23.169-.36v-.02-.02-.01-.02-.03c0-.01-.01-.01-.01-.02zm-7.988 3.038a2.998 2.998 0 01-2.995-3.008 2.998 2.998 0 012.995-3.008 2.998 2.998 0 012.996 3.008 2.998 2.998 0 01-2.996 3.008z"],"fast-backward":["M14 3c-.24 0-.44.09-.62.23l-.01-.01L9 6.72V4c0-.55-.45-1-1-1-.24 0-.44.09-.62.23v-.01l-5 4 .01.01C2.16 7.41 2 7.68 2 8s.16.59.38.77v.01l5 4 .01-.01c.17.14.37.23.61.23.55 0 1-.45 1-1V9.28l4.38 3.5.01-.01c.17.14.37.23.61.23.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"fast-forward":["M15 8c0-.32-.16-.59-.38-.77l.01-.01-5-4-.01.01A.987.987 0 009 3c-.55 0-1 .45-1 1v2.72l-4.38-3.5v.01A.987.987 0 003 3c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1 .24 0 .44-.09.62-.23l.01.01L8 9.28V12c0 .55.45 1 1 1 .24 0 .44-.09.62-.23l.01.01 5-4-.01-.01c.22-.18.38-.45.38-.77z"],feed:["M1.99 11.99c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.89-2-2-2zm1-4c-.55 0-1 .45-1 1s.45 1 1 1c1.66 0 3 1.34 3 3 0 .55.45 1 1 1s1-.45 1-1c0-2.76-2.24-5-5-5zm0-4c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7 3.13 7 7 0 .55.45 1 1 1s1-.45 1-1a9 9 0 00-9-9zm0-4c-.55 0-1 .45-1 1s.45 1 1 1c6.08 0 11 4.92 11 11 0 .55.45 1 1 1s1-.45 1-1c0-7.18-5.82-13-13-13z"],"feed-subscribed":["M3 2c1.06 0 2.08.16 3.06.45.13-.71.52-1.32 1.05-1.76C5.82.25 4.44 0 3 0c-.55 0-1 .45-1 1s.45 1 1 1zM2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm8.32-6.33a.99.99 0 001.4 0l3.98-3.98c.19-.18.3-.42.3-.7 0-.55-.45-.99-1-.99-.28 0-.52.11-.7.29l-3.28 3.28-1.29-1.29a.99.99 0 00-.7-.29 1 1 0 00-1 .99c0 .27.11.52.29.7l2 1.99zm3.73.53l-.93.93-.02-.02c-.17.17-.35.33-.56.45C13.47 9.16 14 11.02 14 13c0 .55.45 1 1 1s1-.45 1-1c0-2.5-.73-4.82-1.95-6.8zM3 8c-.55 0-1 .45-1 1s.45 1 1 1c1.66 0 3 1.34 3 3 0 .55.45 1 1 1s1-.45 1-1c0-2.76-2.24-5-5-5zm5.91-.91l-.03.03-2-2 .03-.03c-.11-.11-.23-.2-.33-.33A8.9 8.9 0 003 4c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7 3.13 7 7 0 .55.45 1 1 1s1-.45 1-1c0-1.87-.57-3.61-1.55-5.06-.61-.11-1.13-.42-1.54-.85z"],film:["M15 1h-5v2H6V1H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h5v-2h4v2h5c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM4 13H2v-2h2v2zm0-3H2V8h2v2zm0-3H2V5h2v2zm0-3H2V2h2v2zm6 6H6V5h4v5zm4 3h-2v-2h2v2zm0-3h-2V8h2v2zm0-3h-2V5h2v2zm0-3h-2V2h2v2z"],filter:["M13.99.99h-12a1.003 1.003 0 00-.71 1.71l4.71 4.71V14a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V7.41L14.7 2.7a1.003 1.003 0 00-.71-1.71z"],"filter-keep":["M15 10c-.28 0-.53.11-.71.29L12 12.59l-1.29-1.29A.965.965 0 0010 11a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0015 10zm-3-8c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L4 6.41V12a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V6.41l3.71-3.71c.18-.17.29-.42.29-.7z"],"filter-list":["M9 8c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1h-5c-.55 0-1 .45-1 1zm3-6c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L4 6.41V12a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V6.41l3.71-3.71c.18-.17.29-.42.29-.7zm3 8h-5c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm0 3h-5c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1z"],"filter-open":["M15.707 10.293a1 1 0 010 1.414l-3 3c-.63.63-1.707.184-1.707-.707V8c0-.89 1.077-1.337 1.707-.707l3 3zM12 2c0 .28-.11.53-.29.7L8 6.41V10c0 .28-.11.53-.29.71l-2 2A1.003 1.003 0 014 12V6.41L.29 2.71A1.003 1.003 0 011 1h10c.55 0 1 .45 1 1z"],"filter-remove":["M12 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L4 6.41V12a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71V6.41l3.71-3.71c.18-.17.29-.42.29-.7zm2.41 10l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L13 10.59 11.71 9.3A.965.965 0 0011 9a1.003 1.003 0 00-.71 1.71l1.3 1.29-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l1.29-1.3 1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L14.41 12z"],flag:["M2.99 2.99c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1s1-.45 1-1v-11c0-.55-.45-1-1-1zm0-3c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm2 3.03v7.23c2.07-2.11 5.92 1.75 9 0V3.02c-3 2.07-6.94-2.03-9 0z"],flame:["M9.217 0c0 1.368.368 2.462 1.104 3.282C12.774 5.197 14 7.385 14 9.846c0 2.735-1.472 4.786-4.415 6.154 2.165-2.4 1.84-3.385-.368-6.4-2.342 1.2-1.967 2-1.592 3.6-.786 0-1.5 0-1.875-.4 0 .547.898 2 1.464 3.2-2.943-.82-6.092-5.744-4.988-6.154.736-.273 1.594-.137 2.575.41C3.575 5.333 5.047 1.915 9.217 0z"],flash:["M4 8c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1zm4-4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S7 .45 7 1v2c0 .55.45 1 1 1zM3.79 5.21a1.003 1.003 0 001.42-1.42l-1.5-1.5a1.003 1.003 0 00-1.42 1.42l1.5 1.5zm.71 5.29c-.28 0-.53.11-.71.29l-1.5 1.5a1.003 1.003 0 001.42 1.42l1.5-1.5a1.003 1.003 0 00-.71-1.71zm7-5c.28 0 .53-.11.71-.29l1.5-1.5a1.003 1.003 0 00-1.42-1.42l-1.5 1.5a1.003 1.003 0 00.71 1.71zm.71 5.29a1.003 1.003 0 00-1.42 1.42l1.5 1.5a1.003 1.003 0 001.42-1.42l-1.5-1.5zM15 7h-2c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1s-.45-1-1-1zM8 5C6.34 5 5 6.34 5 8s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm0 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0 3c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1z"],"floppy-disk":["M15.71 2.29l-2-2A.997.997 0 0013 0h-1v6H4V0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V3c0-.28-.11-.53-.29-.71zM14 15H2V9c0-.55.45-1 1-1h10c.55 0 1 .45 1 1v6zM11 1H9v4h2V1z"],"flow-branch":["M10.643 6.595c.22.418.344.894.344 1.399 0 .439-.094.855-.263 1.231l3.265 3.462-.002-1.75a.973.973 0 01.314-.68.99.99 0 011.388.048c.186.2.316.46.3.715l-.009 4.03a.959.959 0 01-.3.68.972.972 0 01-.698.266l-4.053.002a.97.97 0 01-.679-.314 1.031 1.031 0 01.05-1.42.972.972 0 01.698-.266l1.7-.001-3.305-3.35a2.998 2.998 0 01-4.228-1.653H.999a1 1 0 010-2h4.166a2.998 2.998 0 014.06-1.735l3.449-3.268-1.745.002a.979.979 0 01-.631-1.692c.199-.186.459-.316.713-.3l4.025.009c.247.008.493.1.679.3.186.2.274.451.265.7l.002 4.046a.972.972 0 01-.313.68 1.03 1.03 0 01-1.42-.05.973.973 0 01-.266-.7V3.295l-3.34 3.301z"],"flow-end":["M9.702 7.31c.176.176.293.41.293.684a.976.976 0 01-.283.695c-1.888 1.91-2.892 2.918-3.011 3.027-.179.164-.42.284-.693.284a.995.995 0 01-.997-.985c0-.274.112-.541.292-.72.12-.12.624-.551 1.514-1.293H.98c-.536 0-.975-.47-.975-1.008 0-.537.439-.996.975-.996h5.837c-.895-.752-1.4-1.187-1.514-1.304a1.03 1.03 0 01-.292-.705C5.01 4.45 5.464 4 6 4c.272 0 .52.108.695.294A535.7 535.7 0 009.702 7.31zM13 11.002c-1.657 0-3-1.347-3-3.008a3.004 3.004 0 013-3.007c1.657 0 3 1.346 3 3.007a3.004 3.004 0 01-3 3.008z"],"flow-linear":["M4.16 9.002H.977C.44 9.002 0 8.532 0 7.994c0-.537.44-.99.978-.99h3.18A3.01 3.01 0 016.995 5a3.01 3.01 0 012.839 2.004h2.98c-.898-.756-1.404-1.193-1.518-1.31a1.03 1.03 0 01-.293-.705c0-.538.454-.989.992-.989.274 0 .521.108.697.294.118.124 1.122 1.13 3.014 3.016a.96.96 0 01.293.684.975.975 0 01-.284.695l-3.018 3.027a.974.974 0 01-.694.284c-.553 0-1-.447-1-.985 0-.274.117-.545.293-.72l1.518-1.293H9.833A3.01 3.01 0 016.996 11 3.01 3.01 0 014.16 9.002z"],"flow-review":["M5.175 7.004a3.003 3.003 0 012.83-2.001c1.305 0 2.416.835 2.83 2.001h1.985c-.896-.756-1.401-1.193-1.515-1.31a1.03 1.03 0 01-.292-.705c0-.538.453-.989.99-.989a.95.95 0 01.696.294c.117.124 1.12 1.13 3.008 3.016.176.176.293.41.293.684a.976.976 0 01-.283.695l-3.013 3.027a.995.995 0 01-1.691-.702c0-.273.116-.544.292-.72l1.515-1.292h-1.98a3.003 3.003 0 01-2.835 2.016A3.003 3.003 0 015.17 9.002H3.18l1.515 1.292c.176.176.292.447.292.72a.995.995 0 01-1.69.702L.282 8.69A.976.976 0 010 7.994c0-.273.117-.508.293-.684A535.858 535.858 0 003.3 4.294.95.95 0 013.997 4c.537 0 .99.45.99.989 0 .273-.12.528-.292.705-.114.117-.62.554-1.515 1.31h1.995z"],"flow-review-branch":["M10.392 10.647A3.002 3.002 0 016.16 8.995H3.37l1.338 1.318c.172.178.287.41.282.683-.01.536-.524.995-.99.995-.465 0-.63-.187-.747-.294L.281 8.682A.956.956 0 010 7.994a.971.971 0 01.294-.687l3.01-3.028a.973.973 0 01.697-.27c.536.01.998.485.989 1.021a.971.971 0 01-.295.687L3.37 6.997h2.79a3.002 3.002 0 014.106-1.716l2.416-2.277-1.732.004a.99.99 0 01-.679-.329.978.978 0 01.05-1.378c.199-.186.459-.315.714-.3l4.012.005c.248.009.493.1.68.3.185.2.273.45.264.699L15.99 6.05a.973.973 0 01-.314.679 1.03 1.03 0 01-1.421-.048.971.971 0 01-.265-.699V4.29L11.65 6.602c.219.416.343.89.343 1.394 0 .451-.1.88-.279 1.263L14 11.68l-.004-1.73a.982.982 0 01.323-.68.978.978 0 011.378.049c.187.2.316.46.3.714l-.004 4.011a.983.983 0 01-.3.691.972.972 0 01-.7.265l-4.046-.001a.987.987 0 01-.679-.326 1.017 1.017 0 01.048-1.41.972.972 0 01.699-.265h1.693l-2.315-2.35z"],flows:["M13.5 6a2.5 2.5 0 00-2.45 2h-1.3L5.74 4l-.75.75L8.25 8h-3.3a2.5 2.5 0 100 1h3.3l-3.26 3.25.75.75 4.01-4h1.3a2.5 2.5 0 102.45-3z"],"folder-close":["M-.01 14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7h-16v7zm15-10H7.41L5.7 2.3a.965.965 0 00-.71-.3h-4c-.55 0-1 .45-1 1v3h16V5c0-.55-.45-1-1-1z"],"folder-new":["M10.165 7a3.003 3.003 0 002.827 2 3.003 3.003 0 002.827-2H16v7c0 .55-.45 1-1 1H1.01c-.55 0-1-.45-1-1V7h10.155zM8.76 6H0V3c0-.55.45-1 1-1h1.998c.28 0 .53.11.71.29L5.417 4h2.578c0 .768.29 1.469.765 2zm6.23-3c.55 0 1 .45 1 1s-.45 1-1 1h-.999v1c0 .55-.45 1-1 1-.549 0-.998-.45-.998-1V5h-1c-.55 0-1-.45-1-1s.45-1 1-1h1V2c0-.55.45-1 .999-1 .55 0 1 .45 1 1v1h.999z"],"folder-open":["M2.06 6.69c.14-.4.5-.69.94-.69h11V5c0-.55-.45-1-1-1H6.41l-1.7-1.71A.997.997 0 004 2H1c-.55 0-1 .45-1 1v9.84l2.05-6.15h.01zM16 8c0-.55-.45-1-1-1H4a.99.99 0 00-.94.69l-2 6c-.04.09-.06.2-.06.31 0 .55.45 1 1 1h11c.44 0 .81-.29.94-.69l2-6c.04-.09.06-.2.06-.31z"],"folder-shared":["M8.76 5.98c-.47-.53-.77-1.22-.77-1.99h-.58L5.7 2.29a.965.965 0 00-.71-.3h-4c-.55 0-1 .45-1 1v3h8.76l.01-.01zm6.23-2.99h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.3a.99.99 0 00-.29.7 1.003 1.003 0 001.71.71l3.29-3.29V8c0 .55.45 1 1 1s1-.45 1-1V4c0-.56-.45-1.01-1-1.01zm-1.98 7.23l-.9.9-.01-.01c-.54.55-1.28.89-2.11.89-1.66 0-3-1.34-3-3 0-.77.3-1.47.78-2H-.01v7c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.18c-.31.11-.65.18-1 .18-.76-.01-1.45-.31-1.98-.78z"],"folder-shared-open":["M13.02 10.22l-.9.9-.01-.01c-.54.55-1.28.89-2.11.89-1.66 0-3-1.34-3-3 0-.77.3-1.47.78-2H4a.99.99 0 00-.94.69l-2 6c-.04.09-.06.2-.06.31 0 .55.45 1 1 1h11c.44 0 .81-.29.94-.69l1.11-3.32c-.01 0-.03.01-.05.01-.77 0-1.45-.3-1.98-.78zM2.06 6.69c.14-.4.5-.69.94-.69h5.76l.01-.01C8.3 5.46 8 4.77 8 4H6.41l-1.7-1.71A.997.997 0 004 2H1c-.55 0-1 .45-1 1v9.84l2.05-6.15h.01zM15 3h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.29a1.003 1.003 0 001.42 1.42L14 6.41V8c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z"],follower:["M9.37 12.69c-1.2-.53-1.04-.85-1.08-1.29-.01-.06-.01-.12-.01-.19.41-.37.75-.87.97-1.44 0 0 .01-.03.01-.04.05-.13.09-.26.12-.39.28-.06.44-.36.5-.63.06-.11.19-.39.16-.7-.04-.4-.2-.59-.38-.67v-.07c0-.52-.05-1.26-.14-1.74a2.72 2.72 0 00-.09-.43 3.02 3.02 0 00-1.04-1.51C7.87 3.2 7.15 3 6.5 3c-.64 0-1.36.2-1.87.59-.5.38-.87.92-1.05 1.51-.04.13-.07.27-.09.4-.09.49-.14 1.24-.14 1.75v.06c-.19.07-.36.26-.4.68-.03.31.1.59.16.7.06.28.23.59.51.64.04.14.08.27.13.39 0 .01.01.02.01.02v.01c.22.59.57 1.1.99 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.12 1.29-1.2.53-3.01 1.1-3.38 1.95C-.13 15.5.02 16 .02 16h12.96s.15-.5-.22-1.36c-.38-.85-2.19-1.42-3.39-1.95zm6.33-10.4l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H9.99c-.55 0-1 .45-1 1s.45 1 1 1h2.58l-.29.29a1.003 1.003 0 001.42 1.42l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],following:["M9.37 12.69c-1.2-.53-1.04-.85-1.08-1.29-.01-.06-.01-.12-.01-.19.41-.37.75-.87.97-1.44 0 0 .01-.03.01-.04.05-.13.09-.26.12-.39.28-.06.44-.36.5-.63.06-.11.19-.39.16-.7-.04-.4-.2-.59-.38-.67v-.07c0-.52-.05-1.26-.14-1.74a2.72 2.72 0 00-.09-.43 3.02 3.02 0 00-1.04-1.51C7.87 3.2 7.15 3 6.5 3c-.64 0-1.36.2-1.87.59-.5.38-.87.92-1.05 1.51-.04.13-.07.27-.09.4-.09.49-.14 1.24-.14 1.75v.06c-.19.07-.36.26-.4.68-.03.31.1.59.16.7.06.28.23.59.51.64.04.14.08.27.13.39 0 .01.01.02.01.02v.01c.22.59.57 1.1.99 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.12 1.29-1.2.53-3.01 1.1-3.38 1.95C-.13 15.5.02 16 .02 16h12.96s.15-.5-.22-1.36c-.38-.85-2.19-1.42-3.39-1.95zM14.99 2h-2.58l.29-.29A1.003 1.003 0 0011.28.29l-2 2c-.17.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L12.41 4h2.58c.55 0 1-.45 1-1s-.45-1-1-1z"],font:["M13.93 14.67L8.94.67h-.01C8.79.28 8.43 0 8 0s-.79.28-.93.67h-.01l-5 14h.01c-.04.1-.07.21-.07.33 0 .55.45 1 1 1 .43 0 .79-.28.93-.67h.01L5.49 11h5.02l1.55 4.34h.01c.14.38.5.66.93.66.55 0 1-.45 1-1 0-.12-.03-.23-.07-.33zM6.2 9L8 3.97 9.8 9H6.2z"],fork:["M13.7 9.29a1.003 1.003 0 00-1.42 1.42l.29.29H11.4l-5-5h6.17l-.29.29a1.003 1.003 0 001.42 1.42l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.29.29H.99c-.55 0-1 .45-1 1s.45 1 1 1h2.59l6.71 6.71c.18.18.43.29.71.29h1.59l-.29.29a1.003 1.003 0 001.42 1.42l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71l-2.02-2z"],form:["M2 11v2h2v-2H2zM1 9h4c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1zm9-6h5c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1zM6 1a1.003 1.003 0 01.71 1.71l-3 4C3.53 6.89 3.28 7 3 7s-.53-.11-.71-.29l-2-2a1.003 1.003 0 011.42-1.42L3 4.59l2.29-3.3C5.47 1.11 5.72 1 6 1zm4 10h5c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1z"],"full-circle":["M8 0a8 8 0 100 16A8 8 0 108 0z"],"full-stacked-chart":["M13 12h1c.55 0 1-.45 1-1V8h-3v3c0 .55.45 1 1 1zM10 2c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v3h3V2zm0 4H7v3h3V6zm5-4c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v2h3V2zm0 3h-3v2h3V5zM5 5H2v3h3V5zm-2 7h1c.55 0 1-.45 1-1V9H2v2c0 .55.45 1 1 1zm12 1H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM5 2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2h3V2zm3 10h1c.55 0 1-.45 1-1v-1H7v1c0 .55.45 1 1 1z"],fullscreen:["M3.41 2H5c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v4c0 .55.45 1 1 1s1-.45 1-1V3.41L5.29 6.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L3.41 2zM6 9c-.28 0-.53.11-.71.29L2 12.59V11c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.41l3.29-3.29c.19-.18.3-.43.3-.71 0-.55-.45-1-1-1zm9 1c-.55 0-1 .45-1 1v1.59L10.71 9.3A.965.965 0 0010 9a1.003 1.003 0 00-.71 1.71l3.3 3.29H11c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm0-10h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.29a1.003 1.003 0 001.42 1.42L14 3.41V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z"],function:["M8.12 4.74H6.98c.33-1.29.75-2.24 1.28-2.84.33-.37.64-.56.95-.56.06 0 .11.02.15.05.04.04.06.09.06.15 0 .05-.04.15-.13.29-.09.14-.13.28-.13.4 0 .18.07.33.2.46.14.13.31.19.52.19.22 0 .41-.08.56-.23.15-.16.23-.37.23-.63 0-.3-.11-.55-.34-.74C10.1 1.09 9.74 1 9.24 1c-.78 0-1.49.22-2.12.67-.64.45-1.24 1.2-1.81 2.23-.2.36-.38.59-.56.69-.18.1-.46.15-.85.15l-.26.9h1.08l-1.59 6.12c-.27 1.01-.44 1.63-.54 1.86-.14.34-.34.63-.62.87-.11.1-.24.15-.4.15a.15.15 0 01-.11-.04l-.04-.05c0-.03.04-.08.12-.16.08-.08.12-.2.12-.36 0-.18-.06-.33-.19-.44-.12-.12-.3-.18-.54-.18-.28 0-.51.08-.68.23-.16.14-.25.32-.25.53 0 .22.1.42.31.59.21.17.53.25.97.25.7 0 1.32-.18 1.87-.54.54-.36 1.02-.92 1.42-1.67.41-.75.82-1.96 1.25-3.63l.91-3.54h1.1l.29-.89zm5.43 1.52c.2-.15.41-.23.62-.23.08 0 .23.03.45.09s.41.09.57.09c.23 0 .42-.08.57-.23.16-.16.24-.36.24-.61 0-.26-.08-.47-.23-.62-.15-.15-.37-.23-.66-.23-.25 0-.5.06-.72.18-.23.12-.51.38-.86.78-.26.3-.64.81-1.15 1.55-.2-.91-.55-1.75-1.05-2.51l-2.72.46-.06.29c.2-.04.37-.06.51-.06.27 0 .49.11.67.34.28.36.67 1.45 1.17 3.26-.39.52-.66.85-.8 1.01-.24.26-.44.42-.59.5-.12.06-.25.09-.41.09-.11 0-.3-.06-.56-.18-.18-.08-.34-.12-.48-.12-.27 0-.48.08-.66.25-.17.17-.26.38-.26.64 0 .25.08.44.24.6.16.15.37.23.64.23.26 0 .5-.05.73-.16.23-.11.52-.34.86-.69.35-.35.82-.9 1.43-1.67.23.73.44 1.25.61 1.58s.37.57.59.71c.22.15.5.22.83.22.32 0 .65-.11.98-.34.44-.3.88-.81 1.34-1.53l-.26-.15c-.31.43-.54.7-.69.8-.1.07-.22.1-.35.1-.16 0-.32-.1-.48-.3-.27-.34-.62-1.27-1.06-2.8.4-.68.73-1.13 1-1.34z"],"gantt-chart":["M10 10c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1zM6 7c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1zm9 5H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM4 5h3c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1z"],geofence:["M6 9c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1s-1-.45-1-1v-1.59l-3.29 3.3A1.003 1.003 0 010 15c0-.28.11-.53.3-.71L3.59 11H2c-.55 0-1-.45-1-1s.45-1 1-1zM9.088.004l.097.013.097.024.057.018.1.042.054.029.095.061.052.04 6 5 .05.046.076.08.053.07.06.095.051.11c.056.141.079.294.067.446l-.014.105-.037.143-.035.087-.043.083-4 7-.034.056-.059.08-.038.044-.096.092-.114.082-.116.062-.086.034-.109.03-.1.017-.069.006H8.83c.088-.25.144-.515.163-.79L9 13v-3a3 3 0 00-2.824-2.995L6 7H3c-.351 0-.689.06-1.002.171L2 5l.002-.07.013-.1.015-.073.025-.085.043-.104.056-.101.045-.066.079-.093.084-.078.083-.062 6-4 .07-.043.12-.056.111-.036.108-.022.083-.01h.031c.046-.002.083 0 .12.003z"],geolocation:["M-.01 6.66l7.34 2 2 7.33 6.66-16z"],geosearch:["M8.82 12.4h.66c.23 0 .36-.17.36-.4v-1.48l.19-.18c-.27.03-.55.06-.83.06-.28 0-.56-.03-.84-.07.02.04.05.08.07.13V12c0 .23.15.4.39.4zM6.4 15.1A5.51 5.51 0 01.9 9.6c0-.49.06-.98.18-1.43.03 0 .05-.01.08-.01h.08v.44c0 .19.17.34.36.34.03 0 .07-.01.1-.01l.71.7c.07.07.19.07.26 0s.07-.19 0-.26l-.7-.72c0-.02.03-.03.03-.05v-.11c0-.15.08-.2.23-.33h.42c.08 0 .15-.01.22-.04h.02c.02-.02.03-.02.04-.04.01-.01.01-.01.02-.01l.02-.01.9-.9c-.13-.26-.24-.52-.34-.8h-.5v-.43c0-.01.05.05.04-.08h.31c-.03-.13-.06-.26-.08-.39h-.57c.16-.12.34-.24.51-.36-.02-.23-.04-.46-.04-.7 0-.12.01-.23.02-.34A6.385 6.385 0 000 9.6C0 13.13 2.87 16 6.4 16c3.1 0 5.67-2.22 6.26-5.15l-.78-.88c-.21 2.85-2.58 5.13-5.48 5.13zm-1.7-2.93v-.28h.12c.23 0 .39-.19.39-.42v-.54s.01-.01 0-.01L3.77 9.45h-.62c-.23 0-.38.19-.38.42v1.6c0 .23.14.42.38.42h.26v1.61c0 .23.22.41.45.41s.45-.18.45-.41v-.97H4.3c.24 0 .4-.13.4-.36zm11.07-2.34l-2.94-2.94c.11-.17.21-.34.3-.52.01-.03.03-.06.04-.09.08-.18.16-.36.22-.55v-.01c.06-.19.1-.38.14-.58.01-.05.01-.09.02-.14.03-.2.05-.4.05-.61a4.4 4.4 0 00-4.4-4.4C6.77 0 4.8 1.97 4.8 4.4s1.97 4.4 4.4 4.4c.21 0 .41-.02.61-.05.04 0 .09-.01.14-.02.2-.03.39-.08.58-.14h.01c.19-.06.37-.14.55-.22.03-.01.06-.03.09-.04.18-.09.35-.19.52-.3l2.94 2.94a.8.8 0 00.57.23c.44 0 .8-.36.8-.8a.895.895 0 00-.24-.57zM9.2 7.6C7.43 7.6 6 6.17 6 4.4c0-1.77 1.43-3.2 3.2-3.2s3.2 1.43 3.2 3.2c0 1.77-1.43 3.2-3.2 3.2zm1.54 4.26v-.52c0-.09-.1-.17-.19-.17s-.19.07-.19.17v.52c0 .09.1.17.19.17s.19-.07.19-.17z"],"git-branch":["M12 1c-1.66 0-3 1.34-3 3 0 1.25.76 2.32 1.85 2.77A2.02 2.02 0 019 8H7c-.73 0-1.41.2-2 .55V5.82C6.16 5.4 7 4.3 7 3c0-1.66-1.34-3-3-3S1 1.34 1 3c0 1.3.84 2.4 2 2.82v4.37c-1.16.4-2 1.51-2 2.81 0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.04-.53-1.95-1.32-2.49.35-.31.81-.51 1.32-.51h2c1.92 0 3.52-1.35 3.91-3.15A2.996 2.996 0 0012 1zM4 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 12c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm8-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-commit":["M15 7h-3.14c-.45-1.72-2-3-3.86-3S4.59 5.28 4.14 7H1c-.55 0-1 .45-1 1s.45 1 1 1h3.14c.45 1.72 2 3 3.86 3s3.41-1.28 3.86-3H15c.55 0 1-.45 1-1s-.45-1-1-1zm-7 3c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"],"git-merge":["M12 6c-1.3 0-2.4.84-2.82 2H9c-1.62 0-3-.96-3.63-2.34C6.33 5.16 7 4.16 7 3c0-1.66-1.34-3-3-3S1 1.34 1 3c0 1.3.84 2.4 2 2.81v4.37C1.84 10.6 1 11.7 1 13c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V8.43A5.89 5.89 0 009 10h.18A2.996 2.996 0 0015 9c0-1.66-1.34-3-3-3zm-8 8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm8 6c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-new-branch":["M14 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3.18 4.8C10.51 7.51 9.82 8 9 8H7c-.73 0-1.41.2-2 .55V5.82C6.16 5.4 7 4.3 7 3c0-1.66-1.34-3-3-3S1 1.34 1 3c0 1.3.84 2.4 2 2.82v4.37c-1.16.4-2 1.51-2 2.81 0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.04-.53-1.95-1.32-2.49.35-.31.81-.51 1.32-.51h2c1.9 0 3.49-1.33 3.89-3.11-.29.07-.58.11-.89.11-.41 0-.8-.08-1.18-.2zM4 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 12c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-pull":["M3 1C1.34 1 0 2.34 0 4c0 1.3.84 2.4 2 2.82v3.37C.84 10.6 0 11.7 0 13c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V6.82C5.16 6.4 6 5.3 6 4c0-1.66-1.34-3-3-3zm0 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm11 5.18V6c0-1.66-1.34-3-3-3H9.41l1.29-1.29c.19-.18.3-.43.3-.71A1.003 1.003 0 009.29.29l-3 3C6.11 3.47 6 3.72 6 4c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L9.41 5H11c.55 0 1 .45 1 1v4.18A2.996 2.996 0 0013 16c1.66 0 3-1.34 3-3 0-1.3-.84-2.4-2-2.82zM13 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-push":["M4 6h1V5H4v1zm9 3c0-.28-.11-.53-.29-.71l-3-3C9.53 5.11 9.28 5 9 5s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L8 8.41V15c0 .55.45 1 1 1s1-.45 1-1V8.41l1.29 1.29c.18.19.43.3.71.3.55 0 1-.45 1-1zM5 3H4v1h1V3zm10-3H1C.45 0 0 .45 0 1v13c0 .55.45 1 1 1h5v-2H2v-1h4v-1H3V2h11v9h-2v1h2v1h-2v2h3c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],"git-repo":["M5 9H4v1h1V9zm10-9H1C.45 0 0 .45 0 1v13c0 .55.45 1 1 1h3v1l2-1 2 1v-1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM4 13H2v-1h2v1zm10 0H8v-1h6v1zm0-2H3V2h11v9zM5 3H4v1h1V3zm0 4H4v1h1V7zm0-2H4v1h1V5z"],glass:["M2 0v4c0 2.97 2.16 5.43 5 5.91V14H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1H9V9.91c2.84-.48 5-2.94 5-5.91V0H2z"],globe:["M4.45 7.83c-.26 0-.41.21-.41.46v1.75c0 .26.16.46.41.46h.29v1.77c0 .25.24.45.49.45s.49-.2.49-.45V11.2h-.01c.26 0 .44-.14.44-.4v-.3h.14c.26 0 .43-.2.43-.46v-.59s.01-.01 0-.01l-1.58-1.6h-.69zM8.51 3.9h.22c.06 0 .12-.01.12-.07 0-.06-.05-.07-.12-.07h-.22c-.06 0-.12.01-.12.07.01.06.06.07.12.07zm-2.33-.05c.07-.07.07-.19 0-.26l-.5-.5a.187.187 0 00-.26 0c-.07.07-.07.19 0 .26l.5.5c.07.07.19.07.26 0zm3.06.89c.07 0 .14-.06.14-.12v-.31c0-.07-.07-.12-.14-.12s-.14.06-.14.12v.31c0 .07.07.12.14.12zM8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-.55.1-1.07.23-1.57h.11v.47c0 .2.18.37.39.37.03 0 .08-.01.11-.02l.78.77c.08.08.2.08.28 0 .08-.08.08-.2 0-.28l-.75-.78c0-.02.04-.04.04-.06v-.12c0-.16.09-.22.25-.36h.46c.09 0 .17-.01.24-.05h.02c.02-.01.03-.02.05-.03.01-.01.01-.01.02-.01l.02-.02 1.59-1.58c.18-.18.18-.46 0-.64s-.47-.15-.65.03l-.3.34h-.57v-.48c0-.01.05.05.05-.09h.64c.12 0 .22-.09.22-.21s-.1-.21-.22-.21H4.1c.18-.15.34-.31.54-.44l.01-.01c.21-.14.45-.25.68-.37.15-.07.29-.15.44-.21.17-.07.35-.11.53-.17.18-.05.35-.12.53-.16a6.05 6.05 0 013.47.35c.05.02.1.05.16.08.25.11.48.24.71.39.25.16.49.34.71.55H10.6s0-.03-.01-.03c-.04 0-.09 0-.13.03l-.51.51a.17.17 0 000 .23c.06.06.17.06.23 0l.42-.44.01-.02h.25c0 .14-.07.09-.07.12v.07c0 .22-.15.37-.36.37h-.38c-.19 0-.38.21-.38.4v.17h-.1c-.12 0-.2.06-.2.18v.25h-.23c-.17 0-.3.11-.3.28 0 .17.13.26.3.26.07 0 .14.03.19-.11l.04.01.49-.46h.17l.39.37c.03.03.08.02.12-.01.03-.03.03-.12 0-.15l-.32-.35h.23l.09.12c.18.18.48.17.66-.01l.09-.1h.4c.02 0 .08.05.08.05v.24l-.05-.01h-.36c-.11 0-.21.1-.21.21 0 .11.09.21.21.21h.41v.15c-.14.21-.24.42-.45.42h-.94v-.01l-.44-.44a.47.47 0 00-.66 0l-.42.43v.01H8.6c-.26 0-.49.21-.49.46v.92c0 .26.23.45.49.45h.9c.34.14.57.35.72.69v1.68c0 .26.17.44.42.44h.72c.26 0 .4-.18.4-.44V9l.89-.86.03-.02.02-.01h.03c.07-.08.15-.19.15-.31v-.91c0-.18-.16-.32-.31-.46H13c.01.28.21.42.46.42h.42c.08.37.12.76.12 1.15 0 3.31-2.69 6-6 6zm4.54-4.27c-.1 0-.21.08-.21.18v.57c0 .1.11.18.21.18.1 0 .21-.08.21-.18v-.57c0-.1-.11-.18-.21-.18zM8.37 3.19c0-.25-.2-.42-.46-.42h-.54c-.25 0-.42.18-.42.43 0 .03-.1.04.05.08v.47c0 .15.06.27.21.27s.21-.12.21-.27v-.14h.5c.24 0 .45-.16.45-.42z"],"globe-network":["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm5.17 5h-2.44c-.21-1.11-.51-2.03-.91-2.69 1.43.46 2.61 1.43 3.35 2.69zM10 8c0 .73-.05 1.39-.12 2H6.12C6.05 9.39 6 8.73 6 8s.05-1.39.12-2h3.76c.07.61.12 1.27.12 2zM8 2c.67 0 1.36 1.1 1.73 3H6.27C6.64 3.1 7.33 2 8 2zm-1.82.31c-.4.66-.71 1.58-.91 2.69H2.83a6.025 6.025 0 013.35-2.69zM2 8c0-.7.13-1.37.35-2h2.76C5.04 6.62 5 7.28 5 8s.04 1.38.11 2H2.35C2.13 9.37 2 8.7 2 8zm.83 3h2.44c.21 1.11.51 2.03.91 2.69A6.025 6.025 0 012.83 11zM8 14c-.67 0-1.36-1.1-1.73-3h3.46c-.37 1.9-1.06 3-1.73 3zm1.82-.31c.4-.66.7-1.58.91-2.69h2.44a6.025 6.025 0 01-3.35 2.69zM13.65 10h-2.76c.07-.62.11-1.28.11-2s-.04-1.38-.11-2h2.76c.22.63.35 1.3.35 2s-.13 1.37-.35 2z"],graph:["M14 3c-1.06 0-1.92.83-1.99 1.88l-1.93.97A2.95 2.95 0 008 5c-.56 0-1.08.16-1.52.43L3.97 3.34C3.98 3.23 4 3.12 4 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.24 0 .47-.05.68-.13l2.51 2.09C5.08 7.29 5 7.63 5 8c0 .96.46 1.81 1.16 2.35l-.56 1.69c-.91.19-1.6.99-1.6 1.96 0 1.1.9 2 2 2s2-.9 2-2c0-.51-.2-.97-.51-1.32l.56-1.69A2.99 2.99 0 0011 8c0-.12-.02-.24-.04-.36l1.94-.97c.32.21.69.33 1.1.33 1.1 0 2-.9 2-2s-.9-2-2-2z"],"graph-remove":["M12.89 8.11l-.01.01-.38-.38-.38.38-.02-.02c-.54.55-1.27.9-2.1.9-1.66 0-3-1.34-3-3 0-.83.35-1.56.9-2.1l-.02-.02.38-.38-.38-.38.01-.01C7.35 2.57 7 1.83 7 1c0-.34.07-.65.17-.96A8.004 8.004 0 000 8c0 4.42 3.58 8 8 8 4.14 0 7.54-3.14 7.96-7.17-.31.1-.62.17-.96.17-.83 0-1.57-.35-2.11-.89zm1.02-4.61l1.79-1.79c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-1.79 1.8L10.71.3A.965.965 0 0010 0a1.003 1.003 0 00-.71 1.71l1.79 1.79-1.79 1.79a1.003 1.003 0 001.42 1.42l1.79-1.79 1.79 1.79a1.003 1.003 0 001.42-1.42l-1.8-1.79z"],"greater-than":["M2.713 5.958a1 1 0 01.574-1.916l10 3c.95.285.95 1.63 0 1.916l-10 3a1 1 0 01-.574-1.916L9.52 8 2.713 5.958z"],"greater-than-or-equal-to":["M2.713 3.958a1 1 0 01.574-1.916l10 3c.95.285.95 1.63 0 1.916l-10 3a1 1 0 01-.574-1.916L9.52 6 2.713 3.958zM3 12h10a1 1 0 010 2H3a1 1 0 010-2z"],grid:["M15 9c.55 0 1-.45 1-1s-.45-1-1-1h-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1H9V1c0-.55-.45-1-1-1S7 .45 7 1v1H4V1c0-.55-.45-1-1-1S2 .45 2 1v1H1c-.55 0-1 .45-1 1s.45 1 1 1h1v3H1c-.55 0-1 .45-1 1s.45 1 1 1h1v3H1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-1h3v1c0 .55.45 1 1 1s1-.45 1-1v-1h3v1c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V9h1zm-8 3H4V9h3v3zm0-5H4V4h3v3zm5 5H9V9h3v3zm0-5H9V4h3v3z"],"grid-view":["M0 1v6h7V0H1C.45 0 0 .45 0 1zm0 14c0 .55.45 1 1 1h6V9H0v6zM15 0H9v7h7V1c0-.55-.45-1-1-1zM9 16h6c.55 0 1-.45 1-1V9H9v7z"],"group-objects":["M5 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6-3H5C2.24 3 0 5.24 0 8s2.24 5 5 5h6c2.76 0 5-2.24 5-5s-2.24-5-5-5zm0 9H5c-2.21 0-4-1.79-4-4s1.79-4 4-4h6c2.21 0 4 1.79 4 4s-1.79 4-4 4zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"grouped-bar-chart":["M10 12c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1s-1 .45-1 1v8c0 .55.45 1 1 1zm3 0c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1zm2 1H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-9-1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1zm-3 0c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1v9c0 .55.45 1 1 1z"],hand:["M15 5c0-.55-.45-1-1-1-.41 0-.76.24-.91.59v.01s0 .01-.01.01L11.57 8h-.36l.78-4.84C12 3.11 12 3.05 12 3a1 1 0 00-1.99-.16v.01L9.18 8H9V1c0-.55-.45-1-1-1S7 .45 7 1v7h-.09l-.93-5.18A1 1 0 005 2c-.55 0-1 .45-1 1 0 .05 0 .11.01.16L5.26 11h-.04L2.83 7.44C2.65 7.18 2.35 7 2 7c-.55 0-1 .45-1 1 0 .17.04.33.12.47l3 5.69h.01v.01A5.002 5.002 0 0013 11v-.59l1.93-5.05c.05-.11.07-.23.07-.36z"],"hand-down":["M14.72 7.87c-1.54-.67-2.99-2.68-3.7-3.95C10.11 1.95 9.93 0 6.14 0 4.05 0 2.71.61 1.92 2.12 1.27 3.36 1 5.21 1 7.83v.79c0 .65.6 1.18 1.35 1.18.34 0 .64-.11.88-.29.17.48.68.84 1.29.84.41 0 .78-.16 1.03-.42.23.37.67.63 1.19.63.57 0 1.05-.31 1.25-.74l.01.63v4.05c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V7.9c.58.41 1.55 1.21 2.47 1.29 1.57.14 1.82-1.07 1.25-1.32z"],"hand-left":["M12.08 4.97c-1.26-.71-3.27-2.15-3.95-3.7C7.88.7 6.67.96 6.81 2.52c.09.93.89 1.9 1.3 2.48H1.5C.67 5 0 5.67 0 6.5S.67 8 1.5 8h4.05l.63.01c-.44.2-.75.69-.75 1.25 0 .52.26.96.63 1.19-.26.25-.42.61-.42 1.03 0 .61.35 1.12.84 1.29-.18.24-.29.54-.29.88 0 .75.54 1.35 1.19 1.35h.79c2.62 0 4.47-.28 5.71-.92 1.51-.79 2.12-2.14 2.12-4.22 0-3.79-1.95-3.97-3.92-4.89z"],"hand-right":["M14.5 5H7.89c.41-.58 1.21-1.55 1.3-2.47C9.34.97 8.12.71 7.87 1.28c-.67 1.54-2.68 2.99-3.95 3.7C1.95 5.89 0 6.07 0 9.86c0 2.09.61 3.43 2.12 4.22 1.24.65 3.09.92 5.71.92h.79c.65 0 1.18-.6 1.18-1.35 0-.34-.11-.64-.29-.88.48-.17.84-.68.84-1.29 0-.41-.16-.78-.42-1.03.37-.23.63-.67.63-1.19 0-.57-.31-1.05-.74-1.25l.63-.01h4.05c.83 0 1.5-.67 1.5-1.5S15.33 5 14.5 5z"],"hand-up":["M13.65 6.19c-.34 0-.64.11-.88.29-.17-.48-.68-.84-1.29-.84-.41 0-.78.16-1.03.42-.23-.37-.67-.63-1.19-.63-.57 0-1.05.31-1.25.74L8 5.55V1.5C8 .67 7.33 0 6.5 0S5 .67 5 1.5v6.61c-.58-.41-1.55-1.21-2.48-1.3C.96 6.67.7 7.88 1.28 8.13c1.54.67 2.99 2.68 3.7 3.95C5.89 14.05 6.07 16 9.86 16c2.09 0 3.43-.61 4.22-2.12.64-1.24.92-3.09.92-5.71v-.79c0-.65-.6-1.19-1.35-1.19z"],hat:["M15 10c.495 0 .933.379.993.882L16 11v.505c0 1.461-3.524 2.45-7.707 2.493L8 14c-4.31 0-8-1-8-2.495V11c0-.561.466-1 1-1 .895 0 3 1 7 1l.381-.003C12.135 10.937 14.134 10 15 10zm-4-8c1.13 0 2.02 2.153 2.671 6.46-1.063.266-2.644.652-4.887.727l-.403.01L8 9.2c-2.664 0-4.488-.444-5.673-.74C2.98 4.153 3.87 2 5 2c2 0 1.329 2 3 2s1-2 3-2z"],header:["M13 1c-.55 0-1 .45-1 1v5H4V2c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55.45 1 1 1s1-.45 1-1V9h8v5c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z"],"header-one":["M14.06 8c-.04.23-.12.44-.25.61-.13.17-.29.3-.48.41-.18.11-.39.18-.62.23-.23.04-.46.07-.71.07v1.03h1.74V16H15V8h-.94zM7 0c-.56 0-1 .45-1 1v4H2V1c0-.55-.45-1-1-1-.56 0-1 .45-1 1v10c0 .55.45 1 1 1 .56 0 1-.45 1-1V7h4v4c0 .55.45 1 1 1 .56 0 1-.45 1-1V1c0-.54-.45-1-1-1z"],"header-two":["M13.17 13.93c-.17.15-.33.29-.46.44-.13.16-.22.32-.27.49h3.55V16H11c.01-.65.16-1.22.44-1.71s.67-.91 1.17-1.27c.24-.18.49-.36.75-.54.25-.18.49-.36.71-.57.21-.2.39-.42.53-.65.14-.24.21-.51.22-.82 0-.14-.02-.29-.05-.45-.03-.16-.09-.31-.18-.45a1.13 1.13 0 00-.37-.35c-.16-.09-.37-.14-.63-.14-.24 0-.43.05-.59.15-.16.1-.29.24-.38.42-.1.17-.17.38-.21.62-.05.24-.07.5-.08.77h-1.19c0-.43.05-.83.16-1.2s.27-.69.49-.96c.21-.25.48-.46.79-.62.31-.15.67-.23 1.07-.23.45 0 .82.08 1.11.23.3.16.55.36.73.6.19.24.32.5.39.79.08.28.12.54.12.79 0 .31-.04.6-.13.85s-.22.49-.37.7c-.15.21-.32.41-.52.59s-.4.35-.61.51l-.63.45c-.21.14-.39.28-.57.42zM0 1c0-.55.44-1 1-1 .55 0 1 .46 1 1v10c0 .55-.44 1-1 1-.55 0-1-.46-1-1V1zm6 0c0-.55.44-1 1-1 .55 0 1 .46 1 1v10c0 .55-.44 1-1 1-.55 0-1-.46-1-1V1zM2 5h4v2H2V5z"],headset:["M14.85 6.34C14.18 2.72 11.37 0 8 0S1.82 2.72 1.15 6.34C.47 6.9 0 8.1 0 9.5 0 11.43.9 13 2 13c0 1.1.9 2 2 2h2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1H4c-.55 0-1-.45-1-1 .55 0 1-.45 1-1V7c0-.45-.3-.81-.71-.94C3.97 3.7 5.81 2 8 2s4.03 1.7 4.71 4.06c-.41.13-.71.49-.71.94v5c0 .55.45 1 1 1h1c1.1 0 2-1.57 2-3.5 0-1.4-.47-2.6-1.15-3.16z"],heart:["M16 5.095c0-2.255-1.88-4.083-4.2-4.083-1.682 0-3.13.964-3.8 2.352a4.206 4.206 0 00-3.8-2.352C1.88 1.012 0 2.84 0 5.095c0 .066.007.13.01.194H.004c.001.047.01.096.014.143l.013.142c.07.8.321 1.663.824 2.573C2.073 10.354 4.232 12.018 8 15c3.767-2.982 5.926-4.647 7.144-6.854.501-.905.752-1.766.823-2.562.007-.055.012-.11.016-.164.003-.043.012-.088.013-.13h-.006c.003-.066.01-.13.01-.195z"],"heart-broken":["M7.71 8.87L6.17 6.55l.02-.01A.906.906 0 016 6c0-.07.03-.13.04-.19h-.02l.78-3.92C6.09 1.34 5.19 1 4.2 1 1.88 1 0 2.83 0 5.09c0 .07.01.13.01.19H0c0 .05.01.1.01.14 0 .05.01.1.01.14.07.8.32 1.66.82 2.57 1.07 1.94 2.88 3.47 5.86 5.84l-.68-2.74h.02C6.03 11.16 6 11.08 6 11c0-.28.11-.53.29-.71l1.42-1.42zM16 5.09C16 2.83 14.12 1 11.8 1c-1.2 0-2.27.5-3.04 1.28l-.7 3.51 1.77 2.66-.01.01c.1.15.18.33.18.54 0 .28-.11.53-.29.71l-1.6 1.6.75 3.01c3.23-2.56 5.16-4.15 6.28-6.18.5-.91.75-1.77.82-2.56.01-.05.01-.11.02-.16 0-.04.01-.09.01-.13h-.01c.01-.07.02-.14.02-.2z"],"heat-grid":["M0 10h5V7H0v3zm1-2h3v1H1V8zm14-5h-4v3h5V4c0-.55-.45-1-1-1zm0 2h-3V4h3v1zM0 4v2h5V3H1c-.55 0-1 .45-1 1zm0 9c0 .55.45 1 1 1h4v-3H0v2zm6-7h4V3H6v3zm0 8h4v-3H6v3zm1-2h2v1H7v-1zm4 2h4c.55 0 1-.45 1-1v-2h-5v3zm0-4h5V7h-5v3zm-5 0h4V7H6v3z"],heatmap:["M2 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm11-7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm3 4.5A2.5 2.5 0 0013.5 6c-.98 0-1.82.57-2.23 1.39-.6-.78-1.51-1.3-2.56-1.36.18-.49.29-.99.29-1.53C9 2.01 6.99 0 4.5 0S0 2.01 0 4.5 2.01 9 4.5 9c.19 0 .37-.03.56-.06-.03.19-.06.37-.06.56C5 11.43 6.57 13 8.5 13c1.63 0 2.98-1.11 3.37-2.62.44.38 1 .62 1.63.62A2.5 2.5 0 0016 8.5zM14.5 13c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"],help:["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm1 13H7v-2h2v2zm1.93-6.52c-.14.32-.35.64-.62.97L9.25 8.83c-.12.15-.24.29-.28.42-.04.13-.09.3-.09.52V10H7.12V8.88s.05-.51.21-.71L8.4 6.73c.22-.26.35-.49.44-.68.09-.19.12-.38.12-.58 0-.3-.1-.55-.28-.75-.18-.19-.44-.28-.76-.28-.33 0-.59.1-.78.29-.19.19-.33.46-.4.81-.03.11-.1.15-.2.14l-1.7-.25c-.12-.01-.16-.08-.14-.19.12-.82.46-1.47 1.03-1.94.57-.48 1.32-.72 2.25-.72.47 0 .9.07 1.29.22s.72.34 1 .59c.28.25.49.55.65.89.15.35.22.72.22 1.12s-.07.75-.21 1.08z"],"helper-management":["M13 5h-2v2h2V5zm0 6h-2v2h2v-2zm0-3h-2v2h2V8zm2-8H1C.4 0 0 .4 0 1v14c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V1c0-.6-.4-1-1-1zm-1 14H2V2h12v12zm-7-3H5v2h2v-2zm3 0H8v2h2v-2z"],"high-priority":["M9 14v2H7v-2h2zm1-14L9 12H7L6 0h4z"],highlight:["M9.12 11.07l2-2.02.71.71 4-4.04L10.17 0l-4 4.04.71.71-2 2.02 4.24 4.3zM2 12.97h4c.28 0 .53-.11.71-.3l1-1.01-3.42-3.45-3 3.03c-.18.18-.29.44-.29.72 0 .55.45 1.01 1 1.01zm13 1.01H1c-.55 0-1 .45-1 1.01S.45 16 1 16h14c.55 0 1-.45 1-1.01s-.45-1.01-1-1.01z"],history:["M8 3c-.55 0-1 .45-1 1v4c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L9 7.59V4c0-.55-.45-1-1-1zm0-3a7.95 7.95 0 00-6 2.74V1c0-.55-.45-1-1-1S0 .45 0 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.54C4.64 2.78 6.23 2 8 2c3.31 0 6 2.69 6 6 0 2.61-1.67 4.81-4 5.63v-.01c-.63.23-1.29.38-2 .38-3.31 0-6-2.69-6-6 0-.55-.45-1-1-1s-1 .45-1 1c0 4.42 3.58 8 8 8 .34 0 .67-.03 1-.07.02 0 .04-.01.06-.01C12.98 15.4 16 12.06 16 8c0-4.42-3.58-8-8-8z"],home:["M2 10v5c0 .55.45 1 1 1h3v-5h4v5h3c.55 0 1-.45 1-1v-5L8 4l-6 6zm13.71-2.71L14 5.59V2c0-.55-.45-1-1-1s-1 .45-1 1v1.59L8.71.29C8.53.11 8.28 0 8 0s-.53.11-.71.29l-7 7a1.003 1.003 0 001.42 1.42L8 2.41l6.29 6.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],"horizontal-bar-chart":["M4 5h7c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zM1 1c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1zm14 6H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-6 5H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1z"],"horizontal-bar-chart-asc":["M1 3h5c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm0 4h7c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 6H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM1 11h10c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1z"],"horizontal-bar-chart-desc":["M15 1H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM8 9H1c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm-2 4H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm5-8H1c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z"],"horizontal-distribution":["M2 0c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm13 0c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-5 2H7c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"],"id-number":["M2 5v7h12V5H2zm0-2h12c1.1 0 2 .9 2 2v7c0 1.1-.9 2-2 2H2c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z","M7.9 10.48c-.14-.33-.84-.55-1.3-.75-.46-.2-.4-.33-.42-.5v-.07c.16-.14.29-.33.37-.56 0 0 0-.01.01-.02.02-.05.03-.1.05-.15.1-.01.16-.13.19-.23.03-.04.07-.15.06-.27-.02-.16-.08-.24-.15-.26v-.03c0-.2-.02-.48-.05-.67-.01-.05-.02-.1-.03-.16-.07-.23-.21-.44-.4-.58-.2-.15-.48-.23-.73-.23s-.53.08-.72.23c-.19.14-.33.35-.4.58-.02.05-.03.1-.03.16-.05.18-.06.47-.06.67v.03c-.07.03-.14.1-.15.26-.02.12.03.22.06.27.02.1.09.22.2.24.01.05.03.1.05.15v.01c.08.23.22.42.38.56v.07c-.02.17.03.29-.43.5-.46.2-1.16.42-1.3.75s-.09.52-.09.52H8c-.01 0 .05-.19-.1-.52zM10 6h2c.55 0 1 .45 1 1s-.45 1-1 1h-2c-.55 0-1-.45-1-1s.45-1 1-1zM10 9h2c.55 0 1 .45 1 1s-.45 1-1 1h-2c-.55 0-1-.45-1-1s.45-1 1-1z"],"image-rotate-left":["M13 2h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C8.11 2.47 8 2.72 8 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H13c.55 0 1 .45 1 1v3c0 .55.45 1 1 1s1-.45 1-1V5c0-1.66-1.34-3-3-3zm-5.5 9c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 6.33L7 12l-1 1-2-3-2 2.67V9h7v4.33z"],"image-rotate-right":["M5.71 5.71l2-2C7.89 3.53 8 3.28 8 3c0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H3C1.34 2 0 3.34 0 5v3c0 .55.45 1 1 1s1-.45 1-1V5c0-.55.45-1 1-1h1.59l-.3.29a1.003 1.003 0 001.42 1.42zM12.5 11c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM15 7H6c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 6.33L12 12l-1 1-2-3-2 2.67V9h7v4.33z"],import:["M7.29 11.71c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L9 8.59V1c0-.55-.45-1-1-1S7 .45 7 1v7.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l4 4zM15 11c-.55 0-1 .45-1 1v2H2v-2c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1z"],inbox:["M13.91 2.6c-.16-.36-.51-.61-.92-.61h-10c-.41 0-.77.25-.92.61L-.01 7.45v5.54c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7.45L13.91 2.6zm-1.92 5.39c-.55 0-1 .45-1 1v1h-6v-1c0-.55-.45-1-1-1H1.94l1.71-4h8.68l1.71 4h-2.05z"],"inbox-filtered":["M6.432 2c.094.14.202.273.324.394L8.42 4H3.66L1.95 8H4c.55 0 1 .45 1 1v1h6.557c.693 0 1.363-.262 1.837-.736l.103-.102.85-1.14a2.564 2.564 0 00.623-1.682V5.058L16 7.46V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h3.432zm9.048-2c.31 0 .52.26.52.57 0 .16-.06.3-.17.41l-2.86 2.73v2.63c0 .16-.06.3-.17.41l-.82 1.1c-.1.1-.25.17-.41.17-.31 0-.57-.26-.57-.57V3.71L8.17.98A.566.566 0 018 .57c0-.31.26-.57.57-.57h6.91z"],"inbox-geo":["M6.341 2A5.99 5.99 0 006 4H3.66L1.95 8H4c.55 0 1 .45 1 1v1h7a5.978 5.978 0 004-1.528V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h3.341zm3.679 2.145c0-.125.075-.23.205-.225h.345l.79.8c.005 0 0 .005 0 .005v.295c0 .13-.085.23-.215.23h-.07v.15c0 .13-.09.2-.215.2v.535c0 .125-.12.225-.245.225s-.245-.1-.245-.225V5.25h-.145c-.125 0-.205-.1-.205-.23v-.875zm2.235-2.195c-.03 0-.055-.005-.06-.035 0-.03.03-.035.06-.035h.11c.035 0 .06.005.06.035 0 .03-.03.035-.06.035h-.11zm-1.165-.025a.094.094 0 01-.13 0l-.25-.25a.094.094 0 010-.13.094.094 0 01.13 0l.25.25a.094.094 0 010 .13zm1.53.445c-.035 0-.07-.025-.07-.06v-.155c0-.03.035-.06.07-.06s.07.025.07.06v.155c0 .03-.035.06-.07.06zM12 0c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm0 7c1.655 0 3-1.345 3-3 0-.195-.02-.39-.06-.575h-.21c-.125 0-.225-.07-.23-.21h-.215c.075.07.155.14.155.23V3.9c0 .06-.04.115-.075.155h-.015l-.01.005-.015.01-.445.43v.815c0 .13-.07.22-.2.22h-.36c-.125 0-.21-.09-.21-.22v-.84a.627.627 0 00-.36-.345h-.45c-.13 0-.245-.095-.245-.225v-.46c0-.125.115-.23.245-.23l.13-.005.21-.215c.09-.09.24-.09.33 0l.22.225h.47c.105 0 .155-.105.225-.21v-.075h-.205a.106.106 0 01-.105-.105.11.11 0 01.105-.105h.18l.025.005v-.12s-.03-.025-.04-.025h-.2l-.045.05a.235.235 0 01-.33.005l-.045-.06h-.115l.16.175c.015.015.015.06 0 .075-.02.015-.045.02-.06.005l-.195-.185h-.085l-.245.23-.02-.005c-.025.07-.06.055-.095.055-.085 0-.15-.045-.15-.13s.065-.14.15-.14h.115v-.125c0-.06.04-.09.1-.09h.05V2.36c0-.095.095-.2.19-.2h.19c.105 0 .18-.075.18-.185V1.94c0-.015.035.01.035-.06h-.125l-.005.01-.21.22a.085.085 0 01-.115 0 .085.085 0 010-.115l.255-.255c.02-.015.045-.015.065-.015.005 0 .005.015.005.015h.64a2.327 2.327 0 00-.355-.275 2.452 2.452 0 00-.355-.195c-.03-.015-.055-.03-.08-.04a3.025 3.025 0 00-1.735-.175c-.09.02-.175.055-.265.08-.09.03-.18.05-.265.085-.075.03-.145.07-.22.105-.115.06-.235.115-.34.185l-.005.005c-.1.065-.18.145-.27.22h.455c.06 0 .11.045.11.105s-.05.105-.11.105h-.32c0 .07-.025.04-.025.045v.24h.285l.15-.17c.09-.09.235-.105.325-.015.09.09.09.23 0 .32l-.795.79-.01.01c-.005 0-.005 0-.01.005l-.025.015h-.01a.235.235 0 01-.12.025h-.23c-.08.07-.125.1-.125.18v.06c0 .01-.02.02-.02.03l.375.39c.04.04.04.1 0 .14-.04.04-.1.04-.14 0l-.39-.385a.213.213 0 01-.055.01c-.105 0-.195-.085-.195-.185v-.235h-.055A3.1 3.1 0 009 4c0 1.655 1.345 3 3 3zm2.27-2.135c.05 0 .105.04.105.09v.285c0 .05-.055.09-.105.09-.05 0-.105-.04-.105-.09v-.285c0-.05.055-.09.105-.09zm-2.085-3.27c0 .13-.105.21-.225.21h-.25v.07c0 .075-.03.135-.105.135s-.105-.06-.105-.135V1.64c-.075-.02-.025-.025-.025-.04 0-.125.085-.215.21-.215h.27c.13 0 .23.085.23.21z"],"inbox-search":["M5.639 2a5.391 5.391 0 00-.144 2H3.66L1.95 8H4c.55 0 1 .45 1 1v1h6V9c0-.088.012-.174.033-.255.12-.007.238-.019.39-.038.154-.008.252-.03.442-.077a5.34 5.34 0 00.24-.05h.05l.122-.04 1.266 1.271c.425.47 1.116.769 1.847.769.21 0 .414-.025.61-.071V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h2.639zM15.82 7.53c.1.12.17.27.18.44 0 .34-.27.61-.61.61a.57.57 0 01-.43-.18l-2.24-2.25c-.13.08-.26.16-.4.23-.02.01-.05.02-.07.03-.14.06-.27.12-.42.17h-.01c-.14.05-.29.08-.44.11-.04.01-.08.02-.11.02-.15.02-.3.04-.46.04-1.85 0-3.35-1.51-3.35-3.37S8.96.01 10.81 0c1.85 0 3.35 1.51 3.35 3.37 0 .16-.02.31-.04.47-.01.04-.01.07-.02.11-.02.15-.05.29-.1.44v.01c-.05.15-.11.28-.17.42-.01.02-.02.05-.03.07-.07.14-.14.27-.23.4l2.25 2.24zm-5.01-1.94c1.22 0 2.21-.99 2.21-2.22 0-1.23-.99-2.22-2.21-2.22S8.6 2.14 8.6 3.37c0 1.22.99 2.22 2.21 2.22z"],"inbox-update":["M8.1 2a5.023 5.023 0 000 2H3.66L1.95 8H4c.55 0 1 .45 1 1v1h6V9c0-.55.45-1 1-1h2.05c.708 0 1.352-.241 1.905-.645L16 7.46V13c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V7.46l2.08-4.85C2.23 2.25 2.59 2 3 2h5.1zM13 6a3 3 0 110-6 3 3 0 010 6z"],"info-sign":["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zM7 3h2v2H7V3zm3 10H6v-1h1V7H6V6h3v6h1v1z"],inheritance:["M5 8c0 1.66 1.34 3 3 3h4.59L11.3 9.71A.965.965 0 0111 9a1.003 1.003 0 011.71-.71l3 3c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-3 3a1.003 1.003 0 01-1.42-1.42l1.3-1.29H8c-2.76 0-5-2.24-5-5H1a1 1 0 01-1-1V1a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5zM2 2v4h4V2H2z"],"inherited-group":["M1 7c.51 0 .935.388.993.884L2 8v3c0 .51.388.935.884.993L3 12h1.59l-.3-.29a1.003 1.003 0 011.324-1.504l.096.084 2 2c.18.18.29.43.29.71 0 .233-.076.446-.206.614l-.084.096-2 2A1.003 1.003 0 014 15c0-.24.08-.458.224-.629l.076-.081.29-.29H3a2.996 2.996 0 01-2.995-2.823L0 11V8c0-.55.45-1 1-1zm5.388-7c.629 0 1.338.21 1.838.6.48.38.85.91 1.019 1.52.04.13.07.27.09.4.09.48.14 1.22.14 1.73v.07c.18.08.34.27.37.67.03.32-.09.59-.16.71-.06.28-.21.58-.48.63-.03.13-.07.26-.12.39 0 .01-.01.04-.01.04-.22.58-.55 1.08-.949 1.45v.18c.04.45-.12.77 1.059 1.3 1.179.53 2.947 1.09 3.307 1.95.37.86.22 1.36.22 1.36H9c0-.539-.21-1.045-.583-1.417l-2-2A1.997 1.997 0 005 9c-.149 0-.296-.015-.442-.045.099-.19.082-.37.101-.575 0-.05.01-.11.01-.17-.41-.35-.75-.86-.969-1.45v-.01s-.01-.01-.01-.02c-.04-.12-.09-.26-.12-.39-.28-.05-.44-.36-.5-.64-.06-.12-.19-.39-.16-.71.04-.41.21-.6.39-.68v-.06c0-.51.05-1.26.14-1.74.02-.13.05-.27.09-.4.17-.6.54-1.13 1.02-1.51C5.048.21 5.757 0 6.387 0zm4.625 2.04c.49 0 1.05.16 1.439.46.38.29.67.7.8 1.17.03.1.05.21.07.31.07.37.11.94.11 1.33v.05c.139.06.269.21.289.51.02.25-.07.45-.13.54-.05.21-.16.44-.38.48a1.711 1.711 0 01-.1.33c-.17.44-.43.83-.749 1.11v.14c.03.35-.09.59.83 1 .929.41 2.317.84 2.597 1.5.29.66.17 1.04.17 1.04H13.66v.01c-.05-.24-.14-.5-.25-.76-.36-.86-1.119-1.33-2.687-2-.14-.06-.59-.25-.6-.25-.21-.09-.36-.15-.5-.22.02-.1.02-.2.03-.31 0-.04.01-.08.01-.13-.07-.06-.13-.12-.19-.19.22-.32.4-.67.54-1.05.02-.06.02-.06.03-.1.29-.23.48-.57.59-.96.16-.33.25-.73.21-1.16-.03-.4-.16-.76-.37-1.03-.02-.53-.07-1.13-.15-1.54-.01-.06-.02-.12-.03-.19.23-.06.48-.09.72-.09z"],"inner-join":["M6.6 3.3C5.3 4.4 4.5 6.1 4.5 8s.8 3.6 2.1 4.7c-.5.2-1 .3-1.6.3-2.8 0-5-2.2-5-5s2.2-5 5-5c.6 0 1.1.1 1.6.3zm-1.96 8.68C3.92 10.83 3.5 9.46 3.5 8s.42-2.83 1.14-3.98C2.6 4.2 1 5.91 1 8s1.6 3.8 3.64 3.98zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c2.8 0 5 2.2 5 5s-2.2 5-5 5c-.6 0-1.1-.1-1.6-.3 1.3-1.1 2.1-2.9 2.1-4.7s-.8-3.5-2.1-4.7c.5-.2 1-.3 1.6-.3zm.35 1.02c.73 1.15 1.14 2.52 1.14 3.98s-.42 2.83-1.14 3.98c2.04-.18 3.64-1.9 3.64-3.98s-1.6-3.8-3.64-3.98z"],insert:["M5 9h2v2c0 .6.4 1 1 1s1-.4 1-1V9h2c.6 0 1-.4 1-1s-.4-1-1-1H9V5c0-.6-.4-1-1-1s-1 .4-1 1v2H5c-.6 0-1 .4-1 1s.4 1 1 1zm10-9H1C.4 0 0 .4 0 1v14c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V1c0-.6-.4-1-1-1zm-1 14H2V2h12v12z"],intersection:["M10 3c-.92 0-1.76.26-2.5.69C6.76 3.26 5.92 3 5 3 2.24 3 0 5.24 0 8s2.24 5 5 5c.92 0 1.76-.26 2.5-.69.74.43 1.58.69 2.5.69 2.76 0 5-2.24 5-5s-2.24-5-5-5zm-4.1 7.85c-.29.09-.59.15-.9.15-1.66 0-3-1.34-3-3s1.34-3 3-3c.31 0 .61.06.9.15C5.33 5.96 5 6.94 5 8s.33 2.04.9 2.85zM10 11c-.31 0-.61-.06-.9-.15.57-.81.9-1.79.9-2.85s-.33-2.04-.9-2.85c.29-.09.59-.15.9-.15 1.66 0 3 1.34 3 3s-1.34 3-3 3z"],"ip-address":["M5 2.66C5 4.14 8 8 8 8s3-3.86 3-5.34C10.99 1.2 9.66 0 8 0S5 1.2 5 2.66zM7 3c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1zM10.5 10H8v5h1v-4h1v1H9v1h2v-3h-.5zM2 9h12c.55 0 1 .45 1 1v5c0 .55-.45 1-1 1H2c-.55 0-1-.45-1-1v-5c0-.55.45-1 1-1zm4 1v5h1v-5H6z"],issue:["M8 16A8 8 0 118 0a8 8 0 010 16zm0-2A6 6 0 108 2a6 6 0 000 12zm1-2H7v-2h2v2zm0-3H7V4h2v5z"],"issue-closed":["M9.296.104a2.99 2.99 0 00-1.003.664 2.987 2.987 0 00-.75 1.25 6 6 0 106.28 4.527c.043-.039.085-.079.127-.12l1.456-1.456A8 8 0 119.296.105zm2.532 5.2a.997.997 0 01-.707-.294L9.707 3.596a1 1 0 011.414-1.414l.707.707 1.768-1.768a1 1 0 111.414 1.415L12.536 5.01a.997.997 0 01-.708.293zM9 12H7v-2h2v2zm0-3H7V4h2v5z"],"issue-new":["M10.568.421c-.01.04-.018.08-.026.121-.837.156-1.53.73-1.85 1.497a6 6 0 105.27 5.273 2.51 2.51 0 001.496-1.854c.04-.008.081-.016.121-.026A8 8 0 1110.568.421zM9 12H7v-2h2v2zm0-3H7V4h2v5zm1-6c0-.55.45-1 1-1h1V1c0-.55.45-1 1-1s1 .45 1 1v1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v1.005c0 .55-.45 1-1 1s-1-.45-1-1V4h-1c-.55 0-1-.45-1-1z"],italic:["M9.8 4H11c.5 0 1-.4 1-1s-.4-1-1-1H7c-.5 0-1 .4-1 1s.4 1 1 1h.8l-1.6 8H5c-.5 0-1 .4-1 1s.4 1 1 1h4c.5 0 1-.4 1-1s-.4-1-1-1h-.8l1.6-8z"],"join-table":["M15 5h-3V2c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h3v3c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-5-1v2H6V4h4zm0 6H6V7h4v3zM2 4h3v2H2V4zm0 5V7h3v2H2zm4 4v-2h4v2H6zm8 0h-3v-2h3v2zm0-3h-3V8h3v2z"],key:["M11 0C8.24 0 6 2.24 6 5c0 1.02.31 1.96.83 2.75L.29 14.29a1.003 1.003 0 001.42 1.42L3 14.41l1.29 1.29c.18.19.43.3.71.3s.53-.11.71-.29l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71L6.41 11l1.83-1.83c.8.52 1.74.83 2.76.83 2.76 0 5-2.24 5-5s-2.24-5-5-5zm0 8c-.23 0-.45-.03-.66-.08-.01 0-.02-.01-.03-.01-.21-.05-.41-.12-.6-.21a3.014 3.014 0 01-1.62-2c0-.01-.01-.02-.01-.03C8.03 5.45 8 5.23 8 5c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3z"],"key-backspace":["M15 2H6c-.28 0-.53.11-.71.29l-5 5C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l5 5c.18.18.43.29.71.29h9c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-2.29 7.29a1.003 1.003 0 01-1.42 1.42L10 9.41 8.71 10.7c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71L8.59 8l-1.3-1.29a1.003 1.003 0 011.42-1.42L10 6.59l1.29-1.29c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L11.41 8l1.3 1.29z"],"key-command":["M12 9h-1V7h1c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3v1H7V4c0-1.66-1.34-3-3-3S1 2.34 1 4s1.34 3 3 3h1v2H4c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3v-1h2v1c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3zm0-6c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM4 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm0-8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm5 4H7V7h2v2zm3 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"key-control":["M12.71 5.29l-4-4C8.53 1.11 8.28 1 8 1s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L8 3.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],"key-delete":["M15.71 7.29l-5-5A.997.997 0 0010 2H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h9c.28 0 .53-.11.71-.29l5-5c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zm-7 2a1.003 1.003 0 01-1.42 1.42L6 9.41 4.71 10.7c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71L4.59 8l-1.3-1.29a1.003 1.003 0 011.42-1.42L6 6.59 7.29 5.3c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L7.41 8l1.3 1.29z"],"key-enter":["M14 2c-.55 0-1 .45-1 1v3c0 1.66-1.34 3-3 3H4.41L5.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L4.41 11H10c2.76 0 5-2.24 5-5V3c0-.55-.45-1-1-1z"],"key-escape":["M2 7c.55 0 1-.45 1-1V4.41L7.29 8.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 3H6c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm7-5.9v2A5 5 0 113.1 9h-2c.49 3.39 3.38 6 6.9 6 3.87 0 7-3.13 7-7 0-3.52-2.61-6.41-6-6.9z"],"key-option":["M11 4h4c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1s.45 1 1 1zm4 8h-3.43L5.86 2.49h-.02A.975.975 0 005 2H1c-.55 0-1 .45-1 1s.45 1 1 1h3.43l5.71 9.51.01-.01c.18.3.49.5.85.5h4c.55 0 1-.45 1-1s-.45-1-1-1z"],"key-shift":["M13.71 7.29l-5-5C8.53 2.11 8.28 2 8 2s-.53.11-.71.29l-5 5A1.003 1.003 0 003 9h2v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V9h2a1.003 1.003 0 00.71-1.71z"],"key-tab":["M15 10H4.41L5.7 8.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L2 9.59V8c0-.55-.45-1-1-1s-1 .45-1 1v6c0 .55.45 1 1 1s1-.45 1-1v-1.59l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 12H15c.55 0 1-.45 1-1s-.45-1-1-1zm0-9c-.55 0-1 .45-1 1v1.59L11.71 1.3A.965.965 0 0011 1a1.003 1.003 0 00-.71 1.71L11.59 4H1c-.55 0-1 .45-1 1s.45 1 1 1h10.59L10.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L14 6.41V8c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z"],"known-vehicle":["M15 3a.997.997 0 00-.707.293L12 5.586l-1.293-1.293a1 1 0 10-1.414 1.414l2 2a.997.997 0 001.414 0l3-3A1 1 0 0015 3zm-.879 6.121l-.007-.007c-.313.309-.69.552-1.114.702V10h-.998H12h-1v-.184c-.424-.15-.8-.395-1.112-.704l-.01.01-2-2 .012-.012A2.978 2.978 0 017.184 6H3c-.176 0-.06-.824 0-1l.73-1.63C3.79 3.192 3.823 3 4 3H7.78C8.328 2.39 9.115 2 10 2c.768 0 1.461.293 1.987.77l.844-.844c-.238-.244-.524-.442-.794-.524C12.037 1.402 10.72 1 8 1c-2.72 0-4.037.402-4.037.402-.508.155-1.078.711-1.268 1.237l-.763 2.117H.88c-.484 0-.88.423-.88.939s.396.939.88.939h.375L1 7c-.034.685 0 1.436 0 2v5c0 .657.384 1 1 1s1-.343 1-1v-1h10v1c0 .657.384 1 1 1s1-.343 1-1V9l-.003-.754-.876.875zM5.001 10H3V8h2v2z"],"lab-test":["M11 1a1 1 0 010 2v3l3 7v1.25a.75.75 0 01-.75.75H2.75a.75.75 0 01-.75-.75V13l3-7V3a1 1 0 110-2h6zM9 3H7v3l-1.714 4h5.428L9 6V3z"],label:["M11 2H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7l-5-5zm3 10H2V4h8v2H3v1h7v1h4v4zm-3-5V4l3 3h-3zm-8 3h10V9H3v1z"],layer:["M16 8c0-.37-.21-.68-.51-.85l.01-.01-7-4-.01.01C8.34 3.06 8.18 3 8 3s-.34.06-.49.15l-.01-.02-7 4 .01.01C.21 7.32 0 7.63 0 8s.21.68.51.85l-.01.01 7 4 .01-.01c.15.09.31.15.49.15s.34-.06.49-.15l.01.01 7-4-.01-.01c.3-.17.51-.48.51-.85z"],"layer-outline":["M7.504 3.132l-7 4a1 1 0 000 1.736l7 4a1 1 0 00.992 0l7-4a1 1 0 000-1.736l-7-4a1 1 0 00-.992 0zM8 5.152L12.983 8 8 10.847 3.016 8 8 5.152z"],layers:["M.55 4.89l7 3.5c.14.07.29.11.45.11s.31-.04.45-.11l7-3.5a.998.998 0 00-.06-1.81L8.4.08a1.006 1.006 0 00-.79 0l-6.99 3a.992.992 0 00-.07 1.81zM15 10c-.16 0-.31.04-.45.11L8 13.38 1.45 10.1c-.14-.06-.29-.1-.45-.1-.55 0-1 .45-1 1 0 .39.23.73.55.89l7 3.5c.14.07.29.11.45.11s.31-.04.45-.11l7-3.5c.32-.16.55-.5.55-.89 0-.55-.45-1-1-1zm0-3.5c-.16 0-.31.04-.45.11L8 9.88 1.45 6.61A.997.997 0 001 6.5c-.55 0-1 .45-1 1 0 .39.23.73.55.89l7 3.5c.14.07.29.11.45.11s.31-.04.45-.11l7-3.5c.32-.16.55-.5.55-.89 0-.55-.45-1-1-1z"],layout:["M14 4c-1.1 0-2 .9-2 2 0 .47.17.9.44 1.24l-.68.91A1.996 1.996 0 009.07 9.5H7.93C7.71 8.64 6.93 8 6 8c-.47 0-.9.17-1.24.44l-.91-.68c.1-.23.15-.49.15-.76 0-.37-.11-.71-.28-1.01l2.27-2.27c.3.17.64.28 1.01.28 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .37.11.71.28 1.01L3.01 5.28C2.71 5.11 2.37 5 2 5 .9 5 0 5.9 0 7s.9 2 2 2c.47 0 .9-.17 1.24-.44l.91.68c-.1.23-.15.49-.15.76 0 .37.11.71.28 1.01l-1.27 1.27C2.71 12.11 2.37 12 2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.37-.11-.71-.28-1.01l1.27-1.27c.3.17.64.28 1.01.28.93 0 1.71-.64 1.93-1.5h1.14c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2 0-.47-.17-.9-.44-1.24l.68-.91c.23.1.49.15.76.15 1.1 0 2-.9 2-2s-.9-2-2-2z"],"layout-auto":["M14 9.5c-.56 0-1.06.23-1.42.59L8.99 8l3.59-2.09A2.002 2.002 0 0016 4.5c0-1.1-.9-2-2-2s-2 .9-2 2c0 .19.03.37.08.54L8.5 7.13v-3.2c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S6 .9 6 2c0 .93.64 1.71 1.5 1.93v3.2L3.92 5.04c.05-.17.08-.35.08-.54 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.56 0 1.06-.23 1.42-.59L7.01 8l-3.59 2.09A2.002 2.002 0 000 11.5c0 1.1.9 2 2 2s2-.9 2-2c0-.19-.03-.37-.08-.54L7.5 8.87v3.2c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-3.2l3.58 2.09c-.05.17-.08.35-.08.54 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z"],"layout-balloon":["M14 11c-.2 0-.38.04-.56.09L12.42 9.4c.36-.36.58-.85.58-1.4 0-.55-.22-1.04-.58-1.4l1.01-1.69c.19.05.37.09.57.09 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .55.22 1.04.58 1.4l-1.01 1.69C11.38 6.04 11.2 6 11 6c-.93 0-1.71.64-1.93 1.5H6.93C6.71 6.64 5.93 6 5 6c-.2 0-.38.04-.56.09L3.42 4.4C3.78 4.04 4 3.55 4 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.2 0 .38-.04.56-.09L3.58 6.6C3.22 6.96 3 7.45 3 8c0 .55.22 1.04.58 1.4l-1.01 1.69C2.38 11.04 2.2 11 2 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.55-.22-1.04-.58-1.4l1.01-1.69c.19.05.37.09.57.09.93 0 1.71-.64 1.93-1.5h2.14c.22.86 1 1.5 1.93 1.5.2 0 .38-.04.56-.09l1.01 1.69c-.35.36-.57.85-.57 1.4 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z"],"layout-circle":["M14.16 6.02c-.12-.36-.26-.7-.43-1.03.17-.29.27-.63.27-.99 0-1.1-.9-2-2-2-.36 0-.7.1-.99.27-.33-.17-.67-.31-1.03-.43A1.987 1.987 0 008 0C6.95 0 6.1.81 6.02 1.84c-.36.12-.7.26-1.03.43C4.7 2.1 4.36 2 4 2c-1.1 0-2 .9-2 2 0 .36.1.7.27.99-.17.33-.31.67-.43 1.03C.81 6.1 0 6.95 0 8c0 1.05.81 1.9 1.84 1.98.12.36.26.7.43 1.03-.17.29-.27.63-.27.99 0 1.1.9 2 2 2 .36 0 .7-.1.99-.27.33.17.67.32 1.03.43C6.1 15.19 6.95 16 8 16c1.05 0 1.9-.81 1.98-1.84.36-.12.7-.26 1.03-.43.29.17.63.27.99.27 1.1 0 2-.9 2-2 0-.36-.1-.7-.27-.99.17-.33.31-.67.43-1.03C15.19 9.9 16 9.05 16 8c0-1.05-.81-1.9-1.84-1.98zm-.99 3.79c-.05.16-.11.31-.17.46-.3-.17-.64-.27-1-.27-1.1 0-2 .9-2 2 0 .36.1.7.27 1-.15.07-.3.12-.46.17C9.5 12.48 8.81 12 8 12s-1.5.48-1.81 1.17c-.16-.06-.32-.11-.46-.17.17-.3.27-.64.27-1 0-1.1-.9-2-2-2-.36 0-.7.1-1 .27-.07-.15-.12-.3-.17-.46C3.52 9.5 4 8.81 4 8s-.48-1.5-1.17-1.81c.06-.16.11-.32.17-.46.3.17.64.27 1 .27 1.1 0 2-.9 2-2 0-.36-.1-.7-.27-1 .15-.07.3-.12.46-.17C6.5 3.52 7.19 4 8 4s1.5-.48 1.81-1.17c.16.06.32.11.46.17-.17.3-.27.64-.27 1 0 1.1.9 2 2 2 .36 0 .7-.1 1-.27.07.15.12.3.17.46C12.48 6.5 12 7.19 12 8s.48 1.5 1.17 1.81z"],"layout-grid":["M2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 0C6.9 0 6 .9 6 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"layout-group-by":["M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-7c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 1C.9 1 0 1.9 0 3s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5 3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"layout-hierarchy":["M14.5 12.07V9.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2-.93 0-1.71.64-1.93 1.5H9.93c-.18-.7-.73-1.25-1.43-1.43V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S6 .9 6 2c0 .93.64 1.71 1.5 1.93v2.14c-.7.18-1.25.73-1.43 1.43H3.93C3.71 6.64 2.93 6 2 6 .9 6 0 6.9 0 8c0 .93.64 1.71 1.5 1.93v2.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93V9.93c.7-.18 1.25-.73 1.43-1.43h2.14c.18.7.73 1.25 1.43 1.43v2.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93V9.93c.7-.18 1.25-.73 1.43-1.43h2.14c.18.7.73 1.25 1.43 1.43v2.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93z"],"layout-linear":["M14 6c-.93 0-1.71.64-1.93 1.5H9.93C9.71 6.64 8.93 6 8 6s-1.71.64-1.93 1.5H3.93C3.71 6.64 2.93 6 2 6 .9 6 0 6.9 0 8s.9 2 2 2c.93 0 1.71-.64 1.93-1.5h2.13C6.29 9.36 7.07 10 8 10s1.71-.64 1.93-1.5h2.13c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2C16 6.9 15.1 6 14 6z"],"layout-skew-grid":["M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-2c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6-3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],"layout-sorted-clusters":["M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM8 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],learning:["M8.441 1.104a.985.985 0 00-.882 0L.365 5c-.487.253-.487.747 0 1L7.56 9.896a.985.985 0 00.882 0L15.635 6c.487-.253.487-.747 0-1L8.44 1.104z","M14 5.5l.016 4.514c.002.548.447.99.994.99a.99.99 0 00.99-.99V5.5h-2zM3.371 9.047l4.387 2.432a.5.5 0 00.485 0l4.39-2.432a.25.25 0 01.371.218v2.955a.25.25 0 01-.134.222l-4.635 2.436a.5.5 0 01-.466 0l-4.635-2.436A.25.25 0 013 12.22V9.265a.25.25 0 01.371-.218z"],"left-join":["M6.6 3.3C6.1 3.1 5.6 3 5 3 2.2 3 0 5.2 0 8s2.2 5 5 5c.6 0 1.1-.1 1.6-.3C5.3 11.6 4.5 9.9 4.5 8s.8-3.6 2.1-4.7zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c2.8 0 5 2.2 5 5s-2.2 5-5 5c-.6 0-1.1-.1-1.6-.3 1.3-1.1 2.1-2.9 2.1-4.7s-.8-3.5-2.1-4.7c.5-.2 1-.3 1.6-.3zm.35 1.02c.73 1.15 1.14 2.52 1.14 3.98s-.42 2.83-1.14 3.98c2.04-.18 3.64-1.9 3.64-3.98s-1.6-3.8-3.64-3.98z"],"less-than":["M13.287 5.958a1 1 0 00-.574-1.916l-10 3c-.95.285-.95 1.631 0 1.916l10 3a1 1 0 00.574-1.916L6.48 8l6.807-2.042z"],"less-than-or-equal-to":["M13.287 3.958a1 1 0 00-.575-1.916l-10 3c-.95.285-.95 1.63 0 1.916l10 3a1 1 0 00.575-1.916L6.48 6l6.807-2.042zM13 12H3a1 1 0 000 2h10a1 1 0 000-2z"],lifesaver:["M9.405 11.746C8.968 11.91 8.495 12 8 12c-.494 0-.968-.09-1.405-.254l-.702 1.873C6.548 13.865 7.258 14 8 14c.742 0 1.452-.135 2.107-.38l-.702-1.874zm2.341-2.341l1.873.702C13.865 9.452 14 8.742 14 8c0-.742-.135-1.452-.38-2.107l-1.874.702c.164.437.254.91.254 1.405 0 .494-.09.968-.254 1.405zM9.405 4.254l.702-1.873A5.987 5.987 0 008 2c-.742 0-1.452.135-2.107.38l.702 1.874C7.032 4.09 7.505 4 8 4c.494 0 .968.09 1.405.254zM4.254 6.595L2.38 5.893A5.987 5.987 0 002 8c0 .742.135 1.452.38 2.107l1.874-.702A3.991 3.991 0 014 8c0-.494.09-.968.254-1.405zM8 16A8 8 0 118 0a8 8 0 010 16zm0-6a2 2 0 100-4 2 2 0 000 4z"],lightbulb:["M9.01 14h-2c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1s-.44-1-1-1zm1-3h-4c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1s-.44-1-1-1zm-2-11C5.26 0 3.03 1.95 3.03 4.35c0 2.37 1.63 2.64 1.94 5.22 0 .24.22.44.5.44h5.09c.28 0 .5-.19.5-.44C11.37 6.99 13 6.72 13 4.35 13 1.95 10.77 0 8.01 0z"],link:["M4.99 11.99c.28 0 .53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42l-6 6a1.003 1.003 0 00.71 1.71zm3.85-2.02L6.4 12.41l-1 1-.01-.01c-.36.36-.85.6-1.4.6-1.1 0-2-.9-2-2 0-.55.24-1.04.6-1.4l-.01-.01 1-1 2.44-2.44c-.33-.1-.67-.16-1.03-.16-1.1 0-2.09.46-2.81 1.19l-.02-.02-1 1 .02.02c-.73.72-1.19 1.71-1.19 2.81 0 2.21 1.79 4 4 4 1.1 0 2.09-.46 2.81-1.19l.02.02 1-1-.02-.02c.73-.72 1.19-1.71 1.19-2.81 0-.35-.06-.69-.15-1.02zm7.15-5.98c0-2.21-1.79-4-4-4-1.1 0-2.09.46-2.81 1.19l-.02-.02-1 1 .02.02c-.72.72-1.19 1.71-1.19 2.81 0 .36.06.69.15 1.02l2.44-2.44 1-1 .01.01c.36-.36.85-.6 1.4-.6 1.1 0 2 .9 2 2 0 .55-.24 1.04-.6 1.4l.01.01-1 1-2.43 2.45c.33.09.67.15 1.02.15 1.1 0 2.09-.46 2.81-1.19l.02.02 1-1-.02-.02a3.92 3.92 0 001.19-2.81z"],list:["M1 3h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 10H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],"list-columns":["M6 1c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1h5zm9-12c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5zm0 4c.55 0 1 .45 1 1s-.45 1-1 1h-5c-.55 0-1-.45-1-1s.45-1 1-1h5z"],"list-detail-view":["M6 9H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm9-12h-5c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM6 5H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1z"],locate:["M15 7h-.09A6.98 6.98 0 009 1.1V1c0-.55-.45-1-1-1S7 .45 7 1v.09A6.98 6.98 0 001.1 7H1c-.55 0-1 .45-1 1s.45 1 1 1h.1A6.969 6.969 0 007 14.91V15c0 .55.45 1 1 1s1-.45 1-1v-.09A6.98 6.98 0 0014.9 9h.1c.55 0 1-.45 1-1s-.45-1-1-1zm-6.02 5.9c-.05-.5-.46-.9-.98-.9s-.93.4-.98.9A5.017 5.017 0 013.1 8.98c.5-.05.9-.46.9-.98s-.4-.93-.9-.98A5.017 5.017 0 017.02 3.1c.05.5.46.9.98.9s.93-.4.98-.9c1.97.39 3.52 1.95 3.92 3.92-.5.05-.9.46-.9.98s.4.93.9.98a5.017 5.017 0 01-3.92 3.92zM8 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],lock:["M13.96 7H12V3.95C12 1.77 10.21 0 8 0S4 1.77 4 3.95V7H1.96c-.55 0-.96.35-.96.9v6.91c0 .54.41 1.19.96 1.19h12c.55 0 1.04-.65 1.04-1.19V7.9c0-.55-.49-.9-1.04-.9zM6 7V3.95c0-1.09.9-1.97 2-1.97s2 .88 2 1.97V7H6z"],"log-in":["M11 8c0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L7.59 7H1c-.55 0-1 .45-1 1s.45 1 1 1h6.59L6.3 10.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71zm4-8H9c-.55 0-1 .45-1 1s.45 1 1 1h5v12H9c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],"log-out":["M7 14H2V2h5c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm8.71-6.71l-3-3a1.003 1.003 0 00-1.42 1.42L12.59 7H6c-.55 0-1 .45-1 1s.45 1 1 1h6.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],manual:["M15.99 1.13c-.02-.41-.33-.77-.78-.87C12.26-.36 9.84.13 8 1.7 6.16.13 3.74-.36.78.26.33.35.03.72.01 1.13H0v12c0 .08 0 .17.02.26.12.51.65.82 1.19.71 2.63-.55 4.59-.04 6.01 1.57.02.03.06.04.08.06.02.02.03.04.05.06.04.03.09.04.13.07.05.03.09.05.14.07.11.04.23.07.35.07h.04c.12 0 .24-.03.35-.07.05-.02.09-.05.14-.07.04-.02.09-.04.13-.07.02-.02.03-.04.05-.06.03-.02.06-.03.08-.06 1.42-1.6 3.39-2.12 6.01-1.57.54.11 1.07-.21 1.19-.71.04-.09.04-.18.04-.26l-.01-12zM7 12.99c-1.4-.83-3.07-1.14-5-.93V1.96c2.11-.28 3.75.2 5 1.46v9.57zm7-.92c-1.93-.21-3.6.1-5 .93V3.42c1.25-1.26 2.89-1.74 5-1.46v10.11z"],"manually-entered-data":["M1 8h3.76l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm14.49-4.01c.31-.32.51-.76.51-1.24C16 1.78 15.22 1 14.25 1c-.48 0-.92.2-1.24.51l-1.44 1.44 2.47 2.47 1.45-1.43zM1 4h7.76l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm0 6c-.55 0-1 .45-1 1 0 .48.35.86.8.96L2.76 10H1zm9.95-6.43l-6.69 6.69 2.47 2.47 6.69-6.69-2.47-2.47zm4.25 2.47L13.24 8H15c.55 0 1-.45 1-1 0-.48-.35-.86-.8-.96zM2 15l3.86-1.39-2.46-2.44L2 15zm13-5h-3.76l-2 2H15c.55 0 1-.45 1-1s-.45-1-1-1z"],map:["M15.55 3.17l-4.49-3A.975.975 0 009.99.15L5.53 2.82 1.56.17A1.003 1.003 0 000 1v11c0 .35.18.65.45.83l4.49 3a.975.975 0 001.07.02l4.46-2.67 3.97 2.65A1.003 1.003 0 0016 15V4c0-.35-.18-.65-.45-.83zM5 13.46l-3-2v-8.6l2.94 1.96c.02.02.04.03.06.04v8.6zm5-2.32s-.01 0-.01.01L6 13.53V4.86s.01 0 .01-.01L10 2.47v8.67zm4 1.99l-2.94-1.96c-.02-.01-.04-.02-.05-.03v-8.6l3 2v8.59z"],"map-create":["M14 6.82v6.32l-2.94-1.96c-.02-.01-.04-.02-.05-.03V6.22c-.08-.07-.15-.16-.22-.24-.28-.02-.54-.08-.79-.16v5.32s-.01 0-.01.01L6 13.53V4.86s.01 0 .01-.01l2.05-1.23C8.02 3.42 8 3.21 8 3c0-.98.47-1.84 1.2-2.39l-3.67 2.2L1.56.17A1.003 1.003 0 000 1v11c0 .35.18.65.45.83l4.49 3a.975.975 0 001.07.02l4.46-2.67 3.97 2.65A1.003 1.003 0 0016 15V5.82c-.25.09-.52.14-.8.16-.33.36-.73.67-1.2.84zm-9 6.64l-3-2v-8.6l2.94 1.96c.02.02.04.03.06.04v8.6zM11 4h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1z"],"map-marker":["M8.46 0C5.42 0 2.95 2.39 2.95 5.33 2.95 8.28 8.46 16 8.46 16s5.51-7.72 5.51-10.67C13.96 2.39 11.5 0 8.46 0zm0 8a2.5 2.5 0 010-5 2.5 2.5 0 010 5z"],maximize:["M5.99 8.99c-.28 0-.53.11-.71.29l-3.29 3.29v-1.59c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.41L6.7 10.7a1.003 1.003 0 00-.71-1.71zm9-9h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59l-3.3 3.3a.99.99 0 00-.29.7 1.003 1.003 0 001.71.71l3.29-3.29V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.56-.45-1.01-1-1.01z"],media:["M11.99 6.99c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm3-5h-14c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-10c0-.55-.45-1-1-1zm-1 9l-5-3-1 2-3-4-3 5v-7h12v7z"],menu:["M1 4h14c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 8H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm0-5H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],"menu-closed":["M14.99 6.99h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm-12-2c-.28 0-.53.11-.71.29l-2 2a1.014 1.014 0 000 1.42l2 2a1.003 1.003 0 001.71-.71v-4c0-.55-.45-1-1-1zm3-1h9c.55 0 1-.45 1-1s-.45-1-1-1h-9c-.55 0-1 .45-1 1s.45 1 1 1zm9 8h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1z"],"menu-open":["M9.99 11.99h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm0-5h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm0-5h-9c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm5.71 5.3l-2-2a1.003 1.003 0 00-1.71.71v4a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71z"],"merge-columns":["M5.71 5.29a1.003 1.003 0 00-1.42 1.42l.3.29H2V2h3v1.51c.52.06.99.29 1.34.65l.66.66V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3.82l-.66.66c-.35.35-.82.59-1.34.65V14H2V9h2.59l-.3.29a1.003 1.003 0 001.42 1.42l2-2C7.89 8.53 8 8.28 8 8c0-.28-.11-.53-.29-.71l-2-2zM15 0h-5c-.55 0-1 .45-1 1v3.82l.66-.66c.35-.35.82-.59 1.34-.65V2h3v5h-2.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C8.11 7.47 8 7.72 8 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H14v5h-3v-1.51c-.52-.06-.99-.29-1.34-.65L9 11.18V15c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],"merge-links":["M8 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6 3c-.93 0-1.71.64-1.93 1.5H11V3c0-1.66-1.34-3-3-3S5 1.34 5 3v4.5H3.93C3.71 6.64 2.93 6 2 6 .9 6 0 6.9 0 8s.9 2 2 2c.93 0 1.71-.64 1.93-1.5H5V13c0 1.66 1.34 3 3 3s3-1.34 3-3V8.5h1.07c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2s-.9-2-2-2zm-4 7c0 1.1-.9 2-2 2s-2-.9-2-2V3c0-1.1.9-2 2-2s2 .9 2 2v10z"],minimize:["M15.99.99a1.003 1.003 0 00-1.71-.71l-3.29 3.29V1.99c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H12.4l3.3-3.29c.18-.18.29-.43.29-.71zm-10 8h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59L.29 14.28a1.003 1.003 0 001.42 1.42L5 12.41V14c0 .55.45 1 1 1s1-.45 1-1v-4a1.02 1.02 0 00-1.01-1.01z"],minus:["M13 7H3c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z"],"mobile-phone":["M12 0H4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM8 15c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3-3H5V3h6v9z"],"mobile-video":["M15 4c-.28 0-.53.11-.71.29L12 6.59V4c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V9.41l2.29 2.29c.18.19.43.3.71.3.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z"],modal:["M15 1a1 1 0 011 1v12a1 1 0 01-1 1H1a1 1 0 01-1-1V2a1 1 0 011-1h14zm-1 4H2v8h12V5zm-3-3H9v2h2V2zm3 0h-2v2h2V2z"],"modal-filled":["M15 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm1 4H0V3h16v2zm-3-2h-2V1h2v2z"],moon:["M15 11.38A7.835 7.835 0 017.85 16C3.51 16 0 12.49 0 8.15 0 4.97 1.89 2.23 4.62 1c-.45.99-.7 2.08-.7 3.23a7.85 7.85 0 007.85 7.85c1.15 0 2.24-.25 3.23-.7z"],more:["M2 6.03a2 2 0 100 4 2 2 0 100-4zM14 6.03a2 2 0 100 4 2 2 0 100-4zM8 6.03a2 2 0 100 4 2 2 0 100-4z"],mountain:["M16 13H3l6-9h1l2 2h1l3 7zm-2.5-3.5l-1-2.5h-1l-2-2-3 4.5L9 8l1 1 1-1 2.5 1.5zM5.94 7l-4.122 6H0l5-6h.94z"],move:["M15.71 7.29l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H9V3.41l.29.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2C8.53.11 8.28 0 8 0s-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l.29-.3V7H3.41l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L3.41 9H7v3.59l-.29-.29A.965.965 0 006 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2a1.003 1.003 0 00-1.42-1.42l-.29.3V9h3.59l-.29.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],mugshot:["M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14h-.15c-.03-.09-.04-.16-.08-.25-.34-.79-2.01-1.31-3.12-1.8-1.11-.49-.96-.79-1-1.2-.01-.06-.01-.12-.01-.18.38-.34.69-.8.89-1.33 0 0 .01-.03.01-.04.04-.12.08-.24.11-.36.25-.05.4-.33.46-.59.06-.1.18-.36.15-.65-.04-.37-.19-.55-.35-.62v-.06c0-.48-.04-1.16-.13-1.61-.02-.12-.05-.25-.08-.37-.16-.55-.51-1.05-.96-1.39C9.26 3.19 8.6 3 8 3c-.59 0-1.26.19-1.73.55-.45.35-.8.84-.96 1.39-.04.13-.06.25-.08.38-.09.45-.13 1.13-.13 1.61v.06c-.18.06-.33.24-.37.62-.03.29.09.54.15.65.06.26.21.54.47.59.03.12.07.25.11.36 0 .01.01.02.01.02v.01c.21.54.53 1.01.92 1.35 0 .05-.01.11-.01.16-.04.41.08.7-1.03 1.2-1.11.49-2.77 1.01-3.12 1.8-.04.09-.05.16-.08.25H2V2h12v12z"],"multi-select":["M12 3.98H4c-.55 0-1 .45-1 1v1h8v5h1c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm3-3H7c-.55 0-1 .45-1 1v1h8v5h1c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm-6 6H1c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm-1 5H2v-3h6v3z"],music:["M15 0c-.07 0-.13.03-.19.04V.02l-10 2v.02C4.35 2.13 4 2.52 4 3v9.12c-.31-.07-.65-.12-1-.12-1.66 0-3 .9-3 2s1.34 2 3 2 3-.9 3-2V6.32l8-1.6v5.4c-.31-.07-.65-.12-1-.12-1.66 0-3 .9-3 2s1.34 2 3 2 3-.9 3-2V1c0-.55-.45-1-1-1z"],"new-drawing":["M14.9 11c.6 0 1 .5 1 1 0 .257-.073.44-.22.614l-.08.086-3 3c-.2.2-.4.3-.7.3-.5 0-1-.4-1-1 0-.257.073-.44.22-.614l.08-.086 3-3c.2-.2.4-.3.7-.3zM1.3.1l6.734 2.45a3.005 3.005 0 002.095 3.322 3.005 3.005 0 003.401 2.081L13.9 9.8v.2c0 .257-.073.44-.22.614l-.08.086-3 3c-.171.171-.343.27-.577.294L9.9 14h-.2l-5-1-.1-.01c-.231-.05-.45-.26-.56-.49L4 12.4l-4-11 .3-.3 5.8 5.8c-.1.2-.2.4-.2.6 0 .8.6 1.5 1.5 1.5s1.5-.7 1.5-1.5S8.2 6 7.4 6c-.16 0-.32.064-.48.14l-.12.06L1 .4l.3-.3zM13 0c.55 0 1 .45 1 1v1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v1c0 .503-.376.922-.861.99l-.013.002A.999.999 0 0113 6l.097-.006-.027.004a1 1 0 01-.037.001L13 6c-.55 0-1-.45-1-1V4h-1a.993.993 0 01-.855-.482A1 1 0 0110 3c0-.55.45-1 1-1h1V1c0-.55.45-1 1-1z"],"new-grid-item":["M6 0H1C.45 0 0 .45 0 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm5 14c0-.55-.45-1-1-1s-1 .45-1 1v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1s-.45-1-1-1zM6 9H1c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1zm9 4c-.55 0-1 .45-1 1-.55 0-1 .45-1 1s.45 1 1 1h1c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm-4-4h-1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1s1-.45 1-1c.55 0 1-.45 1-1s-.45-1-1-1zm4-9h-5c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm0 9h-1c-.55 0-1 .45-1 1s.45 1 1 1c0 .55.45 1 1 1s1-.45 1-1v-1c0-.55-.45-1-1-1z"],"new-layer":["M13.982 6.272l1.518.868-.01.01c.3.17.51.48.51.85s-.21.68-.51.85l.01.01-7 4-.01-.01A.94.94 0 018 13a.94.94 0 01-.49-.15l-.01.01-7-4 .01-.01A.977.977 0 010 8c0-.37.21-.68.51-.86L.5 7.13l7-4 .01.02A.94.94 0 018 3c.086 0 .168.014.246.038a2 2 0 105.736 3.234zM14 3c.55 0 1 .45 1 1s-.45 1-1 1h-1v1c0 .55-.45 1-1 1s-1-.45-1-1V5h-1c-.55 0-1-.45-1-1s.45-1 1-1h1V2c0-.55.45-1 1-1s1 .45 1 1v1h1z"],"new-layers":["M13 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5H9a1 1 0 110-2h2V1a1 1 0 012 0v2zm-3-1.983V2H9a2 2 0 100 4h1v1c0 .279.057.544.16.785l-1.71.855c-.14.07-.29.11-.45.11-.16 0-.31-.04-.45-.11l-7-3.5a.992.992 0 01.07-1.81l6.99-3a1.006 1.006 0 01.79 0l1.6.687zm.91 7.66a2 2 0 003.085-1.54l.555-.277c.14-.07.29-.11.45-.11.55 0 1 .45 1 1 0 .39-.23.73-.55.89l-7 3.5c-.14.07-.29.11-.45.11-.16 0-.31-.04-.45-.11l-7-3.5C.23 8.48 0 8.14 0 7.75c0-.55.45-1 1-1 .16 0 .31.04.45.11L8 10.13l2.91-1.453zM15 10.25c.55 0 1 .45 1 1 0 .39-.23.73-.55.89l-7 3.5c-.14.07-.29.11-.45.11-.16 0-.31-.04-.45-.11l-7-3.5c-.32-.16-.55-.5-.55-.89 0-.55.45-1 1-1 .16 0 .31.04.45.1L8 13.63l6.55-3.27c.14-.07.29-.11.45-.11z"],"new-link":["M15 3h-1V2c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V5h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3.5 6a2.5 2.5 0 00-2.45 2h-4.1a2.5 2.5 0 100 1h4.1a2.5 2.5 0 102.45-3z"],"new-object":["M8 4c0 .6.4 1 1 1h2v2c0 .6.4 1 1 1s1-.4 1-1V5h2c.6 0 1-.4 1-1s-.4-1-1-1h-2V1c0-.6-.4-1-1-1s-1 .4-1 1v2H9c-.6 0-1 .5-1 1zm6.5 2.5V7c0 1.4-1.1 2.5-2.5 2.5S9.5 8.4 9.5 7v-.5H9C7.6 6.5 6.5 5.4 6.5 4S7.6 1.5 9 1.5h.5V1c0-.3.1-.6.1-.8C9.1.1 8.6 0 8 0 3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8c0-.6-.1-1.3-.2-1.9-.4.3-.8.4-1.3.4z"],"new-person":["M9.12 12.69c-1.17-.53-1.01-.85-1.05-1.29-.01-.06-.01-.12-.01-.19.4-.37.73-.87.94-1.44 0 0 .01-.03.01-.04.05-.14.09-.27.12-.4.27-.06.43-.36.49-.63.06-.11.19-.39.16-.7-.04-.41-.2-.6-.38-.68v-.07c0-.51-.05-1.25-.14-1.74-.02-.13-.05-.27-.09-.4-.17-.6-.53-1.14-1.01-1.52C7.66 3.2 6.96 3 6.33 3c-.62 0-1.33.2-1.82.59-.49.38-.85.92-1.02 1.52-.04.13-.07.26-.09.4-.09.49-.13 1.23-.13 1.74v.06c-.19.08-.35.27-.39.68-.03.31.1.59.16.7.06.28.22.59.5.64.03.14.07.27.11.4 0 .01.01.02.01.02v.01c.22.59.55 1.1.96 1.46 0 .06-.01.12-.01.17-.04.44.08.76-1.09 1.29-1.17.53-2.93 1.1-3.29 1.95-.35.87-.2 1.37-.2 1.37h12.6s.15-.5-.22-1.36c-.36-.85-2.12-1.42-3.29-1.95zM14.89 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1z"],"new-prescription":["M9.82 11.66l2.48-2.87c.12-.2.13-.37.04-.53-.11-.19-.3-.26-.52-.26h-1.29c-.27 0-.49.13-.63.34L8.44 9.9 6.95 8a.482.482 0 00-.08-.1L5.82 6.55c.57-.24 1.04-.57 1.42-1.01.49-.57.74-1.27.74-2.08 0-.51-.1-.99-.32-1.42-.21-.43-.51-.8-.89-1.11A4.1 4.1 0 005.42.24C4.91.08 4.34 0 3.72 0H.61C.26 0 0 .23 0 .56v9.89c0 .33.26.55.61.55h.8c.36 0 .61-.23.61-.56V6.99H3.3l3.73 4.74-2.71 3.48c-.12.2-.13.37-.04.53.11.19.3.26.52.26h1.27c.27 0 .51-.12.64-.34l1.69-2.15 1.66 2.14c.12.21.34.35.62.35h1.43c.2 0 .39-.08.5-.25.12-.18.09-.38-.02-.55l-2.77-3.54zM4.18 5H1.99V2.02h2.19c.62 0 1.08.13 1.38.37.29.22.44.62.44 1.08 0 .45-.15.94-.44 1.17-.31.23-.76.36-1.38.36zM15 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1zM9.99 3.01c0 .02.01.04.01.06V2.95c0 .02-.01.04-.01.06z"],"new-text-box":["M5 6.5c0 .28.22.5.5.5H7v3.5c0 .28.22.5.5.5s.5-.22.5-.5V7h1.5c.28 0 .5-.22.5-.5S9.78 6 9.5 6h-4c-.28 0-.5.22-.5.5zM15 2h-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V4h1c.55 0 1-.45 1-1s-.45-1-1-1zm-2 5c-.55 0-1 .45-1 1v5H3V4h5c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1z"],ninja:["M16 5s-2.52 2.11-4.96 1.99C11.03 4.89 10.39.23 5 0c0 0 2.11 2.54 1.96 4.99C4.86 5.01.23 5.65 0 11c0 0 2.56-2.12 5.02-1.95.02 2.11.67 6.72 5.98 6.95 0 0-2.09-2.54-1.94-4.99 2.11-.02 6.71-.68 6.94-6.01zM8 9.5c-.83 0-1.5-.67-1.5-1.5S7.17 6.5 8 6.5s1.5.67 1.5 1.5S8.83 9.5 8 9.5z"],"not-equal-to":["M7.58 5l.44-2.196a1 1 0 011.96.392L9.62 5H13a1 1 0 010 2H9.22l-.4 2H13a1 1 0 010 2H8.42l-.44 2.196a1 1 0 01-1.96-.392L6.38 11H3a1 1 0 010-2h3.78l.4-2H3a1 1 0 110-2h4.58z"],notifications:["M8 16c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zm6-5c-.55 0-1-.45-1-1V6c0-2.43-1.73-4.45-4.02-4.9 0-.04.02-.06.02-.1 0-.55-.45-1-1-1S7 .45 7 1c0 .04.02.06.02.1A4.992 4.992 0 003 6v4c0 .55-.45 1-1 1s-1 .45-1 1 .45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1z"],"notifications-snooze":["M9 14c0 1.1-.9 2-2 2s-2-.9-2-2zM7 0c.404 0 .755.243.912.59L7.9.6c-.7.6-.9 1.36-.9 1.9 0 .8.267 1.433.8 1.9-.533.6-.795 1.222-.784 1.867l.004.358A2.8 2.8 0 009.82 9.4L12 9.399V10c0 .51.388.935.884.993L13 11c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1 1-.45 1-1V6c0-2.43 1.73-4.45 4.02-4.9L6 1c0-.55.45-1 1-1z","M13 6.702a.632.632 0 00-.632-.632h-1.743l2.208-2.734A.75.75 0 0013 2.864v-.3A.565.565 0 0012.435 2H9.561a.561.561 0 100 1.123h1.814L9.221 5.795A1 1 0 009 6.423v.279c0 .349.283.631.632.631h2.736A.632.632 0 0013 6.702z"],"notifications-updated":["M8 16c1.1 0 2-.9 2-2H6c0 1.1.9 2 2 2zm3.399-13.667l-.413.412A2.99 2.99 0 009 1.99a3 3 0 00-3 2.99c0 .8.32 1.558.876 2.114l2.002 1.992A2.99 2.99 0 0013 9.184V10c0 .55.45 1 1 1s1 .45 1 1-.45 1-1 1H2c-.55 0-1-.45-1-1s.45-1 1-1 1-.45 1-1V6c0-2.43 1.73-4.45 4.02-4.9 0-.04-.02-.06-.02-.1 0-.55.45-1 1-1s1 .45 1 1c0 .04-.02.06-.02.1a4.97 4.97 0 012.419 1.233zM10.29 7.67l-2-1.99a.99.99 0 01-.29-.7 1 1 0 011-.99c.27 0 .52.11.7.29l1.29 1.29 3.28-3.28c.18-.18.42-.29.7-.29.55 0 1 .44 1 .99 0 .28-.11.52-.3.7l-3.98 3.98a.99.99 0 01-1.4 0z"],"numbered-list":["M2.76 7h1.26V0h-.94c-.04.21-.12.39-.25.54-.13.15-.29.27-.48.36-.18.09-.39.16-.62.2-.23.04-.46.06-.71.06v.9h1.74V7zm-.59 7.17c.18-.12.37-.25.58-.37a10.763 10.763 0 001.24-.83c.2-.16.37-.33.52-.51.15-.19.28-.39.37-.61.09-.22.14-.47.14-.74 0-.22-.04-.45-.12-.7-.08-.26-.21-.49-.4-.69-.18-.21-.43-.39-.72-.52-.3-.14-.68-.21-1.12-.21-.41 0-.77.07-1.08.2-.32.14-.58.32-.8.56-.22.23-.38.51-.49.84-.11.32-.16.67-.16 1.05h1.19c.01-.24.03-.47.08-.67.05-.21.11-.39.21-.54.09-.15.22-.27.38-.36.16-.09.35-.13.59-.13.26 0 .47.04.63.12.16.08.29.18.38.3.09.12.15.25.18.39s.05.27.05.4c-.01.27-.08.5-.22.71-.14.21-.32.4-.53.57-.22.18-.45.34-.71.49-.26.15-.51.31-.74.47-.5.31-.89.68-1.17 1.11-.3.41-.44.91-.45 1.48h5v-1H1.43c.05-.15.14-.29.27-.43.14-.13.29-.26.47-.38zM15.01 1.99h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.44-1-1-1zm0 9h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.44-1-1-1z"],numerical:["M2.79 4.61c-.13.17-.29.3-.48.41-.18.11-.39.18-.62.23-.23.04-.46.07-.71.07v1.03h1.74V12h1.26V4h-.94c-.04.23-.12.44-.25.61zm4.37 5.31c.18-.14.37-.28.58-.42l.63-.45c.21-.16.41-.33.61-.51s.37-.38.52-.59c.15-.21.28-.45.37-.7.09-.25.13-.54.13-.85 0-.25-.04-.52-.12-.8-.07-.29-.2-.55-.39-.79a2.18 2.18 0 00-.73-.6c-.29-.15-.66-.23-1.11-.23-.41 0-.77.08-1.08.23-.31.16-.58.37-.79.64-.22.27-.38.59-.49.96-.11.37-.16.77-.16 1.2h1.19c.01-.27.03-.53.08-.77.04-.24.11-.45.21-.62.09-.18.22-.32.38-.42.16-.1.35-.15.59-.15.26 0 .47.05.63.14.15.09.28.21.37.35.09.14.15.29.18.45.03.16.05.31.05.45-.01.31-.08.58-.22.82-.14.23-.32.45-.53.65-.22.21-.46.39-.71.57-.26.18-.51.36-.75.54-.5.36-.89.78-1.17 1.27-.28.49-.43 1.06-.44 1.71h5v-1.15H6.43c.05-.17.14-.33.27-.49.13-.15.29-.29.46-.44zm8.5-1.56c-.23-.35-.54-.57-.95-.65v-.02c.34-.13.6-.34.76-.63.16-.29.24-.63.24-1.02 0-.34-.06-.64-.19-.9s-.3-.47-.51-.64c-.21-.17-.45-.3-.72-.38-.27-.09-.54-.13-.82-.13-.36 0-.68.07-.96.2-.28.13-.53.32-.72.55-.2.23-.36.51-.47.83-.11.32-.18.66-.19 1.04h1.15c-.01-.2.01-.39.06-.58.05-.19.12-.36.22-.51.1-.15.22-.27.37-.36.15-.09.32-.13.53-.13.32 0 .59.1.79.3.21.2.31.46.31.79 0 .23-.05.43-.14.59-.09.16-.21.29-.35.38-.15.09-.32.16-.51.19-.19.04-.38.05-.57.04v.93c.23-.01.45 0 .67.02.22.02.42.08.59.17.18.09.32.23.43.4.11.18.16.41.16.71 0 .44-.13.78-.39 1.02s-.58.36-.97.36c-.45 0-.79-.16-1.02-.47-.23-.31-.33-.7-.32-1.17H11c.01.4.06.77.17 1.1.11.33.26.61.47.85.21.23.46.42.77.54.31.13.67.19 1.08.19.34 0 .66-.05.96-.16.3-.11.57-.27.8-.47.23-.2.41-.45.55-.74.13-.27.2-.6.2-.97 0-.5-.11-.92-.34-1.27z"],office:["M15 5h-3V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h3v-4h4v4h7c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM5 10H2V7h3v3zm0-5H2V2h3v3zm5 5H7V7h3v3zm0-5H7V2h3v3zm4 9h-2v-2h2v2zm0-4h-2V7h2v3z"],offline:["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zM6 14l1-5H4l6-7-1 5h3l-6 7z"],"oil-field":["M15 14h-1.35l-3.34-7.51 2.46-.95 1.45 3.21c.09.2.36.3.6.23.1-.03.18-.08.24-.15.05-.08 1.23-1.56.87-4.2-.11-.79-.52-4.62-3.26-4.62-.93 0-1.68.62-1.67 1.37 0 .14.03.28.09.42l.87 1.92L.64 8.07v.01A.98.98 0 000 9c0 .55.45 1 1 1 .13 0 .25-.03.36-.07v.01l1.04-.4L3.67 14H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM4.27 8.81L7.14 7.7 5.2 12.08l-.93-3.27zM6.54 14L9 8.46 11.46 14H6.54z"],"one-column":["M11.99-.01h-3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-14c0-.55-.45-1-1-1zm-6 5c-.28 0-.53.11-.71.29l-2 2a1.014 1.014 0 000 1.42l2 2a1.003 1.003 0 001.71-.71v-4c0-.55-.45-1-1-1z"],outdated:["M8 0c4.42 0 8 3.58 8 8 0 4.06-3.02 7.4-6.94 7.92-.02 0-.04.01-.06.01-.33.04-.66.07-1 .07-4.42 0-8-3.58-8-8 0-.55.45-1 1-1s1 .45 1 1c0 3.31 2.69 6 6 6 .71 0 1.37-.15 2-.38v.01c2.33-.82 4-3.02 4-5.63 0-3.31-2.69-6-6-6-1.78 0-3.36.78-4.46 2H5c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v1.74A7.95 7.95 0 018 0zm1 12H7v-2h2v2zm0-3H7V4h2v5z"],"page-layout":["M15 .95H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-12c0-.55-.45-1-1-1zm-9 12H2v-6h4v6zm8 0H7v-6h7v6zm0-7H2v-3h12v3z"],"panel-stats":["M10 4h3v1h-3zM10 6h3v1h-3zM10 8h3v1h-3zM10 10h3v1h-3z","M15 1H1c-.6 0-1 .4-1 1v11c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zM8 12H2V3h6v9zm6 0H9V3h5v9z"],"panel-table":["M15 1H1c-.6 0-1 .4-1 1v11c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zM8 9H6V7h2v2zm0-3H6V4h2v2zm-6 6V3h3v9H2zm4 0v-2h2v2H6zm8 0H9v-2h5v2zm0-3H9V7h5v2zm0-3H9V4h5v2z"],paperclip:["M14.68 2.31A4.54 4.54 0 0011.46.99c-1.15 0-2.31.44-3.19 1.32L.95 9.63c-.63.63-.95 1.46-.95 2.28a3.21 3.21 0 003.23 3.22c.83 0 1.66-.31 2.3-.95l7.31-7.32c.76-.77.76-1.98.01-2.73s-1.99-.76-2.75 0l-6.07 6.08c-.24.25-.24.65.01.9s.65.25.91.01l6.07-6.08c.25-.25.67-.25.91-.01.25.25.25.67 0 .92l-7.31 7.32c-.75.75-2.04.74-2.76.01-.75-.75-.73-2.02.01-2.76L9.2 3.21c1.24-1.24 3.35-1.26 4.58-.03 1.24 1.24 1.24 3.36 0 4.6l-7.12 7.13c-.24.25-.24.64.01.88.24.24.63.24.88.01v.01l7.13-7.13A4.41 4.41 0 0016 5.51c0-1.16-.44-2.32-1.32-3.2z"],paragraph:["M13 1H6C3.8 1 2 2.8 2 5s1.8 4 4 4v5c0 .6.4 1 1 1s1-.5 1-1V3h2v11c0 .6.4 1 1 1s1-.5 1-1V3h1c.5 0 1-.4 1-1s-.4-1-1-1z"],path:["M14.5 0h-13C.67 0 0 .67 0 1.5S.67 3 1.5 3H7v3H3.5C2.67 6 2 6.67 2 7.5S2.67 9 3.5 9H7v3H5.5c-.83 0-1.5.67-1.5 1.5S4.67 15 5.5 15h5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5H9V9h3.5c.83 0 1.5-.67 1.5-1.5S13.33 6 12.5 6H9V3h5.5c.83 0 1.5-.67 1.5-1.5S15.33 0 14.5 0z"],"path-search":["M15 14.62l-4-2.4V9.77c-.32.09-.66.15-1 .18v2.27l-4 2.4V8.71c-.38-.31-.72-.66-1-1.06v6.97l-4-2.4V8c.55 0 1-.45 1-1s-.45-1-1-1V1.38l3.15 1.89c.08-.34.18-.66.32-.97L.76.07v.01A.496.496 0 00.5 0C.22 0 0 .22 0 .5v12c0 .18.1.33.25.42v.01l5 3v-.01c.07.05.16.08.25.08s.18-.03.25-.08v.01l4.74-2.85 4.74 2.85v-.01c.09.05.18.08.27.08.28 0 .5-.22.5-.5v-3.78c-.3.17-.63.28-1 .28v2.62zM2 5c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1zm6-1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm7.75-.92l-1.19-.72c.18.43.29.9.36 1.38l.08.04v3.39l1 1V3.5c0-.18-.1-.33-.25-.42zM10 2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3.3 4.89c.44-.7.7-1.51.7-2.39C14 2.01 11.99 0 9.5 0S5 2.01 5 4.5 7.01 9 9.5 9c.88 0 1.69-.26 2.39-.7l2.41 2.41c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71l-2.41-2.4zM9.5 8C7.57 8 6 6.43 6 4.5S7.57 1 9.5 1 13 2.57 13 4.5 11.43 8 9.5 8z"],pause:["M6 3H4c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm6 0h-2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],people:["M13.69 13.98c-.05-.24-.14-.5-.25-.76-.36-.86-1.12-1.33-2.69-2-.14-.06-.59-.25-.6-.25-.21-.09-.36-.15-.5-.22.02-.1.02-.2.03-.31 0-.04.01-.08.01-.13-.07-.06-.13-.12-.19-.19.22-.32.4-.67.54-1.05.02-.06.02-.06.03-.1.29-.23.48-.57.59-.96.16-.33.25-.73.21-1.16-.03-.4-.16-.76-.37-1.03-.02-.53-.07-1.13-.15-1.54-.01-.06-.02-.12-.03-.19.23-.06.48-.09.72-.09.49 0 1.05.16 1.44.46.38.29.67.7.8 1.17.03.1.05.21.07.31.07.37.11.94.11 1.33v.05c.14.06.27.21.29.51.02.25-.07.45-.13.54-.05.21-.16.44-.38.48-.02.1-.05.2-.09.3 0 .01-.01.03-.01.03-.17.44-.43.83-.75 1.11v.14c.03.35-.09.59.83 1 .93.41 2.32.84 2.6 1.5.29.66.17 1.04.17 1.04h-2.3zm-1.17-.38c.37.86.22 1.36.22 1.36H.06s-.14-.5.22-1.36 2.13-1.43 3.31-1.96c1.17-.54 1.05-.86 1.09-1.3 0-.05.01-.11.01-.17-.41-.35-.75-.86-.97-1.45v-.01s-.01-.01-.01-.02c-.04-.12-.09-.26-.12-.39-.28-.05-.44-.36-.5-.64-.06-.12-.19-.39-.16-.71.04-.41.21-.6.39-.68v-.06c0-.51.05-1.26.14-1.74.02-.13.05-.27.09-.4.17-.6.54-1.13 1.02-1.51.5-.39 1.21-.6 1.84-.6s1.34.21 1.84.6c.48.38.85.91 1.02 1.52.04.13.07.27.09.4.09.48.14 1.22.14 1.73v.07c.18.08.34.27.37.67.03.32-.09.59-.16.71-.06.28-.21.58-.48.63-.03.13-.07.26-.12.39 0 .01-.01.04-.01.04-.22.58-.55 1.08-.95 1.45v.18c.04.45-.12.77 1.06 1.3 1.18.53 2.95 1.09 3.31 1.95z"],percentage:["M6 6V4c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1c1.1 0 2-.9 2-2zM3.5 6c-.28 0-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5s.5.22.5.5v1c0 .28-.22.5-.5.5zM13 8h-1c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2h1c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2zm0 3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5s.5.22.5.5v1zM12 3a1.003 1.003 0 00-1.87-.5l-5.99 9.98c-.09.15-.14.33-.14.52a1.003 1.003 0 001.87.5l5.99-9.98c.09-.15.14-.33.14-.52z"],person:["M15.68 14.32c-.46-1.05-2.68-1.75-4.16-2.4-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15A3.671 3.671 0 0010.32.72C9.68.25 8.79-.01 8-.01c-.79 0-1.68.25-2.31.73-.61.47-1.06 1.13-1.28 1.86-.05.17-.09.33-.11.5-.12.6-.17 1.51-.17 2.15v.08c-.24.09-.45.32-.5.83-.03.38.13.72.2.86.08.35.28.72.63.78.04.17.09.33.15.49 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.37 1.59-1.48.65-3.7 1.35-4.16 2.4-.46 1.05-.27 1.67-.27 1.67h15.92c-.01.01.18-.61-.28-1.66z"],phone:["M15.9 12.41c-.06-.06-3.37-2-3.48-2.05a.794.794 0 00-.32-.08c-.15 0-.34.11-.57.32-.23.22-.94 1.19-1.15 1.4-.21.22-.38.32-.52.32-.07 0-.15-.02-.25-.06-.1-.04-1.16-.58-3.36-2.52-2.2-1.93-2.49-3.2-2.5-3.55 0-.14.11-.31.32-.52.22-.21.45-.41.7-.6.25-.19.49-.4.7-.62.22-.23.32-.42.32-.57 0-.11-.03-.21-.08-.32C5.66 3.46 3.66.15 3.59.08 3.44-.07 2.85 0 2.55.16.16 1.46-.03 3.2 0 3.89c.04.71.49 4.46 4.16 7.95C8.72 16.17 11.89 16 12.1 16c.69 0 2.82-.38 3.72-2.55.13-.32.25-.87.08-1.04z"],"pie-chart":["M7 1.08c-3.37.5-5.97 3.4-5.97 6.92 0 3.87 3.13 7 6.98 7 3.52 0 6.42-2.61 6.91-6H7V1.08z","M8 0v8h8c0-4.42-3.58-8-8-8z"],pin:["M9.41.92c-.51.51-.41 1.5.15 2.56L4.34 7.54C2.8 6.48 1.45 6.05.92 6.58l3.54 3.54-3.54 4.95 4.95-3.54 3.54 3.54c.53-.53.1-1.88-.96-3.42l4.06-5.22c1.06.56 2.04.66 2.55.15L9.41.92z"],pivot:["M4.57 7.02L.3 11.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4.27-4.27c-.58-.35-1.07-.84-1.41-1.42zM15 8c-.55 0-1 .45-1 1v.59l-2.57-2.57c-.34.58-.83 1.07-1.41 1.41L12.59 11H12c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-4-3c0-1.66-1.34-3-3-3S5 3.34 5 5s1.34 3 3 3 3-1.34 3-3zM8 6c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"pivot-table":["M2 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm0-4H1C.45 0 0 .45 0 1v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm11.71 4.29C13.53 4.11 13.28 4 13 4s-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l.29-.3V9c0 1.66-1.34 3-3 3H7.41l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H9c2.76 0 5-2.24 5-5V7.41l.29.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2zM15 0H5c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],play:["M12 8c0-.35-.19-.64-.46-.82l.01-.02-6-4-.01.02A.969.969 0 005 3c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02 6-4-.01-.02c.27-.18.46-.47.46-.82z"],plus:["M13 7H9V3c0-.55-.45-1-1-1s-1 .45-1 1v4H3c-.55 0-1 .45-1 1s.45 1 1 1h4v4c0 .55.45 1 1 1s1-.45 1-1V9h4c.55 0 1-.45 1-1s-.45-1-1-1z"],"polygon-filter":["M14 5c-.24 0-.47.05-.68.13L9.97 2.34c.01-.11.03-.22.03-.34 0-1.1-.9-2-2-2S6 .9 6 2c0 .04.01.08.01.12L2.88 4.21C2.61 4.08 2.32 4 2 4 .9 4 0 4.9 0 6c0 .74.4 1.38 1 1.72v4.55c-.6.35-1 .99-1 1.73 0 1.1.9 2 2 2 .74 0 1.38-.4 1.72-1h4.55c.35.6.98 1 1.72 1 1.1 0 2-.9 2-2 0-.37-.11-.7-.28-1L14 9c1.11-.01 2-.9 2-2s-.9-2-2-2zm-4.01 7c-.73 0-1.37.41-1.71 1H3.73c-.18-.3-.43-.55-.73-.72V7.72c.6-.34 1-.98 1-1.72 0-.04-.01-.08-.01-.12l3.13-2.09c.27.13.56.21.88.21.24 0 .47-.05.68-.13l3.35 2.79c-.01.11-.03.22-.03.34 0 .37.11.7.28 1l-2.29 4z"],power:["M8 8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S7 .45 7 1v6c0 .55.45 1 1 1zm3-5.32v2.34c1.21.91 2 2.35 2 3.98 0 2.76-2.24 5-5 5s-5-2.24-5-5c0-1.63.79-3.06 2-3.98V2.68C2.64 3.81 1 6.21 1 9c0 3.87 3.13 7 7 7s7-3.13 7-7c0-2.79-1.64-5.19-4-6.32z"],"predictive-analysis":["M16 6.41c0-1.01-.49-1.94-1.29-2.49-.43-1.92-2.07-3.28-4-3.28-.46 0-.92.08-1.35.24C8.83.31 8.11 0 7.34 0c-.9 0-1.74.44-2.28 1.16-.12-.01-.24-.02-.36-.02-1.31 0-2.42.89-2.77 2.17C.78 3.72 0 4.84 0 6.13c0 .38.07.76.21 1.12C.07 7.6 0 7.98 0 8.36c0 1.11.58 2.11 1.51 2.63.54.56 1.27.87 2.03.87.49 0 .95-.12 1.37-.36a2.85 2.85 0 002.18 1.04c.52 0 1.03-.14 1.47-.42.49.39 1.07.65 1.69.73 1.04 1.15 1.84 2.63 1.84 2.64 0 0 .28.49.26.49.77 0 1.41-.16 1.32-1.04 0 .02-.73-2.31-.73-2.31.41-.21.75-.55.97-.98.9-.52 1.47-1.53 1.47-2.61 0-.24-.03-.48-.08-.71.45-.52.7-1.21.7-1.92zm-1.23 1.02l-.15-.16-.61-.67c-.27-.29-.54-.94-.58-1.39l-.1-1.01c-.05-.59-.94-.58-.91.11 0 .02.1 1.01.1 1.01.03.29.12.62.24.93-.06-.01-.12-.02-.18-.02 0 0-2.06-.1-2.05-.11-.58-.02-.71.97-.04 1l2.05.11c.42.02 1.04.3 1.29.58l.49.54.02.05c.08.21.12.44.12.66 0 .74-.41 1.41-1.07 1.75l-.16.08-.07.18c-.15.38-.48.66-.88.74l-.54.11.7 2.2c-.38-.61-.95-1.43-1.62-2.14l-.12-.13-.17-.01c-.41-.03-.8-.17-1.14-.38l1.36-1.18c.35-.31.83-.44.99-.39 0 0 .63.17.62.18.63.16.83-.74.23-.97l-.62-.18c-.55-.16-1.33.18-1.79.58l-1.53 1.33-.31.26c-.35.29-.75.44-1.2.44-.64 0-1.23-.33-1.58-.86V9.15c0-.4.17-.79.27-.85 0 0 .52-.34.51-.35.71-.53.18-1.23-.49-.89 0-.01-.52.35-.52.35-.26.15-.45.44-.58.77-.11-.11-.22-.2-.34-.28 0 0-1.53-1.01-1.53-1.02-.65-.45-1.2.51-.49.89 0-.01 1.51 1.02 1.51 1.02.37.24.62.78.62 1.09v.67c-.34.19-.63.29-.99.29-.54 0-1.05-.23-1.41-.63l-.05-.06-.07-.04c-.65-.34-1.05-1-1.05-1.73 0-.3.07-.6.2-.87l.12-.25L1.15 7c-.13-.27-.2-.56-.2-.87 0-.9.61-1.68 1.48-1.89l.31-.08.05-.34a1.926 1.926 0 012.38-1.58l.32.08.18-.31c.35-.6.99-.97 1.67-.97.44 0 .86.15 1.2.42l-.36.36v-.01l-.25.26c-.33.27-.74.42-.89.4 0 0-.67-.1-.67-.11-.67-.13-.87.86-.14 1.02.01 0 .67.11.67.11.02 0 .05 0 .07.01-.11.37-.15.77-.1 1.12 0 0 .17.99.15.99.11.52 1.06.36.93-.18 0-.01-.15-.99-.15-.99-.05-.37.12-.94.36-1.19l.39-.4c.05-.05.1-.09.15-.14l.74-.76c.4-.18.83-.27 1.27-.27 1.55 0 2.86 1.12 3.11 2.67l.04.25.21.12c.61.35.98 1 .98 1.7 0 .36-.1.7-.28 1.01z"],prescription:["M10.91 8.34c.14-.21.36-.34.63-.34h1.29c.22 0 .41.07.52.26.09.16.08.33-.04.53l-2.49 2.87 2.77 3.54c.12.17.14.37.02.55-.11.17-.3.25-.5.25h-1.44a.69.69 0 01-.61-.35L9.4 13.51l-1.69 2.15c-.13.21-.36.34-.63.34H5.8c-.22 0-.41-.07-.52-.26-.09-.16-.08-.33.04-.53l2.71-3.48L4.3 6.99H3.03v3.47c0 .33-.26.56-.62.56h-.8c-.35-.01-.61-.23-.61-.56V.56c0-.33.26-.56.62-.56h3.11c.62 0 1.19.08 1.7.24.51.16.96.39 1.34.69a3.194 3.194 0 011.21 2.53c0 .81-.25 1.5-.74 2.08-.37.44-.84.77-1.42 1.01L7.88 7.9c.04.04.07.08.08.1l1.49 1.9 1.46-1.56zM5.18 5c.62 0 1.08-.13 1.39-.37.29-.23.44-.71.44-1.16s-.15-.87-.44-1.1C6.26 2.12 5.8 2 5.18 2H2.99v3h2.19z"],presentation:["M15 1H9c0-.55-.45-1-1-1S7 .45 7 1H1c-.55 0-1 .45-1 1s.45 1 1 1v8c0 .55.45 1 1 1h3.59L3.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 13.41V15c0 .55.45 1 1 1s1-.45 1-1v-1.59l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L10.41 12H14c.55 0 1-.45 1-1V3c.55 0 1-.45 1-1s-.45-1-1-1zm-2 9H3V3h10v7z"],print:["M12 2.02c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v1h8v-1zm3 2H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1v-3h12v3h1c.55 0 1-.45 1-1v-6c0-.56-.45-1-1-1zm-1 3h-2v-1h2v1zm-3 6H5v-3H3v4c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-4h-2v3z"],projects:["M14 3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v1h12V3zm-2-3H4c-.55 0-1 .45-1 1h10c0-.55-.45-1-1-1zm3 5H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-3 6c0 .55-.45 1-1 1H5c-.55 0-1-.45-1-1V9h1v2h6V9h1v2z"],properties:["M2 6C.9 6 0 6.9 0 8s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-3h9c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1zm-4 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm13-5H6c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zm0 6H6c-.55 0-1 .45-1 1s.45 1 1 1h9c.55 0 1-.45 1-1s-.45-1-1-1zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],property:["M3 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-.5-6.5a2.5 2.5 0 000 5 2.5 2.5 0 000-5zM7 3h8c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zm8 10H7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zM3 0C1.9 0 1 .9 1 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 6H7c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z"],"publish-function":["M12.16 3.76c.15-.11.3-.16.47-.16.06 0 .17.02.34.06.16.04.31.06.43.06a.58.58 0 00.6-.6c0-.19-.06-.33-.17-.44-.11-.11-.28-.16-.49-.16-.19 0-.37.04-.54.13-.17.09-.39.27-.65.55-.2.21-.48.58-.87 1.11a5.22 5.22 0 00-.78-1.79l-2.05.32-.04.21c.15-.03.28-.04.39-.04.2 0 .37.08.5.25.21.26.5 1.03.88 2.33-.29.36-.49.6-.6.71-.18.19-.33.31-.45.36-.09.04-.19.07-.3.07-.09 0-.23-.04-.42-.13a.904.904 0 00-.36-.09c-.2 0-.36.06-.49.18a.59.59 0 00-.19.46c0 .18.06.32.18.43.12.11.28.16.48.16.2 0 .38-.04.55-.12.17-.08.39-.24.65-.49s.62-.65 1.07-1.19c.18.52.33.89.46 1.13.13.24.28.4.44.51.17.1.37.16.62.16.24 0 .49-.08.74-.25.33-.21.66-.58 1.01-1.09l-.21-.11c-.23.31-.41.5-.52.57a.44.44 0 01-.26.07c-.12 0-.24-.07-.36-.21-.2-.24-.46-.91-.8-2 .29-.49.54-.81.74-.96zM6.37 5.83l.68-2.53h.83l.2-.64h-.84c.24-.91.56-1.59.96-2.01.24-.27.48-.4.71-.4.05 0 .08.01.11.04s.04.06.04.1c0 .04-.03.11-.1.21-.06.1-.1.2-.1.29 0 .13.05.24.15.33.1.09.23.14.39.14.17 0 .31-.06.42-.17.12-.12.18-.27.18-.46 0-.21-.08-.39-.25-.52C9.57.07 9.3 0 8.93 0c-.59 0-1.12.16-1.59.48-.48.32-.93.85-1.36 1.59-.15.26-.29.42-.42.49s-.35.11-.64.1l-.19.65h.81L4.35 7.68c-.2.72-.33 1.16-.4 1.33-.1.24-.26.45-.46.62a.48.48 0 01-.31.1c-.03 0-.06-.01-.08-.03l-.03-.03c0-.02.03-.06.09-.11.06-.06.09-.15.09-.26 0-.13-.05-.23-.14-.32-.1-.09-.23-.13-.41-.13-.21 0-.38.05-.51.16A.52.52 0 002 9.4c0 .16.08.3.23.42.16.12.4.18.74.18.53 0 .99-.13 1.4-.39.41-.26.76-.65 1.07-1.19.3-.53.61-1.39.93-2.59zm2.34 3.46A.997.997 0 008 9c-.28 0-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l.29-.3V15c0 .55.45 1 1 1s1-.45 1-1v-2.59l.29.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2z"],pulse:["M15 8h-1.46l-1.7-2.55-.02.01A.984.984 0 0011 5c-.43 0-.79.27-.93.65h-.01l-1.69 4.51-1.38-8.32h-.02A.989.989 0 006 1c-.41 0-.77.25-.92.61L2.34 8H1c-.55 0-1 .45-1 1s.45 1 1 1h2c.41 0 .77-.25.92-.61l1.65-3.86 1.44 8.63h.02c.08.47.47.84.97.84.43 0 .79-.27.93-.65h.01l2.31-6.17.92 1.38.02-.01c.17.26.46.45.81.45h2c.55 0 1-.45 1-1s-.45-1-1-1z"],random:["M11.48 4h1.11l-.29.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H11c-.32 0-.59.16-.77.38l-.01-.01L8.28 4.8l1.28 1.6L11.48 4zm2.23 6.29a1.003 1.003 0 00-1.42 1.42l.3.29h-1.11l-7.7-9.62h-.01A.996.996 0 003 2H1c-.55 0-1 .45-1 1s.45 1 1 1h1.52l7.7 9.62.01-.01c.18.23.45.39.77.39h1.59l-.29.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2zM2.52 12H1c-.55 0-1 .45-1 1s.45 1 1 1h2c.32 0 .59-.16.77-.38l.01.01 1.94-2.42L4.44 9.6 2.52 12z"],record:["M8 3a5 5 0 100 10A5 5 0 108 3z"],redo:["M12 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm3.71-6.71l-3-3a1.003 1.003 0 00-1.42 1.42L12.59 4H5C2.24 4 0 6.24 0 9s2.24 5 5 5h4v-2H5c-1.66 0-3-1.34-3-3s1.34-3 3-3h7.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],refresh:["M14.99 6.99c-.55 0-1 .45-1 1 0 3.31-2.69 6-6 6-1.77 0-3.36-.78-4.46-2h1.46c.55 0 1-.45 1-1s-.45-1-1-1h-4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1s1-.45 1-1v-1.74a7.95 7.95 0 006 2.74c4.42 0 8-3.58 8-8 0-.55-.45-1-1-1zm0-7c-.55 0-1 .45-1 1v1.74a7.95 7.95 0 00-6-2.74c-4.42 0-8 3.58-8 8 0 .55.45 1 1 1s1-.45 1-1c0-3.31 2.69-6 6-6 1.77 0 3.36.78 4.46 2h-1.46c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z"],"regression-chart":["M13 6.5c0 .83.67 1.5 1.5 1.5S16 7.33 16 6.5 15.33 5 14.5 5 13 5.67 13 6.5zM8.5 5c.83 0 1.5-.67 1.5-1.5S9.33 2 8.5 2 7 2.67 7 3.5 7.67 5 8.5 5zM9 9.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5S11.33 8 10.5 8 9 8.67 9 9.5zM4.5 8C5.33 8 6 7.33 6 6.5S5.33 5 4.5 5 3 5.67 3 6.5 3.67 8 4.5 8zM15 12H3.26l12.03-8.59-.58-.81L2 11.67V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],remove:["M10.99 6.99h-6c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm-3-7c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.68 6-6 6z"],"remove-column":["M14 0H4c-.55 0-1 .45-1 1v3h2V2h3v12H5v-2H3v3c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14h-3V2h3v12zm-8.71-3.29a1.003 1.003 0 001.42-1.42L4.41 8 5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L3 6.59l-1.29-1.3A1.003 1.003 0 00.29 6.71L1.59 8 .29 9.29a1.003 1.003 0 001.42 1.42L3 9.41l1.29 1.3z"],"remove-column-left":["M4 9h4c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zm11-9H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 14H2V2h8v12zm4 0h-3V2h3v12z"],"remove-column-right":["M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 14H2V2h3v12zm9 0H6V2h8v12zM8 9h4c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1z"],"remove-row-bottom":["M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V6h12v8zm0-9H2V2h12v3zm-8 6h4c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1z"],"remove-row-top":["M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2v-3h12v3zm0-4H2V2h12v8zM6 7h4c.55 0 1-.45 1-1s-.45-1-1-1H6c-.55 0-1 .45-1 1s.45 1 1 1z"],repeat:["M10 5c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1s-1 .45-1 1v1.74A7.95 7.95 0 008 0C3.58 0 0 3.58 0 8c0 4.06 3.02 7.4 6.94 7.92.02 0 .04.01.06.01.33.04.66.07 1 .07 4.42 0 8-3.58 8-8 0-.55-.45-1-1-1s-1 .45-1 1c0 3.31-2.69 6-6 6-.71 0-1.37-.15-2-.38v.01C3.67 12.81 2 10.61 2 8c0-3.31 2.69-6 6-6 1.77 0 3.36.78 4.46 2H11c-.55 0-1 .45-1 1z"],reset:["M6 5c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v1.74A7.95 7.95 0 018 0c4.42 0 8 3.58 8 8 0 4.06-3.02 7.4-6.94 7.92-.02 0-.04.01-.06.01-.33.04-.66.07-1 .07-4.42 0-8-3.58-8-8 0-.55.45-1 1-1s1 .45 1 1c0 3.31 2.69 6 6 6 .71 0 1.37-.15 2-.38v.01c2.33-.82 4-3.02 4-5.63 0-3.31-2.69-6-6-6-1.77 0-3.36.78-4.46 2H5c.55 0 1 .45 1 1z"],resolve:["M6.6 3.3C6.1 3.1 5.6 3 5 3 2.2 3 0 5.2 0 8s2.2 5 5 5c.6 0 1.1-.1 1.6-.3C5.3 11.6 4.5 9.9 4.5 8s.8-3.6 2.1-4.7zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c-.6 0-1.1.1-1.6.3 1.3 1.2 2.1 2.9 2.1 4.7s-.8 3.6-2.1 4.7c.5.2 1 .3 1.6.3 2.8 0 5-2.2 5-5s-2.2-5-5-5z"],rig:["M5.71 3c0 1.1.96 2 2.14 2C9.04 5 10 3.96 10 3c0-1.96-1.47-3-2.14-3H5c0 1.96 2.68 1.4.71 3zm2.5 3l.01.01s0-.01-.01-.01zm6.5 8.29L10 9.59V7c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v2.58l-4.71 4.7c-.18.19-.29.44-.29.72a1.003 1.003 0 001.71.71L6 12.42V15c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.58l3.29 3.29a1.003 1.003 0 001.42-1.42z"],"right-join":["M6.6 3.3C5.3 4.4 4.5 6.1 4.5 8s.8 3.6 2.1 4.7c-.5.2-1 .3-1.6.3-2.8 0-5-2.2-5-5s2.2-5 5-5c.6 0 1.1.1 1.6.3zm-1.96 8.68C3.92 10.83 3.5 9.46 3.5 8s.42-2.83 1.14-3.98C2.6 4.2 1 5.91 1 8s1.6 3.8 3.64 3.98zM8 4c-1.2.9-2 2.4-2 4s.8 3.1 2 4c1.2-.9 2-2.3 2-4s-.8-3.1-2-4zm3-1c2.8 0 5 2.2 5 5s-2.2 5-5 5c-.6 0-1.1-.1-1.6-.3 1.3-1.1 2.1-2.9 2.1-4.7s-.8-3.5-2.1-4.7c.5-.2 1-.3 1.6-.3z"],ring:["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 12c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"],"rotate-document":["M12 2h-1.59l.29-.29c.19-.18.3-.43.3-.71A1.003 1.003 0 009.29.29l-2 2C7.11 2.47 7 2.72 7 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H12c.55 0 1 .45 1 1v3c0 .55.45 1 1 1s1-.45 1-1V5c0-1.66-1.34-3-3-3zM5.71 5.29A.997.997 0 005 5H1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V9c0-.28-.11-.53-.29-.71l-3-3zM7 14H2V7h2v2c0 .55.45 1 1 1h2v4z"],"rotate-page":["M8 6H2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zm-1 8H3V8h4v6zm5-12h-1.59l.29-.29c.19-.18.3-.43.3-.71A1.003 1.003 0 009.29.29l-2 2C7.11 2.47 7 2.72 7 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H12c.55 0 1 .45 1 1v3c0 .55.45 1 1 1s1-.45 1-1V5c0-1.66-1.34-3-3-3z"],route:["M11.669 5.066l.099.189c.113.213.236.434.367.661.226.39.468.78.709 1.151l-.198-.004-.48-.004c-1.745.003-2.369.233-2.369.688 0 .053.226.19 1.038.436l.84.24C13.9 9.064 15 9.83 15 11.63c0 2.123-1.607 3.122-4.027 3.366-.651.065-1.266.075-2.043.05l-.958-.035H5.196l.268-.406c.336-.517.672-1.052.998-1.593h1.636l.572.023c.857.036 1.475.034 2.103-.03 1.526-.153 2.227-.59 2.227-1.375 0-.531-.402-.84-1.66-1.22l-.691-.198c-1.04-.293-1.764-.562-2.222-.946C8.8 8.366 9 7.612 9 6.997a5.03 5.03 0 00-.184-1.334c.645-.395 1.598-.562 2.853-.597zM4 3a4.007 4.007 0 014 3.997C8 9.21 4 15 4 15l-.416-.62C2.56 12.827 0 8.767 0 6.997A4.002 4.002 0 014 3zm0 2a2 2 0 10.001 4.001A2 2 0 004 5zm10-4c1.103 0 1.996.896 2 1.999C16 4.105 14 7 14 7l-.293-.44C13.15 5.707 12 3.838 12 2.999 12 1.896 12.897 1 14 1z"],satellite:["M3 9c0-.6.4-1 1-1s1 .4 1 1c0 1.1.9 2 2 2 .6 0 1 .4 1 1s-.4 1-1 1c-2.2 0-4-1.8-4-4zM0 9c0-.6.4-1 1-1s1 .4 1 1c0 2.8 2.2 5 5 5 .6 0 1 .4 1 1s-.4 1-1 1c-3.9 0-7-3.1-7-7zm7 1c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1zm1.3-2.8c-.4-.4-.4-1 0-1.4l4.5-4.5c.4-.4 1-.4 1.4 0l.5.5c.4.4.4 1 0 1.4l-4.5 4.5c-.4.4-1 .4-1.4 0l-.5-.5zM5.2.3c.4-.4 1-.4 1.4 0l2.1 2.1c.4.4.4 1 0 1.4l-.9.9c-.4.4-1 .4-1.4 0L4.3 2.6c-.4-.4-.4-1 0-1.4l.9-.9zm7 7c.4-.4 1-.4 1.4 0l2.1 2.1c.4.4.4 1 0 1.4l-.9.9c-.4.4-1 .4-1.4 0l-2.1-2.1c-.4-.4-.4-1 0-1.4l.9-.9z"],saved:["M6.71 9.29a1.003 1.003 0 00-1.42 1.42l2 2a.997.997 0 001.6-.27h.01l2-4h-.01c.06-.13.11-.28.11-.44 0-.55-.45-1-1-1-.39 0-.72.23-.89.56H9.1l-1.38 2.76-1.01-1.03zM9 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5L9 0zm3 14H4V2h4v4h4v8z"],"scatter-plot":["M15 12H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm-.5-7c.83 0 1.5-.67 1.5-1.5S15.33 2 14.5 2 13 2.67 13 3.5 13.67 5 14.5 5zm-3 4c.83 0 1.5-.67 1.5-1.5S12.33 6 11.5 6 10 6.67 10 7.5 10.67 9 11.5 9zm-4-2C8.33 7 9 6.33 9 5.5S8.33 4 7.5 4 6 4.67 6 5.5 6.67 7 7.5 7zm-3 4c.83 0 1.5-.67 1.5-1.5S5.33 8 4.5 8 3 8.67 3 9.5 3.67 11 4.5 11z"],search:["M15.55 13.43l-2.67-2.68a6.94 6.94 0 001.11-3.76c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.42 3.76-1.11l2.68 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"],"search-around":["M13.5 11c-.51 0-.98.15-1.38.42l-2.4-2.41c.17-.3.28-.64.28-1.01s-.11-.71-.28-1.01l2.41-2.41c.39.27.86.42 1.37.42a2.5 2.5 0 000-5A2.5 2.5 0 0011 2.5c0 .51.15.98.42 1.38l-2.41 2.4C8.71 6.11 8.37 6 8 6s-.71.11-1.01.28l-2.41-2.4c.27-.4.42-.87.42-1.38a2.5 2.5 0 00-5 0A2.5 2.5 0 002.5 5c.51 0 .98-.15 1.38-.42l2.41 2.41C6.11 7.29 6 7.63 6 8s.11.71.28 1.01l-2.41 2.41c-.39-.27-.86-.42-1.37-.42a2.5 2.5 0 000 5A2.5 2.5 0 005 13.5c0-.51-.15-.98-.42-1.38l2.41-2.41c.3.18.64.29 1.01.29s.71-.11 1.01-.28l2.41 2.41c-.27.39-.42.86-.42 1.37a2.5 2.5 0 005 0 2.5 2.5 0 00-2.5-2.5zm0-10c.83 0 1.5.67 1.5 1.5S14.33 4 13.5 4 12 3.33 12 2.5 12.67 1 13.5 1zm-11 3C1.67 4 1 3.33 1 2.5S1.67 1 2.5 1 4 1.67 4 2.5 3.33 4 2.5 4zm0 11c-.83 0-1.5-.67-1.5-1.5S1.67 12 2.5 12s1.5.67 1.5 1.5S3.33 15 2.5 15zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"],"search-template":["M15.55 13.43l-2.67-2.67c.7-1.09 1.11-2.38 1.11-3.77 0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.41 3.77-1.11l2.67 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm2.5-6h-5c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zm0-2h-5c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zm0 4h-5c-.28 0-.5.22-.5.5s.22.5.5.5h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5z"],"search-text":["M9 4H5c-.55 0-1 .45-1 1s.45 1 1 1h1v3c0 .55.45 1 1 1s1-.45 1-1V6h1c.55 0 1-.45 1-1s-.45-1-1-1zm6.56 9.44l-2.67-2.67C13.59 9.68 14 8.39 14 7c0-3.87-3.13-7-7-7S0 3.13 0 7s3.13 7 7 7c1.39 0 2.68-.41 3.77-1.11l2.67 2.67a1.498 1.498 0 102.12-2.12zM7 12c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"],"segmented-control":["M15 4H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 6H8V6h6v4z"],select:["M16 15c0-.28-.12-.52-.31-.69l.02-.02-3.12-3.12 3.41-.84-8.05-2.86c.03-.09.05-.17.05-.27V2c0-.55-.45-1-1-1H3c0-.55-.45-1-1-1S1 .45 1 1c-.55 0-1 .45-1 1s.45 1 1 1v4c0 .55.45 1 1 1h5.2c.1 0 .18-.02.27-.05L10.33 16l.85-3.41 3.12 3.12.02-.02c.16.19.4.31.68.31.04 0 .07-.02.1-.02s.06.02.1.02c.44 0 .8-.36.8-.8 0-.04-.02-.07-.02-.1s.02-.06.02-.1zM6 6H3V3h3v3z"],selection:["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-9C6.34 5 5 6.34 5 8s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"],"send-message":["M15.398 9.01l-13.87 6.865c-.536.267-1.176.081-1.422-.427A.953.953 0 010 15v-4.838l8.67-2.168L0 5.923V1.001C0 .47.407 0 1.004 0c.169 0 .416.04.567.116L15.403 7.07a1.084 1.084 0 01-.005 1.939z"],"send-to":["M15 7.5c-.8 0-1.5-.4-2-1l-1.2 1.2c-.4.5-1.1.7-1.8.7-1.4.1-2.5-1-2.5-2.4 0-.7.3-1.3.7-1.8L9.5 3c-.6-.5-1-1.2-1-2 0-.3.1-.7.2-1H8C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8v-.7c-.3.1-.6.2-1 .2zM15 0h-4c-.6 0-1 .5-1 1s.4 1 1 1h1.6L9.3 5.3c-.2.2-.3.4-.3.7 0 .5.4 1 1 1 .3 0 .5-.1.7-.3L14 3.4V5c0 .6.4 1 1 1 .5 0 1-.4 1-1V1c0-.5-.4-1-1-1z"],"send-to-graph":["M6 9H2c-.55 0-1 .45-1 1s.45 1 1 1h1.59L.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L5 12.41V14c0 .55.45 1 1 1s1-.45 1-1v-4c0-.55-.45-1-1-1zm8 .5c-.56 0-1.06.23-1.42.59l-2.13-1.24L8.99 8l3.59-2.09A2.002 2.002 0 0016 4.5c0-1.1-.9-2-2-2s-2 .9-2 2c0 .19.03.37.08.54L8.5 7.13v-3.2c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S6 .9 6 2c0 .93.64 1.71 1.5 1.93v3.2l-.88-.52-2.7-1.57c.05-.17.08-.35.08-.54 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.56 0 1.06-.23 1.42-.59l2.13 1.24 3.84 2.24 2.7 1.57c-.06.17-.09.35-.09.54 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z"],"send-to-map":["M6 9H2c-.55 0-1 .45-1 1s.45 1 1 1h1.59L.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L5 12.41V14c0 .55.45 1 1 1s1-.45 1-1v-4c0-.55-.45-1-1-1zm9.55-5.83l-4.49-3A.975.975 0 009.99.15L5.53 2.82 1.56.17A1.003 1.003 0 000 1v6h2V2.87l2.94 1.96.06.03V7h1V4.86s.01 0 .01-.01L10 2.47v8.67s-.01 0-.01.01l-.99.58v2.33l1.47-.88 3.97 2.65A1.003 1.003 0 0016 15V4c0-.35-.18-.65-.45-.83zM14 13.13l-2.94-1.96c-.02-.01-.04-.02-.05-.03v-8.6l3 2v8.59z"],"series-add":["M10.68 7.9c.44.54 1.07.92 1.79 1.05l-2.76 2.76c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L5 8.41l-3 3V13h13c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 6.11 4.72 6 5 6s.53.11.71.29L9 9.59l1.68-1.69zM15 3c.55 0 1 .45 1 1s-.45 1-1 1h-1v1c0 .55-.45 1-1 1s-1-.45-1-1V5h-1c-.55 0-1-.45-1-1s.45-1 1-1h1V2c0-.55.45-1 1-1s1 .45 1 1v1h1z"],"series-configuration":["M9.94 9.64c.65.23 1.34.36 2.06.36.14 0 .29-.01.43-.01L9.7 12.71c-.18.18-.43.29-.71.29-.28 0-.53-.11-.71-.3L5 9.41l-3 3V14h12.99c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 7.11 4.72 7 5 7c.28 0 .53.11.71.29L9 10.59l.94-.95zm4.73-6.44h.92c.22 0 .4.18.4.4v.8c0 .22-.18.4-.4.4h-.93c-.06.2-.14.38-.24.55l.66.65c.15.15.15.4 0 .55l-.54.55c-.15.15-.4.15-.55 0l-.65-.65c-.17.1-.36.18-.55.24v.91c0 .22-.18.4-.4.4h-.8c-.22 0-.4-.18-.4-.4v-.93c-.18-.06-.36-.13-.52-.22l-.68.68c-.15.16-.41.16-.57 0l-.56-.56a.417.417 0 010-.57l.68-.68c-.08-.16-.16-.33-.22-.52h-.93c-.22 0-.4-.18-.4-.4v-.8c0-.22.18-.4.4-.4h.93c.06-.2.14-.38.24-.55l-.65-.64a.392.392 0 010-.55l.54-.55a.38.38 0 01.54 0l.65.65c.18-.1.36-.18.55-.24V.4c0-.22.18-.4.4-.4h.8c.22 0 .4.18.4.4v.93c.18.06.35.14.52.22l.68-.68c.15-.16.41-.16.57 0l.57.57c.15.16.15.41 0 .57l-.68.68c.09.16.16.33.22.51zm-4.18.8c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5c-.82 0-1.5.67-1.5 1.5z"],"series-derived":["M10.66 7.92c.44.54 1.07.91 1.8 1.03L9.71 11.7c-.18.19-.43.3-.71.3s-.53-.11-.71-.3L5 8.41l-3 3V13h13c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 6.11 4.72 6 5 6s.53.11.71.29L9 9.59l1.66-1.67zM12.3 5.3l.3-.3H8c-.6 0-1-.4-1-1s.4-1 1-1h4.6l-.3-.3c-.2-.2-.3-.4-.3-.7 0-.6.5-1 1-1 .3 0 .5.1.7.3l2 2c.2.2.3.4.3.7s-.1.5-.3.7l-2 2c-.2.2-.4.3-.7.3-.6 0-1-.4-1-1 0-.3.1-.5.3-.7z"],"series-filtered":["M9.29 9.3c.3.62.8 1.12 1.42 1.41l-1 1c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L5 8.41l-3 3V13h13c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1 .45 1 1v4.59l2.29-2.3C4.47 6.11 4.72 6 5 6s.53.11.71.29L9 9.59l.29-.29zM15.48 1c.31 0 .52.26.52.57 0 .16-.06.3-.17.41l-2.86 2.73v2.63c0 .16-.06.3-.17.41l-.82 1.1c-.1.1-.25.17-.41.17-.31 0-.57-.26-.57-.57V4.71L8.17 1.98A.566.566 0 018 1.57c0-.31.26-.57.57-.57h6.91z"],"series-search":["M9.6 8.94a4.937 4.937 0 001.82.01c.1-.01.22-.04.39-.08l.23-.07c.04-.01.08-.02.11-.04l.22.22-2.7 2.72c-.18.19-.43.3-.71.3s-.53-.11-.71-.3L4.98 8.41l-2.99 3V13h12.94c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V3.99c0-.55.45-1 1-1s1 .45 1 1v4.59l2.28-2.3c.17-.18.42-.29.7-.29s.53.11.7.29l3.28 3.3.64-.64zm6.22-.41c.1.12.17.27.18.44 0 .34-.27.61-.61.61a.57.57 0 01-.43-.18l-2.24-2.25c-.13.08-.26.16-.4.23-.02.01-.05.02-.07.03-.14.06-.27.12-.42.17h-.01c-.14.05-.29.08-.44.11-.04.01-.08.02-.11.02-.15.02-.3.04-.46.04-1.85 0-3.35-1.51-3.35-3.37S8.96 1.01 10.81 1c1.85 0 3.35 1.51 3.35 3.37 0 .16-.02.31-.04.47-.01.04-.01.07-.02.11-.02.15-.05.29-.1.44v.01c-.05.15-.11.28-.17.42-.01.02-.02.05-.03.07-.07.14-.14.27-.23.4l2.25 2.24zm-5.01-1.94c1.22 0 2.21-.99 2.21-2.22 0-1.23-.99-2.22-2.21-2.22S8.6 3.14 8.6 4.37c0 1.22.99 2.22 2.21 2.22z"],settings:["M3 1c0-.55-.45-1-1-1S1 .45 1 1v3h2V1zm0 4H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm12-4c0-.55-.45-1-1-1s-1 .45-1 1v2h2V1zM9 1c0-.55-.45-1-1-1S7 .45 7 1v6h2V1zM1 15c0 .55.45 1 1 1s1-.45 1-1v-5H1v5zM15 4h-2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-2 11c0 .55.45 1 1 1s1-.45 1-1V9h-2v6zM9 8H7c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-2 7c0 .55.45 1 1 1s1-.45 1-1v-2H7v2z"],shapes:["M5.92 8.139c.44-.282 1.006-.121 1.264.358l2.689 4.988c.083.155.127.33.127.51C10 14.55 9.587 15 9.077 15H3.924a.864.864 0 01-.438-.12c-.449-.263-.617-.873-.376-1.362l2.465-4.989c.08-.162.2-.297.346-.39zM12 4a3 3 0 110 6 3 3 0 010-6zM6 1a1 1 0 011 1v4a1 1 0 01-1 1H2a1 1 0 01-1-1V2a1 1 0 011-1h4z"],share:["M10.99 13.99h-9v-9h4.76l2-2H.99c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h11c.55 0 1-.45 1-1V7.24l-2 2v4.75zm4-14h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L7.29 7.28a1 1 0 00-.3.71 1.003 1.003 0 001.71.71l5.29-5.29V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.56-.45-1.01-1-1.01z"],"shared-filter":["M13.843 15.163c.232.53.138.837.138.837H6.017s-.088-.308.138-.837c.226-.53 1.338-.88 2.079-1.206.735-.332.66-.53.685-.8 0-.03.006-.068.006-.105a2.171 2.171 0 01-.61-.892v-.006s-.006-.006-.006-.012c-.025-.074-.056-.16-.075-.24-.176-.031-.276-.222-.314-.394a.8.8 0 01-.1-.437c.025-.253.131-.37.244-.419v-.037c0-.313.032-.775.088-1.07A1.835 1.835 0 018.85 8.37c.315-.24.76-.37 1.156-.37.396 0 .842.13 1.156.37.301.233.534.56.64.935.026.08.045.166.057.246.057.295.088.75.088 1.064v.043c.113.05.214.167.232.413a.75.75 0 01-.1.437c-.038.172-.132.357-.301.387a1.77 1.77 0 01-.076.24.136.136 0 01-.006.025 2.346 2.346 0 01-.597.892v.111c.025.277-.075.474.666.8.741.326 1.853.67 2.079 1.2z","M14.852 15h1.131s.083-.27-.12-.732c-.16-.373-.82-.641-1.411-.88a15.328 15.328 0 01-.409-.17c-.565-.25-.57-.412-.577-.61-.001-.03-.002-.06-.005-.09v-.097c.22-.2.401-.469.522-.781 0 0 .005-.016.005-.022.028-.07.05-.14.066-.21.149-.026.231-.188.264-.339a.655.655 0 00.088-.382c-.016-.215-.104-.318-.203-.36v-.039c0-.274-.028-.673-.077-.931a1.598 1.598 0 00-.61-1.034 1.736 1.736 0 00-1.285-.3c.236.285.42.622.529.996.038.124.065.248.083.36.048.257.079.578.093.867a1.736 1.736 0 01.08 1.624 1.65 1.65 0 01-.217.453 1.42 1.42 0 01-.176.209c-.08.204-.178.4-.292.585l.202.083c.285.117.64.261.9.387.226.11.475.245.698.414.213.161.476.408.63.764.034.08.065.159.091.235zM12.14 14.12l.09.037zM11 1c.55 0 1 .45 1 1 0 .28-.11.53-.29.7L8 6.41v1.374a2.813 2.813 0 00-.833 1.589 6.925 6.925 0 00-.092.86 1.64 1.64 0 00-.25.739l-.001.004c-.02.217.006.413.046.573L5.71 12.71A1.003 1.003 0 014 12V6.41L.29 2.71A1.003 1.003 0 011 1h10z"],shield:["M8 16c4.667-3.048 7-7.238 7-12.571-1.556 0-3.889-1.143-7-3.429-3.111 2.286-5.444 3.429-7 3.429C1 8.762 3.333 12.952 8 16zM8 2.121c2.005 1.388 3.715 2.304 5.186 2.735-.342 3.702-2.05 6.683-5.186 9.038V2.121z"],shop:["M3 2h10c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1s.45 1 1 1zm9 11H4v-3H2v5c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-5h-2v3zm4-6l-1.01-3.17C14.9 3.36 14.49 3 14 3H2c-.49 0-.9.36-.98.83L.01 7H0c0 1.1.9 2 2 2s2-.9 2-2c0 1.1.9 2 2 2s2-.9 2-2c0 1.1.9 2 2 2s2-.9 2-2c0 1.1.9 2 2 2s2-.9 2-2z"],"shopping-cart":["M14 10H7.72l-.33-1H13c.39 0 .72-.23.89-.56h.01l2-4h-.01c.06-.13.11-.28.11-.44 0-.55-.45-1-1-1H5.39l-.44-1.32h-.01C4.8 1.29 4.44 1 4 1H1c-.55 0-1 .45-1 1s.45 1 1 1h2.28l2.33 7H4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2h6c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2zM6.05 5h7.33l-1 2H6.72l-.67-2z"],"signal-search":["M5.474 7.971A5.31 5.31 0 006.66 8.9l.007.019.018.056c.015.038.038.06.045.098l1.5 5.999a.75.75 0 01-1.455.36l-.42-1.68h-.704l-.42 1.68a.746.746 0 01-.907.547.746.746 0 01-.547-.907l1.5-6c.007-.037.03-.06.044-.097.015-.037.015-.075.038-.112a.722.722 0 01-.105-.36c0-.207.084-.394.22-.53zM2.795 5.277a.763.763 0 00-.015-1.065.756.756 0 00-1.065.015c-2.286 2.34-2.286 6.21 0 8.549a.747.747 0 101.072-1.042c-1.709-1.763-1.709-4.702.008-6.457zM7.808 9.388a5.318 5.318 0 001.58.211 2.236 2.236 0 01-.656.98.756.756 0 01-1.057-.098.756.756 0 01.097-1.057l.036-.036zM11.544 9.105l.378.378a6.02 6.02 0 01-1.638 3.285c-.285.3-.757.3-1.057.015a.74.74 0 01-.015-1.057 4.52 4.52 0 001.185-2.24c.4-.083.785-.212 1.147-.381z","M4.054 9.424c-.427-.352-.352-1.582-.03-1.822a.752.752 0 00.15-1.05.752.752 0 00-1.05-.15c-1.079.802-1.221 3.18-.03 4.177a.75.75 0 10.96-1.155zM9.318 0a4.318 4.318 0 014.317 4.318c0 .206-.02.402-.049.598-.01.05-.01.088-.02.138-.039.196-.078.382-.137.569v.01c-.059.186-.137.363-.216.54l-.039.087a5.285 5.285 0 01-.294.51l2.884 2.886a.878.878 0 01.236.559.787.787 0 01-.785.785.785.785 0 01-.56-.226L11.772 7.89a5.285 5.285 0 01-.51.295l-.089.039c-.176.079-.353.157-.54.216h-.01a3.701 3.701 0 01-.568.137c-.05.01-.099.02-.138.02-.196.03-.392.049-.598.049A4.318 4.318 0 015 4.327 4.332 4.332 0 019.318 0zm-.02 1.1A3.195 3.195 0 006.1 4.298a3.195 3.195 0 003.198 3.198 3.195 3.195 0 003.198-3.198A3.195 3.195 0 009.298 1.1z"],"sim-card":["M13.71 4.29l-4-4A.997.997 0 009 0H3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V5c0-.28-.11-.53-.29-.71zM7 6h2v2H7V6zM4 6h2v2H4V6zm2 8H4v-2h2v2zm3 0H7v-2h2v2zm3 0h-2v-2h2v2zm0-3H4V9h8v2zm0-3h-2V6h2v2z"],slash:["M10 2a.99.99 0 00-.96.73l-2.99 9.96A1.003 1.003 0 007 14c.46 0 .85-.31.96-.73l2.99-9.96A1.003 1.003 0 0010 2z"],"small-cross":["M9.41 8l2.29-2.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L8 6.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42L6.59 8 4.3 10.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L8 9.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L9.41 8z"],"small-minus":["M11 7H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1z"],"small-plus":["M11 7H9V5c0-.55-.45-1-1-1s-1 .45-1 1v2H5c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V9h2c.55 0 1-.45 1-1s-.45-1-1-1z"],"small-tick":["M12 5c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z"],snowflake:["M13.364 9l.879.879a1 1 0 11-1.415 1.414l-2.12-2.121A1.003 1.003 0 0110.568 9H9v1.604c.042.03.083.065.121.103l2.122 2.121a1 1 0 01-1.415 1.415L9 13.414V15a1 1 0 01-2 0v-1.636l-.879.879a1 1 0 11-1.414-1.415l2.121-2.12c.054-.054.111-.1.172-.139V9H5.38c-.038.06-.084.118-.137.172l-2.122 2.12A1 1 0 111.707 9.88L2.586 9H1a1 1 0 110-2h1.536l-.829-.828a1 1 0 011.414-1.415L5.243 6.88c.038.038.072.079.103.121H7V5.38a1.003 1.003 0 01-.172-.137L4.708 3.12A1 1 0 016.12 1.707L7 2.586V1a1 1 0 112 0v1.536l.828-.829a1 1 0 011.415 1.414L9.12 5.243A1.007 1.007 0 019 5.346V7h1.604c.03-.042.065-.083.103-.121l2.121-2.122a1 1 0 011.415 1.415L13.414 7H15a1 1 0 010 2h-1.636z"],"social-media":["M9.5 4c.4 0 .8-.1 1.1-.3C12 4.5 12.9 6 13 7.6c0 .5.5.9 1 .9.6 0 1-.4 1-1v-.2c-.2-2.4-1.5-4.4-3.5-5.5-.1-1-.9-1.8-2-1.8s-2 .9-2 2 .9 2 2 2zM4 8.5c0-.7-.4-1.3-.9-1.7.3-1.4 1.2-2.6 2.5-3.3.3-.1.6-.4.6-.9s-.4-1-1-1c-.2 0-.3 0-.5.1-1.9 1-3.2 2.8-3.6 5C.4 7.1 0 7.8 0 8.5c0 1.1.9 2 2 2s2-.9 2-2zm8.8 1.2c-1.1 0-2 .9-2 2v.3c-.8.6-1.8.9-2.8.9-1.2 0-2.3-.4-3.2-1.1-.2-.2-.4-.3-.7-.3-.6 0-1 .4-1 1 0 .3.1.6.3.8C4.6 14.4 6.2 15 8 15c1.5 0 3-.5 4.1-1.3.2.1.5.1.7.1 1.1 0 2-.9 2-2s-.9-2.1-2-2.1z"],sort:["M5 12c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 001 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 005 12zm3-9h7c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm7 2H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm0 8H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z"],"sort-alphabetical":["M6 12c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 002 12a1.003 1.003 0 00-.71 1.71l2 2c.19.18.44.29.71.29.28 0 .53-.11.71-.29l2-2c.18-.18.29-.43.29-.71a.99.99 0 00-1-1zm7.93-.95v-1.04H9.25v1.11h2.94L9 14.96V16h5.02v-1.11h-3.27l3.18-3.84zm-1.42-4.84l.62 1.78H15L11.94.01H10.1L7 7.99h1.81l.64-1.78h3.06zm-1.52-4.24h.02l1.03 2.93H9.92l1.07-2.93z"],"sort-alphabetical-desc":["M5.99 11.99c-.28 0-.53.11-.71.29l-.29.29V8.99c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29a1.003 1.003 0 00-1.42 1.42l2 2c.18.18.43.29.71.29.28 0 .53-.11.71-.29l2-2c.18-.18.29-.43.29-.71 0-.56-.45-1.01-1-1.01zM12.7 10h-1.38L9 15.99h1.36l.48-1.33h2.3l.46 1.33H15L12.7 10zm-1.51 3.67l.8-2.2h.02l.77 2.2h-1.59zm3.8-7.17h-4.57l4.45-5.12V0H8.34v1.48h4.1L7.99 6.59v1.39h7V6.5z"],"sort-asc":["M8 7h3c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h1c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm0 8h5c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm-3 1c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 001 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 005 12zm10 1H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z"],"sort-desc":["M5 12c-.28 0-.53.11-.71.29l-.29.3V9c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29A.965.965 0 001 12a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 005 12zm4 1H8c-.55 0-1 .45-1 1s.45 1 1 1h1c.55 0 1-.45 1-1s-.45-1-1-1zm4-8H8c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm-2 4H8c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm4-8H8c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z"],"sort-numerical":["M6 11.99c-.28 0-.53.11-.71.29l-.29.3V8.99c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29.28 0 .53-.11.71-.29l2-2A1.003 1.003 0 006 11.99zm7.91-.08c-.06-.36-.17-.68-.33-.96-.16-.28-.37-.51-.64-.69-.27-.17-.61-.26-1.03-.26-.28 0-.54.06-.78.17-.23.11-.43.26-.6.45-.17.19-.3.41-.39.67a2.492 2.492 0 00-.04 1.52 1.623 1.623 0 00.89 1.03c.22.11.45.16.68.16.26 0 .5-.05.7-.15s.38-.26.53-.5l.02.02c-.01.16-.03.34-.07.54-.03.2-.09.4-.17.57-.08.18-.18.33-.31.45s-.29.19-.5.19a.63.63 0 01-.48-.21c-.13-.14-.21-.31-.25-.5H10.1c.03.25.1.48.19.68.1.2.22.37.38.5.16.14.33.24.54.31s.42.1.65.1c.39 0 .72-.09.99-.27.27-.18.49-.41.66-.7.17-.29.29-.61.37-.97.08-.36.12-.72.12-1.07 0-.36-.03-.72-.09-1.08zm-1.14.54c-.04.13-.09.24-.16.34a.78.78 0 01-.27.24c-.11.06-.24.09-.39.09a.75.75 0 01-.37-.09.777.777 0 01-.26-.25c-.07-.1-.12-.22-.15-.35-.03-.13-.05-.26-.05-.4 0-.13.02-.26.05-.39.04-.13.09-.24.16-.34.07-.1.16-.18.26-.24s.22-.09.35-.09c.14 0 .26.03.37.09.11.06.2.14.28.24a1.32 1.32 0 01.23.74c0 .15-.02.28-.05.41zm-1.56-4.47H13V0h-1.42c-.05.3-.16.56-.31.76-.16.21-.35.37-.58.5-.23.13-.49.21-.78.26-.3.05-.6.07-.91.06V2.8h2.21v5.18z"],"sort-numerical-desc":["M6 11.99c-.28 0-.53.11-.71.29l-.29.3V8.99c0-.55-.45-1-1-1s-1 .45-1 1v3.59l-.29-.29a.982.982 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 006 11.99zm7.86-9.45c-.09-.48-.26-.9-.5-1.28S12.8.58 12.4.35C12 .12 11.49 0 10.86 0c-.43 0-.82.07-1.17.22s-.65.35-.9.6-.44.55-.58.89c-.14.34-.2.71-.2 1.11 0 .31.05.61.15.91.1.3.26.57.48.8.23.24.52.43.85.58.33.14.68.21 1.03.21.4 0 .75-.07 1.05-.2.3-.13.57-.35.79-.66l.02.02c-.02.21-.05.45-.1.73-.05.27-.13.53-.25.76-.12.24-.27.44-.47.6-.19.16-.44.25-.75.25a.98.98 0 01-.72-.29c-.19-.18-.31-.4-.37-.66H8.15c.05.34.14.64.29.9.15.26.34.49.57.67.23.18.5.32.8.41.31.1.63.15.98.15.58 0 1.08-.12 1.48-.36.4-.24.73-.55.99-.93.26-.39.44-.82.56-1.29.12-.48.18-.96.18-1.44s-.05-.96-.14-1.44zm-1.71.72c-.05.17-.14.32-.24.46-.11.13-.24.24-.41.31-.16.08-.36.12-.58.12-.21 0-.39-.04-.55-.13-.16-.08-.29-.19-.39-.33-.12-.14-.19-.29-.24-.46-.05-.17-.08-.35-.08-.54 0-.18.03-.35.08-.52.06-.16.14-.31.25-.44.11-.13.24-.24.4-.32.16-.08.33-.12.52-.12.21 0 .4.04.56.12.16.08.3.19.41.32.11.14.2.29.26.46.06.17.09.35.09.52 0 .2-.03.38-.08.55zm-.46 7.31c-.12.15-.26.28-.44.37-.17.09-.37.16-.58.2-.22.04-.44.05-.67.05v.92h1.65v3.88h1.33V10h-1.06c-.03.23-.11.42-.23.57z"],"split-columns":["M12 10a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H9V2h3v1.71c.31-.13.64-.21 1-.21s.69.08 1 .21V1c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2.71c.31-.13.64-.21 1-.21s.69.08 1 .21V2h3v5H3.41l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C.11 7.47 0 7.72 0 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L3.41 9H7v5H4v-1.71c-.31.13-.64.21-1 .21s-.69-.08-1-.21V15c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-2.71c-.31.13-.64.21-1 .21s-.69-.08-1-.21V14H9V9h3.59l-.29.29c-.19.18-.3.43-.3.71z"],square:["M15 0H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H2V2h12v12z"],"stacked-chart":["M10 2c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v3h3V2zm3 10h1c.55 0 1-.45 1-1V8h-3v3c0 .55.45 1 1 1zm2-7c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v2h3V5zm-5 1H7v3h3V6zM5 7c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v1h3V7zm3 5h1c.55 0 1-.45 1-1v-1H7v1c0 .55.45 1 1 1zm7 1H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM3 12h1c.55 0 1-.45 1-1V9H2v2c0 .55.45 1 1 1z"],star:["M8 0l2.5 5.3 5.5.8-4 4.1.9 5.8L8 13.3 3.1 16l.9-5.8-4-4.1 5.5-.8z"],"star-empty":["M16 6.11l-5.53-.84L8 0 5.53 5.27 0 6.11l4 4.1L3.06 16 8 13.27 12.94 16 12 10.21l4-4.1zM4.91 13.2l.59-3.62L3 7.02l3.45-.53L8 3.2l1.55 3.29 3.45.53-2.5 2.56.59 3.62L8 11.49 4.91 13.2z"],"step-backward":["M12 3c-.24 0-.44.09-.62.23l-.01-.01L7 6.72V4c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V9.28l4.38 3.5.01-.01c.17.14.37.23.61.23.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"step-chart":["M15 12H2v-2h3c.55 0 1-.45 1-1V7h2v1c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V5h1c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1v3h-2V6c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v2H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],"step-forward":["M12 3h-1c-.55 0-1 .45-1 1v2.72l-4.38-3.5v.01A.987.987 0 005 3c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1 .24 0 .44-.09.62-.23l.01.01L10 9.28V12c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],stop:["M12 3H4c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h8c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],stopwatch:["M9 2v1.083A6.002 6.002 0 018 15 6 6 0 017 3.083V2H6a1 1 0 110-2h4a1 1 0 010 2H9zM8 5a4 4 0 104 4H8V5z"],strikethrough:["M14 7H8.65c-.38-.09-.73-.18-1.04-.26-.31-.08-.49-.13-.54-.14-.43-.11-.79-.29-1.05-.52-.27-.23-.4-.55-.4-.95 0-.29.07-.53.21-.72s.32-.34.54-.46c.22-.11.46-.19.72-.24.26-.05.52-.07.77-.07.74 0 1.36.15 1.84.46.32.2.55.5.68.9h2.22c-.06-.33-.17-.64-.32-.92-.25-.45-.59-.84-1.02-1.15-.43-.31-.93-.54-1.49-.7S8.59 2 7.95 2c-.55 0-1.1.07-1.63.2-.54.13-1.02.34-1.45.62-.42.28-.76.63-1.02 1.05-.26.42-.39.92-.39 1.5 0 .3.04.59.13.88.08.26.21.51.39.75H2c-.55 0-1 .45-1 1s.45 1 1 1h7.13c.25.07.49.14.71.22.25.09.48.23.7.44.21.21.32.53.32.97 0 .21-.05.43-.14.63-.09.21-.24.39-.45.55-.21.16-.48.29-.81.39-.33.1-.73.15-1.2.15-.44 0-.84-.05-1.21-.14-.37-.09-.7-.24-.99-.43-.29-.2-.51-.45-.67-.76-.01 0-.01-.01-.02-.02H3.14a3.68 3.68 0 001.39 2.03c.46.34 1 .58 1.62.74.61.15 1.27.23 1.97.23.61 0 1.2-.07 1.79-.2.58-.13 1.11-.34 1.56-.63.46-.29.83-.66 1.11-1.11.28-.45.42-1 .42-1.64 0-.3-.05-.6-.15-.9-.05-.19-.13-.36-.22-.52H14c.55 0 1-.45 1-1s-.45-1-1-1z"],style:["M14 14H2V2h8.76l2-2H1C.45 0 0 .45 0 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6.24l-2 2V14zm1.4-14L9.7 5.7l2.1 2.1L16 3.6V0h-.6zM4 11.92c2.33.15 4.42.15 6.15-1.5.82-.83.82-2.25 0-3.08-.45-.38-.98-.6-1.5-.6-.53 0-1.05.22-1.43.6-.82.91-1.27 3.38-3.22 4.58z"],"swap-horizontal":["M0 7.02L.05 7H0v.02zm2-2.03h9.57l-1.29 1.29A1.003 1.003 0 0011.7 7.7l2.99-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2.99-3a1.07 1.07 0 00-.71-.28 1.003 1.003 0 00-.71 1.71L11.57 3H2c-.55 0-1 .45-1 1a1 1 0 001 .99zM15.96 9H16v-.02l-.04.02zM14 11.01H4.43l1.29-1.29A1.003 1.003 0 004.3 8.3l-2.99 3a.99.99 0 00-.29.7c0 .28.11.53.29.71l2.99 3a1.003 1.003 0 001.42-1.42L4.43 13H14c.55 0 1-.45 1-1s-.45-.99-1-.99z"],"swap-vertical":["M9 0h-.02L9 .04V0zM7 16h.02L7 15.95V16zM4.7 1.31c-.18-.18-.43-.29-.7-.29s-.53.11-.71.29l-3 2.99a1.003 1.003 0 001.42 1.42L3 4.43V14c0 .55.45 1 1 1s1-.45 1-1V4.43l1.29 1.29c.18.18.43.29.7.29A1.003 1.003 0 007.7 4.3l-3-2.99zM15 9.99c-.28 0-.53.11-.71.29L13 11.57V2c0-.55-.45-1-1-1s-1 .45-1 1v9.57l-1.29-1.29a.99.99 0 00-.7-.29 1.003 1.003 0 00-.71 1.71l3 2.99c.18.18.43.29.71.29.28 0 .53-.11.71-.29l3-2.99c.18-.18.29-.43.29-.71-.01-.55-.46-1-1.01-1z"],switch:["M9.293 2.293l1.414 1.414-4.999 5a3 3 0 11-1.415-1.415l5-5zM13 7a3 3 0 110 6 3 3 0 010-6zM3 9a1 1 0 100 2 1 1 0 000-2zm10 0a1 1 0 100 2 1 1 0 000-2z"],"symbol-circle":["M8 3.01a5 5 0 100 10 5 5 0 100-10z"],"symbol-cross":["M12 6.01h-2v-2c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v2H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2h2c.55 0 1-.45 1-1v-2c0-.56-.45-1-1-1z"],"symbol-diamond":["M12 8.01c0-.19-.07-.36-.16-.51l.01-.01-3-5-.01.01c-.17-.29-.48-.49-.84-.49s-.67.2-.84.49l-.02-.01-3 5 .02.01c-.09.15-.16.32-.16.51s.07.36.16.51h-.02l3 5 .01-.01c.18.29.49.5.85.5s.67-.2.84-.49l.01.01 3-5-.01-.01c.09-.16.16-.32.16-.51z"],"symbol-square":["M12 3.01H4c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-8c0-.56-.45-1-1-1z"],"symbol-triangle-down":["M13 4.01c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 .16.05.31.11.44H3.1l4 8h.01c.16.33.49.56.89.56s.72-.23.89-.56h.01l4-8h-.01c.06-.14.11-.28.11-.44z"],"symbol-triangle-up":["M12.89 11.56l-3.99-8h-.01c-.17-.32-.5-.55-.89-.55s-.72.23-.89.55H7.1l-4 8h.01c-.06.14-.11.29-.11.45 0 .55.45 1 1 1h8c.55 0 1-.45 1-1 0-.16-.05-.31-.11-.45z"],tag:["M1 3a2 2 0 012-2h4.584a2 2 0 011.414.586l5.413 5.412a2 2 0 010 2.829L9.827 14.41a2 2 0 01-2.829 0L1.586 8.998A2 2 0 011 7.584V3zm3.487-.007a1.494 1.494 0 100 2.988 1.494 1.494 0 000-2.988z"],"take-action":["M9 11a1.003 1.003 0 001.71.71l4-4a1.003 1.003 0 00-1.42-1.42l-4 4c-.18.18-.29.43-.29.71zM4 6c.28 0 .53-.11.71-.29l4-4A1.003 1.003 0 007.29.29l-4 4A1.003 1.003 0 004 6zm4 4l5-5-.79-.79.5-.5a1.003 1.003 0 00-1.42-1.42l-.5.5L10 2 5 7l.79.79-5.5 5.5a1.003 1.003 0 001.42 1.42l5.5-5.5L8 10zm7 4H7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1z"],taxi:["M15.12 6.63h-.38L15 7c-.01.3-.01.64 0 .98V8c0 .07-.03.13-.04.19h.02L14 13.1v.9c0 .55-.45 1-1 1s-1-.45-1-1v-1H4v1c0 .55-.45 1-1 1s-1-.45-1-1v-.9l-.98-4.9h.02C1.03 8.13 1 8.07 1 8H.99c0-.33 0-.67.01-1l.26-.37H.88C.4 6.63 0 6.21 0 5.69s.4-.94.88-.94h1.05l.77-2.11c.19-.53.76-1.08 1.26-1.24 0 0 .68-.2 2.05-.32C6.01 1.05 6 1.03 6 1c0-.55.45-1 1-1h2c.55 0 1 .45 1 1 0 .03-.01.05-.02.08 1.37.12 2.05.32 2.05.32.51.15 1.08.71 1.27 1.24l.76 2.12h1.05c.49 0 .89.42.89.93 0 .52-.4.94-.88.94zM11 10h2V8h-2v2zm-8 0h2V8H3v2zm10-5l-.73-1.63C12.21 3.19 12.18 3 12 3H4c-.18 0-.21.19-.27.37L3 5c-.06.18-.18 1 0 1h10c.18 0 .06-.82 0-1z"],"text-highlight":["M9 10H2V6h7V4H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h8v-2zm4 3h-1V3h1c.55 0 1-.45 1-1s-.45-1-1-1h-1c-.37 0-.7.11-1 .28-.3-.17-.63-.28-1-.28H9c-.55 0-1 .45-1 1s.45 1 1 1h1v10H9c-.55 0-1 .45-1 1s.45 1 1 1h1c.37 0 .7-.11 1-.28.3.17.63.28 1 .28h1c.55 0 1-.45 1-1s-.45-1-1-1zm2-9h-2v2h1v4h-1v2h2c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z"],th:["M15 1H1c-.6 0-1 .5-1 1v12c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1zM6 13H2v-2h4v2zm0-3H2V8h4v2zm0-3H2V5h4v2zm8 6H7v-2h7v2zm0-3H7V8h7v2zm0-3H7V5h7v2z"],"th-derived":["M5.6 10l-.3.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l2-2c.2-.2.3-.4.3-.7s-.1-.5-.3-.7l-2-2C6.5 6.1 6.3 6 6 6c-.5 0-1 .4-1 1 0 .3.1.5.3.7l.3.3H1c-.6 0-1 .4-1 1s.4 1 1 1h4.6zM15 1H2c-.5 0-1 .5-1 1v5h2V5h11v2H8.8l.6.6c.1.1.2.3.3.4H14v2H9.7c-.1.1-.2.3-.3.4l-.6.6H14v2H3v-2H1v3c0 .5.5 1 1 1h13c.6 0 1-.5 1-1V2c0-.5-.4-1-1-1z"],"th-disconnect":["M12 1h3c.6 0 1 .5 1 1v12c0 .6-.4 1-1 1h-4.97l.286-2H14v-2h-3.398l.143-1H14V8h-2.97l.143-1H14V5h-2.541l.51-3.576C11.99 1.282 12 1.14 12 1zM5.97 1l-.572 4H2v2h3.112L4.97 8H2v2h2.684l-.143 1H2v2h2.255l-.225 1.576c-.02.142-.03.284-.03.424H1c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1h4.97zM8.01.859a1 1 0 111.98.282l-2 14a1 1 0 11-1.98-.282l2-14z"],"th-filtered":["M10 10h3l1.78-2.226a1 1 0 00.22-.625V4.3l1-.9V14c0 .6-.4 1-1 1H1c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1h4.333L9 4.3V5H7v2h2v1H7v2h3zm-4 3v-2H2v2h4zm0-3V8H2v2h4zm0-3V5H2v2h4zm8 6v-2H7v2h7z","M15.48 0c.31 0 .52.26.52.57 0 .16-.06.3-.17.41l-2.86 2.73v2.63c0 .16-.06.3-.17.41l-.82 1.1c-.1.1-.25.17-.41.17-.31 0-.57-.26-.57-.57V3.71L8.17.98A.566.566 0 018 .57c0-.31.26-.57.57-.57h6.91z"],"th-list":["M15 1H1c-.6 0-1 .5-1 1v12c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1zm-1 12H2v-2h12v2zm0-3H2V8h12v2zm0-3H2V5h12v2z"],"thumbs-down":["M2 2H0v7h2c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm13.99 4.38c.08-.58-.44-1.02-1.15-1.05-.25-.01-.52-.03-.81-.05.02 0 .05-.01.07-.01.7-.1 1.34-.49 1.41-1.07.06-.58-.46-.97-1.17-1.04-.25-.02-.52-.04-.79-.06.47-.15.84-.42.87-.93.04-.58-.79-1.03-1.5-1.09-.27-.02-.51-.04-.73-.05h-.09c-.23-.02-.43-.02-.62-.03C8.35.95 5.66 1.47 4 2.51v6c2.14 1.29 4.76 3.59 4.21 5.51-.18.59.31 1.05.98.98.81-.09 1.37-.91 1.4-1.78.04-1-.15-2.01-.5-2.91-.04-.25.01-.5.37-.53.49-.03 1.11-.06 1.59-.08.26 0 .51-.01.75-.02h.01c.41-.02.8-.05 1.13-.09.7-.09 1.35-.47 1.43-1.05.08-.58-.44-.97-1.15-1.05-.05-.01-.11-.01-.16-.02.17-.01.33-.03.49-.05.72-.08 1.37-.46 1.44-1.04z"],"thumbs-up":["M15.99 9.62c-.08-.58-.73-.96-1.43-1.05-.15-.02-.32-.04-.49-.05.06-.01.11-.01.16-.02.71-.08 1.23-.47 1.15-1.05-.08-.58-.73-.96-1.43-1.05-.34-.04-.72-.07-1.13-.09h-.01c-.24-.01-.49-.02-.75-.02-.48-.02-1.11-.04-1.59-.08-.36-.03-.41-.28-.37-.53.35-.9.54-1.91.5-2.91-.04-.85-.6-1.68-1.41-1.77-.67-.07-1.16.39-.99.98C8.76 3.91 6.13 6.2 4 7.49v6c1.66 1.03 4.35 1.56 7.48 1.5.19 0 .39-.01.62-.02h.09c.22-.01.46-.03.73-.05.71-.06 1.54-.51 1.5-1.09-.03-.51-.4-.79-.87-.93.27-.02.54-.04.79-.06.71-.06 1.24-.45 1.17-1.04-.06-.58-.7-.97-1.41-1.07-.02 0-.05-.01-.07-.01.29-.02.57-.03.81-.05.71-.03 1.23-.47 1.15-1.05zM2 7H0v7h2c.55 0 1-.45 1-1V8c0-.56-.45-1-1-1z"],tick:["M14 3c-.28 0-.53.11-.71.29L6 10.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29s.53-.11.71-.29l8-8A1.003 1.003 0 0014 3z"],"tick-circle":["M8 16c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm4-11c-.28 0-.53.11-.71.29L7 9.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l5-5A1.003 1.003 0 0012 5z"],time:["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm1-6.41V4c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L9 7.59z"],"timeline-area-chart":["M15 2.59L9.91 7.68 6.6 5.2l-.01.01C6.42 5.09 6.23 5 6 5c-.24 0-.44.09-.62.23v-.01L3 7.12V11h12V2.59zM15 12H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],"timeline-bar-chart":["M8 12h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1zm5 0h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1zm2 1H2c-.55 0-1 .45-1 1s.45 1 1 1h13c.55 0 1-.45 1-1s-.45-1-1-1zM3 12h1c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1z"],"timeline-events":["M8 11H7v1h1v-1zm-4 0H3v1h1v-1zm7-8c.6 0 1-.5 1-1V1c0-.5-.4-1-1-1s-1 .5-1 1v1c0 .5.5 1 1 1zM4 3c.5 0 1-.5 1-1V1c0-.5-.5-1-1-1S3 .5 3 1v1c0 .5.5 1 1 1zm10-2h-1v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H6v1c0 1.1-.9 2-2 2s-2-.9-2-2V1H1c-.5 0-1 .5-1 1v12c0 .5.5 1 1 1h13c.6 0 1-.5 1-1V2c0-.5-.4-1-1-1zM5 13H2v-3h3v3zm0-4H2V6h3v3zm4 4H6v-3h3v3zm0-4H6V6h3v3zm4 4h-3v-3h3v3zm0-4h-3V6h3v3zm-1-2h-1v1h1V7z"],"timeline-line-chart":["M15 12H2V9.41l3-3L8.29 9.7c.18.19.43.3.71.3s.53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42L9 7.59l-3.29-3.3C5.53 4.11 5.28 4 5 4s-.53.11-.71.29L2 6.59V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],tint:["M7.88 1s-4.9 6.28-4.9 8.9c.01 2.82 2.34 5.1 4.99 5.1 2.65-.01 5.03-2.3 5.03-5.13C12.99 7.17 7.88 1 7.88 1z"],torch:["M5 15c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H5v1zm7-15H4c-.55 0-1 .45-1 1v1h10V1c0-.55-.45-1-1-1zM5 7v6h6V7l2-4H3l2 4zm2 0c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1s-1-.45-1-1V7z"],tractor:["M3.5 9a3.5 3.5 0 110 7 3.5 3.5 0 010-7zm9.5 1a3 3 0 110 6 3 3 0 010-6zm-9.5 1a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm9.5 1a1 1 0 100 2 1 1 0 000-2zM5 0c1.46 0 2.527.668 3 2l.815 3.255a78.9 78.9 0 012.186.195L11 2h2l.001 3.688c.698.095 1.37.198 2.013.312.623.11.986.479.986 1v3.354a4.001 4.001 0 00-6.873 1.645H7.999l-.026-.002A4.5 4.5 0 00.659 9.01l-.654.001v-.829C.003 7.386.002 6.423 0 6.022 0 5.5.376 4.99 1 4.99V1a1 1 0 011-1h3zm1 2H3v2.99c1.29.024 2.554.069 3.781.135L6 2z"],train:["M13 14h-1l1 2H3l1-2H3c-1.1 0-2-.9-2-2V2C1 .9 4.13 0 8 0s7 .9 7 2v10c0 1.1-.9 2-2 2zm-2-2h2v-2h-2v2zM9 7h4V3H9v4zm-6 5h2v-2H3v2zm0-5h4V3H3v4z"],translate:["M15.89 14.56l-3.99-8h-.01c-.17-.33-.5-.56-.89-.56s-.72.23-.89.56h-.01L9 8.76 7.17 7.38l.23-.18C8.37 6.47 9 5.31 9 4V3h1c.55 0 1-.45 1-1s-.45-1-1-1H7c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H1c-.55 0-1 .45-1 1s.45 1 1 1h6v1c0 .66-.32 1.25-.82 1.61l-.68.51-.68-.5C4.32 5.25 4 4.66 4 4H2c0 1.31.63 2.47 1.6 3.2l.23.17L1.4 9.2l.01.01C1.17 9.4 1 9.67 1 10c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01 2.9-2.17 2.6 1.95-1.99 3.98h.01c-.07.13-.12.28-.12.44 0 .55.45 1 1 1 .39 0 .72-.23.89-.56h.01L8.62 14h4.76l.72 1.45h.01c.17.32.5.55.89.55.55 0 1-.45 1-1 0-.16-.05-.31-.11-.44zM9.62 12L11 9.24 12.38 12H9.62z"],trash:["M14.49 3.99h-13c-.28 0-.5.22-.5.5s.22.5.5.5h.5v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-10h.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zm-8.5 9c0 .55-.45 1-1 1s-1-.45-1-1v-6c0-.55.45-1 1-1s1 .45 1 1v6zm3 0c0 .55-.45 1-1 1s-1-.45-1-1v-6c0-.55.45-1 1-1s1 .45 1 1v6zm3 0c0 .55-.45 1-1 1s-1-.45-1-1v-6c0-.55.45-1 1-1s1 .45 1 1v6zm2-12h-4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1h-4c-.55 0-1 .45-1 1v1h14v-1c0-.55-.45-1-1-1z"],tree:["M9 11.857V16H7v-4.143L1 13l3.885-4.44L3 9l3.07-4.297L5 5l3-5 3 5-1.07-.297L13 9l-1.885-.44L15 13l-6-1.143z"],"trending-down":["M15 7c-.55 0-1 .45-1 1v.59l-4.29-4.3A.997.997 0 009 4c-.16 0-.31.05-.44.11V4.1L5 5.88 1.45 4.11v.01C1.31 4.05 1.16 4 1 4c-.55 0-1 .45-1 1 0 .39.23.72.56.89v.01l4 2v-.01c.13.06.28.11.44.11s.31-.05.44-.11v.01L8.8 6.22 12.59 10H12c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1z"],"trending-up":["M15 4h-3c-.55 0-1 .45-1 1s.45 1 1 1h.59L8.8 9.78 5.45 8.11v.01C5.31 8.05 5.16 8 5 8s-.31.05-.44.11V8.1l-4 2v.01c-.33.17-.56.5-.56.89 0 .55.45 1 1 1 .16 0 .31-.05.44-.11v.01L5 10.12l3.55 1.78v-.01c.14.06.29.11.45.11.28 0 .53-.11.71-.29L14 7.41V8c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1z"],truck:["M12.5 0a.5.5 0 01.5.5V9a1 1 0 011 1v2h.5a.5.5 0 01.5.5v1a.5.5 0 01-.5.5H13v1a1 1 0 01-2 0v-1H5v1a1 1 0 01-2 0v-1H1.5a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5H2v-2a1 1 0 011-1V.5a.5.5 0 011 0V3a2 2 0 012-2h4a2 2 0 012 2V.5a.5.5 0 01.5-.5zM9 8H7a1 1 0 00-1 1v2a1 1 0 001 1h2a1 1 0 001-1V9a1 1 0 00-1-1zm3.5 3h-1a.5.5 0 100 1h1a.5.5 0 100-1zm-8 0h-1a.5.5 0 100 1h1a.5.5 0 100-1zM9 9a.5.5 0 01.5.5v1l-.008.09A.5.5 0 019 11H7l-.09-.008a.5.5 0 01-.41-.492v-1l.008-.09A.5.5 0 017 9zm2-5H5v2h6V4z"],"two-columns":["M3.99-.01h-3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-14c0-.55-.45-1-1-1zm11.71 7.3l-2-2a1.003 1.003 0 00-1.71.71v4a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71s-.11-.53-.29-.71zM9.99-.01h-3c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-14c0-.55-.45-1-1-1z"],unarchive:["M13.382 0a1 1 0 01.894.553L16 4v11a1 1 0 01-1 1H1a1 1 0 01-1-1V4L1.724.553A1 1 0 012.618 0h10.764zM8 6c-.28 0-.53.11-.71.29l-2 2-.084.096A1.003 1.003 0 006.71 9.71l.29-.3V12l.007.116c.058.496.482.884.993.884.55 0 1-.45 1-1V9.41l.29.29.081.076A.97.97 0 0010 10a1.003 1.003 0 00.71-1.71l-2-2-.096-.084A1.002 1.002 0 008 6zm5-4H3L2 4h12l-1-2z"],underline:["M8 14c2.8 0 5-2.2 5-5V3c0-.6-.4-1-1-1s-1 .4-1 1v6c0 1.7-1.3 3-3 3s-3-1.3-3-3V3c0-.6-.4-1-1-1s-1 .4-1 1v6c0 2.8 2.2 5 5 5zM13.5 15h-11c-.3 0-.5.2-.5.5s.2.5.5.5h11c.3 0 .5-.2.5-.5s-.2-.5-.5-.5z"],undo:["M4 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7-7H3.41L4.7 2.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 4.47 0 4.72 0 5c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 6H11c1.66 0 3 1.34 3 3s-1.34 3-3 3H7v2h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"],"ungroup-objects":["M3.5 5C1.57 5 0 6.57 0 8.5S1.57 12 3.5 12 7 10.43 7 8.5 5.43 5 3.5 5zm9 0C10.57 5 9 6.57 9 8.5s1.57 3.5 3.5 3.5S16 10.43 16 8.5 14.43 5 12.5 5z"],"unknown-vehicle":["M10.507 9.75v-3.5c0-.089.023-.171.051-.25h-7.55c-.176 0-.061-.824 0-1l.729-1.63c.06-.177.095-.37.27-.37h4.5V1.01c-.166-.003-.32-.01-.5-.01-2.72 0-4.036.402-4.036.402-.508.155-1.079.711-1.268 1.237L1.94 4.756H.887c-.483 0-.88.423-.88.939s.397.939.88.939h.376L1.008 7c-.034.685 0 1.436 0 2v5c0 .657.384 1 1 1s1-.343 1-1v-1h10v1c0 .657.383 1 1 1s1-.343 1-1v-3.5h-3.75a.75.75 0 01-.75-.75zm-5.5.25h-2V8h2v2zm11-4.305zM15.34.826a2.807 2.807 0 00-.932-.598c-.386-.16-.868-.241-1.445-.241-.447 0-.851.076-1.213.228-.362.153-.67.364-.926.636s-.456.592-.598.963a3.535 3.535 0 00-.218 1.144V3h1.789c.003-.208.023-.405.069-.588.049-.193.124-.362.225-.506.102-.144.232-.259.39-.345.159-.087.348-.13.567-.13.325 0 .58.09.762.272.183.18.275.46.275.839.008.222-.031.407-.116.555a1.654 1.654 0 01-.335.408 7.4 7.4 0 01-.452.37c-.162.123-.316.27-.463.438a2.556 2.556 0 00-.384.611c-.11.239-.177.535-.2.889V6h1.645v-.1c.032-.248.111-.453.237-.618.126-.164.27-.31.433-.438.163-.128.335-.255.518-.383a2.413 2.413 0 00.878-1.117c.102-.255.152-.58.152-.975A2.241 2.241 0 0015.34.826zM12.007 7v2h2V7h-2z"],unlock:["M11.99-.01c-2.21 0-4 1.79-4 4v3h-7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-7c0-.55-.45-1-1-1h-3v-3c0-1.1.9-2 2-2s2 .9 2 2v1c0 .55.45 1 1 1s1-.45 1-1v-1c0-2.21-1.79-4-4-4z"],unpin:["M9.39 1c-.5.5-.4 1.48.15 2.53L4.38 7.54C2.85 6.5 1.52 6.07 1 6.59l3.5 3.5c-.02.02-1.4 2.8-1.4 2.8l2.8-1.4 3.5 3.5c.53-.53.1-1.86-.95-3.38l4.02-5.16c1.04.55 2.01.65 2.51.14L9.39 1z"],unresolve:["M11 3c-.55 0-1.07.09-1.57.26a6.46 6.46 0 010 9.48c.5.17 1.02.26 1.57.26 2.76 0 5-2.24 5-5s-2.24-5-5-5zM9.78 9.38l.09-.27c.08-.36.13-.73.13-1.11s-.05-.75-.13-1.11l-.09-.27a5.32 5.32 0 00-.29-.79l-.12-.21c-.14-.27-.31-.52-.51-.76a.7.7 0 00-.08-.1c-.24-.27-.49-.52-.78-.74-.43-.32-.92-.58-1.45-.75l.01-.01c-.1-.03-.2-.05-.3-.08-.12-.03-.23-.07-.36-.09A5.28 5.28 0 005 3C2.24 3 0 5.24 0 8s2.24 5 5 5c.31 0 .61-.04.9-.09.12-.02.24-.06.36-.09.1-.03.21-.04.3-.08l-.01-.01c.88-.29 1.64-.8 2.22-1.49.03-.03.06-.07.09-.1.19-.24.36-.49.51-.76.04-.07.08-.14.11-.21.13-.25.23-.52.3-.79z"],updated:["M8 0a7.95 7.95 0 00-6 2.74V1c0-.55-.45-1-1-1S0 .45 0 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.54C4.64 2.78 6.22 2 8 2c3.31 0 6 2.69 6 6 0 2.61-1.67 4.81-4 5.63-.63.22-1.29.37-2 .37-3.31 0-6-2.69-6-6 0-.55-.45-1-1-1s-1 .45-1 1c0 4.42 3.58 8 8 8 .34 0 .67-.03 1-.07.02 0 .04-.01.06-.01C12.98 15.4 16 12.06 16 8c0-4.42-3.58-8-8-8zm3 5c-.28 0-.53.11-.71.29L7 8.58 5.71 7.29a1.003 1.003 0 00-1.42 1.42l2 2c.18.18.43.29.71.29.28 0 .53-.11.71-.29l4-4A1.003 1.003 0 0011 5z"],upload:["M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm3 8c-.28 0-.53-.11-.71-.29L9 6.41V12c0 .55-.45 1-1 1s-1-.45-1-1V6.41l-1.29 1.3a1.003 1.003 0 01-1.42-1.42l3-3C7.47 3.11 7.72 3 8 3s.53.11.71.29l3 3A1.003 1.003 0 0111 8z"],user:["M7.99-.01A7.998 7.998 0 00.03 8.77c.01.09.03.18.04.28.02.15.04.31.07.47.02.11.05.22.08.34.03.13.06.26.1.38.04.12.08.25.12.37.04.11.08.21.12.32a6.583 6.583 0 00.3.65c.07.14.14.27.22.4.04.07.08.13.12.2l.27.42.1.13a7.973 7.973 0 003.83 2.82c.03.01.05.02.07.03.37.12.75.22 1.14.29l.2.03c.39.06.79.1 1.2.1s.81-.04 1.2-.1l.2-.03c.39-.07.77-.16 1.14-.29.03-.01.05-.02.07-.03a8.037 8.037 0 003.83-2.82c.03-.04.06-.08.09-.13.1-.14.19-.28.28-.42.04-.07.08-.13.12-.2.08-.13.15-.27.22-.41.04-.08.08-.17.12-.26.06-.13.11-.26.17-.39.04-.1.08-.21.12-.32.04-.12.08-.24.12-.37.04-.13.07-.25.1-.38.03-.11.06-.22.08-.34.03-.16.05-.31.07-.47.01-.09.03-.18.04-.28.02-.26.04-.51.04-.78-.03-4.41-3.61-7.99-8.03-7.99zm0 14.4c-1.98 0-3.75-.9-4.92-2.31.67-.36 1.49-.66 2.14-.95 1.16-.52 1.04-.84 1.08-1.27.01-.06.01-.11.01-.17-.41-.36-.74-.86-.96-1.44v-.01c0-.01-.01-.02-.01-.02-.05-.13-.09-.26-.12-.39-.28-.05-.44-.35-.5-.63-.06-.11-.18-.38-.15-.69.04-.41.2-.59.38-.67v-.06c0-.51.05-1.24.14-1.72.02-.13.05-.26.09-.39.17-.59.53-1.12 1.01-1.49.49-.38 1.19-.59 1.82-.59.62 0 1.32.2 1.82.59.48.37.84.9 1.01 1.49.04.13.07.26.09.4.09.48.14 1.21.14 1.72v.07c.18.08.33.26.37.66.03.31-.1.58-.16.69-.06.27-.21.57-.48.62-.03.13-.07.26-.12.38 0 .01-.01.04-.01.04-.21.57-.54 1.06-.94 1.42 0 .06.01.13.01.19.04.43-.12.75 1.05 1.27.65.29 1.47.6 2.14.95a6.415 6.415 0 01-4.93 2.31z"],variable:["M3.94 3.15c.47-.66 1.05-1.24 1.76-1.73l.13-.4c-1.11.45-2.05 1.01-2.84 1.7-1.02.88-1.8 1.9-2.32 3.05C.22 6.76 0 7.75 0 8.75c0 1.75.66 3.5 1.99 5.25l.13-.42c-.39-.94-.59-1.82-.59-2.63 0-1.28.22-2.64.67-4.1.45-1.45 1.03-2.69 1.74-3.7zm7.51 6.41l-.27-.15c-.3.41-.52.66-.66.77-.09.06-.21.1-.33.1-.15 0-.3-.1-.45-.28-.25-.33-.59-1.22-1.01-2.69.38-.65.69-1.08.95-1.28.19-.15.39-.22.59-.22.08 0 .22.03.43.08.2.06.39.08.54.08.22 0 .4-.07.54-.22.15-.15.22-.34.22-.57 0-.25-.07-.45-.22-.59-.15-.15-.35-.22-.63-.22-.24 0-.47.06-.69.17-.21.11-.49.36-.82.74-.25.28-.61.78-1.1 1.48a6.72 6.72 0 00-.97-2.38l-2.59.44-.05.27c.19-.04.36-.06.49-.06.26 0 .47.11.64.33.26.34.63 1.38 1.11 3.12-.37.49-.63.81-.77.96-.23.24-.41.4-.56.47-.11.06-.24.09-.39.09-.11 0-.29-.06-.53-.18-.17-.07-.32-.11-.45-.11-.25 0-.46.08-.62.24-.16.16-.24.37-.24.61 0 .23.08.42.23.57.15.15.35.22.61.22.25 0 .48-.05.7-.15.22-.1.49-.32.82-.65.33-.33.78-.86 1.36-1.59.22.69.42 1.19.58 1.51.16.31.35.54.56.68.21.14.47.21.79.21.31 0 .62-.11.93-.33.4-.29.82-.77 1.26-1.47zm2.56-8.54l-.12.42c.39.95.59 1.82.59 2.64 0 1.09-.17 2.26-.5 3.51-.26.96-.6 1.87-1.02 2.71-.42.85-.82 1.51-1.21 1.98-.39.48-.87.92-1.44 1.32l-.14.4c1.11-.45 2.05-1.02 2.84-1.7 1.03-.89 1.81-1.91 2.33-3.05.44-.99.66-1.99.66-3 0-1.73-.66-3.48-1.99-5.23z"],"vertical-bar-chart-asc":["M6 7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1s1-.45 1-1V8c0-.55-.45-1-1-1zM2 9c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zm8-5c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1zm4-4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z"],"vertical-bar-chart-desc":["M6 4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1zM2 0c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm8 7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1s1-.45 1-1V8c0-.55-.45-1-1-1zm4 2c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1z"],"vertical-distribution":["M1 2h14c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1s.45 1 1 1zm14 11H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM3 5c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1H3z"],video:["M15 2H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM5 11V5l6 3-6 3z"],virus:["M11.918 11.107l.737.737.052-.051A1 1 0 0114.2 13.12l-.078.087-1.414 1.414a1 1 0 01-1.492-1.327l.029-.033-.863-.863c-.426.231-.89.402-1.38.502L9 14l.117.007A1 1 0 019 16H7l-.117-.007A1 1 0 017 14v-1.1a4.967 4.967 0 01-1.447-.539l-.846.846.078.087a1 1 0 01-1.492 1.327l-1.414-1.414-.078-.087a1 1 0 011.492-1.327l.744-.744A4.986 4.986 0 013.23 9.5H2a1 1 0 01-1.993.117L0 9.5v-2a1 1 0 011.993-.117L2 7.5h1.025a4.973 4.973 0 01.905-2.405l-.512-.513-.125.125A1 1 0 011.8 3.38l.078-.087 1.414-1.414a1 1 0 011.529 1.277l.573.575a4.969 4.969 0 011.604-.63V2l-.116-.007a1 1 0 010-1.986L7 0h2a1 1 0 01.117 1.993L9 2l.001 1.1c.639.13 1.233.381 1.757.73l.535-.537-.078-.087a1 1 0 011.492-1.327l1.414 1.414.078.087a1 1 0 01-1.492 1.327l-.535.536a4.97 4.97 0 01.803 2.257H14l.007-.117A1 1 0 0116 7.5v2l-.007.117A1 1 0 0114 9.5h-1.229a4.987 4.987 0 01-.853 1.607zM10 9a1 1 0 100 2 1 1 0 000-2zM6.5 5a1.5 1.5 0 100 3 1.5 1.5 0 000-3z"],"volume-down":["M9 2c-.28 0-.53.11-.71.29L5.59 5H3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm3.57 1.44l-1.59 1.22C11.62 5.61 12 6.76 12 8s-.38 2.39-1.02 3.34l1.59 1.22C13.47 11.27 14 9.7 14 8c0-1.7-.53-3.27-1.43-4.56z"],"volume-off":["M11 2c-.28 0-.53.11-.71.29L7.59 5H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"],"volume-up":["M7 1.86c-.28 0-.53.11-.71.29l-2.7 2.71H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2.59l2.71 2.71a1.003 1.003 0 001.71-.71v-10c-.01-.55-.46-1-1.01-1zm6.74-.99l-1.58 1.22A9.985 9.985 0 0114 7.86c0 2.16-.69 4.15-1.85 5.78l1.58 1.22c1.42-1.97 2.26-4.38 2.26-7 .01-2.61-.84-5.02-2.25-6.99zM8.98 4.52C9.62 5.48 10 6.63 10 7.86s-.38 2.39-1.02 3.34l1.59 1.22c.9-1.29 1.43-2.86 1.43-4.56 0-1.7-.53-3.27-1.43-4.56L8.98 4.52z"],walk:["M13 8h-2c-.16 0-.31-.05-.44-.11v.01l-1.02-.51-.37 1.86 1.38.92-.01.02c.27.17.46.46.46.81v4c0 .55-.45 1-1 1s-1-.45-1-1v-3.46l-1.27-.85-1.8 4.67h-.01A.98.98 0 015 16c-.55 0-1-.45-1-1 0-.13.03-.25.07-.36h-.01L7.39 6H5.62l-.73 1.45h-.01C4.72 7.77 4.39 8 4 8c-.55 0-1-.45-1-1 0-.16.05-.31.11-.44H3.1l1-2h.01c.17-.33.5-.56.89-.56h3.16l.29-.75C8.17 2.9 8 2.47 8 2c0-1.1.9-2 2-2s2 .9 2 2c0 1-.73 1.82-1.69 1.97l-.5 1.32 1.43.71H13c.55 0 1 .45 1 1s-.45 1-1 1z"],"warning-sign":["M15.84 13.5l.01-.01-7-12-.01.01c-.17-.3-.48-.5-.85-.5s-.67.2-.85.5l-.01-.01-7 12 .01.01c-.09.15-.15.31-.15.5 0 .55.45 1 1 1h14c.55 0 1-.45 1-1 0-.19-.06-.35-.15-.5zm-6.85-.51h-2v-2h2v2zm0-3h-2v-5h2v5z"],"waterfall-chart":["M8 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-4 4h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1zm7-6c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1s-1 .45-1 1v1c0 .55.45 1 1 1zm4-3h-1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 10H2V3c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],widget:["M13 11h2V5h-2v6zM3 5H1v6h2V5zm11-1c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM5 3h6V1H5v2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm3 15h6v-2H5v2z"],"widget-button":["M1 3h14c.55 0 1 .45 1 1v8c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1zm1 2v6h12V5H2zm3 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm3 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"widget-footer":["M14 0H2c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H3v-3h10v3zm0-4H3V2h10v8z"],"widget-header":["M14 0H2c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 14H3V6h10v8zm0-9H3V2h10v3z"],wrench:["M15.83 3.7l-3.06 3.05-2.84-.7-.7-2.83L12.29.17a5.004 5.004 0 00-4.83 1.29 4.967 4.967 0 00-1.12 5.36L.58 12.58c-.36.36-.58.86-.58 1.41 0 1.1.9 2 2 2 .55 0 1.05-.22 1.41-.59l5.77-5.77c1.79.69 3.91.33 5.35-1.12 1.32-1.3 1.74-3.15 1.3-4.81z"],"zoom-in":["M7.99 5.99v-2c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2zm7.56 7.44l-2.67-2.68a6.94 6.94 0 001.11-3.76c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.42 3.76-1.11l2.68 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"],"zoom-out":["M3.99 5.99c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1h-6zm11.56 7.44l-2.67-2.68a6.94 6.94 0 001.11-3.76c0-3.87-3.13-7-7-7s-7 3.13-7 7 3.13 7 7 7c1.39 0 2.68-.42 3.76-1.11l2.68 2.67a1.498 1.498 0 102.12-2.12zm-8.56-1.44c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"],"zoom-to-fit":["M11 10a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42L12.59 8 11.3 9.29c-.19.18-.3.43-.3.71zM1 5c.55 0 1-.45 1-1V2h2c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v3c0 .55.45 1 1 1zm4 1a1.003 1.003 0 00-1.71-.71l-2 2C1.11 7.47 1 7.72 1 8c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L3.41 8 4.7 6.71c.19-.18.3-.43.3-.71zm1-1c.28 0 .53-.11.71-.29L8 3.41 9.29 4.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2C8.53 1.11 8.28 1 8 1s-.53.11-.71.29l-2 2A1.003 1.003 0 006 5zm9 6c-.55 0-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm0-11h-3c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zM4 14H2v-2c0-.55-.45-1-1-1s-1 .45-1 1v3c0 .55.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm6-3c-.28 0-.53.11-.71.29L8 12.59 6.71 11.3A.965.965 0 006 11a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 0010 11z"]},Bn={add:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm5-9h-4V5c0-.55-.45-1-1-1s-1 .45-1 1v4H5c-.55 0-1 .45-1 1s.45 1 1 1h4v4c0 .55.45 1 1 1s1-.45 1-1v-4h4c.55 0 1-.45 1-1s-.45-1-1-1z"],"add-column-left":["M4 11h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1H8V7c0-.55-.45-1-1-1s-1 .45-1 1v2H4c-.55 0-1 .45-1 1s.45 1 1 1zM19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-7 18H2V2h10v16zm6 0h-5V2h5v16z"],"add-column-right":["M10 11h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V7c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1zm9-11H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 18H2V2h5v16zm11 0H8V2h10v16z"],"add-location":["M10 0a1 1 0 010 2 8 8 0 108 8 1 1 0 012 0c0 5.523-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0zm0 6a4 4 0 110 8 4 4 0 010-8zm6-6c.6 0 1 .4 1 1v2h2c.6 0 1 .4 1 1s-.4 1-1 1h-2v2c0 .6-.4 1-1 1s-1-.4-1-1V5h-2c-.6 0-1-.4-1-1 0-.5.4-1 1-1h2V1c0-.6.4-1 1-1z"],"add-row-bottom":["M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V8h16v10zm0-11H2V2h16v5zM7 14h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2v-2c0-.55-.45-1-1-1s-1 .45-1 1v2H7c-.55 0-1 .45-1 1s.45 1 1 1z"],"add-row-top":["M7 8h2v2c0 .55.45 1 1 1s1-.45 1-1V8h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V4c0-.55-.45-1-1-1s-1 .45-1 1v2H7c-.55 0-1 .45-1 1s.45 1 1 1zm12-8H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2v-5h16v5zm0-6H2V2h16v10z"],"add-to-artifact":["M13 12H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zM1 6h9c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm12 2H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm6-4h-2V2c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V6h2c.55 0 1-.45 1-1s-.45-1-1-1z"],"add-to-folder":["M.01 10V6H20v10c0 .55-.45 1-1 1H9.995v-3.99C9.965 11.332 8.635 10 6.987 10H.01zM19 3c.55 0 1 .45.99 1v1H0V2c0-.55.45-1 1-1h5.997c.28 0 .53.11.71.29L9.414 3H19zM6.987 12c.55 0 .999.45 1.009 1.01v5c0 .55-.45 1-1 1s-.999-.45-.999-1v-2.59l-4.288 4.29a1.003 1.003 0 01-1.42-1.42L4.579 14H1.989c-.55 0-1-.45-1-1s.45-1 1-1h4.998z"],airplane:["M20 2c0-1.1-.9-2-2-2-.55 0-1.05.22-1.41.59l-4.84 4.84L2 1 1 3l7.53 5.64L4.17 13H1l-1 1 4 2 2 4 1-1v-3.17l4.36-4.36L17 19l2-1-4.43-9.74 4.84-4.84c.37-.37.59-.87.59-1.42z"],"align-center":["M5 5c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1H5zM1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm12 12c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h6zm4 2H3c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm2-8H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],"align-justify":["M1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 14H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0-12H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0 4H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],"align-left":["M1 7h10c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm0-4h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14 14H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm4-8H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM1 15h6c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1z"],"align-right":["M19 17H5c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zM1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 10h-6c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0-4H9c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z"],"alignment-bottom":["M12 16h4c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1zm7 2H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM4 16h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1z"],"alignment-horizontal-center":["M19 9h-2V7c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v2H9V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v6H1c-.55 0-1 .45-1 1s.45 1 1 1h2v6c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-6h2v2c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1z"],"alignment-left":["M1 0C.45 0 0 .45 0 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm11 11H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm7-8H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"alignment-right":["M19 0c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-4 11H8c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm0-8H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"alignment-top":["M8 4H4c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm11-4H1C.45 0 0 .45 0 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm-3 4h-4c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z"],"alignment-vertical-center":["M17 3h-6V1c0-.55-.45-1-1-1S9 .45 9 1v2H3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h6v2H7c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1h-2V9h6c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],annotation:["M9.41 13.41l7.65-7.65-2.83-2.83-7.65 7.65 2.83 2.83zm10-10c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2-.55 0-1.05.22-1.41.59l-1.65 1.65 2.83 2.83 1.64-1.66zM18 18H2V2h8.93l2-2H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7.07l-2 2V18zM4 16l4.41-1.59-2.81-2.79L4 16z"],"app-header":["M19 0a1 1 0 011 1v18a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h18zM8 6a1 1 0 00-1.993-.117L6 6v8a1 1 0 001.993.117L8 14v-3h4v3a1 1 0 001.993.117L14 14V6a1 1 0 00-1.993-.117L12 6v3H8V6z"],application:["M3.5 9h9c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-9c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-5c-.28 0-.5.22-.5.5s.22.5.5.5zM19 1H1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm-1 16H2V6h16v11zM3.5 13h7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-7c-.28 0-.5.22-.5.5s.22.5.5.5z"],applications:["M15 5H1c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-1 13H2V8h12v10zM3.5 10h7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-7c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h3c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-3c-.28 0-.5.22-.5.5s.22.5.5.5zm0 2h5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5h-5c-.28 0-.5.22-.5.5s.22.5.5.5zM19 0H5c-.55 0-1 .45-1 1v3h2V3h12v10h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],archive:["M16.434 0a1 1 0 01.857.486L20 5v14a1 1 0 01-1 1H1a1 1 0 01-1-1V5L2.709.486A1 1 0 013.566 0h12.868zM10 8c-.55 0-1 .45-1 1v4.58l-1.29-1.29-.081-.073A.996.996 0 007 11.99a1.003 1.003 0 00-.71 1.71l3 3 .096.084c.168.13.38.206.614.206.28 0 .53-.11.71-.29l3-3 .084-.096a1.003 1.003 0 00-1.504-1.324L11 13.58V9l-.007-.116A1.004 1.004 0 0010 8zm6-6H4L2 5.002h16L16 2z"],array:["M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm5 9a1 1 0 110 2 1 1 0 010-2zM6 9a1 1 0 110 2 1 1 0 010-2zm8 0a1 1 0 110 2 1 1 0 010-2z"],"array-boolean":["M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm10 7a1 1 0 01.993.883L16 8v4a1 1 0 01-.883.993L15 13H5a1 1 0 01-.993-.883L4 12V8a1 1 0 01.883-.993L5 7h10zm0 1h-5v4h5V8z"],"array-date":["M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm2.5 5a.5.5 0 01.5.5V6h4v-.5a.5.5 0 01.5-.5h1a.5.5 0 01.5.5V6h1a1 1 0 01.993.883L16 7v7a1 1 0 01-.883.993L15 15H5a1 1 0 01-.993-.883L4 14V7a1 1 0 01.883-.993L5 6h1v-.5a.5.5 0 01.5-.5h1zM15 9H5v5h10V9z"],"array-numeric":["M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm8.995 6.09c.32 0 .603.047.85.14a1.679 1.679 0 011.015.985c.09.23.135.482.135.755 0 .287-.063.552-.19.795a1.642 1.642 0 01-.57.615v.02l.101.05c.068.039.138.09.209.155.107.097.203.215.29.355a2.09 2.09 0 01.3 1.09c0 .313-.053.597-.16.85a1.898 1.898 0 01-1.12 1.065 2.42 2.42 0 01-.85.145c-.533 0-.99-.127-1.37-.38a1.702 1.702 0 01-.73-1.08c-.013-.067.013-.11.08-.13l.87-.2.041-.003c.038.004.064.028.079.073.073.2.193.37.36.51.167.14.39.21.67.21.32 0 .567-.095.74-.285.173-.19.26-.432.26-.725 0-.347-.1-.618-.3-.815-.2-.197-.47-.295-.81-.295h-.29l-.044-.006c-.037-.013-.056-.044-.056-.094V9.1l.006-.044c.013-.037.044-.056.094-.056h.27l.145-.008a.925.925 0 00.575-.262c.18-.18.27-.42.27-.72 0-.273-.08-.495-.24-.665-.16-.17-.383-.255-.67-.255-.253 0-.453.063-.6.19-.147.127-.25.297-.31.51-.02.06-.06.083-.12.07l-.85-.2-.042-.015c-.035-.02-.048-.055-.038-.105a1.684 1.684 0 01.645-1.035c.17-.13.37-.232.6-.305.23-.073.482-.11.755-.11zm-7.99.11l.044.006c.037.013.056.044.056.094v6.6l-.006.044c-.013.037-.044.056-.094.056h-.92l-.044-.006c-.037-.013-.056-.044-.056-.094V7.54h-.02l-1.04.73-.04.02c-.047.016-.07-.01-.07-.08V7.19l.008-.051a.196.196 0 01.062-.089l1.09-.79.051-.033a.295.295 0 01.129-.027h.85zm3.34-.11c.32 0 .603.05.85.15.247.1.455.235.625.405.17.17.3.37.39.6.09.23.135.478.135.745 0 .307-.057.588-.17.845a3.16 3.16 0 01-.47.745l-1.98 2.4V12h2.52l.044.006c.037.013.056.044.056.094v.8l-.006.044c-.013.037-.044.056-.094.056h-3.82l-.044-.006c-.037-.013-.056-.044-.056-.094v-.75l.006-.05a.165.165 0 01.044-.08l2.4-2.99.124-.167c.077-.11.143-.222.196-.333.08-.167.12-.347.12-.54a.92.92 0 00-.235-.64c-.157-.173-.378-.26-.665-.26-.273 0-.487.077-.64.23-.153.153-.247.36-.28.62-.013.067-.05.093-.11.08l-.88-.18-.043-.015c-.035-.02-.047-.055-.037-.105a1.78 1.78 0 01.56-1.115c.167-.157.372-.282.615-.375a2.35 2.35 0 01.845-.14z"],"array-string":["M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm2.012 6c.643 0 1.203.266 1.68.797.477.53.715 1.246.715 2.145a4.472 4.472 0 01-.965 2.814c-.644.83-1.66 1.5-3.047 2.011v-.581l.26-.104a3.87 3.87 0 001.624-1.285c.457-.632.686-1.29.686-1.971 0-.148-.023-.256-.07-.326-.023-.047-.054-.07-.093-.07-.038 0-.1.031-.186.093-.248.179-.558.268-.93.268-.45 0-.843-.18-1.18-.541A1.817 1.817 0 015 7.965c0-.527.194-.986.581-1.378A1.934 1.934 0 017.011 6zm5.593 0c.643 0 1.203.266 1.68.797.477.53.715 1.246.715 2.145a4.472 4.472 0 01-.965 2.814c-.644.83-1.659 1.5-3.047 2.011v-.581l.26-.104a3.87 3.87 0 001.624-1.285c.457-.632.686-1.29.686-1.971 0-.148-.023-.256-.07-.326-.023-.047-.054-.07-.093-.07-.038 0-.1.031-.186.093-.248.179-.558.268-.93.268-.45 0-.843-.18-1.18-.541a1.817 1.817 0 01-.506-1.285c0-.527.194-.986.581-1.378A1.934 1.934 0 0112.604 6z"],"array-timestamp":["M19 0a1 1 0 01.993.883L20 1v18a1 1 0 01-.883.993L19 20h-4a1 1 0 01-.117-1.993L15 18h3V2h-3a1 1 0 01-.993-.883L14 1a1 1 0 01.883-.993L15 0h4zM5 0a1 1 0 01.117 1.993L5 2H2v16h3a1 1 0 01.993.883L6 19a1 1 0 01-.883.993L5 20H1a1 1 0 01-.993-.883L0 19V1A1 1 0 01.883.007L1 0h4zm5 4a6 6 0 110 12 6 6 0 010-12zm0 1a5 5 0 100 10 5 5 0 000-10zm2.854 2.146a.5.5 0 01.057.638l-.057.07-2.5 2.5a.5.5 0 01-.638.057l-.07-.057-1.5-1.5a.5.5 0 01.638-.765l.07.057L10 9.293l2.146-2.147a.5.5 0 01.708 0z"],"arrow-bottom-left":["M18 3a1.003 1.003 0 00-1.71-.71L4 14.59V7c0-.55-.45-1-1-1s-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1H5.41l12.3-12.29c.18-.18.29-.43.29-.71z"],"arrow-bottom-right":["M17 6c-.55 0-1 .45-1 1v7.59L3.71 2.29a1.003 1.003 0 00-1.42 1.42L14.59 16H7c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z"],"arrow-down":["M16 11c-.3 0-.5.1-.7.3L11 15.6V2c0-.5-.4-1-1-1s-1 .5-1 1v13.6l-4.3-4.3c-.2-.2-.4-.3-.7-.3-.5 0-1 .4-1 1 0 .3.1.5.3.7l6 6c.2.2.4.3.7.3s.5-.1.7-.3l6-6c.2-.2.3-.4.3-.7 0-.6-.5-1-1-1z"],"arrow-left":["M18 9H4.41L8.7 4.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L4.41 11H18c.55 0 1-.45 1-1s-.45-1-1-1z"],"arrow-right":["M18.71 9.29l-6-6a1.003 1.003 0 00-1.42 1.42L15.59 9H2c-.55 0-1 .45-1 1s.45 1 1 1h13.59l-4.29 4.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],"arrow-top-left":["M17.71 16.29L5.41 4H13c.55 0 1-.45 1-1s-.45-1-1-1H3c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1s1-.45 1-1V5.41L16.29 17.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],"arrow-top-right":["M17 2H7c-.55 0-1 .45-1 1s.45 1 1 1h7.59L2.29 16.29a1.003 1.003 0 001.42 1.42L16 5.41V13c0 .55.45 1 1 1s1-.45 1-1V3c0-.55-.45-1-1-1z"],"arrow-up":["M16.7 7.3l-6-6c-.2-.2-.4-.3-.7-.3s-.5.1-.7.3l-6 6c-.2.2-.3.4-.3.7 0 .6.5 1 1 1 .3 0 .5-.1.7-.3L9 4.4V18c0 .5.4 1 1 1s1-.5 1-1V4.4l4.3 4.3c.2.2.4.3.7.3.5 0 1-.4 1-1 0-.3-.1-.5-.3-.7z"],"arrows-horizontal":["M19.7 9.3l-5-5c-.2-.2-.4-.3-.7-.3-.6 0-1 .4-1 1 0 .3.1.5.3.7L16.6 9H3.4l3.3-3.3c.2-.2.3-.4.3-.7 0-.6-.4-1-1-1-.3 0-.5.1-.7.3l-5 5c-.2.2-.3.4-.3.7s.1.5.3.7l5 5c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7L3.4 11h13.2l-3.3 3.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l5-5c.2-.2.3-.4.3-.7s-.1-.5-.3-.7z"],"arrows-vertical":["M15 13c-.3 0-.5.1-.7.3L11 16.6V3.4l3.3 3.3c.2.2.4.3.7.3.6 0 1-.4 1-1 0-.3-.1-.5-.3-.7l-5-5c-.2-.2-.4-.3-.7-.3s-.5.1-.7.3l-5 5c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3L9 3.4v13.2l-3.3-3.3c-.2-.2-.4-.3-.7-.3-.6 0-1 .4-1 1 0 .3.1.5.3.7l5 5c.2.2.4.3.7.3s.5-.1.7-.3l5-5c.2-.2.3-.4.3-.7 0-.5-.4-1-1-1z"],asterisk:["M18.52 14.17l.01-.02L11.89 10l6.64-4.15-.01-.02A.97.97 0 0019 5c0-.55-.45-1-1-1-.2 0-.37.07-.52.17l-.01-.02L11 8.2V1c0-.55-.45-1-1-1S9 .45 9 1v7.2L2.53 4.15l-.01.02A.922.922 0 002 4c-.55 0-1 .45-1 1 0 .36.2.66.48.83l-.01.02L8.11 10l-6.64 4.15.01.02A.97.97 0 001 15c0 .55.45 1 1 1 .2 0 .37-.07.52-.17l.01.02L9 11.8V19c0 .55.45 1 1 1s1-.45 1-1v-7.2l6.47 4.04.01-.02c.15.11.32.18.52.18.55 0 1-.45 1-1 0-.36-.2-.66-.48-.83z"],"automatic-updates":["M10 18c-4.42 0-8-3.58-8-8 0-2.52 1.18-4.76 3-6.22V5c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1h2.06C1.61 3.82 0 6.71 0 10c0 5.52 4.48 10 10 10 .55 0 1-.45 1-1s-.45-1-1-1zm0-16c1.64 0 3.15.49 4.42 1.34l1.43-1.43A9.869 9.869 0 0010 0c-.55 0-1 .45-1 1s.45 1 1 1zm10 8c0-1.13-.2-2.21-.54-3.22L17.84 8.4A7.962 7.962 0 0115 16.22V15c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1h-2.06c2.45-1.82 4.06-4.71 4.06-8zm0-7a1.003 1.003 0 00-1.71-.71L12 8.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7c.18-.18.29-.43.29-.71z"],backlink:["M18.387 19.79l-.094-.083L14 15.415V18a1 1 0 01-2 0l.003-5.075.017-.126.03-.111.044-.111.052-.098.067-.096.08-.09a1.01 1.01 0 01.112-.097l.11-.071.114-.054.105-.035.15-.03L13 12h5a1 1 0 110 2h-2.585l4.292 4.293a1 1 0 01-1.32 1.497zM7.036 9.136l-4.45 4.45-.117.127a2 2 0 002.818 2.818l.127-.117 4.45-4.449a4 4 0 01-.885 3.704l-.15.16-2 2A4 4 0 011.02 12.33l.15-.16 2-2a3.998 3.998 0 013.865-1.035zm6.671-3.843a1 1 0 01.083 1.32l-.083.094-7 7a1 1 0 01-1.497-1.32l.083-.094 7-7a1 1 0 011.414 0zm4.121-4.121a4 4 0 01.151 5.497l-.15.16-2 2a3.998 3.998 0 01-3.864 1.036l4.45-4.45.116-.128a2 2 0 00-2.818-2.818l-.127.117-4.45 4.45a4 4 0 01.885-3.705l.15-.16 2-2a4 4 0 015.657 0z"],badge:["M16.94 5.73c-.19-1.41.62-2.52 1.38-3.59L17.03.65C14.89 1.76 11.88 1.48 10 0 8.12 1.48 5.11 1.76 2.97.65L1.68 2.14c.76 1.07 1.57 2.18 1.38 3.59C2.68 8.59 0 10.94 1.4 14.08c.56 1.43 1.81 2.37 3.4 2.75 1.95.46 4.4.91 5.2 3.17.8-2.26 3.25-2.71 5.2-3.17 1.6-.38 2.84-1.32 3.4-2.75 1.4-3.14-1.28-5.49-1.66-8.35z"],"ban-circle":["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm5 11H5c-.55 0-1-.45-1-1s.45-1 1-1h10c.55 0 1 .45 1 1s-.45 1-1 1z"],"bank-account":["M19.2 8.02l-.78-.18C18.03 6.4 17.2 5.08 16.08 4l.5-2.28c.11-.42-.22-.78-.61-.72-1.06.12-2 .54-2.67 1.26-1.06-.42-2.34-.66-3.56-.66-3.12 0-5.79 1.5-7.4 3.72-.23-.05-.45-.11-.67-.11C.72 5.21 0 5.98 0 7c0 .72.39 1.32.95 1.62-.06.42-.12.9-.12 1.38 0 2.16.89 4.08 2.28 5.58l-.33 2.04c-.11.72.45 1.38 1.12 1.38h.72c.56 0 1-.42 1.11-1.02l.06-.48c1.17.54 2.5.9 3.95.9 1.39 0 2.78-.3 3.95-.9l.06.48c.11.6.56 1.02 1.11 1.02h.72c.67 0 1.22-.66 1.11-1.38l-.33-1.98c.78-.78 1.34-1.74 1.73-2.76l1-.24c.5-.12.89-.6.89-1.2V9.22c.11-.6-.28-1.08-.78-1.2zM15 10c-.6 0-1-.7-1-1.5S14.4 7 15 7s1 .7 1 1.5-.4 1.5-1 1.5zM7.55 5.83a.99.99 0 01-1.38-.28.99.99 0 01.28-1.38c2.34-1.56 4.77-1.56 7.11 0 .46.31.58.93.28 1.39-.31.46-.93.58-1.39.28-1.67-1.12-3.23-1.12-4.9-.01z"],barcode:["M6 16.98h2v-14H6v14zm3 0h1v-14H9v14zm-6 0h2v-14H3v14zm-3 0h2v-14H0v14zm16 0h2v-14h-2v14zm-4 0h1v-14h-1v14zm7-14v14h1v-14h-1zm-5 14h1v-14h-1v14z"],blank:[],"blocked-person":["M11.55 15.92c-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.06-.11.14-.35.17-.62C10.33 9.42 8.92 7.38 8.92 5c0-.3.05-.58.09-.87-.33-.08-.67-.13-.99-.13-.79 0-1.68.25-2.31.73-.61.47-1.07 1.13-1.29 1.86-.05.16-.09.33-.11.5-.12.6-.17 1.51-.17 2.14v.08c-.24.09-.45.32-.49.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59C3 16.56.77 17.26.32 18.31-.15 19.38.04 20 .04 20h15.95s.18-.62-.27-1.67c-.46-1.06-2.69-1.75-4.17-2.41zM14.97 0c-2.78 0-5.03 2.24-5.03 5s2.25 5 5.03 5S20 7.76 20 5s-2.25-5-5.03-5zm-3.03 5c0-1.66 1.35-3 3.02-3 .47 0 .9.11 1.29.3l-4.01 3.99c-.18-.4-.3-.83-.3-1.29zm3.03 3c-.47 0-.9-.11-1.29-.3l4.01-3.99c.19.39.3.82.3 1.29 0 1.66-1.36 3-3.02 3z"],bold:["M14.3 9c.4-.8.7-1.6.7-2.5C15 4 13 2 10.5 2H5c-.6 0-1 .4-1 1v13c0 .6.4 1 1 1h6.5c2.5 0 4.5-2 4.5-4.5 0-1.4-.7-2.7-1.7-3.5zM7 5h3.5c.8 0 1.5.7 1.5 1.5S11.3 8 10.5 8H7V5zm4.5 9H7v-3h4.5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5z"],book:["M3 1v18c0 .55.45 1 1 1h2V0H4c-.55 0-1 .45-1 1zm14-1h-2v8l-2-2-2 2V0H7v20h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],bookmark:["M6 0c-.55 0-1 .45-1 1v18c0 .55.32.68.71.29L9.3 15.7a.996.996 0 011.41 0l3.59 3.59c.38.39.7.26.7-.29v-8-4.5V1c0-.55-.45-1-1-1H6z"],box:["M19.89 6.56l-2.99-6h-.01C16.72.23 16.39 0 16 0H4c-.39 0-.72.23-.89.56H3.1l-3 6h.01C.05 6.69 0 6.84 0 7v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7c0-.16-.05-.31-.11-.44zM11 2h4.38l2 4H11V2zM4.62 2H9v4H2.62l2-4zM18 18H2V8h16v10zM8 12h4c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1z"],briefcase:["M19 5h-4V2c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v3H1c-.55 0-1 .45-1 1v5h4v-1h2v1h8v-1h2v1h4V6c0-.55-.45-1-1-1zm-6 0H7V3h6v2zm3 8h-2v-1H6v1H4v-1H0v6c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-6h-4v1z"],"bring-data":["M18 18a1 1 0 010 2H2a1 1 0 010-2h16zM9.995 3.005c.55 0 1 .45 1 .999v9.584l1.29-1.288a1.002 1.002 0 011.42 1.419l-3 2.996a1.015 1.015 0 01-1.42 0l-3-2.997a1.002 1.002 0 011.42-1.419l1.29 1.29V4.013c0-.55.45-1.009 1-1.009zM16 0a1 1 0 110 2 1 1 0 010-2zm-3 0a1 1 0 110 2 1 1 0 010-2zm-3 0a1 1 0 110 2 1 1 0 010-2zM7 0a1 1 0 110 2 1 1 0 010-2zM4 0a1 1 0 110 2 1 1 0 010-2z"],build:["M19.43 16.67L9.31 7.81l1.47-1.56c.41-.44-.15-.8.15-1.6 1.08-2.76 4.19-2.99 4.19-2.99s.45-.47.87-.92C11.98-1 9.26.7 8.04 1.8L3.83 6.25l-.86.92c-.48.51-.48 1.33 0 1.84l-.87.92c-.48-.51-1.26-.51-1.74 0s-.48 1.33 0 1.84l1.74 1.84c.48.51 1.26.51 1.74 0s.48-1.33 0-1.84l.87-.92c.48.51 1.26.51 1.74 0l1.41-1.49 8.81 10.07c.76.76 2 .76 2.76 0 .76-.76.76-2 0-2.76z"],calculator:["M16 0H4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 18H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V8h2v2zm4 8H9v-2h2v2zm0-4H9v-2h2v2zm0-4H9V8h2v2zm4 8h-2v-6h2v6zm0-8h-2V8h2v2zm0-4H5V2h10v4z"],calendar:["M15 5c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zM5 5c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zm13-2h-1v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H7v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H2c-.5 0-1 .5-1 1v14c0 .5.5 1 1 1h16c.5 0 1-.5 1-1V4c0-.5-.5-1-1-1zM7 17H3v-4h4v4zm0-5H3V8h4v4zm5 5H8v-4h4v4zm0-5H8V8h4v4zm5 5h-4v-4h4v4zm0-5h-4V8h4v4z"],camera:["M10 8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm9-4h-3.59L13.7 2.29A.956.956 0 0013 2H7c-.28 0-.53.11-.71.29L4.59 4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h4.11c1.26 1.24 2.99 2 4.89 2s3.63-.76 4.89-2H19c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM4 8H2V6h2v2zm6 8c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"],"caret-down":["M16 7c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1 0 .24.1.46.24.63l-.01.01 5 6 .01-.01c.19.22.45.37.76.37s.57-.15.76-.37l.01.01 5-6-.01-.01c.14-.17.24-.39.24-.63z"],"caret-left":["M13 4c-.24 0-.46.1-.63.24l-.01-.01-6 5 .01.01c-.22.19-.37.45-.37.76s.15.57.37.76l-.01.01 6 5 .01-.01c.17.14.39.24.63.24.55 0 1-.45 1-1V5c0-.55-.45-1-1-1z"],"caret-right":["M14 10c0-.31-.15-.57-.37-.76l.01-.01-6-5-.01.01C7.46 4.1 7.24 4 7 4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1 .24 0 .46-.1.63-.24l.01.01 6-5-.01-.01c.22-.19.37-.45.37-.76z"],"caret-up":["M15.76 12.37l.01-.01-5-6-.01.01C10.57 6.15 10.31 6 10 6s-.57.15-.76.37l-.01-.01-5 6 .01.01c-.14.17-.24.39-.24.63 0 .55.45 1 1 1h10c.55 0 1-.45 1-1 0-.24-.1-.46-.24-.63z"],"cell-tower":["M11.5 8.32c.31-.35.51-.81.51-1.32 0-1.1-.9-2-2-2s-2 .9-2 2c0 .51.2.97.51 1.32L5.06 18.69c-.17.52.11 1.09.63 1.26s1.09-.11 1.26-.63L8.39 15h3.23l1.44 4.32c.17.52.74.81 1.26.63s.81-.74.63-1.26L11.5 8.32zM10.95 13H9.06l.95-2.84.94 2.84zM5.31 10.73a.996.996 0 101.37-1.45c-1.4-1.33-1.28-3.35-.01-4.54.4-.38.43-1.01.05-1.41-.36-.41-1-.43-1.4-.06-2.09 1.95-2.28 5.3-.01 7.46z","M4.6 12.2C3 11.1 2 9 2 7c0-2.1.9-3.9 2.6-5.2.5-.3.5-1 .2-1.4-.3-.5-1-.5-1.4-.2C1.2 1.9-.1 4.2 0 7c.1 2.7 1.4 5.3 3.4 6.8.2.1.4.2.6.2.3 0 .6-.1.8-.4.4-.5.3-1.1-.2-1.4zM13.27 10.69c.38.4 1.01.42 1.41.04 2.27-2.16 2.08-5.51-.01-7.46a.996.996 0 10-1.36 1.46c1.28 1.19 1.39 3.21-.01 4.54-.39.39-.41 1.02-.03 1.42z","M16.6.2c-.4-.3-1.1-.3-1.4.2-.3.4-.3 1.1.2 1.4C17.1 3.1 18 4.9 18 7c0 2-1 4.1-2.6 5.2-.5.3-.6.9-.2 1.4.2.3.5.4.8.4.2 0 .4-.1.6-.2C18.7 12.3 20 9.7 20 7c.09-2.8-1.2-5.1-3.4-6.8z"],changes:["M18 16H2c-1.1 0-2 .9-2 2s.9 2 2 2h16c1.1 0 2-.9 2-2s-.9-2-2-2zM3 5c.28 0 .53-.11.71-.29L5 3.41V13c0 .55.45 1 1 1s1-.45 1-1V3.41L8.29 4.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3C6.53.11 6.28 0 6 0s-.53.11-.71.29l-3 3A1.003 1.003 0 003 5zm7.29 5.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L15 10.59V1c0-.55-.45-1-1-1s-1 .45-1 1v9.59L11.71 9.3A.965.965 0 0011 9a1.003 1.003 0 00-.71 1.71z"],chart:["M7 11v8c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-8l-2 2-4-2zm-7 8c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-8l-6 3v5zM17 7l-3 3v9c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V8.74c-.26.15-.58.26-1 .26-1.92 0-2-2-2-2zm2-6h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.59L10.8 8.78 7.45 7.11v.01C7.31 7.05 7.16 7 7 7s-.31.05-.44.11V7.1l-6 3v.01c-.33.17-.56.5-.56.89 0 .55.45 1 1 1 .16 0 .31-.05.44-.11v.01L7 9.12l3.55 1.78v-.01c.14.06.29.11.45.11.28 0 .53-.11.71-.29L18 4.41V6c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z"],chat:["M19 0H7c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h5.59l3.71 3.71c.17.18.42.29.7.29.55 0 1-.45 1-1v-3h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 13c-1.1 0-2-.9-2-2V4H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h1v3a1.003 1.003 0 001.71.71L7.41 16H13c.55 0 1-.45 1-1v-.17L12.17 13H7z"],"chevron-backward":["M8.41 10l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L7 8.59V4c0-.55-.45-1-1-1s-1 .45-1 1v12c0 .55.45 1 1 1s1-.45 1-1v-4.59l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L8.41 10z"],"chevron-down":["M16 6c-.28 0-.53.11-.71.29L10 11.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0016 6z"],"chevron-forward":["M13 3c-.55 0-1 .45-1 1v4.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l5.29-5.3V16c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z"],"chevron-left":["M8.41 10l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L8.41 10z"],"chevron-right":["M13.71 9.29l-6-6a1.003 1.003 0 00-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],"chevron-up":["M16.71 12.29l-6-6C10.53 6.11 10.28 6 10 6s-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42L10 8.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],circle:["M10 0C4.5 0 0 4.5 0 10s4.5 10 10 10 10-4.5 10-10S15.5 0 10 0zm0 18c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z"],"circle-arrow-down":["M14 10c-.28 0-.53.11-.71.29L11 12.59V5c0-.55-.45-1-1-1s-1 .45-1 1v7.59L6.71 10.3A.965.965 0 006 10a1.003 1.003 0 00-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0014 10zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"],"circle-arrow-left":["M15 9H7.41L9.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L7.41 11H15c.55 0 1-.45 1-1s-.45-1-1-1zm-5-9C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"],"circle-arrow-right":["M15.71 9.29l-4-4a1.003 1.003 0 00-1.42 1.42L12.59 9H5c-.55 0-1 .45-1 1s.45 1 1 1h7.59l-2.29 2.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"],"circle-arrow-up":["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.71-13.71C10.53 4.11 10.28 4 10 4s-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L9 7.41V15c0 .55.45 1 1 1s1-.45 1-1V7.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-4-4z"],citation:["M4 1C1.79 1 0 2.79 0 5s1.79 4 4 4c.1 0 .2-.01.3-.02C3.82 11.32 2.53 13 1 13c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7-4.48 7-10 0-2.21-1.79-4-4-4zM16 1c-2.21 0-4 1.79-4 4s1.79 4 4 4c.1 0 .2-.01.3-.02C15.82 11.32 14.53 13 13 13c-.55 0-1 .45-1 1s.45 1 1 1c3.87 0 7-4.48 7-10 0-2.21-1.79-4-4-4z"],clean:["M7 0L5 5 0 6.998 5 9l2 5 2-5 5-1.995L9 5zM15 10l-1.5 3.496-3.5 1.499 3.5 1.498L15 20l1.5-3.507L20 15l-3.5-1.504z"],clipboard:["M13 2c0-.55-.45-1-1-1h-.78a1.98 1.98 0 00-3.44 0H7c-.55 0-1 .45-1 1v2h7V2z","M16 2h-2v3H5V2H3c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1z"],cloud:["M15 7c-.12 0-.24.03-.36.04C13.83 4.69 11.62 3 9 3 5.69 3 3 5.69 3 9c0 .05.01.09.01.14A3.98 3.98 0 000 13c0 2.21 1.79 4 4 4h11c2.76 0 5-2.24 5-5s-2.24-5-5-5z"],"cloud-download":["M15 4c-.12 0-.24.03-.36.04C13.83 1.69 11.62 0 9 0 5.69 0 3 2.69 3 6c0 .05.01.09.01.14A3.98 3.98 0 000 10c0 2.21 1.79 4 4 4h.78c.55-.61 1.34-1 2.22-1v-2c0-1.66 1.34-3 3-3s3 1.34 3 3v2c.88 0 1.66.38 2.2.98C17.87 13.87 20 11.69 20 9c0-2.76-2.24-5-5-5zm-2 11c-.28 0-.53.11-.71.29L11 16.59V11c0-.55-.45-1-1-1s-1 .45-1 1v5.59L7.71 15.3A.965.965 0 007 15a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 0013 15z"],"cloud-upload":["M10.71 10.29c-.18-.18-.43-.29-.71-.29s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L9 13.41V19c0 .55.45 1 1 1s1-.45 1-1v-5.59l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM15 4c-.12 0-.24.03-.36.04C13.83 1.69 11.62 0 9 0 5.69 0 3 2.69 3 6c0 .05.01.09.01.14A3.98 3.98 0 000 10c0 2.21 1.79 4 4 4 0-.83.34-1.58.88-2.12l3-3a2.993 2.993 0 014.24 0l3 3-.01.01c.52.52.85 1.23.87 2.02C18.28 13.44 20 11.42 20 9c0-2.76-2.24-5-5-5z"],code:["M6 6a1.003 1.003 0 00-1.71-.71l-4 4C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L2.41 10 5.7 6.71c.19-.18.3-.43.3-.71zm6-4c-.46 0-.83.31-.95.73l-4 14c-.02.09-.05.17-.05.27 0 .55.45 1 1 1 .46 0 .83-.31.95-.73l4-14c.02-.09.05-.17.05-.27 0-.55-.45-1-1-1zm7.71 7.29l-4-4a1.003 1.003 0 00-1.42 1.42l3.3 3.29-3.29 3.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],"code-block":["M19 5h-2V3c0-.55-.45-1-1-1h-4c-.55 0-1 .45-1 1v2H9V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM8.71 15.29a1.003 1.003 0 01-1.42 1.42l-4-4C3.11 12.53 3 12.28 3 12s.11-.53.29-.71l4-4a1.003 1.003 0 011.42 1.42L5.41 12l3.3 3.29zm8-2.58l-4 4a1.003 1.003 0 01-1.42-1.42l3.3-3.29-3.29-3.29A.965.965 0 0111 8a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71s-.11.53-.29.71z"],cog:["M19 8h-2.31c-.14-.46-.33-.89-.56-1.3l1.7-1.7a.996.996 0 000-1.41l-1.41-1.41a.996.996 0 00-1.41 0l-1.7 1.7c-.41-.22-.84-.41-1.3-.55V1c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v2.33c-.48.14-.94.34-1.37.58L5 2.28a.972.972 0 00-1.36 0L2.28 3.64c-.37.38-.37.99 0 1.36L3.9 6.62c-.24.44-.44.89-.59 1.38H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h2.31c.14.46.33.89.56 1.3L2.17 15a.996.996 0 000 1.41l1.41 1.41c.39.39 1.02.39 1.41 0l1.7-1.7c.41.22.84.41 1.3.55V19c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.33c.48-.14.94-.35 1.37-.59L15 17.72c.37.37.98.37 1.36 0l1.36-1.36c.37-.37.37-.98 0-1.36l-1.62-1.62c.24-.43.45-.89.6-1.38H19c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-9 6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"],"collapse-all":["M9.29 8.71c.18.18.43.29.71.29s.53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42L10 6.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6zm1.42 2.58c-.18-.18-.43-.29-.71-.29s-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42l5.29-5.3 5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6z"],"column-layout":["M19 1H1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM5 17H2V3h3v14zm4 0H6V3h3v14zm9 0h-8V3h8v14z"],comment:["M19 1H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3v4a1.003 1.003 0 001.71.71l4.7-4.71H19c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM4 10c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6 0c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6 0c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"],comparison:["M6 8H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm13-6h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm0 3h-5V3h5v2zM6 14H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zM6 2H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm4-2c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm9 14h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm0 3h-5v-2h5v2zm0-9h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm0 3h-5V9h5v2z"],compass:["M15 10c0 .14-.03.28-.09.4l-3.99 8.98-.01.02a.991.991 0 01-1.82 0l-.01-.02-3.99-8.98c-.06-.12-.09-.26-.09-.4s.03-.28.09-.4L9.08.62 9.09.6a.991.991 0 011.82 0l.01.02 3.99 8.98c.06.12.09.26.09.4zm-5-6.54L7.09 10h5.81L10 3.46z"],compressed:["M19.89 6.56l-2.99-6h-.01C16.72.23 16.39 0 16 0H4c-.39 0-.72.23-.89.56H3.1l-3 6h.01C.05 6.69 0 6.84 0 7v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7c0-.16-.05-.31-.11-.44zM11 2h4.38l2 4H11V2zM4.62 2H9v4H2.62l2-4zM18 18H2V8h7v4.59L6.71 10.3A.965.965 0 006 10a1.003 1.003 0 00-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l4-4a1.003 1.003 0 00-1.42-1.42L11 12.59V8h7v10z"],confirm:["M9.71 5.29a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7a1.003 1.003 0 00-1.42-1.42L12 7.59l-2.29-2.3zm7.93 2.32c.23.75.36 1.56.36 2.39 0 4.42-3.58 8-8 8s-8-3.58-8-8a7.998 7.998 0 0111.8-7.04l1.46-1.46C13.73.56 11.93 0 10 0 4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10c0-1.4-.29-2.73-.81-3.95l-1.55 1.56z"],console:["M19 19H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h18c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1zM18 6H2v11h16V6zM4 8c.28 0 .53.11.71.29l2 2c.18.18.29.43.29.71s-.11.53-.29.71l-2 2a1.003 1.003 0 01-1.42-1.42L4.59 11l-1.3-1.29A1.003 1.003 0 014 8zm5 4h3c.55 0 1 .45 1 1s-.45 1-1 1H9c-.55 0-1-.45-1-1s.45-1 1-1z"],contrast:["M19 8h-1.26c-.19-.73-.48-1.42-.85-2.06l.94-.94a.996.996 0 000-1.41l-1.41-1.41a.996.996 0 00-1.41 0l-.94.94c-.65-.38-1.34-.67-2.07-.86V1c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v1.26c-.76.2-1.47.5-2.13.89L5 2.28a.972.972 0 00-1.36 0L2.28 3.64c-.37.38-.37.98 0 1.36l.87.87c-.39.66-.69 1.37-.89 2.13H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h1.26c.19.73.48 1.42.85 2.06l-.94.94a.996.996 0 000 1.41l1.41 1.41c.39.39 1.02.39 1.41 0l.94-.94c.64.38 1.33.66 2.06.85V19c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1.26c.76-.2 1.47-.5 2.13-.89l.88.87c.37.37.98.37 1.36 0l1.36-1.36c.37-.38.37-.98 0-1.36l-.87-.87c.4-.65.7-1.37.89-2.13H19c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-9 7c-2.76 0-5-2.24-5-5s2.24-5 5-5v10z"],control:["M17 10h-7v7h7v-7zm0-7h-7v6h7V3zM9 3H3v14h6V3zm10-3H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V2h16v16z"],"credit-card":["M19 3H1c-.55 0-1 .45-1 1v2h20V4c0-.55-.45-1-1-1zM0 16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V8H0v8zm6.5-2h7c.28 0 .5.22.5.5s-.22.5-.5.5h-7c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm-4 0h2c.28 0 .5.22.5.5s-.22.5-.5.5h-2c-.28 0-.5-.22-.5-.5s.22-.5.5-.5z"],cross:["M11.41 10l4.29-4.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L10 8.59l-4.29-4.3a1.003 1.003 0 00-1.42 1.42L8.59 10 4.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4.29-4.3 4.29 4.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L11.41 10z"],crown:["M2 8l4 2 4-5 4 5 4-2-1 7H3L2 8zm8-6a1 1 0 110 2 1 1 0 010-2zM1 5a1 1 0 110 2 1 1 0 010-2zm18 0a1 1 0 110 2 1 1 0 010-2zM3 16h14v2H3v-2z"],cube:["M1.953 4.481l7.41-4.02c.394-.215.88-.215 1.275 0l7.409 4.02L10 9.22 1.953 4.48zm-.817.68L9.5 10.085v9.281a1.316 1.316 0 01-.138-.064l-7.714-4.186A1.211 1.211 0 011 14.057v-8.35c0-.193.048-.38.136-.547zm17.728 0c.088.166.136.353.136.546v8.35c0 .438-.247.842-.648 1.06l-7.714 4.186c-.045.024-.091.046-.138.064v-9.281l8.364-4.926z"],"cube-add":["M17 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5h-2a1 1 0 010-2h2V1a1 1 0 012 0v2zm-3.969 4.435L10 9.22 1.953 4.48l7.41-4.02c.394-.215.88-.215 1.275 0l1.33.721A3.001 3.001 0 0013 7c0 .148.01.293.031.435zm.319.972A3 3 0 0019 7v7.057c0 .438-.247.842-.648 1.06l-7.714 4.186c-.045.024-.091.046-.138.064v-9.281l2.85-1.679zM1.136 5.16L9.5 10.086v9.281a1.316 1.316 0 01-.138-.064l-7.714-4.186A1.211 1.211 0 011 14.057v-8.35c0-.193.048-.38.136-.547z"],"cube-remove":["M11.968 1.182A3.001 3.001 0 0013 7h.77L10 9.22 1.953 4.48l7.41-4.02c.394-.215.88-.215 1.275 0l1.33.721zM19 7v7.057c0 .438-.247.842-.648 1.06l-7.714 4.186c-.045.024-.091.046-.138.064v-9.281L15.74 7H19zM1.136 5.16L9.5 10.086v9.281a1.316 1.316 0 01-.138-.064l-7.714-4.186A1.211 1.211 0 011 14.057v-8.35c0-.193.048-.38.136-.547zM13 3h6a1 1 0 010 2h-6a1 1 0 010-2z"],"curved-range-chart":["M19 16H3.02l2.14-1.74c2.25 1.7 7.33.46 11.83-2.99l-1.29-1.5c-3.56 2.74-7.31 4.03-8.93 3.19l10.55-8.57-.63-.78-10.59 8.6c-.64-1.64 1.46-4.91 5.09-7.7L9.9 3.01c-4.6 3.54-6.91 8.12-5.41 10.51L2 15.54V3c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],cut:["M16 2s.72-1.28 0-2l-5.29 6.25 1.28 1.54L16 2zm.08 10c-.55 0-1.07.12-1.54.32L4.31 0c-.7.72 0 2 0 2l4.45 6.56-3.19 3.77C5.09 12.12 4.56 12 4 12c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.65-.17-1.26-.45-1.8l2.54-3.67 2.49 3.67c-.27.54-.44 1.15-.44 1.8 0 2.21 1.76 4 3.92 4 2.17 0 3.92-1.79 3.92-4 .02-2.21-1.74-4-3.9-4zM4 18c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm12.08 0c-1.08 0-1.96-.9-1.96-2s.88-2 1.96-2 1.96.9 1.96 2-.88 2-1.96 2z"],cycle:["M16 10a4 4 0 110 8 4 4 0 010-8zM4 10a4 4 0 110 8 4 4 0 010-8zm7.299-5.543l.087.089 1.93 2.232 2.048.708a1 1 0 01.65 1.16l-.031.112a1 1 0 01-1.16.65l-.112-.031-2.302-.796a1 1 0 01-.337-.197l-.092-.094-1.387-1.603-1.891 1.982 2.046 2.274a1 1 0 01.25.547l.007.122v4.24a1 1 0 01-1.993.117l-.007-.117-.001-3.857-2.408-2.676a1 1 0 01-.063-1.26l.082-.099 3.29-3.45a1 1 0 011.394-.053zM16 12a2 2 0 100 4 2 2 0 000-4zM4 12a2 2 0 100 4 2 2 0 000-4zm9.5-10a1.5 1.5 0 110 3 1.5 1.5 0 010-3z"],dashboard:["M6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM4 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-5C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm6-9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-8 5c0 1.1.9 2 2 2s2-.9 2-2c0-.33-2-8-2-8s-2 7.67-2 8zm6-9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"],"data-connection":["M2 11.9c.935.674 2.339 1.217 4.023 1.536A6.996 6.996 0 009.393 20c-3.988-.019-7.231-1.083-7.387-2.4L2 17.5v-5.6zM13 8c3.315 0 6 2.685 6 6s-2.685 6-6 6-6-2.685-6-6 2.685-6 6-6zm1 1l-4 6h2.5l-.5 4 4-6h-2.5l.5-4zm3-4.6v3.855a7.003 7.003 0 00-10.779 3.992c-2.408-.391-4.097-1.202-4.214-2.142L2 10V4.4c1.525 1.1 4.3 1.85 7.5 1.85S15.475 5.5 17 4.4zM9.5 0C13.637 0 17 1.125 17 2.5S13.637 5 9.5 5C5.35 5 2 3.875 2 2.5S5.35 0 9.5 0z"],"data-lineage":["M1.053 0C.47 0 0 .471 0 1.053V4.21c0 .58.471 1.052 1.053 1.052h3.275a6.332 6.332 0 003.728 4.738 6.33 6.33 0 00-3.728 4.737l-3.275-.001C.47 14.737 0 15.208 0 15.789v3.158C0 19.53.471 20 1.053 20h7.435c.581 0 1.053-.471 1.053-1.053V15.79c0-.58-.472-1.052-1.053-1.052H5.406a5.293 5.293 0 015.195-4.21v2.105c0 .58.471 1.052 1.052 1.052h7.294c.582 0 1.053-.471 1.053-1.052V7.368c0-.58-.471-1.052-1.053-1.052h-7.294c-.581 0-1.052.471-1.052 1.052v2.106a5.293 5.293 0 01-5.194-4.21h3.081c.581 0 1.053-.472 1.053-1.053V1.053C9.54.47 9.069 0 8.488 0H1.053z"],database:["M2.01 5.1v5.4c0 1.38 3.58 2.5 8 2.5s8-1.12 8-2.5V5.1c-1.49 1.13-4.51 1.9-8 1.9-3.48 0-6.5-.77-8-1.9zm8 .9c4.42 0 8-1.12 8-2.5s-3.58-2.5-8-2.5-8 1.12-8 2.5S5.6 6 10.01 6zm-8 6.1v5.4c0 1.38 3.58 2.5 8 2.5s8-1.12 8-2.5v-5.4c-1.49 1.13-4.51 1.9-8 1.9-3.48 0-6.5-.77-8-1.9z"],delete:["M15 6a1.003 1.003 0 00-1.71-.71L10 8.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L8.59 10 5.3 13.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3.29-3.3 3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L11.41 10l3.29-3.29c.19-.18.3-.43.3-.71zm-5-6C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"],delta:["M10 0L0 20h20L10 0zM9 6l6 12H3L9 6z"],"derive-column":["M7.1 8.2h-.99c.28-1.11.66-1.92 1.12-2.43.28-.32.56-.48.83-.48.05 0 .1.02.13.05.03.03.05.07.05.12 0 .04-.04.13-.11.25a.64.64 0 00-.12.35c0 .15.06.28.18.39.12.11.27.16.45.16.2 0 .36-.07.49-.2s.2-.31.2-.54c0-.26-.1-.47-.3-.63-.19-.16-.51-.24-.95-.24-.68 0-1.3.19-1.85.58-.56.38-1.09 1.02-1.59 1.91-.17.3-.34.5-.49.59-.15.08-.4.13-.74.12l-.23.77h.95l-1.39 5.24c-.23.86-.39 1.39-.47 1.59-.12.29-.3.54-.54.75-.1.08-.21.12-.35.12-.04 0-.07-.01-.1-.03l-.03-.04c0-.02.03-.07.1-.13.07-.07.1-.17.1-.31 0-.15-.05-.28-.16-.38-.11-.1-.27-.15-.47-.15-.25 0-.44.07-.59.2-.15.12-.23.28-.23.46 0 .19.09.36.27.5.19.14.47.21.86.21.61 0 1.16-.15 1.63-.46.48-.31.89-.78 1.25-1.43.35-.64.72-1.68 1.09-3.11l.8-3.03h.96l.24-.77zM19 0h-9c-.55 0-1 .45-1 1v3h2V2h7v16h-7v-2H9v3c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-8.79 13.49c.15.28.32.49.52.61.19.12.44.19.73.19.28 0 .57-.1.86-.3.38-.25.77-.69 1.17-1.31l-.25-.14c-.27.37-.48.6-.61.69-.09.06-.19.09-.31.09-.14 0-.28-.09-.42-.26-.23-.29-.54-1.09-.93-2.4.35-.59.64-.97.87-1.15.17-.13.35-.2.55-.2.07 0 .2.03.39.08s.36.08.5.08c.2 0 .37-.07.5-.2.15-.14.22-.31.22-.52 0-.22-.07-.4-.2-.53s-.33-.2-.58-.2c-.22 0-.43.05-.63.15-.2.1-.45.32-.75.67-.23.25-.56.7-1.01 1.33a6.52 6.52 0 00-.91-2.15l-2.39.39-.05.25c.18-.03.33-.05.45-.05.24 0 .43.1.59.3.25.31.59 1.24 1.02 2.8-.34.44-.58.73-.7.87-.21.22-.38.36-.52.43-.1.05-.22.08-.35.08-.1 0-.26-.05-.49-.16a1.01 1.01 0 00-.42-.11c-.23 0-.42.07-.57.22-.15.14-.23.33-.23.55 0 .21.07.38.21.51.14.13.33.2.56.2.23 0 .44-.05.64-.14.2-.09.45-.29.75-.59s.72-.78 1.25-1.43c.21.61.39 1.06.54 1.35z"],desktop:["M19 0H1C.45 0 0 .45 0 1v13c0 .55.45 1 1 1h5.67l-.5 3H5c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1h-1.17l-.5-3H19c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 13H2V2h16v11z"],diagnosis:["M4 2a1 1 0 01.117 1.993L4 4v5a2 2 0 001.85 1.995L6 11a2 2 0 001.995-1.85L8 9V4a1 1 0 01-.117-1.993L8 2h1a1 1 0 01.993.883L10 3v6a4.002 4.002 0 01-3 3.874V13a3 3 0 003 3 4 4 0 003.995-3.8L14 12V8.792a2.5 2.5 0 112 0V12a6 6 0 01-6 6 5 5 0 01-4.995-4.783L5 13v-.126A4.002 4.002 0 012.005 9.2L2 9V3a1 1 0 01.883-.993L3 2h1z"],"diagram-tree":["M19 10v5h-2v-4h-6v4H9v-4H3v4H1v-5a1 1 0 011-1h7V5h2v4h7a1 1 0 011 1zM1 16h2a1 1 0 011 1v2a1 1 0 01-1 1H1a1 1 0 01-1-1v-2a1 1 0 011-1zm16 0h2a1 1 0 011 1v2a1 1 0 01-1 1h-2a1 1 0 01-1-1v-2a1 1 0 011-1zm-8 0h2a1 1 0 011 1v2a1 1 0 01-1 1H9a1 1 0 01-1-1v-2a1 1 0 011-1zM9 0h2a1 1 0 011 1v2a1 1 0 01-1 1H9a1 1 0 01-1-1V1a1 1 0 011-1z"],"direction-left":["M20 3.02l-20 7 20 7-5-7z"],"direction-right":["M20 10.02l-20-7 5 7-5 7z"],disable:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM2 10c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L3.69 14.9A7.902 7.902 0 012 10zm8 8c-1.85 0-3.55-.63-4.9-1.69L16.31 5.1A7.902 7.902 0 0118 10c0 4.42-3.58 8-8 8z"],document:["M11.98 0h-8c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V6l-6-6zm4 18h-11V2h6v5h5v11z"],"document-open":["M8 15c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1h2.59L1.3 16.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L8 12.41V15zm5-15H5c-.55 0-1 .45-1 1v6h2V2h6v5h5v11H6v-.76L4.04 19.2c.1.45.48.8.96.8h13c.55 0 1-.45 1-1V6l-6-6z"],"document-share":["M14.09 10.09c-.31.31-.67.57-1.09.72V18H2V2h6v5h1.18c.15-.42.39-.8.7-1.11v-.01l2.45-2.45c-.42-.29-.78-.65-1.01-1.11L9 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V9.24l-.88.88-.03-.03zM19 0h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 3.41V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z"],dollar:["M15.57 11.19c-.27-.51-.63-.93-1.07-1.26-.44-.33-.95-.6-1.51-.79-.56-.2-1.14-.36-1.72-.5-.6-.14-1.19-.26-1.75-.38-.57-.13-1.07-.27-1.51-.44-.44-.17-.8-.38-1.07-.63s-.41-.59-.41-1c0-.33.09-.6.28-.81.19-.21.42-.36.69-.47.27-.11.57-.18.88-.22.31-.04.58-.06.8-.06.71 0 1.35.14 1.9.41.55.27.91.81 1.06 1.62h3.36c-.09-.84-.32-1.56-.69-2.16-.37-.6-.83-1.08-1.38-1.45-.56-.37-1.18-.64-1.86-.81-.19-.05-.38-.07-.57-.1V1c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v1.1c-.22.03-.43.05-.66.1-.73.13-1.39.37-1.98.71-.6.34-1.09.8-1.47 1.35-.39.56-.58 1.25-.58 2.08 0 .76.13 1.41.4 1.93.26.52.62.95 1.06 1.28.44.33.94.6 1.5.79.55.2 1.13.36 1.74.5.58.14 1.16.26 1.72.38s1.07.26 1.51.43c.44.17.8.39 1.09.66.28.27.43.63.45 1.06.02.43-.08.78-.3 1.04-.22.26-.49.47-.83.6-.34.14-.7.23-1.09.28-.39.05-.73.07-1.03.07-.87 0-1.61-.2-2.23-.59-.62-.39-.98-1.08-1.07-2.06H3c.02.9.19 1.68.52 2.34.33.66.78 1.21 1.35 1.65.57.44 1.25.77 2.03.98.35.1.71.16 1.08.21V19c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.13c.25-.04.5-.07.76-.13.77-.18 1.47-.46 2.1-.85.63-.39 1.14-.9 1.54-1.53.4-.63.59-1.39.59-2.29.01-.75-.13-1.37-.4-1.88z"],dot:["M10 6a4 4 0 100 8 4 4 0 100-8z"],"double-caret-horizontal":["M8 4c-.24 0-.46.1-.63.24l-.01-.01-6 5 .01.01c-.22.19-.37.45-.37.76s.15.57.37.76l-.01.01 6 5 .01-.01c.17.14.39.24.63.24.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm11 6c0-.31-.15-.57-.37-.76l.01-.01-6-5-.01.01C12.46 4.1 12.24 4 12 4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1 .24 0 .46-.1.63-.24l.01.01 6-5-.01-.01c.22-.19.37-.45.37-.76z"],"double-caret-vertical":["M5 9h10c.55 0 1-.45 1-1 0-.24-.1-.46-.24-.63l.01-.01-5-6-.01.01C10.57 1.15 10.31 1 10 1s-.57.15-.76.37l-.01-.01-5 6 .01.01C4.1 7.54 4 7.76 4 8c0 .55.45 1 1 1zm10 2H5c-.55 0-1 .45-1 1 0 .24.1.46.24.63l-.01.01 5 6 .01-.01c.19.22.45.37.76.37s.57-.15.76-.37l.01.01 5-6-.01-.01c.14-.17.24-.39.24-.63 0-.55-.45-1-1-1z"],"double-chevron-down":["M9.29 10.71c.18.18.43.29.71.29s.53-.11.71-.29l6-6a1.003 1.003 0 00-1.42-1.42L10 8.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6zM16 9c-.28 0-.53.11-.71.29L10 14.59l-5.29-5.3a1.003 1.003 0 00-1.42 1.42l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0016 9z"],"double-chevron-left":["M5.41 10l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L5.41 10zm6 0l5.29-5.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-6 6c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l6 6a1.003 1.003 0 001.42-1.42L11.41 10z"],"double-chevron-right":["M11 10c0-.28-.11-.53-.29-.71l-6-6a1.003 1.003 0 00-1.42 1.42L8.59 10 3.3 15.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71zm5.71-.71l-6-6a1.003 1.003 0 00-1.42 1.42l5.3 5.29-5.29 5.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],"double-chevron-up":["M4 11c.28 0 .53-.11.71-.29L10 5.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6A.997.997 0 0010 3c-.28 0-.53.11-.71.29l-6 6A1.003 1.003 0 004 11zm6.71-1.71A.997.997 0 0010 9c-.28 0-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42l5.29-5.3 5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6z"],"doughnut-chart":["M16 10c0 3.31-2.69 6-6 6s-6-2.69-6-6 2.69-6 6-6V0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10h-4zm-.09-1h4.04C19.48 4.28 15.72.52 11 .05V4.1A5.98 5.98 0 0115.91 9z"],download:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm4.71 11.71l-4 4c-.18.18-.43.29-.71.29s-.53-.11-.71-.29l-4-4a1.003 1.003 0 011.42-1.42L9 12.59V5c0-.55.45-1 1-1s1 .45 1 1v7.59l2.29-2.29c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71z"],"drag-handle-horizontal":["M7.5 11c-.83 0-1.5.67-1.5 1.5S6.67 14 7.5 14 9 13.33 9 12.5 8.33 11 7.5 11zm-5-5C1.67 6 1 6.67 1 7.5S1.67 9 2.5 9 4 8.33 4 7.5 3.33 6 2.5 6zm0 5c-.83 0-1.5.67-1.5 1.5S1.67 14 2.5 14 4 13.33 4 12.5 3.33 11 2.5 11zm15-2c.83 0 1.5-.67 1.5-1.5S18.33 6 17.5 6 16 6.67 16 7.5 16.67 9 17.5 9zm-5 2c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm5 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm-10-5C6.67 6 6 6.67 6 7.5S6.67 9 7.5 9 9 8.33 9 7.5 8.33 6 7.5 6zm5 0c-.83 0-1.5.67-1.5 1.5S11.67 9 12.5 9 14 8.33 14 7.5 13.33 6 12.5 6z"],"drag-handle-vertical":["M7.5 6C6.67 6 6 6.67 6 7.5S6.67 9 7.5 9 9 8.33 9 7.5 8.33 6 7.5 6zm0 5c-.83 0-1.5.67-1.5 1.5S6.67 14 7.5 14 9 13.33 9 12.5 8.33 11 7.5 11zm0 5c-.83 0-1.5.67-1.5 1.5S6.67 19 7.5 19 9 18.33 9 17.5 8.33 16 7.5 16zm5-12c.83 0 1.5-.67 1.5-1.5S13.33 1 12.5 1 11 1.67 11 2.5 11.67 4 12.5 4zm-5-3C6.67 1 6 1.67 6 2.5S6.67 4 7.5 4 9 3.33 9 2.5 8.33 1 7.5 1zm5 10c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-10c-.83 0-1.5.67-1.5 1.5S11.67 9 12.5 9 14 8.33 14 7.5 13.33 6 12.5 6z"],draw:["M17.7 12.7c0-.1 0-.2-.1-.3l-2-7c-.1-.3-.3-.6-.6-.7L1.8 0l-.6.5L7.7 7c.3-.2.6-.3 1-.3 1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2c0-.4.1-.7.3-1L.5 1.2l-.5.6L4.7 15c.1.3.4.5.7.6l7 2c.1 0 .2.1.3.1.3 0 .5-.1.7-.3l4-4c.2-.2.3-.5.3-.7zm1 1c-.3 0-.5.1-.7.3l-4 4c-.2.2-.3.4-.3.7 0 .5.4 1 1 1 .3 0 .5-.1.7-.3l4-4c.2-.2.3-.4.3-.7 0-.6-.5-1-1-1z"],"drawer-left":["M9 0a1 1 0 011 1v18a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1h8zM8 2H2v16h6V2zm2 7h6.59L14.3 6.71A.965.965 0 0114 6a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-4 4a1.003 1.003 0 01-1.42-1.42l2.3-2.29H10V9z"],"drawer-left-filled":["M1 0h8a1 1 0 011 1v18a1 1 0 01-1 1H1a1 1 0 01-1-1V1a1 1 0 011-1zm9 9h6.59L14.3 6.71A.965.965 0 0114 6a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-4 4a1.003 1.003 0 01-1.42-1.42l2.3-2.29H10V9z"],"drawer-right":["M19 0a1 1 0 011 1v18a1 1 0 01-1 1h-8a1 1 0 01-1-1V1a1 1 0 011-1h8zm-1 2h-6v16h6V2zm-8 7H3.41L5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L3.41 11H10V9z"],"drawer-right-filled":["M11 0h8a1 1 0 011 1v18a1 1 0 01-1 1h-8a1 1 0 01-1-1V1a1 1 0 011-1zm-1 9H3.41L5.7 6.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L3.41 11H10V9z"],"drive-time":["M20.01 7.7c0-.63-.5-1.14-1.1-1.14h-1.32l-.95-2.57c-.24-.64-.95-1.31-1.59-1.5 0 0-1.65-.49-5.05-.49s-5.04.49-5.04.49c-.63.19-1.35.86-1.59 1.5l-.95 2.57H1.1C.5 6.56 0 7.07 0 7.7c0 .63.5 1.14 1.1 1.14h.47l-.34.91c-.24.64-.43 1.72-.43 2.4v5.39c0 .8.63 1.45 1.4 1.45.77 0 1.4-.65 1.4-1.45v-.83h12.8v.83c0 .8.63 1.45 1.4 1.45s1.4-.65 1.4-1.45v-5.39c0-.68-.19-1.77-.43-2.4l-.34-.91h.47c.61 0 1.11-.51 1.11-1.14zm-16.47.34l1.12-3.16c.08-.22.32-.39.54-.39h9.6c.22 0 .46.17.54.39l1.12 3.16c.08.21-.04.39-.26.39H3.8c-.22-.01-.34-.18-.26-.39zm.96 4.94c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.68 1.5 1.5c0 .83-.67 1.5-1.5 1.5zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"],duplicate:["M15 4H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-1 14H2V6h12v12zm5-18H5c-.55 0-1 .45-1 1v2h2V2h12v12h-1v2h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],edit:["M4.59 12.59l2.83 2.83 7.65-7.65-2.83-2.83-7.65 7.65zM2 18l4.41-1.59-2.81-2.79L2 18zM16 2c-.55 0-1.05.22-1.41.59l-1.65 1.65 2.83 2.83 1.65-1.65A2.006 2.006 0 0016 2z"],eject:["M4 12h12c.55 0 1-.45 1-1 0-.25-.1-.47-.25-.64l.01-.01-6-7-.01.01C10.57 3.14 10.3 3 10 3s-.57.14-.75.36l-.01-.01-6 7 .01.01c-.15.17-.25.39-.25.64 0 .55.45 1 1 1zm12 1H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1z"],emoji:["M10 0c5.523 0 10 4.477 10 10s-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0zm0 2a8 8 0 100 16 8 8 0 000-16zm-4 8l.015.215C6.219 12.42 7.925 14 10 14a4 4 0 003.995-3.8L14 10h2l-.013.238C15.754 13.552 13.163 16 10 16a6 6 0 01-5.996-5.775L4 10h2zm1.5-4a1.5 1.5 0 110 3 1.5 1.5 0 010-3zm5 0a1.5 1.5 0 110 3 1.5 1.5 0 010-3z"],endorsed:["M19.83 9.38L18.81 7.6V5.62c0-.45-.23-.85-.61-1.08l-1.71-1-1.02-1.76a1.25 1.25 0 00-1.08-.61h-2.03l-1.74-1c-.38-.23-.87-.23-1.25 0l-1.74 1H5.65c-.44 0-.85.23-1.08.61L3.58 3.5l-1.8 1.04c-.38.24-.62.64-.62 1.08v2.06L.17 9.4c-.11.19-.17.4-.17.61s.06.42.17.61l.99 1.72v2.06c0 .45.23.85.61 1.08l1.78 1.02.99 1.72c.23.38.63.61 1.08.61h1.99l1.74 1c.19.11.41.17.62.17.21 0 .42-.06.61-.17l1.74-1h2.03c.44 0 .85-.23 1.08-.61l1.02-1.76 1.71-1c.38-.23.61-.64.61-1.08v-1.97l1.02-1.78c.27-.38.27-.85.04-1.25zm-5.08-.71l-5.01 5.01c-.18.18-.43.29-.71.29-.28 0-.53-.11-.71-.29l-3.01-3.01a1.003 1.003 0 011.42-1.42l2.3 2.3 4.31-4.3a1.003 1.003 0 011.71.71c0 .28-.12.53-.3.71z"],envelope:["M0 4.01v11.91l6.27-6.27L0 4.01zm18.91-1.03H1.09L10 10.97l8.91-7.99zm-5.18 6.66L20 15.92V4.01l-6.27 5.63zm-3.23 2.9c-.13.12-.31.19-.5.19s-.37-.07-.5-.19l-2.11-1.89-6.33 6.33h17.88l-6.33-6.33-2.11 1.89z"],equals:["M4 7h12a1 1 0 010 2H4a1 1 0 110-2zm0 4h12a1 1 0 010 2H4a1 1 0 010-2z"],eraser:["M18.71 8.43c.39-.4.39-1.05 0-1.45l-5.53-5.72a.967.967 0 00-1.4 0L1.29 12.1c-.39.4-.39 1.05 0 1.45l4.25 4.39 2.13 2.05h9.27c.02 0 .03.01.05.01.55 0 1-.45 1-1s-.45-1-1-1H9.46l.05-.05h.01l.81-.84 8.38-8.68zM7.52 17.94l-4.95-5.12 4.46-4.61 4.95 5.12-4.46 4.61z"],error:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm1 16H9v-2h2v2zm0-3H9V4h2v9z"],euro:["M8.89 4.47c.56-.31 1.23-.47 2.03-.47.44 0 .85.07 1.25.22.4.14.76.35 1.07.6.17.14.33.3.47.47l2.32-2.32c-.16-.15-.3-.32-.47-.46-.62-.49-1.33-.87-2.12-1.13-.8-.25-1.64-.38-2.52-.38-1.24 0-2.35.22-3.33.66-.99.44-1.82 1.05-2.49 1.82-.68.78-1.2 1.68-1.56 2.72-.09.26-.13.54-.2.8H2c-.55 0-1 .45-1 1s.45 1 1 1h1.04c-.01.2-.04.38-.04.58 0 .15.03.28.03.42H2c-.55 0-1 .45-1 1s.45 1 1 1h1.31c.07.3.13.6.23.89.36 1.02.88 1.92 1.56 2.67.68.76 1.51 1.35 2.49 1.79.98.43 2.09.65 3.33.65.99 0 1.9-.15 2.73-.46.83-.3 1.55-.74 2.17-1.32.03-.03.05-.06.08-.09l-2.41-2.15c-.01.01-.02.02-.02.03-.61.67-1.46 1-2.54 1-.8 0-1.47-.16-2.03-.47-.56-.31-1.01-.72-1.35-1.24-.28-.38-.47-.83-.63-1.3H12c.55 0 1-.45 1-1s-.45-1-1-1H6.56c0-.14-.02-.28-.02-.42 0-.2.02-.39.03-.58H13c.55 0 1-.45 1-1s-.45-1-1-1H6.94c.15-.46.34-.9.59-1.28.35-.52.8-.94 1.36-1.25zM18 11.38v0z"],exchange:["M2.5 8a2.5 2.5 0 000 5 2.5 2.5 0 000-5zm10.35 3.15a.495.495 0 10-.7.7L13.3 13H5.5c-.28 0-.5.22-.5.5s.22.5.5.5h7.79l-1.15 1.15c-.08.09-.14.21-.14.35a.495.495 0 00.85.35l2-2c.09-.09.15-.21.15-.35s-.06-.26-.15-.35l-2-2zM17.5 8a2.5 2.5 0 000 5 2.5 2.5 0 000-5zM7.15 9.85a.495.495 0 10.7-.7L6.71 8h7.79c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H6.71l1.15-1.15c.08-.09.14-.21.14-.35a.495.495 0 00-.85-.35l-2 2c-.09.09-.15.21-.15.35s.06.26.15.35l2 2z"],"exclude-row":["M1 3h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zM0 13a1.003 1.003 0 001.71.71L4 11.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L5.41 10 7.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L4 8.59l-2.29-2.3A1.003 1.003 0 00.29 7.71L2.59 10 .3 12.29c-.19.18-.3.43-.3.71zm18-5h-7c-1.1 0-2 .9-2 2s.9 2 2 2h7c1.1 0 2-.9 2-2s-.9-2-2-2zm1 9H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],"expand-all":["M4 9c.28 0 .53-.11.71-.29L10 3.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-6-6C10.53 1.11 10.28 1 10 1s-.53.11-.71.29l-6 6A1.003 1.003 0 004 9zm12 2c-.28 0-.53.11-.71.29L10 16.59 4.71 11.3A.965.965 0 004 11a1.003 1.003 0 00-.71 1.71l6 6c.18.18.43.29.71.29s.53-.11.71-.29l6-6A1.003 1.003 0 0016 11z"],export:["M5 7c.28 0 .53-.11.71-.29L9 3.41V15c0 .55.45 1 1 1s1-.45 1-1V3.41l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-5-5C10.53.11 10.28 0 10 0s-.53.11-.71.29l-5 5A1.003 1.003 0 005 7zm14 7c-.55 0-1 .45-1 1v3H2v-3c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z"],"eye-off":["M20 9.96v-.03-.01-.02-.02a.794.794 0 00-.21-.43c-.55-.69-1.19-1.3-1.85-1.87l-3.93 2.62a3.966 3.966 0 01-3.96 3.77c-.47 0-.91-.1-1.33-.24l-2.24 1.49c.52.21 1.05.39 1.6.51 1.21.27 2.43.28 3.64.05 1.11-.21 2.17-.64 3.17-1.18 1.56-.84 2.99-2 4.23-3.3.23-.24.46-.49.67-.75a.87.87 0 00.21-.43v-.02-.02-.01-.03V10v-.04zm-.46-5.14c.27-.18.46-.47.46-.82 0-.55-.45-1-1-1-.21 0-.39.08-.54.18l-.01-.02L15 5.46c-.95-.53-1.95-.96-3.01-1.2a9.158 9.158 0 00-3.65-.04c-1.11.21-2.17.64-3.17 1.18-1.56.84-2.99 2-4.23 3.3-.23.24-.46.48-.67.75-.27.34-.27.76 0 1.1.64.79 1.39 1.5 2.16 2.15.26.21.52.41.79.61L.44 15.16l.01.02A1 1 0 000 16c0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02 18-12-.01-.02zm-8.67 3.4c-.25-.12-.53-.2-.83-.2-1.1 0-1.99.89-1.99 1.99 0 .03.02.06.02.09l-1.78 1.19c-.14-.4-.22-.83-.22-1.28 0-2.19 1.78-3.97 3.98-3.97 1.01 0 1.91.38 2.61 1l-1.79 1.18z"],"eye-on":["M13.3 8.71c.18.18.43.29.71.29s.53-.11.71-.29l4.99-5a1.003 1.003 0 00-1.42-1.42L14 6.58l-2.29-2.29a.956.956 0 00-.7-.29 1.003 1.003 0 00-.71 1.71l3 3zM20 9.96v-.03-.01-.02-.02a.823.823 0 00-.21-.44c-.44-.55-.94-1.05-1.46-1.52l-2.2 2.2c-.55.54-1.3.88-2.12.88-.05 0-.09-.01-.14-.01a3.978 3.978 0 01-3.86 3.02 4.007 4.007 0 01-1.66-7.65A2.97 2.97 0 018.02 5c0-.28.05-.54.12-.8-1.05.22-2.07.64-3.02 1.15-1.57.85-3 2.02-4.24 3.33-.23.25-.46.5-.67.76-.28.35-.28.77 0 1.12.64.8 1.4 1.52 2.17 2.17 1.66 1.41 3.56 2.58 5.66 3.06 1.21.27 2.43.29 3.65.05 1.11-.21 2.18-.65 3.18-1.19 1.57-.85 3-2.02 4.24-3.33.23-.24.46-.49.67-.76.11-.12.18-.27.21-.44v-.02-.02-.01-.03V10c.01-.01.01-.03.01-.04zm-9.99 2.05c1.03 0 1.87-.79 1.98-1.8l-.09-.09-.01.01-2.1-2.11c-1 .11-1.77.95-1.77 1.98-.01 1.11.89 2.01 1.99 2.01z"],"eye-open":["M10.01 7.984A2.008 2.008 0 008.012 9.99c0 1.103.9 2.006 1.998 2.006a2.008 2.008 0 001.998-2.006c0-1.103-.9-2.006-1.998-2.006zM20 9.96v-.03-.01-.02-.02a.827.827 0 00-.21-.442c-.64-.802-1.398-1.514-2.168-2.166-1.658-1.404-3.566-2.587-5.664-3.058a8.982 8.982 0 00-3.656-.05c-1.11.2-2.178.641-3.177 1.183-1.569.852-2.997 2.016-4.246 3.33-.23.25-.46.49-.67.761-.279.351-.279.773 0 1.124.64.802 1.4 1.514 2.169 2.166 1.658 1.404 3.566 2.577 5.664 3.058 1.209.271 2.438.281 3.656.05 1.11-.21 2.178-.651 3.177-1.193 1.569-.852 2.997-2.016 4.246-3.33.23-.24.46-.49.67-.751.11-.12.179-.271.209-.442v-.02-.02-.01-.03V10v-.04zM10.01 14A4.003 4.003 0 016.014 9.99a4.003 4.003 0 013.996-4.011 4.003 4.003 0 013.996 4.011 4.003 4.003 0 01-3.996 4.011z"],"fast-backward":["M18 3c-.23 0-.42.09-.59.21l-.01-.01L11 8V4c0-.55-.45-1-1-1-.23 0-.42.09-.59.21L9.4 3.2l-8 6 .01.01C1.17 9.4 1 9.67 1 10s.17.6.41.79l-.01.01 8 6 .01-.01c.17.12.36.21.59.21.55 0 1-.45 1-1v-4l6.4 4.8.01-.01c.17.12.36.21.59.21.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"fast-forward":["M19 10c0-.33-.17-.6-.41-.79l.01-.01-8-6-.01.01C10.42 3.09 10.23 3 10 3c-.55 0-1 .45-1 1v4L2.6 3.2l-.01.01C2.42 3.09 2.23 3 2 3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01L9 12v4c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01 8-6-.01-.01c.24-.19.41-.46.41-.79z"],feed:["M2.5 15a2.5 2.5 0 000 5 2.5 2.5 0 000-5zm.5-5c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5 2.24 5 5 0 .55.45 1 1 1s1-.45 1-1c0-3.87-3.13-7-7-7zM3 0c-.55 0-1 .45-1 1s.45 1 1 1c8.28 0 15 6.72 15 15 0 .55.45 1 1 1s1-.45 1-1C20 7.61 12.39 0 3 0zm0 5c-.55 0-1 .45-1 1s.45 1 1 1c5.52 0 10 4.48 10 10 0 .55.45 1 1 1s1-.45 1-1C15 10.37 9.63 5 3 5z"],"feed-subscribed":["M2.5 15a2.5 2.5 0 000 5 2.5 2.5 0 000-5zM3 2c1.76 0 3.44.31 5.01.87.03-.71.31-1.35.75-1.85C6.96.37 5.03 0 3 0c-.55 0-1 .45-1 1s.45 1 1 1zm10.32 4.67a.99.99 0 001.4 0l4.98-4.98c.19-.17.3-.42.3-.7 0-.55-.45-1-1-1a.99.99 0 00-.7.29l-4.27 4.27-2.28-2.28a.99.99 0 00-.7-.29c-.55 0-.99.45-.99 1 0 .28.11.52.29.7l2.97 2.99zM3 10c-.55 0-1 .45-1 1s.45 1 1 1c2.76 0 5 2.24 5 5 0 .55.45 1 1 1s1-.45 1-1c0-3.87-3.13-7-7-7zm13.94-2.69l-.82.82-.02-.02c-.2.2-.42.37-.67.51A14.8 14.8 0 0118 17c0 .55.45 1 1 1s1-.45 1-1c0-3.61-1.14-6.94-3.06-9.69zM3 5c-.55 0-1 .45-1 1s.45 1 1 1c5.52 0 10 4.48 10 10 0 .55.45 1 1 1s1-.45 1-1C15 10.37 9.63 5 3 5z"],film:["M19 2h-5v3H6V2H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h5v-3h8v3h5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM4 17H2v-2h2v2zm0-3H2v-2h2v2zm0-3H2V9h2v2zm0-3H2V6h2v2zm0-3H2V3h2v2zm10 8H6V7h8v6zm4 4h-2v-2h2v2zm0-3h-2v-2h2v2zm0-3h-2V9h2v2zm0-3h-2V6h2v2zm0-3h-2V3h2v2z"],filter:["M18 1H2a1.003 1.003 0 00-.71 1.71L7 8.41V18a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71V8.41l5.71-5.71c.18-.17.29-.42.29-.7 0-.55-.45-1-1-1z"],"filter-keep":["M15 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L5 7.41V16a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71V7.41l4.71-4.71c.18-.17.29-.42.29-.7zm4 11c-.28 0-.53.11-.71.29L15 16.59l-1.29-1.29A.965.965 0 0013 15a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l4-4A1.003 1.003 0 0019 13z"],"filter-list":["M15 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L5 7.41V16a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71V7.41l4.71-4.71c.18-.17.29-.42.29-.7zm-4 8c0 .55.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1h-7c-.55 0-1 .45-1 1zm8 7h-7c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1zm0-4h-7c-.55 0-1 .45-1 1s.45 1 1 1h7c.55 0 1-.45 1-1s-.45-1-1-1z"],"filter-open":["M15 2c0 .28-.11.53-.29.7L10 7.41V13c0 .28-.11.53-.29.71l-3 3A1.003 1.003 0 015 16V7.41L.29 2.71A1.003 1.003 0 011 1h13c.55 0 1 .45 1 1zm4.707 11.293a1 1 0 010 1.414l-4 4c-.63.63-1.707.184-1.707-.707v-8c0-.89 1.077-1.337 1.707-.707l4 4z"],"filter-remove":["M15 2c0-.55-.45-1-1-1H1a1.003 1.003 0 00-.71 1.71L5 7.41V16a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71V7.41l4.71-4.71c.18-.17.29-.42.29-.7zm2.91 13.5l1.79-1.79c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-1.79 1.79-1.79-1.79a1.003 1.003 0 00-1.42 1.42l1.79 1.79-1.79 1.79a1.003 1.003 0 001.42 1.42l1.79-1.79 1.79 1.79a1.003 1.003 0 001.42-1.42l-1.8-1.79z"],flag:["M3 3c-.55 0-1 .45-1 1v15c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1zm0-3c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm2 4.08v8.28c3.01-2.41 8.67 2.64 13 0V4.08C13.61 7.14 8.01 1 5 4.08z"],flame:["M11.622 0c0 1.71.49 3.077 1.472 4.103C16.364 6.496 18 9.23 18 12.308c0 3.418-1.962 5.983-5.887 7.692 2.887-3 2.453-4.23-.49-8C8.5 13.5 9 14.5 9.5 16.5c-1.048 0-2 0-2.5-.5 0 .684 1.197 2.5 1.952 4-3.924-1.026-8.123-7.18-6.651-7.692.981-.342 2.126-.171 3.434.513C4.1 6.667 6.062 2.393 11.622 0z"],flash:["M4.96 6.37a1.003 1.003 0 001.42-1.42l-2-2a1.07 1.07 0 00-.71-.28 1.003 1.003 0 00-.71 1.71l2 1.99zm9.37.3c.28 0 .53-.11.71-.29l2-2a1.003 1.003 0 00-1.42-1.42l-2 2a1.003 1.003 0 00.71 1.71zM10 5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S9 .45 9 1v3c0 .55.45 1 1 1zm-5 5c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1zm14-1h-3c-.55 0-1 .45-1 1s.45 1 1 1h3c.55 0 1-.45 1-1s-.45-1-1-1zm-9-3c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm5.04 1.63a1.003 1.003 0 00-1.42 1.42l2 2a1.003 1.003 0 001.42-1.42l-2-2zM10 15c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1s1-.45 1-1v-3c0-.55-.45-1-1-1zm-4.33-1.67c-.28 0-.53.11-.71.29l-2 2a1.003 1.003 0 001.42 1.42l2-2a1.003 1.003 0 00-.71-1.71z"],"floppy-disk":["M14 1h-3v5h3V1zm5.71 2.29l-3-3A.997.997 0 0016 0h-1v7H5V0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V4c0-.28-.11-.53-.29-.71zM17 19H3v-8c0-.55.45-1 1-1h12c.55 0 1 .45 1 1v8z"],"flow-branch":["M14.425 7.953a3.98 3.98 0 01.562 2.045 3.98 3.98 0 01-.583 2.08L18 15.671V12.98c0-.248.097-.496.29-.689.379-.379 1.047-.38 1.426 0a.94.94 0 01.283.696l-.001 5.049a.957.957 0 01-.276.69.955.955 0 01-.69.273h-5.059a.971.971 0 01-.689-.289 1.026 1.026 0 010-1.417.972.972 0 01.69-.29h2.702l-3.634-3.573a3.998 3.998 0 01-5.924-2.431H1a1 1 0 010-2h6.12a3.998 3.998 0 015.96-2.409L16.665 3l-2.694-.001a.972.972 0 01-.689-.29 1.035 1.035 0 010-1.425.94.94 0 01.696-.283l5.05.001c.248 0 .497.083.69.276a.954.954 0 01.272.69l.001 5.052a.971.971 0 01-.29.689 1.028 1.028 0 01-1.419 0 .972.972 0 01-.29-.69V4.323l-3.567 3.63z"],"flow-end":["M12 9.919a3.998 3.998 0 014-3.92c2.21 0 4 1.79 4 3.997a3.998 3.998 0 01-4 3.996 3.998 3.998 0 01-4-3.916.967.967 0 01-.28.612L7.685 14.71a.958.958 0 01-.686.285c-.536 0-.994-.461-.994-.997 0-.273.107-.528.283-.704l2.379-2.302H.98c-.537 0-.976-.46-.976-.996s.44-.992.976-.992h7.676L6.287 6.687a.957.957 0 01-.283-.686c0-.536.458-.996.994-.996.274 0 .51.1.686.285l4.027 4.024c.159.158.27.365.29.605z"],"flow-linear":["M5.125 10.997H.976C.439 10.997 0 10.537 0 10c0-.536.44-.993.976-.993h4.148a4.002 4.002 0 017.752 0h3.776L14.293 6.69a.962.962 0 01-.285-.687c0-.537.46-1.001.996-1.001a.96.96 0 01.698.3l4.005 4.015c.176.176.293.41.293.683a.972.972 0 01-.283.693L15.702 14.7a.997.997 0 01-.698.297c-.537 0-.996-.453-.996-.99 0-.273.107-.517.283-.692l2.371-2.318h-3.787a4.002 4.002 0 01-7.75 0z"],"flow-review":["M6.13 9.004A4.005 4.005 0 0110.012 6c1.87 0 3.44 1.278 3.881 3.005h2.768l-2.354-2.317a.97.97 0 01-.283-.691c0-.536.462-.995 1-.995.273 0 .517.107.693.283l4 4.041a.97.97 0 01.284.692.956.956 0 01-.293.682l-3.991 3.997a.944.944 0 01-.694.292c-.537 0-1-.46-1-.997a.97.97 0 01.284-.692l2.345-2.29h-2.765a4.005 4.005 0 01-3.875 2.981 4.005 4.005 0 01-3.874-2.981H3.349l2.376 2.308a.97.97 0 01.283.691 1 1 0 01-.994.983.989.989 0 01-.713-.291L.293 10.699A.956.956 0 010 10.017a.97.97 0 01.283-.692l4.03-4.037a.996.996 0 01.701-.283c.537 0 .994.464.994 1a.97.97 0 01-.283.691L3.34 9.004h2.79z"],"flow-review-branch":["M13.04 13.424c-.6.36-1.302.568-2.052.568a4 4 0 01-3.868-2.999H3.342l2.372 2.31c.176.176.283.42.283.694 0 .537-.452.998-.988.998a.935.935 0 01-.691-.289L.292 10.683A.96.96 0 010 9.999c0-.274.107-.518.283-.694l4.035-4.04a.973.973 0 01.691-.288c.536 0 .988.47.988 1.007a.975.975 0 01-.283.694L3.332 8.984h3.786a4 4 0 013.87-3.006c.771 0 1.492.22 2.102.599l3.565-3.57-2.538-.003a.974.974 0 01-.69-.29c-.38-.38-.38-1.052-.002-1.431A.94.94 0 0114.122 1l4.896.005a.96.96 0 01.69.277c.193.193.27.442.27.69l.005 4.9a.971.971 0 01-.289.69 1.023 1.023 0 01-1.416 0 .975.975 0 01-.29-.691l-.003-2.54-3.554 3.62c.351.596.553 1.291.553 2.034 0 .763-.213 1.477-.583 2.084l3.595 3.595.003-2.54c0-.249.097-.497.29-.69.38-.38 1.05-.381 1.429-.002a.94.94 0 01.282.697l-.005 4.9a.927.927 0 01-.277.675.974.974 0 01-.69.291L13.974 19a.97.97 0 01-.69-.29 1.03 1.03 0 01.002-1.42.974.974 0 01.69-.29l2.696-.003-3.632-3.573z"],flows:["M17.5 7.93a2.5 2.5 0 00-2.45 2h-2.3l-4.01-4-.75.75 3.26 3.25h-6.3a2.5 2.5 0 100 1h6.3l-3.26 3.25.75.75 4.01-4h2.3a2.5 2.5 0 102.45-3z"],"folder-close":["M0 17c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V7H0v10zM19 4H9.41l-1.7-1.71A.997.997 0 007 2H1c-.55 0-1 .45-1 1v3h20V5c0-.55-.45-1-1-1z"],"folder-new":["M12.994 7c0 1.655 1.344 3 2.998 3a3.002 3.002 0 002.999-3H20v10c0 .55-.45 1-1 1H1.01c-.55 0-1-.45-1-1V7h12.984zM10.76 6H0V3c0-.55.45-1 1-1h3.998c.28 0 .53.11.71.29L7.415 4h2.579c0 .768.29 1.469.765 2zm8.23-3c.55 0 1 .45 1 1s-.45 1-1 1h-1.998v2c0 .55-.45 1-1 1s-1-.45-1-1V5h-1.998c-.55 0-1-.45-1-1s.45-1 1-1h1.999V1c0-.55.45-1 .999-1 .55 0 1 .45 1 1v2h1.999z"],"folder-open":["M20 9c0-.55-.45-1-1-1H5c-.43 0-.79.27-.93.65h-.01l-3 8h.01c-.04.11-.07.23-.07.35 0 .55.45 1 1 1h14c.43 0 .79-.27.93-.65h.01l3-8h-.01c.04-.11.07-.23.07-.35zM3.07 7.63C3.22 7.26 3.58 7 4 7h14V5c0-.55-.45-1-1-1H8.41l-1.7-1.71A.997.997 0 006 2H1c-.55 0-1 .45-1 1v12.31l3.07-7.68z"],"folder-shared":["M11 4H9.41l-1.7-1.71A.997.997 0 007 2H1c-.55 0-1 .45-1 1v3h11.78C11.3 5.47 11 4.77 11 4zm8-1h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L12.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 6.41V9c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1zm-2.46 7.7l-1.42 1.42a2.996 2.996 0 11-4.24-4.24l.88-.88H0v10c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-5.18c-.31.11-.65.18-1 .18-1.02 0-1.92-.52-2.46-1.3z"],"folder-shared-open":["M3.07 7.63C3.22 7.26 3.58 7 4 7h7.76l.54-.54A2.97 2.97 0 0111 4H8.41l-1.7-1.71A.997.997 0 006 2H1c-.55 0-1 .45-1 1v12.31l3.07-7.68zm13.47 3.07l-1.42 1.42A2.996 2.996 0 0110 10c0-.77.3-1.47.78-2H5c-.43 0-.79.27-.93.65h-.01l-3 8h.01c-.04.11-.07.23-.07.35 0 .55.45 1 1 1h14c.43 0 .79-.27.93-.65h.01l2.01-5.36c-1-.01-1.88-.52-2.41-1.29zM19 3h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L12.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 6.41V9c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1z"],follower:["M11.54 15.92c-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5a3.69 3.69 0 00-1.29-1.86C9.69 4.25 8.8 4 8.01 4c-.8 0-1.69.25-2.32.73-.61.47-1.06 1.13-1.28 1.86-.05.17-.09.33-.11.5-.12.6-.18 1.51-.18 2.14v.08c-.23.09-.44.32-.49.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59-1.48.65-3.71 1.35-4.16 2.4C-.16 19.38.02 20 .02 20h15.95s.18-.62-.27-1.67c-.46-1.06-2.68-1.75-4.16-2.41zm8.15-12.63l-3-3a.956.956 0 00-.7-.29 1.003 1.003 0 00-.71 1.71L16.58 3H13c-.55 0-1 .45-1 1s.45 1 1 1h3.58l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.3-.71z"],following:["M11.55 15.92c-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5a3.69 3.69 0 00-1.29-1.86C9.7 4.25 8.81 4 8.02 4c-.79 0-1.68.25-2.31.73-.61.47-1.07 1.13-1.29 1.86-.05.16-.09.33-.11.5-.12.6-.18 1.51-.18 2.14v.08c-.23.09-.44.32-.48.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59C3 16.56.77 17.26.32 18.31-.15 19.38.04 20 .04 20h15.95s.18-.62-.27-1.67c-.46-1.06-2.69-1.75-4.17-2.41zM19 3h-3.58l1.29-1.29A1.003 1.003 0 0015.29.29l-3 3c-.17.18-.28.43-.28.71 0 .28.11.53.29.71l3 3c.18.18.43.29.7.29a1.003 1.003 0 00.71-1.71L15.42 5H19c.55 0 1-.45 1-1s-.45-1-1-1z"],font:["M17.93 18.64l-7-18C10.78.27 10.42 0 10 0s-.78.27-.93.64l-7 18c-.04.11-.07.23-.07.36 0 .55.45 1 1 1 .42 0 .78-.27.93-.64L6.41 13h7.19l2.47 6.36c.15.37.51.64.93.64.55 0 1-.45 1-1 0-.13-.03-.25-.07-.36zM7.18 11L10 3.76 12.82 11H7.18z"],fork:["M16.71 11.29a1.003 1.003 0 00-1.42 1.42l1.3 1.29h-2.17l-8-8h10.17L15.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 4H1c-.55 0-1 .45-1 1s.45 1 1 1h2.59l9.71 9.71c.17.18.42.29.7.29h2.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3z"],form:["M2 13v4h4v-4H2zm-1-2h6c.55 0 1 .45 1 1v6c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-6c0-.55.45-1 1-1zm11-7h7c.55 0 1 .45 1 1s-.45 1-1 1h-7c-.55 0-1-.45-1-1s.45-1 1-1zM8 1a1.003 1.003 0 01.71 1.71l-5 6C3.53 8.89 3.28 9 3 9s-.53-.11-.71-.29l-2-2a1.003 1.003 0 011.42-1.42L3 6.59l4.29-5.3C7.47 1.11 7.72 1 8 1zm4 13h7c.55 0 1 .45 1 1s-.45 1-1 1h-7c-.55 0-1-.45-1-1s.45-1 1-1z"],"full-circle":["M9.96 0a10 10 0 100 20 10 10 0 100-20z"],"full-stacked-chart":["M15 16h2c.55 0 1-.45 1-1v-5h-4v5c0 .55.45 1 1 1zM12 2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v4h4V2zm6 4h-4v3h4V6zm0-4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v3h4V2zm-6 5H8v5h4V7zm-9 9h2c.55 0 1-.45 1-1v-3H2v3c0 .55.45 1 1 1zm6 0h2c.55 0 1-.45 1-1v-2H8v2c0 .55.45 1 1 1zm10 1H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM6 2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v3h4V2zm0 4H2v5h4V6z"],fullscreen:["M3.41 2H6c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v5c0 .55.45 1 1 1s1-.45 1-1V3.41L7.29 8.7c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L3.41 2zM8 11c-.28 0-.53.11-.71.29L2 16.59V14c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1H3.41l5.29-5.29c.19-.18.3-.43.3-.71 0-.55-.45-1-1-1zM19 0h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 3.41V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm0 13c-.55 0-1 .45-1 1v2.59l-5.29-5.29A.965.965 0 0012 11a1.003 1.003 0 00-.71 1.71l5.3 5.29H14c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1z"],function:["M10.14 5.82H8.73c.4-1.66.94-2.87 1.6-3.64.4-.48.8-.72 1.18-.72.08 0 .14.02.19.07.05.05.07.1.07.18 0 .07-.05.19-.16.37s-.16.36-.16.52c0 .23.08.43.25.59a.9.9 0 00.64.25c.28 0 .51-.1.7-.3.19-.2.28-.47.28-.81 0-.39-.14-.7-.42-.94-.28-.24-.74-.36-1.36-.36-.97 0-1.86.29-2.65.87-.79.56-1.54 1.52-2.26 2.85-.24.46-.48.75-.7.88-.22.13-.57.19-1.06.19l-.32 1.15H5.9l-1.99 7.85c-.33 1.29-.56 2.09-.67 2.39-.17.44-.43.81-.77 1.12a.74.74 0 01-.5.19c-.05 0-.1-.02-.14-.05l-.04-.07c0-.03.05-.1.15-.2.1-.1.15-.26.15-.47 0-.23-.08-.42-.23-.57-.16-.15-.38-.23-.67-.23-.35 0-.63.1-.85.29-.21.2-.32.43-.32.7 0 .29.13.54.39.75.25.22.65.33 1.2.33.88 0 1.66-.23 2.33-.69.68-.46 1.27-1.17 1.78-2.14.51-.96 1.03-2.52 1.56-4.66l1.14-4.54H9.8l.34-1.15zm6.8 1.95c.25-.2.51-.29.78-.29.1 0 .29.04.56.11.27.08.51.11.72.11.29 0 .52-.1.72-.3.18-.19.28-.45.28-.77 0-.33-.1-.6-.29-.8-.19-.2-.47-.29-.82-.29-.32 0-.62.08-.9.23-.28.15-.64.49-1.08 1-.33.38-.81 1.05-1.44 2a9.712 9.712 0 00-1.31-3.22l-3.4.59-.07.37c.25-.05.47-.08.64-.08.34 0 .62.15.84.44.35.46.84 1.85 1.46 4.19-.49.66-.82 1.09-1 1.3-.3.33-.55.54-.74.64-.15.08-.32.12-.51.12-.14 0-.38-.08-.7-.24-.22-.1-.42-.16-.59-.16-.33 0-.6.11-.82.32-.21.22-.32.49-.32.83 0 .31.1.57.3.77.2.2.47.29.8.29.32 0 .63-.07.92-.21.29-.14.64-.43 1.08-.88.43-.45 1.03-1.16 1.79-2.14.29.93.55 1.61.76 2.03.21.42.46.73.74.91.28.19.62.28 1.04.28.4 0 .81-.15 1.23-.44.55-.38 1.1-1.04 1.68-1.97l-.35-.21c-.39.55-.68.89-.87 1.03-.12.09-.27.13-.44.13-.2 0-.4-.13-.59-.38-.33-.43-.77-1.63-1.33-3.6.47-.86.89-1.44 1.23-1.71z"],"gantt-chart":["M4 7h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm3 2v1c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1zm12 3h-6c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm0 4H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],geofence:["M8 11l.075.003.126.017.111.03.111.044.098.052.096.067.09.08c.036.035.068.073.097.112l.071.11.054.114.035.105.03.148L9 12V18a1 1 0 01-1.993.117L7 18v-3.586l-5.293 5.293a1 1 0 01-1.497-1.32l.083-.094L5.584 13h-3.58a1 1 0 01-.117-1.993L2.004 11H8zm3.018-11a1.003 1.003 0 01.39.087l.12.063.031.02.1.078 8.027 7.026.062.064.068.086.044.068.064.128.04.117.024.113.011.108v.1l-.007.073-.019.103-.037.121-.039.09-.05.087-4.996 7.994c-.06.097-.137.183-.226.254l-.093.067-.095.053-.087.037-.125.037a1.018 1.018 0 01-.218.026H11v-5a3 3 0 00-2.824-2.995L8 9H3V6a1 1 0 01.321-.734l.098-.08 7-5a1.01 1.01 0 01.45-.178L11.018 0z"],geolocation:["M0 8.33l9.17 2.5 2.5 9.17L20 0z"],geosearch:["M8 18.88c-3.79 0-6.88-3.09-6.88-6.88 0-.61.08-1.22.23-1.79.03.01.06-.01.1-.01h.09v.55c0 .23.21.42.44.42.04 0 .09-.01.12-.02l.9.88c.09.09.23.09.32 0s.09-.23 0-.32l-.86-.9c0-.02.05-.04.05-.07v-.13c0-.18.1-.25.29-.41h.53c.1 0 .19-.01.27-.05.01-.01.02 0 .03-.01.02-.01.03-.02.05-.04.01-.01.02-.01.02-.02l.02-.02 1.13-1.13c-.16-.32-.3-.65-.42-.99h-.64v-.53c0-.01.06.06.06-.1h.38c-.04-.16-.08-.32-.1-.48h-.71c.2-.16.42-.31.64-.45C4.02 6.09 4 5.8 4 5.5c0-.14.01-.28.02-.43C1.62 6.46 0 9.04 0 12c0 4.41 3.59 8 8 8 3.87 0 7.09-2.77 7.82-6.44l-.97-1.1c-.26 3.57-3.23 6.42-6.85 6.42zm-2.12-3.67v-.35h.15c.29 0 .49-.23.49-.53v-.68c0-.01.01-.01 0-.02L4.71 11.8h-.77c-.29 0-.47.24-.47.53v2c0 .29.18.53.47.53h.33v2.02c0 .28.28.51.56.51s.56-.23.56-.51v-1.22h-.01c.29 0 .5-.16.5-.45zm13.83-2.92l-3.68-3.68c.14-.21.27-.42.38-.65.02-.04.04-.07.05-.11.11-.22.2-.45.28-.69v-.01c.07-.24.13-.48.17-.73l.03-.17c.04-.24.06-.49.06-.75C17 2.46 14.54 0 11.5 0S6 2.46 6 5.5 8.46 11 11.5 11c.26 0 .51-.02.76-.06l.17-.03c.25-.04.49-.1.73-.17h.01c.24-.08.47-.17.69-.28.04-.02.07-.04.11-.05.23-.11.44-.24.65-.38l3.68 3.68c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71zM11.5 9.5c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm1.93 5.33v-.65c0-.11-.13-.21-.24-.21-.11 0-.24.09-.24.21v.65c0 .11.13.21.24.21.11 0 .24-.1.24-.21zm-2.41.67h.83c.29 0 .46-.21.46-.5v-1.86l.23-.22c-.34.05-.69.08-1.04.08-.36 0-.7-.03-1.05-.08.03.05.06.1.08.16V15c.01.29.2.5.49.5z"],"git-branch":["M15 2c-1.66 0-3 1.34-3 3 0 1.3.84 2.4 2 2.82V9c0 1.1-.9 2-2 2H8c-.73 0-1.41.21-2 .55V5.82C7.16 5.4 8 4.3 8 3c0-1.66-1.34-3-3-3S2 1.34 2 3c0 1.3.84 2.4 2 2.82v8.37C2.84 14.6 2 15.7 2 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.25-.77-2.3-1.85-2.75C6.45 13.52 7.16 13 8 13h4c2.21 0 4-1.79 4-4V7.82C17.16 7.4 18 6.3 18 5c0-1.66-1.34-3-3-3zM5 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 16c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM15 6c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-commit":["M19 9h-4.1a5 5 0 00-9.8 0H1c-.55 0-1 .45-1 1s.45 1 1 1h4.1a5 5 0 009.8 0H19c.55 0 1-.45 1-1s-.45-1-1-1zm-9 4c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"],"git-merge":["M15 8c-1.3 0-2.4.84-2.82 2H11c-2.49 0-4.54-1.83-4.92-4.21A2.995 2.995 0 005 0C3.34 0 2 1.34 2 3c0 1.3.84 2.4 2 2.81v8.37C2.84 14.6 2 15.7 2 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V9.86C7.27 11.17 9.03 12 11 12h1.18A2.996 2.996 0 0018 11c0-1.66-1.34-3-3-3zM5 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM5 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm10 8c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-new-branch":["M17 3h-1V2c0-.55-.45-1-1-1s-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1V5h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3 4.86V9c0 1.1-.9 2-2 2H8c-.73 0-1.41.21-2 .55V5.82C7.16 5.4 8 4.3 8 3c0-1.66-1.34-3-3-3S2 1.34 2 3c0 1.3.84 2.4 2 2.82v8.37C2.84 14.6 2 15.7 2 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.25-.77-2.3-1.85-2.75C6.45 13.52 7.16 13 8 13h4c2.21 0 4-1.79 4-4V7.86c-.32.08-.65.14-1 .14s-.68-.06-1-.14zM5 2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 16c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-pull":["M17 14.18V7c0-2.21-1.79-4-4-4h-2.59l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C7.11 3.47 7 3.72 7 4c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L10.41 5H13c1.1 0 2 .9 2 2v7.18A2.996 2.996 0 0016 20c1.66 0 3-1.34 3-3 0-1.3-.84-2.4-2-2.82zM16 18c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4 1C2.34 1 1 2.34 1 4c0 1.3.84 2.4 2 2.82v7.37C1.84 14.6 1 15.7 1 17c0 1.66 1.34 3 3 3s3-1.34 3-3c0-1.3-.84-2.4-2-2.82V6.82C6.16 6.4 7 5.3 7 4c0-1.66-1.34-3-3-3zm0 17c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM4 5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"git-push":["M15 11c0-.28-.11-.53-.29-.71l-3-3C11.53 7.11 11.28 7 11 7s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42l1.29-1.3V19c0 .55.45 1 1 1s1-.45 1-1v-8.59l1.29 1.29c.18.19.43.3.71.3.55 0 1-.45 1-1zm4-11H1C.45 0 0 .45 0 1v16c0 .55.45 1 1 1h7v-2H2v-2h6v-1H4V2h14v11h-4v1h4v2h-4v2h5c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM5 8h2V6H5v2zm2-5H5v2h2V3z"],"git-repo":["M7 3H5v2h2V3zm0 6H5v2h2V9zm0-3H5v2h2V6zm12-6H1C.45 0 0 .45 0 1v16c0 .55.45 1 1 1h4v2l2-1 2 1v-2h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 16H9v-1H5v1H2v-2h16v2zm0-3H4V2h14v11z"],glass:["M17 6V0H3v6c0 3.53 2.61 6.43 6 6.92V18H6c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1h-3v-5.08c3.39-.49 6-3.39 6-6.92z"],globe:["M7.53 4.37c.1-.1.1-.26 0-.35l-.68-.68c-.1-.1-.25-.1-.35 0-.1.1-.1.26 0 .35l.68.68c.1.1.25.1.35 0zm3.17.06h.3c.09 0 .16-.01.16-.1 0-.09-.07-.1-.16-.1h-.3c-.09 0-.16.01-.16.1s.07.1.16.1zm.98 1.15c.09 0 .19-.08.19-.17v-.42c0-.09-.1-.17-.19-.17s-.19.08-.19.17v.42c0 .09.1.17.19.17zm-6.5 4.19c-.35 0-.56.28-.56.63v2.37c0 .35.21.62.56.62h.39v2.4c0 .34.33.61.67.61s.67-.27.67-.61v-1.44h-.02c.35 0 .6-.19.6-.54v-.41h.18c.35 0 .58-.28.58-.62v-.81c0-.01.01-.01 0-.02L6.1 9.77h-.92zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8 0-.74.11-1.46.3-2.14h.03v.65c0 .28.25.5.53.5.05 0 .1-.01.15-.02l1.05 1.05c.1.11.28.11.38 0 .1-.1.11-.27 0-.38L3.42 8.59c0-.03.05-.05.05-.08v-.16c0-.22.12-.3.34-.49h.63c.12 0 .23-.01.32-.07.01-.01.02 0 .03-.01.02-.02.04-.03.06-.04.01-.01.02-.01.03-.02l.02-.02 2.15-2.15c.24-.24.24-.63 0-.86-.23-.24-.62-.19-.86.04l-.41.46H5v-.64c0-.01.07.07.07-.12h.87c.17 0 .3-.12.3-.29 0-.17-.13-.29-.3-.29H4.88C6.27 2.7 8.05 2 10 2s3.73.7 5.12 1.86h-1.58l-.01-.04c-.06 0-.12 0-.17.04l-.71.7c-.09.09-.09.23 0 .31.09.09.23.09.32 0l.56-.6.01-.03h.34c0 .19-.1.13-.1.16v.1c0 .29-.2.5-.49.5h-.51c-.25 0-.52.28-.52.54v.23h-.12c-.16 0-.27.08-.27.24v.33h-.32c-.23 0-.41.15-.41.38 0 .22.18.35.41.35.1 0 .19.04.26-.16l.06.01.66-.59h.23l.53.5c.04.04.11.03.16-.01.04-.04.04-.16 0-.2L13 6.15h.32l.12.16c.25.25.65.23.89-.02l.12-.14H15c.02 0 .11.07.11.07v.33s-.06-.01-.07-.01h-.49c-.16 0-.28.13-.28.29 0 .16.13.29.28.29h.49c.01 0 .07-.01.07-.01v.2c-.19.28-.33.57-.62.57h-1.28s0-.01-.01-.01l-.58-.58a.622.622 0 00-.89 0l-.58.58s0 .01-.01.01h-.34c-.35 0-.67.28-.67.63v1.25c0 .35.32.61.67.61h1.22c.46.19.78.48.97.94v2.28c0 .35.23.6.58.6h.98c.35 0 .54-.25.54-.6v-2.2l1.21-1.17.04-.02.02-.01h.04c.1-.11.2-.26.2-.42V8.49c0-.25-.22-.44-.42-.63h.58c.02.38.29.57.63.57h.43c.13.51.18 1.03.18 1.57 0 4.42-3.58 8-8 8zm6.16-5.65c-.14 0-.29.11-.29.25v.77c0 .14.15.25.29.25.14 0 .29-.11.29-.25v-.77c0-.14-.15-.25-.29-.25zM10.5 3.48c0-.34-.28-.57-.62-.57h-.74c-.34 0-.57.25-.57.59 0 .05-.13.06.06.1v.64c0 .2.09.36.29.36.2 0 .29-.16.29-.36v-.19h.68c.33 0 .61-.23.61-.57z"],"globe-network":["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm7.39 7h-3.63c-.31-1.99-.92-3.66-1.72-4.73 2.45.65 4.41 2.42 5.35 4.73zM13 10c0 .69-.04 1.36-.11 2H7.11a18.419 18.419 0 010-4h5.77c.08.64.12 1.31.12 2zm-3-8c1.07 0 2.25 2.05 2.75 5h-5.5c.5-2.95 1.68-5 2.75-5zm-2.04.27C7.16 3.34 6.55 5.01 6.24 7H2.61c.94-2.31 2.9-4.08 5.35-4.73zM2 10c0-.69.11-1.36.28-2h3.83a18.419 18.419 0 000 4H2.28c-.17-.64-.28-1.31-.28-2zm.61 3h3.63c.31 1.99.92 3.66 1.72 4.73A7.996 7.996 0 012.61 13zM10 18c-1.07 0-2.25-2.05-2.75-5h5.5c-.5 2.95-1.68 5-2.75 5zm2.04-.27c.79-1.07 1.4-2.74 1.72-4.73h3.63a7.996 7.996 0 01-5.35 4.73zM13.89 12a18.419 18.419 0 000-4h3.83c.17.64.28 1.31.28 2s-.11 1.36-.28 2h-3.83z"],graph:["M17.5 4A2.5 2.5 0 0015 6.5c0 .06.01.12.02.18l-1.9.84C12.38 6.6 11.27 6 10 6c-.83 0-1.59.25-2.23.68L4.91 4.14c.05-.21.09-.42.09-.64a2.5 2.5 0 00-5 0A2.5 2.5 0 002.5 6c.42 0 .81-.11 1.16-.3l2.79 2.48C6.17 8.73 6 9.34 6 10c0 1.41.73 2.64 1.83 3.35l-.56 1.67A2.498 2.498 0 005 17.5a2.5 2.5 0 005 0c0-.74-.32-1.39-.83-1.85l.56-1.68c.09.01.18.03.27.03 2.21 0 4-1.79 4-4 0-.22-.03-.44-.07-.65l2.02-.9c.43.34.96.55 1.55.55a2.5 2.5 0 000-5z"],"graph-remove":["M17.41 4l2.29-2.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L16 2.59 13.71.3A.965.965 0 0013 0a1.003 1.003 0 00-.71 1.71L14.59 4 12.3 6.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L16 5.41l2.29 2.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L17.41 4zM19 10c-.83 0-1.55-.36-2.09-.91l-.03.03-.88-.88-.88.88a2.996 2.996 0 11-4.24-4.24l.88-.88-.88-.88.03-.03C10.36 2.55 10 1.83 10 1c0-.35.07-.68.18-.99-.06 0-.12-.01-.18-.01C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10c0-.06-.01-.12-.01-.18-.31.11-.64.18-.99.18z"],"greater-than":["M12.838 10l-9.154 3.051a1 1 0 00.632 1.898l12-4c.912-.304.912-1.594 0-1.898l-12-4a1 1 0 00-.632 1.898L12.838 10z"],"greater-than-or-equal-to":["M3.684 11.051a1 1 0 00.632 1.898l12-4c.912-.304.912-1.594 0-1.898l-12-4a1 1 0 00-.632 1.898L12.838 8l-9.154 3.051zM4 15h12a1 1 0 110 2H4a1 1 0 010-2z"],grid:["M19 11c.55 0 1-.45 1-1s-.45-1-1-1h-2V5h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-4V1c0-.55-.45-1-1-1S9 .45 9 1v2H5V1c0-.55-.45-1-1-1S3 .45 3 1v2H1c-.55 0-1 .45-1 1s.45 1 1 1h2v4H1c-.55 0-1 .45-1 1s.45 1 1 1h2v4H1c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h4v2c0 .55.45 1 1 1s1-.45 1-1v-2h4v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1h-2v-4h2zM9 15H5v-4h4v4zm0-6H5V5h4v4zm6 6h-4v-4h4v4zm0-6h-4V5h4v4z"],"grid-view":["M0 19c0 .55.45 1 1 1h8v-9H0v8zM0 1v8h9V0H1C.45 0 0 .45 0 1zm19-1h-8v9h9V1c0-.55-.45-1-1-1zm-8 20h8c.55 0 1-.45 1-1v-8h-9v9z"],"group-objects":["M6 7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm8-3H6c-3.31 0-6 2.69-6 6s2.69 6 6 6h8c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 11H6c-2.76 0-5-2.24-5-5s2.24-5 5-5h8c2.76 0 5 2.24 5 5s-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"],"grouped-bar-chart":["M12 16h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1zm7 1H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm-3-1h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1h-1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1zm-9 0h1c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1zm-4 0h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1z"],hand:["M17 5c-.42 0-.79.27-.93.64L14.38 10h-.77l1.34-6.67c.03-.1.05-.21.05-.33a.998.998 0 00-1.98-.19h-.01L11.57 10H11V1c0-.55-.45-1-1-1S9 .45 9 1v9h-.2L6.97 2.76a.997.997 0 00-1.73-.41l-.03.03c-.01.02-.02.03-.03.04-.01.02-.01.03-.02.04v.01c-.01.01-.02.02-.02.03v.01c-.02.01-.02.02-.03.03 0 0 0 .01-.01.01 0 .01 0 .02-.01.03 0 0 0 .01-.01.01 0 .01-.01.02-.01.03 0 0 0 .01-.01.01 0 .01-.01.02-.01.03 0 .01 0 .01-.01.02 0 .01-.01.02-.01.03 0 .01 0 .01-.01.02 0 .01-.01.02-.01.03v.02c0 .01 0 .02-.01.03V3c0 .05 0 .09.01.14l1.45 10.25L6 12.7v.01L3.84 9.45h-.01A.98.98 0 003 9c-.55 0-1 .45-1 1 0 .2.06.39.17.55L6 18.44C7.06 19.4 8.46 20 10 20c3.31 0 6-2.69 6-6v-1.84l.01-.03v-.06l1.94-5.75A1.003 1.003 0 0017 5z"],"hand-down":["M17.68 9.84C15.91 9 14.27 6.49 13.45 4.9 12.41 2.43 12.21 0 7.87 0 5.49 0 3.95.76 3.05 2.65 2.31 4.2 2 5.48 2 9.79v.99c0 .82.69 1.48 1.54 1.48.38 0 .73-.14 1-.36.19.6.78 1.05 1.47 1.05.47 0 .89-.2 1.17-.52.26.47.77.79 1.36.79.65 0 1.2-.39 1.43-.93l.03.77v5.44c0 .48.23.91.59 1.18.21.19.5.32.85.32h.06c.83 0 1.5-.67 1.5-1.5v-8.24l.01-.67c.85.98 1.92 1.76 3.24 1.89 1.79.19 2.09-1.33 1.43-1.64z"],"hand-left":["M15.1 6.54c-1.58-.81-4.09-2.46-4.94-4.23-.31-.65-1.82-.35-1.64 1.43.13 1.33.91 2.4 1.89 3.24L9.74 7H1.5C.67 7 0 7.67 0 8.5v.06c0 .36.13.64.32.85.27.36.7.59 1.18.59h5.44l.78.01c-.54.23-.93.78-.93 1.43 0 .59.32 1.1.79 1.36-.32.28-.52.7-.52 1.17 0 .69.44 1.28 1.05 1.47-.22.27-.36.62-.36 1 0 .85.66 1.54 1.48 1.54h.99c4.31 0 5.59-.31 7.14-1.05 1.89-.9 2.65-2.44 2.65-4.82-.01-4.32-2.44-4.52-4.91-5.57z"],"hand-right":["M20 8.5c0-.83-.67-1.5-1.5-1.5h-8.24l-.67-.01c.98-.85 1.76-1.92 1.89-3.24.18-1.79-1.33-2.08-1.65-1.43-.84 1.76-3.35 3.41-4.93 4.23C2.43 7.59 0 7.79 0 12.13c0 2.38.76 3.92 2.65 4.82C4.2 17.69 5.48 18 9.79 18h.99c.82 0 1.48-.69 1.48-1.54 0-.38-.14-.73-.36-1 .6-.19 1.05-.78 1.05-1.47 0-.47-.2-.89-.52-1.17.47-.26.79-.77.79-1.36 0-.65-.39-1.2-.93-1.43l.77-.03h5.44c.48 0 .91-.23 1.18-.59.19-.21.32-.49.32-.85v-.03-.03z"],"hand-up":["M16.46 7.74c-.38 0-.73.14-1 .36-.19-.6-.78-1.05-1.47-1.05-.47 0-.89.2-1.17.52-.26-.47-.77-.79-1.36-.79-.65 0-1.2.39-1.43.93L10 6.94V1.5c0-.48-.23-.91-.59-1.18C9.2.13 8.92 0 8.56 0H8.5C7.67 0 7 .67 7 1.5v8.24l-.01.67c-.84-.98-1.92-1.76-3.24-1.89-1.79-.18-2.08 1.33-1.43 1.65 1.77.84 3.41 3.35 4.23 4.94 1.05 2.47 1.25 4.9 5.58 4.9 2.38 0 3.92-.76 4.82-2.65.74-1.56 1.05-2.84 1.05-7.15v-.99c0-.81-.69-1.48-1.54-1.48z"],hat:["M18.5 13c1.118 0 1.466.534 1.498 1.366L20 14.5v.5c0 1.945-5.69 3-10 3S0 16.945 0 15v-.5c0-.908.323-1.5 1.5-1.5.895 0 3.5 1.2 8.5 1.2l.411-.003C15.143 14.134 17.631 13 18.5 13zm-5-10c1.725 0 2.954 2.729 3.688 8.186-1.455.263-3.805.72-6.392.801l-.434.01L10 12c-2.896 0-5.585-.524-7.189-.814C3.546 5.73 4.775 3 6.5 3 8.6 3 8.329 5.5 10 5.5S11.5 3 13.5 3z"],header:["M16 1c-.55 0-1 .45-1 1v7H5V2c0-.55-.45-1-1-1s-1 .45-1 1v16c0 .55.45 1 1 1s1-.45 1-1v-7h10v7c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z"],"header-one":["M10 0c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1s-1-.45-1-1V9H2v6c0 .55-.45 1-1 1s-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v6h7V1c0-.55.45-1 1-1zm7.4 10.77c.17-.2.29-.46.34-.77H19v10h-1.5v-7.11H15v-1.24c.32 0 .63-.03.93-.08.31-.06.58-.16.83-.29.26-.12.47-.3.64-.51z"],"header-two":["M16.6 17.41c-.22.17-.4.36-.56.55-.16.19-.27.4-.33.61h4.28V20H14c.01-.81.18-1.52.53-2.13.35-.6.81-1.13 1.41-1.58.28-.23.58-.46.89-.68.31-.22.59-.46.85-.71.26-.26.48-.53.63-.83.16-.3.25-.64.26-1.02 0-.18-.02-.37-.06-.57-.04-.2-.11-.39-.22-.56s-.26-.31-.45-.43-.44-.18-.75-.18c-.28 0-.52.06-.71.19s-.34.3-.45.52c-.11.22-.2.48-.25.78-.05.3-.08.62-.09.97h-1.43c0-.54.07-1.04.2-1.5.13-.47.32-.87.58-1.2.26-.34.58-.6.95-.78.37-.19.81-.29 1.3-.29.54 0 .99.09 1.35.29.36.19.65.44.87.74.22.29.38.62.47.97.09.35.14.68.14 1 0 .4-.05.75-.16 1.07-.11.32-.26.61-.44.88-.19.27-.4.52-.63.74-.24.22-.48.43-.73.63s-.5.38-.75.56c-.26.17-.5.35-.71.53zM10 0c.55 0 1 .45 1 1v14c0 .55-.45 1-1 1s-1-.45-1-1V9H2v6c0 .55-.45 1-1 1s-1-.45-1-1V1c0-.55.45-1 1-1s1 .45 1 1v6h7V1c0-.55.45-1 1-1z"],headset:["M18.97 9H19A9 9 0 001 9h.03C.41 9.73 0 10.8 0 12c0 1.74.84 3.2 2 3.76V16c0 1.66 1.34 3 3 3h3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1H5c-.55 0-1-.45-1-1 .55 0 1-.45 1-1V9c0-.55-.45-1-1-1h-.92C3.57 4.61 6.47 2 10 2s6.43 2.61 6.92 6H16c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1c1.66 0 3-1.79 3-4 0-1.2-.41-2.27-1.03-3z"],heart:["M20 6.25C20 3.35 17.65 1 14.75 1c-1.02 0-1.95.31-2.75.82v-.04c-.09.06-.17.12-.26.19-.04.03-.09.06-.14.1-.68.51-1.24 1.18-1.6 1.96-.4-.86-1.04-1.57-1.8-2.1-.04-.02-.07-.05-.1-.08a7 7 0 00-.6-.33c-.13-.04-.23-.1-.35-.15-.05-.02-.1-.05-.15-.07v.02C6.45 1.13 5.87 1 5.25 1A5.25 5.25 0 000 6.25c0 .09.01.17.01.25H0c0 .06.01.12.02.18s.01.12.02.18C.13 7.89.44 9 1.07 10.17 2.23 12.33 4.1 14.11 7 16.53v.01c.9.75 1.89 1.55 3 2.46.71-.58 1.38-1.12 2-1.63 3.48-2.86 5.64-4.78 6.93-7.18.63-1.17.94-2.27 1.03-3.3.01-.07.01-.14.02-.21 0-.06.01-.11.02-.17h-.01c0-.09.01-.17.01-.26z"],"heart-broken":["M8.11 7.45C8.05 7.31 8 7.16 8 7c0-.07.03-.13.04-.19h-.02l.86-4.32A5.159 5.159 0 005.25 1 5.25 5.25 0 000 6.25c0 .09.01.17.01.25H0c0 .06.01.12.02.18s.01.12.02.18C.13 7.89.44 9 1.07 10.17c1.38 2.58 3.76 4.6 7.71 7.83l-.76-3.8h.02c-.01-.07-.04-.13-.04-.2 0-.21.08-.39.18-.54l-.02-.01 1.68-2.52-1.73-3.48zM20 6.25C20 3.35 17.65 1 14.75 1c-1.54 0-2.92.67-3.88 1.73l-.83 4.13 1.85 3.69h-.01c.07.14.12.29.12.45 0 .21-.08.39-.18.54l.02.01-1.77 2.66.81 4.07c4.16-3.39 6.63-5.45 8.05-8.1.63-1.17.94-2.27 1.03-3.3.01-.07.01-.14.02-.21 0-.06.01-.11.02-.17h-.01c0-.08.01-.16.01-.25z"],"heat-grid":["M14 12h6V8h-6v4zM0 12h6V8H0v4zm1-3h4v2H1V9zm-1 7c0 .55.45 1 1 1h5v-4H0v3zM19 3h-5v4h6V4c0-.55-.45-1-1-1zm0 3h-4V4h4v2zM0 4v3h6V3H1c-.55 0-1 .45-1 1zm7 3h6V3H7v4zm7 10h5c.55 0 1-.45 1-1v-3h-6v4zm-7 0h6v-4H7v4zm1-3h4v2H8v-2zm-1-2h6V8H7v4z"],heatmap:["M6 0a6 6 0 100 12A6 6 0 106 0z","M10.5 8a4.5 4.5 0 100 9 4.5 4.5 0 100-9z","M16.5 7a3.5 3.5 0 100 7 3.5 3.5 0 100-7zM18 16a2 2 0 100 4 2 2 0 100-4zM2.5 14a2.5 2.5 0 100 5 2.5 2.5 0 100-5zM16.5 0a2.5 2.5 0 100 5 2.5 2.5 0 100-5z"],help:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM7.41 4.62c.65-.54 1.51-.82 2.56-.82.54 0 1.03.08 1.48.25.44.17.83.39 1.14.68.32.29.56.63.74 1.02.17.39.26.82.26 1.27s-.08.87-.24 1.23c-.16.37-.4.73-.71 1.11l-1.21 1.58c-.14.17-.28.33-.32.48-.05.15-.11.35-.11.6v.97H9v-2s.06-.58.24-.81l1.21-1.64c.25-.3.41-.56.51-.77s.14-.44.14-.67c0-.35-.11-.63-.32-.85s-.5-.33-.88-.33c-.37 0-.67.11-.89.33-.22.23-.37.54-.46.94-.03.12-.11.17-.23.16l-1.95-.29c-.12-.01-.16-.08-.14-.22.13-.93.52-1.67 1.18-2.22zM9 14h2.02L11 16H9v-2z"],"helper-management":["M17 10h-3v3h3v-3zm0 4h-3v3h3v-3zm0-8h-3v3h3V6zm2-6H1C.4 0 0 .4 0 1v18c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V1c0-.6-.5-1-1-1zm-1 18H2V2h16v16zm-9-4H6v3h3v-3zm4 0h-3v3h3v-3z"],"high-priority":["M12 16v4H8v-4h4zm1-16l-1 14H8L7 0h6z"],highlight:["M11.22 14.09l3.03-3.03.71.71L20 6.73l-5.71-5.71-5.04 5.04.71.71-3.02 3.04 4.28 4.28zm6.8 3.91h-16c-.55 0-1 .45-1 1s.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1zm-15-1h4.04c.28 0 .53-.11.71-.3l2.02-2.02-3.44-3.45-4.04 4.04c-.18.18-.3.44-.3.71.01.57.46 1.02 1.01 1.02z"],history:["M10 0C6.71 0 3.82 1.6 2 4.05V2c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.76C5.23 3.17 7.47 2 10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8c0-.55-.45-1-1-1s-1 .45-1 1c0 5.52 4.48 10 10 10s10-4.48 10-10S15.52 0 10 0zm0 3c-.55 0-1 .45-1 1v6c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L11 9.59V4c0-.55-.45-1-1-1z"],home:["M2 12v7c0 .55.45 1 1 1h5v-7h4v7h5c.55 0 1-.45 1-1v-7l-8-8-8 8zm17.71-2.71L17 6.59V3c0-.55-.45-1-1-1s-1 .45-1 1v1.59L10.71.3C10.53.11 10.28 0 10 0s-.53.11-.71.29l-9 9a1.003 1.003 0 001.42 1.42L10 2.41l8.29 8.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],"horizontal-bar-chart":["M1 1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1zm3 5h11c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1zm8 8H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zm7-6H4c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h15c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1z"],"horizontal-bar-chart-asc":["M1 9h11c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm0-5h9c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm18 12H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM1 14h14c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1z"],"horizontal-bar-chart-desc":["M10 16H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm2-5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h11c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm3-5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zm4-5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1z"],"horizontal-distribution":["M12 2H8c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM1 0C.45 0 0 .45 0 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm18 0c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z"],"id-number":["M2 5v10h16V5H2zm0-2h16c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2H2c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z","M8.88 12.38c-.17-.39-1.01-.66-1.56-.9-.56-.24-.48-.39-.5-.6v-.09c.19-.17.35-.4.45-.67 0 0 0-.02.01-.02l.06-.18c.13-.03.2-.17.23-.29.03-.05.09-.18.08-.33-.04-.18-.11-.27-.2-.3v-.03c0-.24-.02-.58-.06-.81-.01-.06-.02-.12-.04-.19-.08-.27-.25-.52-.48-.7C6.63 7.09 6.3 7 6 7s-.63.09-.87.27c-.23.17-.4.42-.48.7-.02.06-.03.13-.04.19-.04.22-.06.57-.06.81V9c-.09.03-.17.12-.19.31-.01.14.05.27.08.32.03.14.1.27.23.3.02.06.03.12.06.18v.01c.11.27.27.51.47.68v.08c-.02.2.04.35-.51.6-.56.24-1.39.51-1.56.9-.19.39-.12.62-.12.62h5.98c-.01 0 .06-.23-.11-.62zM12 7h4c.55 0 1 .45 1 1s-.45 1-1 1h-4c-.55 0-1-.45-1-1s.45-1 1-1zM12 11h4c.55 0 1 .45 1 1s-.45 1-1 1h-4c-.55 0-1-.45-1-1s.45-1 1-1z"],"image-rotate-left":["M10.5 13c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM14 7H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 10l-5-3-1 2-2-4-3 4.5V9h11v8zm3-15h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H16c1.1 0 2 .9 2 2v3c0 .55.45 1 1 1s1-.45 1-1V6c0-2.21-1.79-4-4-4z"],"image-rotate-right":["M5.29 4.29a1.003 1.003 0 001.42 1.42l2-2C8.89 3.53 9 3.28 9 3c0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l.3.29H4C1.79 2 0 3.79 0 6v3c0 .55.45 1 1 1s1-.45 1-1V6c0-1.1.9-2 2-2h1.59l-.3.29zM15.5 13c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM19 7H6c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 10l-5-3-1 2-2-4-3 4.5V9h11v8z"],import:["M9.29 15.71c.18.18.43.29.71.29s.53-.11.71-.29l5-5a1.003 1.003 0 00-1.42-1.42L11 12.59V1c0-.55-.45-1-1-1S9 .45 9 1v11.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42l5 5zM19 14c-.55 0-1 .45-1 1v3H2v-3c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z"],inbox:["M16.92 3.56l-.01-.02c-.16-.35-.5-.6-.91-.6H4c-.41 0-.76.25-.91.6l-.01.02L0 10.49v6.46c0 .55.45 1 1 1h18c.55 0 1-.45 1-1v-6.46l-3.08-6.93zM15 10.95c-.55 0-1 .45-1 1v1H6v-1c0-.55-.45-1-1-1H1.98l2.67-6h10.7l2.67 6H15z"],"inbox-filtered":["M10.262 3l1.958 1.958v.05H4.65l-2.67 5.997H5c.55 0 1 .45 1 .999v1h8v-1c0-.55.45-1 1-1h3.02l-.635-1.426.625-.63c.354-.353.598-.8.707-1.289L20 10.545v6.456c0 .55-.45.999-1 .999H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h6.262zm9.088-3a.642.642 0 01.46 1.1l-3.03 3.03v2.95c0 .18-.07.34-.19.46l-1.28 1.29c-.11.1-.27.17-.45.17-.35 0-.64-.29-.64-.64V4.13L11.19 1.1a.642.642 0 01.45-1.1h7.71z"],"inbox-geo":["M7.427 3a7.467 7.467 0 00-.411 2.009H4.65l-2.67 5.996H5c.55 0 1 .45 1 .999v1h8V13c.165.01.332 0 .5 0a7.48 7.48 0 005.5-2.4V17c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h3.427zm5.715-.596a.133.133 0 01-.193 0l-.374-.374a.133.133 0 010-.193.133.133 0 01.193 0l.373.374a.133.133 0 010 .193zm1.743.033c-.05 0-.088-.006-.088-.055 0-.05.038-.056.088-.056h.165c.05 0 .088.006.088.055 0 .05-.038.056-.088.056h-.165zm.539.632c-.05 0-.104-.044-.104-.094v-.23c0-.05.054-.094.104-.094.05 0 .104.044.104.094v.23c0 .05-.055.094-.104.094zm-3.575 2.304h.506l1.182 1.2c.006.005 0 .005 0 .01v.446c0 .187-.126.341-.319.341h-.098v.226c0 .192-.138.296-.33.296h.01v.792c0 .188-.181.336-.368.336s-.369-.149-.369-.335v-1.32h-.214c-.193 0-.308-.149-.308-.341V5.72c0-.192.115-.346.308-.346zM14.5 0C17.536 0 20 2.464 20 5.5S17.536 11 14.5 11A5.502 5.502 0 019 5.5C9 2.464 11.464 0 14.5 0zm0 9.9c2.431 0 4.4-1.969 4.4-4.4 0-.297-.027-.583-.099-.864h-.236c-.188 0-.336-.104-.347-.313h-.319c.11.104.231.209.231.346v.705c0 .088-.055.17-.11.23h-.022l-.011.006-.022.011-.666.643v1.21c0 .193-.104.33-.296.33h-.54c-.192 0-.319-.137-.319-.33V6.221a.915.915 0 00-.533-.518h-.671c-.192 0-.368-.143-.368-.335V4.68c0-.192.176-.346.368-.346l.193-.005.319-.32a.342.342 0 01.489 0l.319.32c.005 0 .005.005.005.005h.704c.16 0 .237-.16.341-.313v-.11l-.038.005h-.27a.159.159 0 01-.153-.16c0-.087.066-.159.154-.159h.269l.039.006V3.42s-.05-.038-.061-.038h-.302l-.067.076a.342.342 0 01-.489.011l-.066-.088h-.176l.248.259c.021.022.021.088 0 .11-.028.022-.067.028-.088.006l-.292-.276h-.127l-.363.325-.033-.006c-.038.11-.087.089-.143.089-.126 0-.225-.072-.225-.193 0-.127.099-.209.225-.209h.176v-.182c0-.088.061-.131.149-.131h.066v-.127c0-.143.149-.297.286-.297h.28c.16 0 .27-.115.27-.275V2.42c0-.016.055.017.055-.088h-.187l-.005.017-.308.33a.123.123 0 01-.177 0c-.049-.044-.049-.121 0-.171l.391-.385c.027-.022.06-.022.094-.022l.005.022h.869A4.376 4.376 0 0014.5 1.1a4.402 4.402 0 00-2.816 1.018h.583c.094 0 .165.066.165.159s-.072.16-.165.16h-.478c0 .104-.039.06-.039.066v.351h.429l.226-.252c.132-.127.346-.155.473-.022a.332.332 0 010 .473l-1.183 1.182-.011.011c-.005.005-.011.005-.016.011a.115.115 0 00-.034.022c-.005.006-.01 0-.016.006a.309.309 0 01-.176.038h-.347c-.12.104-.187.148-.187.27v.088c0 .016-.027.027-.027.043l.561.589c.06.06.055.154 0 .209a.143.143 0 01-.209 0l-.578-.578a.425.425 0 01-.082.011c-.154 0-.292-.12-.292-.274v-.358h-.016c-.104.374-.165.77-.165 1.177 0 2.431 1.969 4.4 4.4 4.4zm3.388-3.107c.077 0 .16.06.16.137v.424c0 .077-.083.137-.16.137s-.16-.06-.16-.137V6.93c0-.077.083-.137.16-.137zm-3.113-4.879c0 .187-.154.314-.335.314h-.374v.104c0 .11-.05.198-.16.198s-.16-.088-.16-.198V1.98c-.104-.022-.033-.028-.033-.055 0-.187.127-.325.314-.325h.407c.187 0 .341.127.341.314z"],"inbox-search":["M7.136 3a6.327 6.327 0 00-.098 2.009H4.65l-2.67 5.996H5c.55 0 1 .45 1 .999v1h8v-1c0-.55.45-1 1-1h1.076l1.14 1.14a2.767 2.767 0 001.974.806c.282 0 .554-.042.81-.12V17c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h3.136zm3.244 1.33c0 1.62 1.31 2.93 2.93 2.93s2.93-1.31 2.93-2.93-1.31-2.93-2.93-2.93-2.93 1.31-2.93 2.93zm6.47 2.43l2.89 2.85c.13.15.22.35.23.56 0 .43-.35.78-.78.78-.23 0-.42-.08-.56-.22l-2.87-2.87c-.17.1-.33.2-.51.29-.03.01-.06.03-.09.04-.18.07-.35.15-.55.21-.19.06-.37.11-.57.14-.05.01-.1.02-.14.02-.2.03-.39.05-.6.05A4.3 4.3 0 019 4.31C9 1.93 10.93.01 13.3 0c2.37 0 4.3 1.93 4.3 4.3 0 .21-.02.4-.05.6-.01.05-.01.09-.02.14-.04.2-.08.38-.14.58-.05.19-.13.36-.21.54-.01.03-.03.06-.04.09-.08.18-.18.34-.29.51z"],"inbox-update":["M10.083 3a6.04 6.04 0 00.001 2.009H4.65l-2.67 5.996H5c.55 0 1 .45 1 .999v1h8v-1c0-.55.45-1 1-1h3.02l-.53-1.19a5.97 5.97 0 001.824-.811L20 10.545v6.456c0 .55-.45.999-1 .999H1c-.55 0-1-.45-1-1v-6.455L3.08 3.62l.01-.02c.15-.35.5-.6.91-.6h6.083zM16 8a4 4 0 110-8 4 4 0 010 8z"],"info-sign":["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM9 4h2v2H9V4zm4 12H7v-1h2V8H8V7h3v8h2v1z"],inheritance:["M6 10c0 2.21 1.79 4 4 4h6.59l-2.29-2.29A.965.965 0 0114 11a1.003 1.003 0 011.71-.71l4 4c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-4 4a1.003 1.003 0 01-1.42-1.42l2.3-2.29H10c-3.31 0-6-2.69-6-6H1a1 1 0 01-1-1V1a1 1 0 011-1h8a1 1 0 011 1v8a1 1 0 01-1 1H6zM2 2v6h6V2H2z"],"inherited-group":["M1 9c.55 0 1 .45 1 1v4c0 1.1.9 2 2 2h2.59l-.3-.29a1.003 1.003 0 011.42-1.42l2 2c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-2 2A1.003 1.003 0 016 19c0-.28.11-.53.3-.71l.29-.29H4c-2.21 0-4-1.79-4-4v-4c0-.55.45-1 1-1zm6.996-9c.79 0 1.68.25 2.309.73a3.63 3.63 0 011.4 2.36c.11.6.17 1.52.17 2.15v.09c.22.09.42.32.47.82.03.39-.12.73-.2.87-.07.34-.27.71-.61.78-.04.16-.09.33-.15.48-.01.01-.02.05-.02.05-.27.71-.68 1.33-1.19 1.78 0 .08 0 .16.01.23.05.55-.15.95 1.33 1.6 1.469.66 3.698 1.35 4.178 2.39.45 1.05.27 1.67.27 1.67h-5.227a1.982 1.982 0 00-.319-.417l-2-2A2.003 2.003 0 005 15H4c-.548 0-1-.452-1-1v-1.462c.511-.213 1.023-.413 1.468-.608 1.479-.65 1.329-1.05 1.379-1.59l.01-.21c-.52-.45-.95-1.08-1.22-1.8l-.01-.01-.01-.03c-.07-.15-.12-.32-.16-.49-.34-.06-.54-.43-.62-.78-.08-.14-.24-.48-.2-.87.05-.51.26-.74.49-.83v-.08c0-.64.05-1.55.17-2.15a3.648 3.648 0 011.4-2.36C6.317.25 7.207 0 7.996 0zm5.997 3c.59 0 1.26.19 1.73.55.46.35.8.85.97 1.4.04.13.07.25.08.38.08.45.13 1.14.13 1.61v.07c.16.07.31.24.35.62.02.29-.09.55-.15.65-.05.26-.2.53-.46.59-.03.12-.07.25-.11.36-.01.01-.01.04-.01.04-.2.53-.51 1-.89 1.34 0 .06 0 .12.01.17.04.41-.11.71 1 1.19 1.099.5 2.768 1.01 3.128 1.79.34.79.2 1.25.2 1.25h-3.039V15c-.06-.33-.17-.69-.33-1.06-.45-.97-1.37-1.52-3.238-2.3-.17-.07-.76-.31-.77-.32-.1-.04-.2-.08-.28-.12.05-.14.04-.29.06-.45l.01-.16c-.25-.21-.47-.48-.65-.79.22-.34.41-.71.56-1.12l.028-.078-.002.013-.006.035.06-.15c.36-.26.6-.67.72-1.13.18-.37.29-.82.25-1.3-.05-.5-.21-.92-.47-1.22-.02-.53-.06-1.11-.12-1.59.38-.17.83-.26 1.24-.26z"],"inner-join":["M8.7 4.7C7.4 6 6.5 7.9 6.5 10s.8 4 2.2 5.3c-.8.5-1.7.7-2.7.7-3.3 0-6-2.7-6-6s2.7-6 6-6c1 0 1.9.2 2.7.7zm-3.34 9.25c-.55-1.2-.86-2.54-.86-3.95s.31-2.75.86-3.95a4.001 4.001 0 000 7.9zM14 4c3.3 0 6 2.7 6 6s-2.7 6-6 6c-1 0-1.9-.2-2.7-.7 1.3-1.3 2.2-3.2 2.2-5.3s-.8-3.9-2.2-5.3C12.1 4.2 13 4 14 4zm.6 2.05c.55 1.2.86 2.54.86 3.95s-.31 2.75-.86 3.95c1.9-.31 3.36-1.96 3.36-3.95S16.5 6.36 14.6 6.05zM10 5.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z"],insert:["M19 0H1C.4 0 0 .4 0 1v18c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V1c0-.6-.5-1-1-1zm-1 18H2V2h16v16zM5 11h4v4c0 .6.4 1 1 1s1-.4 1-1v-4h4c.6 0 1-.4 1-1s-.4-1-1-1h-4V5c0-.6-.4-1-1-1s-1 .4-1 1v4H5c-.6 0-1 .4-1 1s.4 1 1 1z"],intersection:["M13 4c-1.31 0-2.51.43-3.5 1.14A5.977 5.977 0 006 4c-3.31 0-6 2.69-6 6s2.69 6 6 6c1.31 0 2.51-.43 3.5-1.14.99.71 2.19 1.14 3.5 1.14 3.31 0 6-2.69 6-6s-2.69-6-6-6zm-4.93 9.41c-.61.37-1.31.59-2.07.59-2.21 0-4-1.79-4-4s1.79-4 4-4c.76 0 1.46.22 2.07.59C7.4 7.56 7 8.73 7 10s.4 2.44 1.07 3.41zM13 14c-.76 0-1.46-.22-2.07-.59C11.6 12.44 12 11.27 12 10s-.4-2.44-1.07-3.41C11.54 6.22 12.24 6 13 6c2.21 0 4 1.79 4 4s-1.79 4-4 4z"],"ip-address":["M6 3.66C6 5.69 10 11 10 11s4-5.31 4-7.34C13.99 1.64 12.21 0 10 0S6 1.64 6 3.66zM8 4c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zM14 13.5V13h-4v1h3v2h-2v1h3v-3.5zM3 12h14c.55 0 1 .45 1 1v6c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1v-6c0-.55.45-1 1-1zm4 1v6h1v-6H7zm3 1v5h1v-5h-1z"],issue:["M10 20C4.477 20 0 15.523 0 10S4.477 0 10 0s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 100-16 8 8 0 000 16zm1-2H9v-2h2v2zm0-3H9V4h2v9z"],"issue-closed":["M15.364 5.9a.997.997 0 01-.707-.293l-2.121-2.122a1 1 0 111.414-1.414l1.414 1.414L18.192.657a1 1 0 011.414 1.414l-3.535 3.536a.997.997 0 01-.707.292zM11.78.157a3.002 3.002 0 00-1.437 1.85 8 8 0 107.1 5.055l.042-.042 1.472-1.472A9.959 9.959 0 0120 10c0 5.523-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0c.608 0 1.202.054 1.78.158zM11 16H9v-2h2v2zm0-3H9V4h2v9z"],"issue-new":["M13.167.512a2.98 2.98 0 00-.131.524c-.74.115-1.39.5-1.848 1.052a8 8 0 106.724 6.724 2.997 2.997 0 001.052-1.848 2.98 2.98 0 00.524-.13A9.99 9.99 0 0120 10c0 5.523-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0a9.99 9.99 0 013.167.512zM11 16H9v-2h2v2zm0-3H9V4h2v9zm6-10h1.5a1 1 0 010 2H17v1.5a1 1 0 01-2 0V5h-1.5a1 1 0 010-2H15V1.5a1 1 0 012 0V3z"],italic:["M11.7 4H14c.6 0 1-.4 1-1s-.4-1-1-1H7c-.6 0-1 .4-1 1s.4 1 1 1h2.2L7.3 15H5c-.6 0-1 .4-1 1s.4 1 1 1h7c.6 0 1-.4 1-1s-.4-1-1-1H9.8l1.9-11z"],"join-table":["M19 6h-4V2c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h4v4c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zM6 12H2V9h4v3zm0-4H2V5h4v3zm7 9H7v-3h6v3zm0-4H7V9h6v4zm0-5H7V5h6v3zm5 9h-4v-3h4v3zm0-4h-4v-3h4v3z"],key:["M14 0c-3.31 0-6 2.69-6 6 0 1.11.32 2.14.85 3.03L.44 17.44a1.498 1.498 0 102.12 2.12l.79-.79.94.94c.18.18.43.29.71.29s.53-.11.71-.29l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-.94-.94 3.2-3.2A5.9 5.9 0 0014 12c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 9c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"],"key-backspace":["M19 3H7c-.28 0-.53.11-.71.29l-6 6C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l6 6c.18.18.43.29.71.29h12c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-2.29 9.29a1.003 1.003 0 01-1.42 1.42L13 11.41l-2.29 2.29c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71l2.3-2.29-2.3-2.29a1.003 1.003 0 011.42-1.42L13 8.59l2.29-2.29c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L14.41 10l2.3 2.29z"],"key-command":["M15.5 12H14V8h1.5C17.43 8 19 6.43 19 4.5S17.43 1 15.5 1 12 2.57 12 4.5V6H8V4.5C8 2.57 6.43 1 4.5 1S1 2.57 1 4.5 2.57 8 4.5 8H6v4H4.5C2.57 12 1 13.57 1 15.5S2.57 19 4.5 19 8 17.43 8 15.5V14h4v1.5c0 1.93 1.57 3.5 3.5 3.5s3.5-1.57 3.5-3.5-1.57-3.5-3.5-3.5zm0-9c.83 0 1.5.67 1.5 1.5S16.33 6 15.5 6 14 5.33 14 4.5 14.67 3 15.5 3zm-11 14c-.83 0-1.5-.67-1.5-1.5S3.67 14 4.5 14s1.5.67 1.5 1.5S5.33 17 4.5 17zm0-11C3.67 6 3 5.33 3 4.5S3.67 3 4.5 3 6 3.67 6 4.5 5.33 6 4.5 6zm7.5 6H8V8h4v4zm3.5 5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"],"key-control":["M16.71 7.29l-6-6C10.53 1.11 10.28 1 10 1s-.53.11-.71.29l-6 6a1.003 1.003 0 001.42 1.42L10 3.41l5.29 5.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71z"],"key-delete":["M19.71 9.29l-6-6A.997.997 0 0013 3H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.28 0 .53-.11.71-.29l6-6c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zm-9 3a1.003 1.003 0 01-1.42 1.42L7 11.41 4.71 13.7c-.18.19-.43.3-.71.3a1.003 1.003 0 01-.71-1.71L5.59 10l-2.3-2.29a1.003 1.003 0 011.42-1.42L7 8.59 9.29 6.3c.18-.19.43-.3.71-.3a1.003 1.003 0 01.71 1.71L8.41 10l2.3 2.29z"],"key-enter":["M18 2c-.55 0-1 .45-1 1v5c0 2.21-1.79 4-4 4H4.41L6.7 9.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L4.41 14H13c3.31 0 6-2.69 6-6V3c0-.55-.45-1-1-1z"],"key-escape":["M2 8c.55 0 1-.45 1-1V4.41l6.29 6.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 3H7c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1v5c0 .55.45 1 1 1zm9-6.94V3.1c3.39.49 6 3.38 6 6.9 0 3.87-3.13 7-7 7-3.52 0-6.41-2.61-6.9-6H1.06c.5 4.5 4.31 8 8.94 8a9 9 0 009-9c0-4.63-3.5-8.44-8-8.94z"],"key-option":["M13 4h6c.55 0 1-.45 1-1s-.45-1-1-1h-6c-.55 0-1 .45-1 1s.45 1 1 1zm6 12h-4.42L6.87 2.5l-.02.01A.977.977 0 006 2H1c-.55 0-1 .45-1 1s.45 1 1 1h4.42l7.71 13.5.01-.01c.18.3.49.51.86.51h5c.55 0 1-.45 1-1s-.45-1-1-1z"],"key-shift":["M17.74 10.35l-6.99-8.01-.01.01C10.56 2.14 10.3 2 10 2s-.56.14-.74.35l-.01-.01-7 8 .01.01A.95.95 0 002 11c0 .55.45 1 1 1h3v5c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-5h3c.55 0 1-.45 1-1 0-.25-.1-.48-.26-.65z"],"key-tab":["M19 13H4.41l2.29-2.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L2 12.59V10c0-.55-.45-1-1-1s-1 .45-1 1v8c0 .55.45 1 1 1s1-.45 1-1v-2.59l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L4.41 15H19c.55 0 1-.45 1-1s-.45-1-1-1zm0-12c-.55 0-1 .45-1 1v2.59L14.71 1.3A.965.965 0 0014 1a1.003 1.003 0 00-.71 1.71L15.59 5H1c-.55 0-1 .45-1 1s.45 1 1 1h14.59L13.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 7.41V10c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1z"],"known-vehicle":["M19 4a.997.997 0 00-.707.293L14 8.586l-2.293-2.293a1 1 0 00-1.414 1.414l3 3a.997.997 0 001.414 0l5-5A1 1 0 0019 4zm-2.048 7.291c.011.072.048.134.048.209a1.5 1.5 0 01-1.5 1.5c-.225 0-.433-.057-.624-.145-.279.085-.57.145-.876.145a2.99 2.99 0 01-2.121-.879l-3-3 .007-.007A3.027 3.027 0 018.184 8H4V7l1-3h10l.19.568 1.307-1.308c-.336-.356-.758-.658-1.165-.772 0 0-1.74-.488-5.332-.488s-5.332.488-5.332.488c-.67.188-1.424.864-1.674 1.502L2.99 4H3L2 7H1a1 1 0 000 2h.333l-.28.84L1 10v7.5a1.5 1.5 0 103 0V17h12v.5a1.5 1.5 0 003 0V10l-.19-.568-1.858 1.86zM4.5 13a1.5 1.5 0 110-3 1.5 1.5 0 010 3z"],"lab-test":["M13 2a1 1 0 010 2v4l4 8v1a1 1 0 01-1 1H4a1 1 0 01-1-1v-1l4-8V4a1 1 0 110-2h6zm-2 2H9v4l-2 4h6l-2-4V4z"],label:["M3 12h14v-1H3v1zm11-9H1c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V9l-6-6zm4 12H2V5h11v3H3v1h10v1h5v5zm-4-6V5l4 4h-4z"],layer:["M19.5 9.1l-9-5c-.2-.1-.3-.1-.5-.1s-.3 0-.5.1l-9 5c-.3.2-.5.5-.5.9s.2.7.5.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9s-.2-.7-.5-.9z"],"layer-outline":["M9.514 4.126l-9 5a1 1 0 000 1.748l9 5a1 1 0 00.972 0l9-5a1 1 0 000-1.748l-9-5a1 1 0 00-.972 0zM10 6.144l6.94 3.855L10 13.855 3.059 9.999 10 6.144z"],layers:["M.5 6.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9s-.2-.7-.5-.9l-9-5c-.2-.1-.3-.1-.5-.1s-.3 0-.5.1l-9 5c-.3.2-.5.5-.5.9s.2.7.5.9z","M19 9c-.2 0-.3 0-.5.1L10 13.9 1.5 9.1C1.3 9 1.2 9 1 9c-.6 0-1 .4-1 1 0 .4.2.7.5.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9 0-.6-.4-1-1-1z","M19 13c-.2 0-.3 0-.5.1L10 17.9l-8.5-4.7c-.2-.2-.3-.2-.5-.2-.6 0-1 .4-1 1 0 .4.2.7.5.9l9 5c.2.1.3.1.5.1s.3 0 .5-.1l9-5c.3-.2.5-.5.5-.9 0-.6-.4-1-1-1z"],layout:["M18 6c-1.1 0-2 .9-2 2 0 .37.11.71.28 1.01l-2.27 2.27c-.3-.17-.64-.28-1.01-.28-.93 0-1.71.64-1.93 1.5H8.93c-.22-.86-1-1.5-1.93-1.5-.37 0-.71.11-1.01.28L3.72 9.01C3.89 8.71 4 8.37 4 8c0-.34-.09-.66-.24-.94l3.66-3.38c.31.2.68.32 1.08.32 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .34.09.66.24.94L3.08 6.32C2.77 6.12 2.4 6 2 6 .9 6 0 6.9 0 8s.9 2 2 2c.37 0 .71-.11 1.01-.28l2.27 2.27c-.17.3-.28.64-.28 1.01s.11.71.28 1.01l-2.27 2.27C2.71 16.11 2.37 16 2 16c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.37-.11-.71-.28-1.01l2.27-2.27c.3.17.64.28 1.01.28.93 0 1.71-.64 1.93-1.5h2.14c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2 0-.37-.11-.71-.28-1.01l2.27-2.27c.3.17.64.28 1.01.28 1.1 0 2-.9 2-2s-.9-2-2-2z"],"layout-auto":["M18 13c-.53 0-1.01.21-1.37.55L11.9 10.6c.06-.19.1-.39.1-.6s-.04-.41-.1-.6l4.72-2.95c.37.34.85.55 1.38.55 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .21.04.41.1.6l-4.73 2.96c-.24-.23-.54-.4-.87-.48V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S8 .9 8 2c0 .93.64 1.71 1.5 1.93v4.14c-.33.09-.63.26-.87.48L3.9 5.6c.06-.19.1-.39.1-.6 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.53 0 1.01-.21 1.37-.55L8.1 9.4c-.06.19-.1.39-.1.6s.04.41.1.6l-4.72 2.95C3.01 13.21 2.53 13 2 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.21-.04-.41-.1-.6l4.73-2.96c.24.23.54.4.87.48v4.14C8.64 16.29 8 17.07 8 18c0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-4.14c.33-.09.63-.26.87-.48l4.73 2.96c-.06.18-.1.38-.1.59 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z"],"layout-balloon":["M18 16c-.14 0-.28.02-.42.05l-1.73-3.45c.69-.45 1.14-1.22 1.14-2.1s-.46-1.65-1.14-2.1l1.73-3.45c.14.03.28.05.42.05 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .6.27 1.13.69 1.5l-1.77 3.54c-.14-.02-.28-.04-.42-.04a2.5 2.5 0 00-2.45 2h-4.1A2.5 2.5 0 005.5 8c-.14 0-.28.02-.42.04L3.31 4.5C3.73 4.13 4 3.6 4 3c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.14 0 .28-.02.42-.05L4.14 8.4C3.46 8.85 3 9.62 3 10.5s.46 1.65 1.14 2.1l-1.73 3.45A1.84 1.84 0 002 16c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2c0-.6-.27-1.13-.69-1.5l1.77-3.54c.14.02.28.04.42.04a2.5 2.5 0 002.45-2h4.1a2.5 2.5 0 002.45 2c.14 0 .28-.02.42-.04l1.77 3.54c-.42.37-.69.9-.69 1.5 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2z"],"layout-circle":["M18.3 8c-.2-.9-.6-1.7-1.1-2.5.2-.3.3-.7.3-1 0-1.1-.9-2-2-2-.4 0-.7.1-1 .3-.8-.5-1.6-.8-2.5-1.1-.1-1-1-1.7-2-1.7S8.2.8 8 1.7c-.9.3-1.7.6-2.5 1.1-.3-.2-.7-.3-1-.3-1.1 0-2 .9-2 2 0 .4.1.7.3 1-.5.8-.8 1.6-1.1 2.5C.8 8.2 0 9 0 10s.8 1.8 1.7 2c.2.9.6 1.7 1.1 2.5-.2.3-.3.7-.3 1 0 1.1.9 2 2 2 .4 0 .7-.1 1-.3.8.5 1.6.8 2.5 1.1.1 1 1 1.7 2 1.7s1.8-.8 2-1.7c.9-.2 1.7-.6 2.5-1.1.3.2.7.3 1 .3 1.1 0 2-.9 2-2 0-.4-.1-.7-.3-1 .5-.8.8-1.6 1.1-2.5 1-.1 1.7-1 1.7-2s-.8-1.8-1.7-2zm-1.8 5.8c-.3-.2-.6-.3-1-.3-1.1 0-2 .9-2 2 0 .4.1.7.3 1-.6.3-1.2.6-1.9.8-.3-.7-1-1.3-1.9-1.3-.8 0-1.6.5-1.9 1.3-.7-.2-1.3-.4-1.9-.8.2-.3.3-.6.3-1 0-1.1-.9-2-2-2-.4 0-.7.1-1 .3-.3-.6-.6-1.2-.8-1.9.8-.3 1.3-1.1 1.3-1.9s-.5-1.6-1.2-1.8c.2-.7.4-1.3.8-1.9.3.2.6.3 1 .3 1.1 0 2-.9 2-2 0-.4-.1-.7-.3-1 .6-.3 1.2-.6 1.9-.8.2.7 1 1.2 1.8 1.2s1.6-.5 1.9-1.3c.7.2 1.3.4 1.9.8-.2.3-.3.6-.3 1 0 1.1.9 2 2 2 .4 0 .7-.1 1-.3.3.6.6 1.2.8 1.9-.8.3-1.3 1.1-1.3 1.9s.5 1.6 1.2 1.8c-.1.7-.4 1.4-.7 2z"],"layout-grid":["M2 0a2 2 0 100 4 2 2 0 100-4zM10 0a2 2 0 100 4 2 2 0 100-4zM18 0a2 2 0 100 4 2 2 0 100-4zM18 8a2 2 0 100 4 2 2 0 100-4zM18 16a2 2 0 100 4 2 2 0 100-4zM10 16a2 2 0 100 4 2 2 0 100-4zM2 16a2 2 0 100 4 2 2 0 100-4zM2 8a2 2 0 100 4 2 2 0 100-4zM10 8a2 2 0 100 4 2 2 0 100-4z"],"layout-group-by":["M2 2a2 2 0 100 4 2 2 0 100-4zM18 0a2 2 0 100 4 2 2 0 100-4zM18 8a2 2 0 100 4 2 2 0 100-4zM18 16a2 2 0 100 4 2 2 0 100-4zM2 14a2 2 0 100 4 2 2 0 100-4zM2 8a2 2 0 100 4 2 2 0 100-4zM13 12a2 2 0 100 4 2 2 0 100-4zM13 4a2 2 0 100 4 2 2 0 100-4z"],"layout-hierarchy":["M18.5 16.07v-4.14c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2-.93 0-1.71.64-1.93 1.5h-4.14c-.18-.7-.73-1.25-1.43-1.43V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S8 .9 8 2c0 .93.64 1.71 1.5 1.93v4.14c-.7.18-1.25.73-1.43 1.43H3.93C3.71 8.64 2.93 8 2 8c-1.1 0-2 .9-2 2 0 .93.64 1.71 1.5 1.93v4.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-4.14c.7-.18 1.25-.73 1.43-1.43h4.14c.18.7.73 1.25 1.43 1.43v4.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93v-4.14c.7-.18 1.25-.73 1.43-1.43h4.14c.18.7.73 1.25 1.43 1.43v4.14c-.86.22-1.5 1-1.5 1.93 0 1.1.9 2 2 2s2-.9 2-2c0-.93-.64-1.71-1.5-1.93z"],"layout-linear":["M16.5 7a2.5 2.5 0 00-2.45 2h-2.1a2.5 2.5 0 00-4.9 0h-2.1a2.5 2.5 0 100 1h2.1a2.5 2.5 0 004.9 0h2.1a2.5 2.5 0 102.45-3z"],"layout-skew-grid":["M2 0a2 2 0 100 4 2 2 0 100-4zM18 0a2 2 0 100 4 2 2 0 100-4zM18 8a2 2 0 100 4 2 2 0 100-4zM18 16a2 2 0 100 4 2 2 0 100-4zM2 16a2 2 0 100 4 2 2 0 100-4zM2 8a2 2 0 100 4 2 2 0 100-4zM10 12a2 2 0 100 4 2 2 0 100-4zM10 4a2 2 0 100 4 2 2 0 100-4z"],"layout-sorted-clusters":["M2 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm16 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-8 4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],learning:["M10.551 1.127a1.256 1.256 0 00-1.102 0L.456 5.89c-.608.309-.608.913 0 1.222l8.993 4.762c.334.17.767.17 1.102 0l8.992-4.762c.61-.309.61-.913 0-1.222l-8.992-4.762z","M18 6.5l.016 4.514c.002.548.447.99.994.99a.99.99 0 00.99-.99V6.5h-2zM3.366 10.033l6.401 3.358a.5.5 0 00.465 0l6.406-3.358a.25.25 0 01.366.221v5.109a.25.25 0 01-.139.224l-6.64 3.302a.5.5 0 01-.446 0l-6.64-3.302A.25.25 0 013 15.363v-5.108a.25.25 0 01.366-.222z"],"left-join":["M8.7 4.7C7.4 6 6.5 7.9 6.5 10s.8 4 2.2 5.3c-.8.5-1.7.7-2.7.7-3.3 0-6-2.7-6-6s2.7-6 6-6c1 0 1.9.2 2.7.7zM14 4c3.3 0 6 2.7 6 6s-2.7 6-6 6c-1 0-1.9-.2-2.7-.7 1.3-1.3 2.2-3.2 2.2-5.3s-.8-3.9-2.2-5.3C12.1 4.2 13 4 14 4zm.6 2.05c.55 1.2.86 2.54.86 3.95s-.31 2.75-.86 3.95c1.9-.31 3.36-1.96 3.36-3.95S16.5 6.36 14.6 6.05zM10 5.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z"],"less-than":["M7.162 10l9.154 3.052a1 1 0 01-.632 1.897l-12-4c-.912-.304-.912-1.594 0-1.897l12-4a1 1 0 01.632 1.897L7.162 10z"],"less-than-or-equal-to":["M16.316 11.051L7.162 8l9.154-3.051a1 1 0 10-.632-1.898l-12 4c-.912.304-.912 1.594 0 1.898l12 4a1 1 0 10.632-1.898zM16 15H4a1 1 0 100 2h12a1 1 0 100-2z"],lifesaver:["M8.143 14.644L7.028 17.43c.919.368 1.922.57 2.972.57s2.053-.202 2.972-.57l-1.115-2.786A4.986 4.986 0 0110 15a4.986 4.986 0 01-1.857-.356zm-2.787-2.787A4.986 4.986 0 015 10c0-.656.126-1.283.356-1.857L2.57 7.028A7.978 7.978 0 002 10c0 1.05.202 2.053.57 2.972l2.786-1.115zm2.787-6.5A4.986 4.986 0 0110 5c.656 0 1.283.126 1.857.356l1.115-2.786A7.978 7.978 0 0010 2c-1.05 0-2.053.202-2.972.57l1.115 2.786zm6.5 2.786c.23.574.357 1.2.357 1.857 0 .656-.126 1.283-.356 1.857l2.786 1.115c.368-.919.57-1.922.57-2.972s-.202-2.053-.57-2.972l-2.786 1.115zM10 13a3 3 0 100-6 3 3 0 000 6zm0 7C4.477 20 0 15.523 0 10S4.477 0 10 0s10 4.477 10 10-4.477 10-10 10z"],lightbulb:["M6.33 13.39c0 .34.27.61.6.61h6.13c.33 0 .6-.27.6-.61C14.03 9.78 16 9.4 16 6.09 16 2.72 13.31 0 10 0S4 2.72 4 6.09c0 3.31 1.97 3.69 2.33 7.3zM13 15H7c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm-1 3H8c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1z"],link:["M10.85 11.98l-4.44 4.44-1 1c-.36.36-.86.58-1.41.58-1.1 0-2-.9-2-2 0-.55.22-1.05.59-1.41l5.44-5.44C7.69 9.06 7.36 9 7 9c-1.11 0-2.09.46-2.82 1.18l-.01-.01-3 3 .01.01C.46 13.91 0 14.89 0 16c0 2.21 1.79 4 4 4 1.11 0 2.09-.46 2.82-1.18l.01.01 3-3-.01-.01C10.54 15.09 11 14.11 11 13c0-.36-.06-.69-.15-1.02zM20 4c0-2.21-1.79-4-4-4-1.11 0-2.09.46-2.82 1.18l-.01-.01-3 3 .01.01C9.46 4.91 9 5.89 9 7c0 .36.06.69.15 1.02l4.44-4.44 1-1c.36-.36.86-.58 1.41-.58 1.1 0 2 .9 2 2 0 .55-.22 1.05-.59 1.41l-5.44 5.44c.34.09.67.15 1.03.15 1.11 0 2.09-.46 2.82-1.18l.01.01 3-3-.01-.01C19.54 6.09 20 5.11 20 4zM5 14a1.003 1.003 0 001.71.71l8-8a1.003 1.003 0 00-1.42-1.42l-2 2-2 2-2 2-2 2c-.18.18-.29.43-.29.71z"],list:["M1.03 1C.46 1 0 1.46 0 2.03v.95C0 3.54.46 4 1.03 4h17.95C19.54 4 20 3.54 20 2.97v-.94C20 1.46 19.54 1 18.97 1H1.03zM0 17.97C0 18.54.46 19 1.03 19h17.95c.56 0 1.03-.46 1.03-1.03v-.95c0-.56-.46-1.03-1.03-1.03H1.03C.46 16 0 16.46 0 17.03v.94zM0 12.97C0 13.54.46 14 1.03 14h17.95c.56 0 1.03-.46 1.03-1.03v-.95c0-.56-.46-1.03-1.03-1.03H1.03C.46 11 0 11.46 0 12.03v.94zM0 7.97C0 8.54.46 9 1.03 9h17.95C19.54 9 20 8.54 20 7.97v-.94C20 6.46 19.54 6 18.97 6H1.03C.46 6 0 6.46 0 7.03v.94z"],"list-columns":["M0 2.973v-.936C0 1.468.46 1.01 1.029 1H7.97C8.541 1 9 1.468 9 2.027v.946C9 3.542 8.53 4 7.971 4H1.03C.459 4 0 3.542 0 2.973zm0 5v-.936C0 6.468.46 6.01 1.029 6H7.97C8.541 6 9 6.468 9 7.027v.946C9 8.542 8.53 9 7.971 9H1.03C.459 9 0 8.542 0 7.973zm0 5v-.936C0 11.468.46 11.01 1.029 11H7.97C8.541 11 9 11.468 9 12.027v.946C9 13.542 8.53 14 7.971 14H1.03C.459 14 0 13.542 0 12.973zm0 5v-.936C0 16.468.46 16.01 1.029 16H7.97C8.541 16 9 16.468 9 17.027v.946C9 18.542 8.53 19 7.971 19H1.03C.459 19 0 18.542 0 17.973zm11-15v-.936c0-.569.46-1.027 1.029-1.037h6.942C19.541 1 20 1.468 20 2.027v.946C20 3.542 19.53 4 18.971 4H12.03C11.459 4 11 3.542 11 2.973zm0 5v-.936c0-.569.46-1.027 1.029-1.037h6.942C19.541 6 20 6.468 20 7.027v.946C20 8.542 19.53 9 18.971 9H12.03C11.459 9 11 8.542 11 7.973zm0 5v-.936c0-.569.46-1.027 1.029-1.037h6.942c.57 0 1.029.468 1.029 1.027v.946c0 .569-.47 1.027-1.029 1.027H12.03c-.57 0-1.029-.458-1.029-1.027zm0 5v-.936c0-.569.46-1.027 1.029-1.037h6.942c.57 0 1.029.468 1.029 1.027v.946c0 .569-.47 1.027-1.029 1.027H12.03c-.57 0-1.029-.458-1.029-1.027z"],"list-detail-view":["M8 6H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM8 1H1c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm11 0h-7c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1z"],locate:["M10 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm9 1h-1.07c-.45-3.61-3.32-6.45-6.93-6.91V1c0-.55-.45-1-1-1S9 .45 9 1v1.09C5.39 2.55 2.52 5.39 2.07 9H1c-.55 0-1 .45-1 1s.45 1 1 1h1.07c.45 3.61 3.32 6.45 6.93 6.91V19c0 .55.45 1 1 1s1-.45 1-1v-1.09c3.61-.46 6.48-3.29 6.93-6.91H19c.55 0 1-.45 1-1s-.45-1-1-1zm-4 2h.9a5.98 5.98 0 01-4.9 4.91V15c0-.55-.45-1-1-1s-1 .45-1 1v.91A5.98 5.98 0 014.1 11H5c.55 0 1-.45 1-1s-.45-1-1-1h-.9A5.98 5.98 0 019 4.09V5c0 .55.45 1 1 1s1-.45 1-1v-.91A5.98 5.98 0 0115.9 9H15c-.55 0-1 .45-1 1s.45 1 1 1z"],lock:["M15.93 9H14V4.99c0-2.21-1.79-4-4-4s-4 1.79-4 4V9H3.93c-.55 0-.93.44-.93.99v8c0 .55.38 1.01.93 1.01h12c.55 0 1.07-.46 1.07-1.01v-8c0-.55-.52-.99-1.07-.99zM8 9V4.99c0-1.1.9-2 2-2s2 .9 2 2V9H8z"],"log-in":["M19 0h-8c-.55 0-1 .45-1 1s.45 1 1 1h7v16h-7c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 10c0-.28-.11-.53-.29-.71l-5-5a1.003 1.003 0 00-1.42 1.42L11.59 9H1c-.55 0-1 .45-1 1s.45 1 1 1h10.59L8.3 14.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l5-5c.18-.18.29-.43.29-.71z"],"log-out":["M19.71 9.29l-5-5a1.003 1.003 0 00-1.42 1.42L16.59 9H6c-.55 0-1 .45-1 1s.45 1 1 1h10.59l-3.29 3.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l5-5c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM9 18H2V2h7c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1z"],manual:["M20 1.1a.976.976 0 00-.83-.88C15.15-.43 12.07.34 10 2.5 7.93.34 4.85-.43.84.22.37.3.03.67 0 1.1v15.01c0 .07 0 .14.01.21.09.52.61.88 1.15.79 3.85-.62 6.4.16 8 2.46.02.02.03.04.05.07.02.02.04.04.06.07l.01.01a1.07 1.07 0 00.28.19c.01 0 .01.01.02.01.03.01.07.03.1.04.01 0 .02.01.04.01.03.01.07.02.1.02.01 0 .02 0 .04.01H10c.04 0 .09 0 .13-.01.01 0 .03 0 .04-.01.03-.01.06-.01.1-.02.01 0 .03-.01.04-.01.03-.01.07-.02.1-.04.01 0 .02-.01.03-.01.07-.03.13-.07.19-.11.01 0 .01-.01.02-.01.02-.02.04-.03.06-.05.01-.01.02-.02.03-.02l.05-.05c.01-.01.02-.02.02-.03.01-.02.02-.03.04-.05 1.61-2.3 4.15-3.09 8-2.46.54.09 1.06-.26 1.15-.79-.01-.05 0-.09 0-.13V1.1zM9 16.63c-1.78-1.31-4.12-1.83-7-1.55V2c3.26-.37 5.51.39 7 2.35v12.28zm9-1.56c-2.88-.28-5.22.24-7 1.55V4.34c1.49-1.96 3.74-2.71 7-2.35v13.08z"],"manually-entered-data":["M1 12h4.34l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm16.77-3.94l1.65-1.65c.36-.36.58-.86.58-1.41 0-1.1-.9-2-2-2-.55 0-1.05.22-1.41.59l-1.65 1.65 2.83 2.82zM1 4h12.34l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zM0 15c0 .55.45 1 1 1h.34l2-2H1c-.55 0-1 .45-1 1zm1-7h8.34l2-2H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 2h-.34l-2 2H19c.55 0 1-.45 1-1s-.45-1-1-1zm0 4h-4.34l-2 2H19c.55 0 1-.45 1-1s-.45-1-1-1zM4 19l4.41-1.59-2.81-2.79L4 19zM14.23 5.94l-7.65 7.65 2.83 2.83 7.65-7.65-2.83-2.83z"],map:["M19.54 4.18l.01-.02-6-4-.01.02C13.39.08 13.21 0 13 0s-.39.08-.54.18l-.01-.02L7 3.8 1.55.17l-.01.01A.969.969 0 001 0C.45 0 0 .45 0 1v14c0 .35.19.64.46.82l-.01.02 6 4 .01-.02c.15.1.33.18.54.18s.39-.08.54-.18l.01.02L13 16.2l5.45 3.63.01-.02c.15.11.33.19.54.19.55 0 1-.45 1-1V5c0-.35-.19-.64-.46-.82zM6 17.13l-4-2.67V2.87l4 2.67v11.59zm6-2.67l-4 2.67V5.54l4-2.67v11.59zm6 2.67l-4-2.67V2.87l4 2.67v11.59z"],"map-create":["M18 9.22v7.91l-4-2.67V9.22c-.61-.55-1-1.33-1-2.22-.35 0-.69-.07-1-.18v7.65l-4 2.67V5.54l2.02-1.35c0-.06-.02-.13-.02-.19 0-1.66 1.34-3 3-3 0-.34.07-.66.17-.97C13.12.02 13.06 0 13 0c-.21 0-.39.08-.54.18l-.01-.02L7 3.8 1.55.17l-.01.01A.969.969 0 001 0C.45 0 0 .45 0 1v14c0 .35.19.64.46.82l-.01.02 6 4 .01-.02c.15.1.33.18.54.18s.39-.08.54-.18l.01.02L13 16.2l5.45 3.63.01-.02c.15.11.33.19.54.19.55 0 1-.45 1-1V6.82c-.31.11-.65.18-1 .18 0 .89-.39 1.67-1 2.22zM6 17.13l-4-2.67V2.87l4 2.67v11.59zM12 4c0 .55.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V5h2c.55 0 1-.45 1-1s-.45-1-1-1h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1z"],"map-marker":["M9.98 0c-3.87 0-7 2.98-7 6.67 0 3.68 7 13.33 7 13.33s7-9.65 7-13.33c0-3.68-3.14-6.67-7-6.67zm0 10c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z"],maximize:["M19 0h-5c-.55 0-1 .45-1 1s.45 1 1 1h2.59L11.3 7.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L18 3.41V6c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zM8 11c-.28 0-.53.11-.71.29L2 16.59V14c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1H3.41l5.29-5.29c.19-.18.3-.43.3-.71 0-.55-.45-1-1-1z"],media:["M15 9c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4-7H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 13l-6-5-2 2-4-5-4 8V4h16v11z"],menu:["M1 6h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm18 3H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],"menu-closed":["M8 6h11c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zM4 6c-.28 0-.53.11-.71.29l-3 3C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l3 3A1.003 1.003 0 005 13V7c0-.55-.45-1-1-1zm15 8H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm0-5H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1z"],"menu-open":["M12 9H1c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm0 5H1c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm0-10H1c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm7.71 5.29l-3-3A1.003 1.003 0 0015 7v6a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],"merge-columns":["M6.71 6.29a1.003 1.003 0 00-1.42 1.42L6.59 9H2V2h5v2.18c.42.15.8.39 1.11.7l.01-.01.88.89V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-4.76l-.88.88-.01-.01c-.31.31-.69.56-1.11.71V18H2v-7h4.59L5.3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3zM19 0h-7c-.55 0-1 .45-1 1v4.76l.88-.88.01.01c.31-.31.69-.55 1.11-.7V2h5v7h-4.59l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L13.41 11H18v7h-5v-2.18c-.42-.15-.8-.39-1.11-.7l-.01.01-.88-.89V19c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],"merge-links":["M10 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm8-5c-.93 0-1.71.64-1.93 1.5H14V4c0-2.21-1.79-4-4-4S6 1.79 6 4v5.5H3.93C3.71 8.64 2.93 8 2 8c-1.1 0-2 .9-2 2s.9 2 2 2c.93 0 1.71-.64 1.93-1.5H6V16c0 2.21 1.79 4 4 4s4-1.79 4-4v-5.5h2.07c.22.86 1 1.5 1.93 1.5 1.1 0 2-.9 2-2s-.9-2-2-2zm-5 8c0 1.66-1.34 3-3 3s-3-1.34-3-3V4c0-1.66 1.34-3 3-3s3 1.34 3 3v12zM10 3c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],minimize:["M8 11H3c-.55 0-1 .45-1 1s.45 1 1 1h2.59L.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 14.41V17c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zM20 1a1.003 1.003 0 00-1.71-.71L13 5.59V3c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1h-2.59l5.29-5.29c.19-.18.3-.43.3-.71z"],minus:["M16 9H4c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1z"],"mobile-phone":["M15 0H5c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 19c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4-3H6V3h8v13z"],"mobile-video":["M19 5c-.28 0-.53.11-.71.29L15 8.59V5c0-.55-.45-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h13c.55 0 1-.45 1-1v-3.59l3.29 3.29c.18.19.43.3.71.3.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z"],modal:["M19 1a1 1 0 011 1v16a1 1 0 01-1 1H1a1 1 0 01-1-1V2a1 1 0 011-1h18zm-1 4H2v12h16V5zm-3-3h-2v2h2V2zm3 0h-2v2h2V2z"],"modal-filled":["M20 5v13a1 1 0 01-1 1H1a1 1 0 01-1-1V5h20zm-3-4h2a1 1 0 011 1v1h-3V1zm-2 2H0V2a1 1 0 011-1h14v2z"],moon:["M19 14.15A9.94 9.94 0 019.94 20C4.45 20 0 15.55 0 10.06 0 6.03 2.4 2.56 5.85 1a9.811 9.811 0 00-.88 4.09c0 5.49 4.45 9.94 9.94 9.94 1.46 0 2.84-.31 4.09-.88z"],more:["M3.5 8a2.5 2.5 0 100 5 2.5 2.5 0 100-5zM17.5 8a2.5 2.5 0 100 5 2.5 2.5 0 100-5zM10.5 8a2.5 2.5 0 100 5 2.5 2.5 0 100-5z"],mountain:["M20 16H4l7-11h1l2 2h1l5 9zm-4-5l-1.5-3h-1l-1-1-1-1L8 11.5l3-1.5 1 1 1-1 3 1zM8.055 8L2.79 16H0l7-8h1.055z"],move:["M19.71 9.29l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 9H11V3.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3C10.53.11 10.28 0 10 0s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L9 3.41V9H3.41L4.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 11H9v5.59L7.71 15.3A.965.965 0 007 15a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3a1.003 1.003 0 00-1.42-1.42L11 16.59V11h5.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71z"],mugshot:["M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18h-.07c-.05-.2-.12-.42-.22-.67-.46-1.05-2.68-1.75-4.16-2.4-1.48-.65-1.28-1.05-1.33-1.59-.01-.07-.01-.15-.01-.23.51-.45.92-1.07 1.19-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.34-.07.54-.44.61-.78.08-.14.23-.48.2-.87-.05-.5-.25-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5a3.67 3.67 0 00-1.29-1.86C11.7 3.25 10.81 3 10.02 3s-1.68.25-2.31.73c-.61.47-1.07 1.13-1.29 1.86-.05.16-.09.33-.11.5-.12.6-.17 1.51-.17 2.14v.08c-.24.09-.44.32-.49.83-.04.39.12.73.2.87.08.35.28.72.63.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.7 1.35 1.22 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.38 1.59-1.48.65-3.7 1.35-4.16 2.4-.12.27-.18.49-.23.69H2V2h16v16z"],"multi-select":["M19 3H7c-.55 0-1 .45-1 1v1h12v6h1c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-6 6H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm-1 6H2v-4h10v4zm4-9H4c-.55 0-1 .45-1 1v1h12v6h1c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z"],music:["M19 0c-.08 0-.16.03-.24.05V.03l-12 3v.02C6.33 3.16 6 3.53 6 4v11.35c-.59-.22-1.27-.35-2-.35-2.21 0-4 1.12-4 2.5S1.79 20 4 20c1.94 0 3.55-.86 3.92-2H8V7.78l10-2.5v7.07c-.59-.22-1.27-.35-2-.35-2.21 0-4 1.12-4 2.5s1.79 2.5 4 2.5c1.94 0 3.55-.86 3.92-2H20V1c0-.55-.45-1-1-1z"],"new-drawing":["M18.7 13.7c.5 0 1 .4 1 1 0 .257-.073.44-.22.614l-.08.086-4 4c-.2.2-.4.3-.7.3-.6 0-1-.5-1-1 0-.257.073-.44.22-.614L14 18l4-4c.2-.2.4-.3.7-.3zM1.8 0l8.378 2.982A3.003 3.003 0 0013 7a3.003 3.003 0 003.877 2.87l.723 2.53.049.06a.41.41 0 01.051.24c0 .167-.07.403-.208.593l-.092.107-4 4c-.2.2-.4.3-.7.3-.075 0-.15-.056-.225-.084L12.4 17.6l-7-2-.112-.042c-.223-.094-.431-.244-.542-.45L4.7 15 0 1.8l.5-.6L7 7.7c-.2.3-.3.6-.3 1 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2a1.68 1.68 0 00-.871.22L7.7 7 1.2.5l.6-.5zM16 0c.55 0 1 .45 1 1v2h2c.55 0 1 .45 1 1s-.45 1-1 1h-2v2c0 .432-.278.803-.664.941l-.01.004A.989.989 0 0116 8c-.55 0-1-.45-1-1V5h-2c-.55 0-1-.45-1-1l.007-.116C12.065 3.388 12.489 3 13 3h2V1c0-.55.45-1 1-1z"],"new-grid-item":["M8 0H1C.45 0 0 .45 0 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm0 11H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1v-7c0-.55-.45-1-1-1zm6 7h-1v-1c0-.55-.45-1-1-1s-1 .45-1 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1s-.45-1-1-1zm5-7h-2c-.55 0-1 .45-1 1s.45 1 1 1h1v1c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1zm0-11h-7c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-5 11h-2c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1s1-.45 1-1v-1h1c.55 0 1-.45 1-1s-.45-1-1-1zm5 5c-.55 0-1 .45-1 1v1h-1c-.55 0-1 .45-1 1s.45 1 1 1h2c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1z"],"new-layer":["M11.513 2.663A2 2 0 0013 6h1v1a2 2 0 104 0v-.733l1.5.833c.3.2.5.5.5.9s-.2.7-.5.9l-9 5c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5C.2 8.7 0 8.4 0 8s.2-.7.5-.9l9-5c.2-.1.3-.1.5-.1s.3 0 .5.1l1.013.563zM17 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5h-2a1 1 0 010-2h2V1a1 1 0 012 0v2z"],"new-layers":["M17 3h2a1 1 0 010 2h-2v2a1 1 0 01-2 0V5h-2a1 1 0 010-2h2V1a1 1 0 012 0v2zm-1.252 5.984L10.5 11.9c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5C.2 6.7 0 6.4 0 6s.2-.7.5-.9l9-5c.2-.1.3-.1.5-.1s.3 0 .5.1L13.92 2H13a2 2 0 100 4h1v1a2 2 0 001.748 1.984zm2.07-1.15C17.935 7.58 18 7.298 18 7V6h1c.353 0 .684-.091.972-.251.018.078.028.162.028.251 0 .4-.2.7-.5.9l-1.682.934zM19 9c.6 0 1 .4 1 1 0 .4-.2.7-.5.9l-9 5c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5c-.3-.2-.5-.5-.5-.9 0-.6.4-1 1-1 .2 0 .3 0 .5.1l8.5 4.8 8.5-4.8c.2-.1.3-.1.5-.1zm0 4c.6 0 1 .4 1 1 0 .4-.2.7-.5.9l-9 5c-.2.1-.3.1-.5.1s-.3 0-.5-.1l-9-5c-.3-.2-.5-.5-.5-.9 0-.6.4-1 1-1 .2 0 .3 0 .5.2l8.5 4.7 8.5-4.8c.2-.1.3-.1.5-.1z"],"new-link":["M14.5 12a2.5 2.5 0 00-2.45 2h-7.1a2.5 2.5 0 100 1h7.1a2.5 2.5 0 102.45-3zM19 5h-2V3c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V7h2c.55 0 1-.45 1-1s-.45-1-1-1z"],"new-object":["M12 4c0 .6.4 1 1 1h2v2c0 .6.4 1 1 1 .5 0 1-.4 1-1V5h2c.5 0 1-.4 1-1s-.5-1-1-1h-2V1c0-.6-.5-1-1-1-.6 0-1 .4-1 1v2h-2c-.6 0-1 .5-1 1zm7 3c0 1.7-1.3 3-3 3s-3-1.3-3-3c-1.7 0-3-1.3-3-3s1.3-3 3-3c0-.2 0-.4.1-.5-1-.3-2-.5-3.1-.5C4.5 0 0 4.5 0 10s4.5 10 10 10 10-4.5 10-10c0-1.1-.2-2.1-.5-3H19z"],"new-person":["M11.41 15.92c-1.46-.65-1.26-1.05-1.31-1.59-.01-.07-.01-.15-.01-.23.5-.45.91-1.07 1.18-1.78 0 0 .01-.04.02-.05.06-.15.11-.32.15-.48.33-.07.53-.44.6-.78.08-.14.23-.48.2-.87-.05-.5-.24-.73-.47-.82v-.09c0-.63-.06-1.55-.17-2.15-.02-.17-.06-.33-.11-.5-.22-.73-.67-1.4-1.27-1.86C9.58 4.25 8.7 4 7.92 4c-.78 0-1.66.25-2.28.73-.61.47-1.06 1.13-1.27 1.86-.05.16-.08.33-.11.5-.12.6-.18 1.51-.18 2.14v.08c-.23.09-.43.32-.48.83-.04.39.12.73.2.87.08.35.28.72.62.78.04.17.09.33.15.48 0 .01.01.02.01.03l.01.01c.27.72.69 1.35 1.21 1.8 0 .07-.01.14-.01.21-.05.54.1.94-1.36 1.59-1.46.65-3.66 1.35-4.11 2.4C-.14 19.38.04 20 .04 20h15.75s.18-.62-.27-1.67c-.45-1.06-2.65-1.75-4.11-2.41zM18.87 3h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V5h2c.55 0 1-.45 1-1s-.45-1-1-1z"],"new-prescription":["M11.95 10.23c.16-.18.22-.22.46-.22h1.48c.25 0 .47.08.59.33.1.2.09.41-.05.66l-2.71 3.58L14.88 19c.13.21.16.46.03.69-.12.21-.34.31-.57.31H12.7c-.31 0-.56-.17-.7-.44l-1.9-2.67-1.93 2.68c-.15.27-.42.43-.73.43H5.98c-.25 0-.47-.08-.59-.33-.1-.2-.09-.41.05-.66l3.09-4.35L4.26 9H3v4.32c0 .41-.3.69-.7.69H.7c-.41 0-.7-.28-.7-.69V.69C0 .28.3 0 .7 0h4.42c.71 0 1.36.1 1.94.3.59.2 1.11.49 1.54.87.44.38.78.84 1.02 1.39.25.54.37 1.13.37 1.77 0 1.01-.28 1.88-.84 2.6-.43.54-1.35 1.29-2 1.59l3.09 3.94 1.71-2.23zM4.71 6.04c.71 0 1.45-.16 1.81-.46.33-.28.5-.69.5-1.25s-.17-.97-.5-1.25c-.35-.3-1.1-.46-1.81-.46h-1.7v3.42h1.7zM19 3c.55 0 1 .45 1 1s-.45 1-1 1h-2v2c0 .55-.45 1-1 1s-1-.45-1-1V5h-2c-.55 0-1-.45-1-1s.45-1 1-1h2V1c0-.55.45-1 1-1s1 .45 1 1v2h2z"],"new-text-box":["M19 3h-2V1c0-.55-.45-1-1-1s-1 .45-1 1v2h-2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V5h2c.55 0 1-.45 1-1s-.45-1-1-1zM5 7.5v1c0 .28.22.5.5.5s.5-.22.5-.5V8h2v7h-.5c-.28 0-.5.22-.5.5s.22.5.5.5h2c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H9V8h2v.5c0 .28.22.5.5.5s.5-.22.5-.5v-1c0-.28-.22-.5-.5-.5h-6c-.28 0-.5.22-.5.5zM16 9c-.55 0-1 .45-1 1v8H2V5h8c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1v15c0 .55.45 1 1 1h15c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1z"],ninja:["M20 6s-2.98 2.43-6.12 2.19C13.52 5.31 12.05 0 6 0c0 0 2.41 2.99 2.16 6.12C5.27 6.49 0 7.97 0 14c0 0 2.98-2.43 6.11-2.19C6.47 14.69 7.94 20 14 20c0 0-2.42-2.99-2.16-6.13C14.73 13.51 20 12.02 20 6zm-10 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"],"not-equal-to":["M9.487 7l.532-3.196a1 1 0 011.962.392L11.513 7H16a1 1 0 010 2h-4.82l-.333 2H16a1 1 0 010 2h-5.487l-.532 3.196a1 1 0 01-1.962-.392L8.487 13H4a1 1 0 010-2h4.82l.333-2H4a1 1 0 110-2h5.487z"],notifications:["M10 20c1.1 0 2-.9 2-2H8c0 1.1.9 2 2 2zm7-5c-.55 0-1-.45-1-1V8c0-2.61-1.67-4.81-4-5.63V2c0-1.1-.9-2-2-2S8 .9 8 2v.37C5.67 3.19 4 5.39 4 8v6c0 .55-.45 1-1 1s-1 .45-1 1 .45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1z"],"notifications-snooze":["M10 18c0 1.1-.9 2-2 2s-2-.9-2-2zM8 0c.476 0 .914.168 1.258.448C8.508.878 8.09 1.562 8 2.5c-.133 1.4.4 2.367 1.6 2.9C8.533 6.6 8 7.467 8 8v1.2a2.8 2.8 0 002.8 2.8H14v2c0 .51.388.935.884.993L15 15c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1s.45-1 1-1 1-.45 1-1V8c0-2.61 1.67-4.81 4-5.63V2c0-1.1.9-2 2-2z","M16 9.25v-.395a.75.75 0 00-.75-.75h-2.813L15.834 3.9A.75.75 0 0016 3.43v-.68a.75.75 0 00-.75-.75h-4.5a.75.75 0 00-.75.75v.184c0 .414.336.75.75.75h2.813L10.22 7.831a1 1 0 00-.221.627v.792c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75z"],"notifications-updated":["M10 20c1.1 0 2-.9 2-2H8c0 1.1.9 2 2 2zm2-17.834A2.994 2.994 0 008 4.99c0 .808.319 1.557.876 2.114l2.97 2.99a2.99 2.99 0 004.154.072V14c0 .55.45 1 1 1s1 .45 1 1-.45 1-1 1H3c-.55 0-1-.45-1-1s.45-1 1-1 1-.45 1-1V8c0-2.61 1.67-4.81 4-5.63V2c0-1.1.9-2 2-2s2 .9 2 2v.166zm1.26 6.514l-2.97-2.99a.973.973 0 01-.29-.7c0-.55.44-1 .99-1 .27 0 .52.11.7.29l2.28 2.28 4.27-4.27a.99.99 0 01.7-.29c.55 0 1 .45 1 1 0 .28-.11.53-.3.7l-4.98 4.98a.99.99 0 01-1.4 0z"],"numbered-list":["M1.74 9.01h1.27V1h-.95c-.04.24-.12.45-.26.62-.13.17-.29.3-.47.41-.19.11-.4.18-.63.23-.23.04-.46.07-.71.07v1.03h1.75v5.65zm.43 7.93c.18-.14.37-.28.58-.43.21-.14.42-.29.63-.45.21-.16.41-.33.61-.5.2-.18.37-.38.52-.59.15-.21.28-.45.37-.7.09-.25.14-.54.14-.85 0-.25-.04-.52-.12-.8-.08-.28-.21-.54-.39-.78-.19-.24-.43-.44-.73-.59-.3-.17-.68-.25-1.12-.25-.41 0-.77.08-1.08.23-.32.16-.58.37-.8.64-.22.27-.38.59-.49.96-.11.37-.16.77-.16 1.21h1.19c.01-.28.03-.53.08-.77s.12-.45.21-.62c.09-.18.22-.31.38-.42.16-.1.35-.15.59-.15.26 0 .47.05.63.14.16.09.29.21.38.35.09.14.15.29.18.45.03.16.05.31.05.45-.01.31-.08.58-.22.81-.14.24-.32.45-.53.66-.22.2-.45.39-.71.57-.26.18-.51.36-.74.54-.5.36-.89.78-1.17 1.27-.3.47-.45 1.04-.46 1.69H5v-1.14H1.43c.05-.17.14-.33.27-.49.13-.15.29-.3.47-.44zM18 4.02H8c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-1c0-.56-.45-1-1-1zm0 9H8c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-1c0-.56-.45-1-1-1z"],numerical:["M2.39 5.75c-.17.21-.38.39-.63.52s-.52.23-.83.29c-.3.05-.61.08-.93.08v1.24h2.49V15h1.49V4.98H2.73c-.05.31-.17.57-.34.77zm17.2 4.71c-.27-.44-.65-.71-1.14-.82v-.02c.42-.16.72-.43.92-.79.2-.36.29-.79.29-1.27 0-.42-.08-.8-.23-1.12-.15-.33-.36-.59-.62-.8-.26-.21-.55-.37-.87-.48-.32-.11-.65-.16-.98-.16-.43 0-.82.08-1.16.25-.34.16-.63.39-.87.69-.24.29-.43.64-.57 1.04-.14.4-.22.83-.23 1.3h1.39c-.01-.25.02-.49.07-.72.06-.23.14-.44.26-.63s.27-.34.45-.45c.18-.11.39-.17.63-.17.39 0 .71.12.96.37s.37.58.37.99c0 .29-.05.54-.16.74-.11.2-.25.36-.43.47-.18.11-.38.19-.61.24-.23.05-.46.06-.68.05v1.17c.28-.01.55 0 .81.03s.5.1.71.21c.21.11.38.28.51.5.13.22.2.52.2.89 0 .55-.16.97-.47 1.27-.31.3-.7.45-1.17.45-.55 0-.95-.19-1.23-.58-.27-.39-.4-.88-.38-1.46h-1.39c.01.5.08.96.21 1.38.13.41.32.77.57 1.06.25.29.56.52.93.68.37.16.8.24 1.3.24.41 0 .79-.07 1.16-.21.37-.14.69-.33.96-.58.28-.25.5-.56.66-.92a3 3 0 00.24-1.23c0-.64-.14-1.17-.41-1.61zM8.58 12.41c.21-.18.45-.36.7-.53.25-.18.5-.36.75-.56.25-.2.49-.41.73-.63.23-.22.44-.47.63-.74.18-.27.33-.56.44-.88.11-.32.16-.67.16-1.07 0-.32-.05-.65-.14-1-.09-.35-.25-.68-.47-.97-.22-.3-.51-.55-.87-.74-.36-.2-.81-.29-1.35-.29-.49 0-.93.1-1.3.29-.37.18-.69.44-.95.78-.26.33-.45.73-.58 1.2-.13.46-.2.96-.2 1.5h1.43c.01-.35.04-.67.09-.97.05-.3.14-.56.25-.78.11-.22.26-.39.45-.52s.43-.19.71-.19c.31 0 .56.06.75.18.19.12.34.26.45.43.11.17.18.36.22.56.04.2.06.39.06.57-.01.38-.1.72-.26 1.02-.15.3-.37.57-.63.83-.26.25-.54.49-.85.71-.31.22-.61.45-.89.68-.6.45-1.06.98-1.41 1.58-.35.61-.52 1.32-.53 2.13h6.01v-1.43H7.69c.06-.21.17-.42.33-.61s.34-.38.56-.55z"],office:["M19 6h-5V1c0-.55-.45-1-1-1H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h4v-6h4v6h10c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1zM6 12H2V8h4v4zm0-6H2V2h4v4zm6 6H8V8h4v4zm0-6H8V2h4v4zm6 11h-4v-3h4v3zm0-5h-4V8h4v4z"],offline:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zM7 18l2-7H5l8-9-2 7h4l-8 9z"],"oil-field":["M19 17.99h-1.36l-4.35-9.57 2.91-.86 1.66 4.1c.11.27.43.4.72.31.12-.04.22-.11.28-.2.06-.11 1.47-2.08 1.05-5.6C19.79 5.12 19.3 0 16.01 0 14.89.01 13.99.83 14 1.84c0 .19.04.38.1.56l1.34 3.31L.72 10.03v.02c-.41.12-.72.49-.72.94 0 .55.45 1 1 1 .1 0 .19-.03.28-.06v.02l2-.59 1.47 6.63H3c-.55 0-1 .45-1 1s.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1zM5.2 10.8l3.95-1.16-2.83 6.22L5.2 10.8zm2.35 7.19l3.95-8.68 3.95 8.68h-7.9z"],"one-column":["M14.94 0h-4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-8 6c-.28 0-.53.11-.71.29l-3 3c-.18.18-.29.43-.29.71s.11.53.29.71l3 3A1.003 1.003 0 007.94 13V7c0-.55-.45-1-1-1z"],outdated:["M10 0c5.52 0 10 4.48 10 10s-4.48 10-10 10S0 15.52 0 10c0-.55.45-1 1-1s1 .45 1 1c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8C7.47 2 5.22 3.17 3.76 5H5c.55 0 1 .45 1 1s-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1s1 .45 1 1v2.05C3.82 1.6 6.71 0 10 0zm1 16H9v-2h2v2zm0-3H9V4h2v9z"],"page-layout":["M19 1H1c-.55 0-1 .45-1 1v16c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM7 17H2V8h5v9zm11 0H8V8h10v9zm0-10H2V3h16v4z"],"panel-stats":["M1 1h18a1 1 0 011 1v15a1 1 0 01-1 1H1a1 1 0 01-1-1V2a1 1 0 011-1zm1 2v13h16V3H2zm9 0h1v13h-1V3zm2 7h3.952v1H13v-1zm0 2h3.952v1H13v-1zm0 2h3.952v1H13v-1zm0-6h3.952v1H13V8zm0-2h3.952v1H13V6zm0-2h3.952v1H13V4z"],"panel-table":["M19 1H1c-.6 0-1 .4-1 1v15c0 .6.4 1 1 1h18c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zm-9 11H7V9h3v3zm0-4H7V5h3v3zm-8 8V3h4v13H2zm5 0v-3h3v3H7zm11 0h-7v-3h7v3zm0-4h-7V9h7v3zm0-4h-7V5h7v3z"],paperclip:["M18.35 2.67A5.664 5.664 0 0014.33 1c-1.44 0-2.89.56-3.99 1.67l-9.16 9.27C.4 12.73 0 13.78 0 14.83s.39 2.1 1.18 2.9c.78.79 1.82 1.18 2.85 1.18 1.04 0 2.07-.39 2.87-1.2l9.14-9.27c.96-.96.96-2.5.02-3.45-.94-.95-2.49-.96-3.44 0l-7.59 7.69c-.31.32-.3.83.01 1.14.31.31.81.31 1.13.02l7.59-7.69c.31-.31.84-.31 1.13-.02.31.31.31.85 0 1.16l-9.14 9.27c-.93.95-2.54.93-3.45.02-.94-.95-.92-2.55.02-3.49l9.16-9.25c1.55-1.56 4.18-1.59 5.72-.03 1.56 1.57 1.55 4.26 0 5.82l-8.89 9.02c-.3.31-.3.81.01 1.11.3.3.79.31 1.1.01v.01l8.91-9.02A5.645 5.645 0 0020 6.73c0-1.48-.55-2.94-1.65-4.06z"],paragraph:["M16.5 1H7C4.2 1 2 3.2 2 6s2.2 5 5 5v6.5c0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5V4h2v13.5c0 .8.7 1.5 1.5 1.5s1.5-.7 1.5-1.5V4h1.5c.8 0 1.5-.7 1.5-1.5S17.3 1 16.5 1z"],path:["M18 0H2C.9 0 0 .9 0 2s.9 2 2 2h7v4H4c-1.1 0-2 .9-2 2s.9 2 2 2h5v4H6c-1.1 0-2 .9-2 2s.9 2 2 2h8c1.1 0 2-.9 2-2s-.9-2-2-2h-3v-4h5c1.1 0 2-.9 2-2s-.9-2-2-2h-5V4h7c1.1 0 2-.9 2-2s-.9-2-2-2z"],"path-search":["M4 7c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 11.69l-5-2.5v-3.63c-.32.11-.66.22-1 .29v3.32l-6 2.57v-7.25c-.36-.27-.69-.57-1-.9v8.1l-5-2.5V10c.55 0 1-.45 1-1s-.45-1-1-1V1.31l3.43 1.71c.11-.31.24-.62.39-.92L.72.05A.545.545 0 00.5 0C.22 0 0 .22 0 .5v16c0 .2.12.36.28.44l6 3c.07.04.14.06.22.06.07 0 .14-.01.2-.04l6.79-2.91 5.79 2.9c.07.03.14.05.22.05.28 0 .5-.22.5-.5v-4.21c-.31.13-.64.21-1 .21v3.19zM10 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3-1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6.72-.94l-1.43-.72c.2.43.36.89.48 1.36l.23.11V5.5c-.55 0-1 .45-1 1s.45 1 1 1v1.96l1 1V3.5c0-.2-.12-.36-.28-.44zm-3.69 5.56c.14-.21.27-.42.38-.65.02-.04.04-.07.05-.11.11-.22.2-.45.28-.69v-.01c.07-.24.13-.48.17-.73l.03-.17c.04-.25.06-.5.06-.76C17 2.46 14.54 0 11.5 0S6 2.46 6 5.5 8.46 11 11.5 11c.26 0 .51-.02.76-.06l.17-.03c.25-.04.49-.1.73-.17h.01c.24-.08.47-.17.69-.28.04-.02.07-.03.11-.05.23-.11.44-.24.65-.38l.18.18 3.5 3.5c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71l-3.68-3.67zm-4.53.88c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"],pause:["M7 3H4c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm9 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],people:["M16.94 17a4.92 4.92 0 00-.33-1.06c-.45-.97-1.37-1.52-3.24-2.3-.17-.07-.76-.31-.77-.32-.1-.04-.2-.08-.28-.12.05-.14.04-.29.06-.45 0-.05.01-.11.01-.16-.25-.21-.47-.48-.65-.79.22-.34.41-.71.56-1.12l.04-.11c-.01.02-.01.02-.02.08l.06-.15c.36-.26.6-.67.72-1.13.18-.37.29-.82.25-1.3-.05-.5-.21-.92-.47-1.22-.02-.53-.06-1.11-.12-1.59.38-.17.83-.26 1.24-.26.59 0 1.26.19 1.73.55.46.35.8.85.97 1.4.04.13.07.25.08.38.08.45.13 1.14.13 1.61v.07c.16.07.31.24.35.62.02.29-.09.55-.15.65-.05.26-.2.53-.46.59-.03.12-.07.25-.11.36-.01.01-.01.04-.01.04-.2.53-.51 1-.89 1.34 0 .06 0 .12.01.17.04.41-.11.71 1 1.19 1.1.5 2.77 1.01 3.13 1.79.34.79.2 1.25.2 1.25h-3.04zm-5.42-3.06c1.47.66 3.7 1.35 4.18 2.39.45 1.05.27 1.67.27 1.67H.04s-.19-.62.27-1.67c.46-1.05 2.68-1.75 4.16-2.4 1.48-.65 1.33-1.05 1.38-1.59 0-.07.01-.14.01-.21-.52-.45-.95-1.08-1.22-1.8l-.01-.01c0-.01-.01-.02-.01-.03-.07-.15-.12-.32-.16-.49-.34-.06-.54-.43-.62-.78-.08-.14-.24-.48-.2-.87.05-.51.26-.74.49-.83v-.08c0-.64.05-1.55.17-2.15a3.648 3.648 0 011.4-2.36C6.32 2.25 7.21 2 8 2s1.68.25 2.31.73a3.63 3.63 0 011.4 2.36c.11.6.17 1.52.17 2.15v.09c.22.09.42.32.47.82.03.39-.12.73-.2.87-.07.34-.27.71-.61.78-.04.16-.09.33-.15.48-.01.01-.02.05-.02.05-.27.71-.68 1.33-1.19 1.78 0 .08 0 .16.01.23.05.55-.15.95 1.33 1.6z"],percentage:["M15 10c-1.66 0-3 1.34-3 3v2c0 1.66 1.34 3 3 3s3-1.34 3-3v-2c0-1.66-1.34-3-3-3zm1 5c0 .55-.45 1-1 1s-1-.45-1-1v-2c0-.55.45-1 1-1s1 .45 1 1v2zM8 7V5c0-1.66-1.34-3-3-3S2 3.34 2 5v2c0 1.66 1.34 3 3 3s3-1.34 3-3zM4 7V5c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1s-1-.45-1-1zm11-4a1.003 1.003 0 00-1.88-.48L5.14 16.49a1.003 1.003 0 101.74.99l7.99-13.97c.08-.15.13-.32.13-.51z"],person:["M19.61 17.91c-.57-1.32-3.35-2.19-5.19-3.01-1.85-.82-1.59-1.31-1.66-1.99-.01-.09-.01-.19-.02-.29.63-.56 1.15-1.33 1.49-2.22 0 0 .02-.05.02-.06.07-.19.13-.39.19-.6.42-.09.67-.55.76-.98.1-.17.29-.6.25-1.08-.06-.62-.31-.91-.59-1.03v-.11c0-.79-.07-1.93-.22-2.68A4.55 4.55 0 0012.9.92C12.11.32 11 0 10.01 0s-2.1.32-2.89.92a4.55 4.55 0 00-1.74 2.94c-.14.75-.22 1.89-.22 2.68v.1c-.29.11-.55.4-.61 1.04-.04.48.15.91.25 1.08.1.44.35.91.79.98.05.21.12.41.19.6 0 .01.01.03.01.04l.01.02c.34.91.87 1.69 1.52 2.25 0 .09-.01.18-.02.26-.07.68.13 1.17-1.72 1.99S.96 16.59.39 17.91C-.18 19.23.05 20 .05 20h19.9s.23-.77-.34-2.09z"],phone:["M19.91 15.51c-.08-.08-4.21-2.5-4.35-2.57a.876.876 0 00-.4-.1c-.19 0-.42.13-.71.4-.28.27-1.17 1.49-1.43 1.76s-.48.4-.65.4c-.08 0-.19-.02-.32-.07s-1.45-.73-4.2-3.15-3.11-4-3.13-4.44c0-.17.13-.39.4-.65.28-.25.57-.51.89-.74.32-.24.61-.5.88-.78s.4-.52.4-.71c0-.13-.03-.27-.1-.4C7.12 4.32 4.62.19 4.53.1c-.19-.18-.92-.1-1.29.1C.25 1.82 0 4 .05 4.86c.05.89.61 5.58 5.2 9.93 5.7 5.41 9.66 5.2 9.92 5.2.87 0 3.52-.48 4.65-3.19.16-.38.31-1.07.09-1.29z"],"pie-chart":["M9 .98c-4.5.5-8 4.31-8 8.94 0 4.97 4.03 9.04 9 9.04 4.63 0 8.44-3.96 8.94-7.96H9V.98z","M10-.08V10h10C20 4 15.52-.08 10-.08z"],pin:["M11.77 1.16c-.81.81-.74 2.28.02 3.76L6.1 8.71c-2.17-1.46-4.12-2-4.94-1.18l4.95 4.95-4.95 6.36 6.36-4.95 4.95 4.95c.82-.82.27-2.77-1.19-4.94l3.8-5.69c1.47.76 2.94.84 3.76.02l-7.07-7.07z"],pivot:["M5.83 9.75L.29 15.29a1.003 1.003 0 001.42 1.42l5.54-5.54c-.57-.37-1.05-.85-1.42-1.42zM19 11c-.55 0-1 .45-1 1v1.59l-3.83-3.83c-.37.56-.85 1.04-1.41 1.41L16.59 15H15c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm-5-4c0-2.21-1.79-4-4-4S6 4.79 6 7s1.79 4 4 4 4-1.79 4-4zm-4 2c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"],"pivot-table":["M3 5H1c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm0-5H1C.45 0 0 .45 0 1v2c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm13.71 5.29C16.53 5.11 16.28 5 16 5s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L15 8.41V11c0 2.21-1.79 4-4 4H8.41l1.29-1.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L8.41 17H11c3.31 0 6-2.69 6-6V8.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zM19 0H6c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],play:["M16 10c0-.36-.2-.67-.49-.84l.01-.01-10-6-.01.01A.991.991 0 005 3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1 .19 0 .36-.07.51-.16l.01.01 10-6-.01-.01c.29-.17.49-.48.49-.84z"],plus:["M16 9h-5V4c0-.55-.45-1-1-1s-1 .45-1 1v5H4c-.55 0-1 .45-1 1s.45 1 1 1h5v5c0 .55.45 1 1 1s1-.45 1-1v-5h5c.55 0 1-.45 1-1s-.45-1-1-1z"],"polygon-filter":["M18 7c-.27 0-.52.05-.75.15l-6.28-4.88c.01-.09.03-.18.03-.27 0-1.1-.9-2-2-2S7 .9 7 2c0 .06.01.12.02.19l-4.19 3C2.57 5.07 2.29 5 2 5 .9 5 0 5.9 0 7c0 .74.4 1.38 1 1.72v7.55c-.6.35-1 .99-1 1.73 0 1.1.9 2 2 2 .74 0 1.38-.4 1.72-1h7.55c.35.6.98 1 1.72 1 1.1 0 2-.9 2-2 0-.37-.11-.72-.29-1.02L18.03 11A2 2 0 0018 7zm-5.03 9c-.72.01-1.35.41-1.69 1H3.72c-.17-.3-.42-.55-.72-.72V8.72c.6-.34 1-.98 1-1.72 0-.06-.01-.12-.02-.19l4.19-3c.26.12.54.19.83.19.27 0 .52-.05.75-.15l6.28 4.88c-.01.09-.03.18-.03.27 0 .37.11.72.29 1.02L12.97 16z"],power:["M10 10c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1S9 .45 9 1v8c0 .55.45 1 1 1zm3-7.45v2.16c2.36 1.12 4 3.5 4 6.29 0 3.87-3.13 7-7 7s-7-3.13-7-7c0-2.79 1.64-5.17 4-6.29V2.55C3.51 3.79 1 7.09 1 11a9 9 0 0018 0c0-3.91-2.51-7.21-6-8.45z"],"predictive-analysis":["M20 8.01c0-1.26-.61-2.43-1.61-3.12C17.86 2.5 15.8.79 13.4.79c-.58 0-1.14.1-1.69.29A3.533 3.533 0 009.17 0C8.05 0 7 .55 6.32 1.45c-.15-.02-.3-.03-.45-.03-1.63 0-3.03 1.12-3.46 2.71C.97 4.65 0 6.05 0 7.66c0 .48.09.95.26 1.4-.17.44-.26.91-.26 1.39 0 1.38.72 2.64 1.89 3.29.67.7 1.59 1.09 2.54 1.09.61 0 1.19-.15 1.71-.45.68.82 1.68 1.3 2.73 1.3.66 0 1.28-.18 1.83-.52.61.49 1.34.81 2.11.91 1.3 1.43 2.3 3.28 2.31 3.3 0 0 .35.61.33.61.96-.01 1.77-.2 1.64-1.3.01.02-.92-2.89-.92-2.89.52-.26.94-.69 1.21-1.23 1.12-.66 1.84-1.91 1.84-3.26 0-.3-.03-.6-.1-.89.57-.64.88-1.51.88-2.4zm-1.54 1.28l-.18-.2-.77-.84c-.33-.37-.67-1.17-.73-1.73 0 0-.13-1.25-.13-1.26-.06-.74-1.17-.73-1.13.14 0 .02.13 1.26.13 1.26.04.36.15.77.3 1.17-.08-.01-.15-.02-.22-.02 0 0-2.57-.12-2.57-.13-.73-.03-.89 1.22-.05 1.25l2.57.13c.53.03 1.29.37 1.61.72l.61.67.02.06c.1.27.14.55.14.83 0 .93-.51 1.77-1.34 2.18l-.2.1-.09.23c-.19.48-.6.82-1.1.93l-.67.14.87 2.75c-.48-.76-1.19-1.79-2.02-2.67l-.15-.16-.21-.02c-.51-.04-.99-.21-1.42-.48l1.7-1.48c.44-.39 1.04-.55 1.24-.49 0 0 .78.22.78.23.78.2 1.03-.92.29-1.21l-.78-.23c-.69-.2-1.67.22-2.24.72l-1.91 1.66-.39.32c-.44.36-.93.55-1.5.55-.8 0-1.54-.41-1.97-1.07v-1.88c0-.5.21-.98.34-1.07 0 0 .65-.43.64-.43.87-.69.21-1.57-.64-1.14 0-.01-.65.43-.65.43-.31.2-.54.56-.7.97-.13-.13-.28-.25-.43-.35 0 0-1.91-1.26-1.91-1.28-.81-.56-1.5.63-.61 1.11 0-.02 1.89 1.28 1.89 1.28.46.31.77.97.77 1.36v.84c-.43.24-.78.36-1.24.36-.67 0-1.31-.29-1.77-.79l-.07-.08-.09-.05a2.425 2.425 0 01-1.31-2.16c0-.38.09-.74.25-1.08l.15-.31-.14-.33c-.17-.34-.25-.7-.25-1.08 0-1.13.76-2.1 1.85-2.37l.39-.09.07-.43a2.41 2.41 0 012.39-2.05c.19 0 .39.02.58.07l.4.1.22-.38A2.41 2.41 0 019.17 1.3c.55 0 1.08.19 1.5.53l-.44.45-.01-.01-.31.31c-.41.35-.92.53-1.11.5 0 0-.84-.13-.84-.14-.83-.15-1.09 1.08-.18 1.29.01 0 .84.14.84.14.03 0 .06 0 .09.01-.14.46-.18.96-.12 1.4 0 0 .21 1.24.19 1.23.13.65 1.32.44 1.16-.22 0-.01-.19-1.23-.19-1.23-.07-.48.15-1.19.45-1.5l.48-.5c.07-.06.13-.12.19-.18l.93-.95c.5-.23 1.04-.34 1.59-.34 1.93 0 3.57 1.4 3.89 3.34l.05.31.26.15a2.445 2.445 0 01.87 3.4z"],prescription:["M13.95 10.23c.16-.18.22-.22.46-.22h1.48c.25 0 .47.08.59.33.1.2.09.41-.05.66l-2.71 3.58L16.88 19c.13.21.16.46.03.69-.12.21-.34.31-.57.31H14.7c-.31 0-.56-.17-.7-.44l-1.9-2.67-1.93 2.68c-.15.27-.42.43-.73.43H7.98c-.25 0-.47-.08-.59-.33-.1-.2-.09-.41.05-.66l3.09-4.35L6.26 9H5v4.32c0 .41-.3.69-.7.69H2.7c-.41 0-.7-.28-.7-.69V.69c0-.41.3-.69.7-.69h4.42c.71 0 1.36.1 1.94.3.59.2 1.11.49 1.54.87.44.38.78.84 1.02 1.39.24.54.36 1.14.36 1.78 0 1.01-.28 1.88-.84 2.6-.43.54-1.35 1.29-2 1.59l3.09 3.94 1.72-2.24zM6.71 6.04c.71 0 1.45-.16 1.81-.46.33-.28.5-.69.5-1.25s-.17-.97-.5-1.25c-.35-.3-1.1-.46-1.81-.46h-1.7v3.42h1.7z"],presentation:["M19 1h-8c0-.55-.45-1-1-1S9 .45 9 1H1c-.55 0-1 .45-1 1s.45 1 1 1h1v11c0 .55.45 1 1 1h4.59L4.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L9 16.41V19c0 .55.45 1 1 1s1-.45 1-1v-2.59l3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L12.41 15H17c.55 0 1-.45 1-1V3h1c.55 0 1-.45 1-1s-.45-1-1-1zm-3 12H4V3h12v10z"],print:["M14 16H6v-4H4v5c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-5h-2v4zm2-13c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v1h12V3zm3 2H1c-.55 0-1 .45-1 1v7c0 .55.45 1 1 1h2v-3h14v3h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-1 4h-2V7h2v2z"],projects:["M18 4c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2h16V4zm-2-3c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v1h12V1zm3 6H1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-5 7c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-2h1v2h6v-2h1v2z"],properties:["M2 15c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm5-4h12c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zM2 1C.9 1 0 1.9 0 3s.9 2 2 2 2-.9 2-2-.9-2-2-2zm17 8H7c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1zm0 7H7c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1z"],property:["M3 5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm5-1h11c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zM3 15c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm16 1H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm-1-8H9c-1.1 0-2 .9-2 2s.9 2 2 2h9c1.1 0 2-.9 2-2s-.9-2-2-2zM3 7c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"],"publish-function":["M7.01 10.11c.35-.64.72-1.68 1.09-3.11l.8-3.03h.96l.24-.77h-.99c.28-1.11.66-1.92 1.12-2.43.28-.32.56-.48.83-.48.05 0 .1.02.13.05.03.03.05.07.05.12 0 .04-.04.13-.11.25-.08.12-.11.24-.11.35 0 .15.06.28.18.39.12.11.27.16.45.16.2 0 .36-.07.49-.2s.2-.31.2-.54c0-.26-.1-.47-.3-.63-.2-.16-.52-.24-.96-.24-.68 0-1.3.19-1.86.58-.55.38-1.08 1.02-1.58 1.91-.17.3-.34.5-.49.59-.15.08-.4.13-.74.12l-.23.77h.95L5.74 9.21c-.23.86-.39 1.39-.47 1.59-.12.29-.3.54-.54.75-.1.08-.21.12-.35.12-.04 0-.07-.01-.1-.03l-.03-.04c0-.02.03-.07.1-.13.07-.07.1-.17.1-.31 0-.15-.05-.28-.16-.38-.11-.1-.27-.15-.47-.15-.25 0-.44.07-.59.2-.15.12-.23.28-.23.46 0 .19.09.36.27.5.19.14.47.21.86.21.61 0 1.16-.15 1.63-.46.48-.31.89-.79 1.25-1.43zm3.7 1.18c-.18-.18-.43-.29-.71-.29s-.53.11-.71.29l-3 3a1.003 1.003 0 001.42 1.42L9 14.41V19c0 .55.45 1 1 1s1-.45 1-1v-4.59l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-3-3zm4.15-6.78c.17-.13.36-.2.55-.2.07 0 .2.03.39.08s.36.08.5.08c.2 0 .37-.07.5-.2.13-.14.2-.31.2-.52 0-.22-.07-.4-.2-.53s-.33-.2-.58-.2c-.22 0-.43.05-.63.15-.2.1-.45.32-.75.67-.23.25-.56.7-1.01 1.33a6.52 6.52 0 00-.91-2.15l-2.38.39-.05.25c.18-.03.33-.05.45-.05.24 0 .43.1.59.3.25.31.59 1.24 1.02 2.79-.34.44-.58.73-.7.87-.21.22-.38.36-.52.43-.1.05-.22.08-.35.08-.1 0-.26-.05-.49-.16a1.01 1.01 0 00-.42-.11c-.23 0-.42.07-.57.22-.17.14-.24.32-.24.55 0 .21.07.38.21.51.14.13.33.2.56.2.23 0 .44-.05.64-.14.2-.09.45-.29.75-.59s.72-.78 1.25-1.43c.2.62.38 1.07.53 1.35.15.28.32.49.52.61.19.12.44.19.73.19.28 0 .57-.1.86-.3.38-.25.77-.69 1.17-1.31l-.25-.14c-.27.37-.48.6-.61.69-.09.06-.19.09-.31.09-.14 0-.28-.09-.42-.26-.23-.29-.54-1.09-.93-2.4.37-.58.66-.96.9-1.14z"],pulse:["M19 10h-2.38L14.9 6.55h-.01c-.17-.32-.5-.55-.89-.55-.43 0-.79.28-.93.66h-.01l-2.75 7.57L7.98 1.82h-.02A.978.978 0 007 1c-.44 0-.8.29-.94.69h-.01L3.28 10H1c-.55 0-1 .45-1 1s.45 1 1 1h3c.44 0 .8-.29.94-.69h.01l1.78-5.34 2.29 12.21h.02c.08.46.47.82.96.82.43 0 .79-.28.93-.66h.01l3.21-8.82.96 1.92h.01c.16.33.49.56.88.56h3c.55 0 1-.45 1-1s-.45-1-1-1z"],random:["M14.47 5h2.12L15.3 6.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 3H14c-.31 0-.57.15-.76.37l-.01-.01-2.93 3.52 1.3 1.56L14.47 5zm2.24 7.29a1.003 1.003 0 00-1.42 1.42l1.3 1.29h-2.12L4.77 3.36l-.01.01A.998.998 0 004 3H1c-.55 0-1 .45-1 1s.45 1 1 1h2.53l9.7 11.64.01-.01c.19.22.45.37.76.37h2.59l-1.29 1.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3zM3.53 15H1c-.55 0-1 .45-1 1s.45 1 1 1h3c.31 0 .57-.15.76-.37l.01.01 2.93-3.52-1.3-1.56L3.53 15z"],record:["M10 3a7 7 0 100 14 7 7 0 100-14z"],redo:["M19.71 5.29l-4-4a1.003 1.003 0 00-1.42 1.42L16.59 5H6c-3.31 0-6 2.69-6 6s2.69 6 6 6h5v-2H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h10.59L14.3 9.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM15 14c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"],refresh:["M19 1c-.55 0-1 .45-1 1v2.06C16.18 1.61 13.29 0 10 0 4.48 0 0 4.48 0 10c0 .55.45 1 1 1s1-.45 1-1c0-4.42 3.58-8 8-8 2.52 0 4.76 1.18 6.22 3H15c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 8c-.55 0-1 .45-1 1 0 4.42-3.58 8-8 8-2.52 0-4.76-1.18-6.22-3H5c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1s1-.45 1-1v-2.06C3.82 18.39 6.71 20 10 20c5.52 0 10-4.48 10-10 0-.55-.45-1-1-1z"],"regression-chart":["M19 16H3.1L19.31 3.39l-.61-.79L2 15.59V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm-9-9c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-5 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm10-2c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2zm-5 4c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2z"],remove:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm5-9H5c-.55 0-1 .45-1 1s.45 1 1 1h10c.55 0 1-.45 1-1s-.45-1-1-1z"],"remove-column":["M19 0H5c-.55 0-1 .45-1 1v4h2V2h5v16H6v-3H4v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18h-5V2h5v16zM6.29 13.71a1.003 1.003 0 001.42-1.42L5.41 10 7.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L4 8.59l-2.29-2.3A1.003 1.003 0 00.29 7.71L2.59 10 .3 12.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L4 11.41l2.29 2.3z"],"remove-column-left":["M4 11h6c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1s.45 1 1 1zM19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-7 18H2V2h10v16zm6 0h-5V2h5v16z"],"remove-column-right":["M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zM7 18H2V2h5v16zm11 0H8V2h10v16zm-8-7h6c.55 0 1-.45 1-1s-.45-1-1-1h-6c-.55 0-1 .45-1 1s.45 1 1 1z"],"remove-row-bottom":["M7 14h6c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zM19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V8h16v10zm0-11H2V2h16v5z"],"remove-row-top":["M7 8h6c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1zm12-8H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2v-5h16v5zm0-6H2V2h16v10z"],repeat:["M14 6c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1v2.05C16.18 1.6 13.29 0 10 0 4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10c0-.55-.45-1-1-1s-1 .45-1 1c0 4.42-3.58 8-8 8s-8-3.58-8-8 3.58-8 8-8c2.53 0 4.77 1.17 6.24 3H15c-.55 0-1 .45-1 1z"],reset:["M6 6c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1s1 .45 1 1v2.05C3.82 1.6 6.71 0 10 0c5.52 0 10 4.48 10 10s-4.48 10-10 10S0 15.52 0 10c0-.55.45-1 1-1s1 .45 1 1c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8C7.47 2 5.23 3.17 3.76 5H5c.55 0 1 .45 1 1z"],resolve:["M8.7 4.7C7.9 4.2 7 4 6 4c-3.3 0-6 2.7-6 6s2.7 6 6 6c1 0 1.9-.2 2.7-.7C7.3 14 6.5 12.1 6.5 10s.9-4 2.2-5.3zM14 4c-1 0-1.9.2-2.7.7 1.4 1.4 2.2 3.2 2.2 5.3s-.9 4-2.2 5.3c.8.5 1.7.7 2.7.7 3.3 0 6-2.7 6-6s-2.7-6-6-6zm-4 1.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z"],rig:["M7 4.2C7 5.75 8.34 7 10 7s3-1.46 3-2.8C13 1.45 10.94 0 10 0H6c0 2.74 3.76 1.96 1 4.2zm11.71 14.09L13 12.59V9.01c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v3.58l-5.71 5.7a1.003 1.003 0 001.42 1.42L7 15.42V19c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-3.58l4.29 4.29a1.003 1.003 0 001.42-1.42zM10.21 8c.01 0 .01.01 0 0 .01.01.01 0 0 0z"],"right-join":["M8.7 4.7C7.4 6 6.5 7.9 6.5 10s.8 4 2.2 5.3c-.8.5-1.7.7-2.7.7-3.3 0-6-2.7-6-6s2.7-6 6-6c1 0 1.9.2 2.7.7zm-3.34 9.25c-.55-1.2-.86-2.54-.86-3.95s.31-2.75.86-3.95a4.001 4.001 0 000 7.9zM14 4c3.3 0 6 2.7 6 6s-2.7 6-6 6c-1 0-1.9-.2-2.7-.7 1.3-1.3 2.2-3.2 2.2-5.3s-.8-3.9-2.2-5.3C12.1 4.2 13 4 14 4zm-4 1.5C8.8 6.7 8 8.2 8 10s.8 3.3 2 4.4c1.2-1.1 2-2.7 2-4.5s-.8-3.3-2-4.4z"],ring:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z"],"rotate-document":["M8.71 6.29A.997.997 0 008 6H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-8c0-.28-.11-.53-.29-.71l-4-4zM11 18H4V8h3v3c0 .55.45 1 1 1h3v6zm3-16h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C9.11 2.47 9 2.72 9 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H14c1.1 0 2 .9 2 2v3c0 .55.45 1 1 1s1-.45 1-1V6c0-2.21-1.79-4-4-4z"],"rotate-page":["M14 2h-1.59l.29-.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-2 2C9.11 2.47 9 2.72 9 3c0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42l-.3-.29H14c1.1 0 2 .9 2 2v3c0 .55.45 1 1 1s1-.45 1-1V6c0-2.21-1.79-4-4-4zm-2 5H3c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm-1 11H4V9h7v9z"],route:["M14.028 6.016c.146.275.31.57.485.872.304.524.628 1.047.952 1.545l.118.178-.208-.006-.577-.005c-2.093.004-2.841.303-2.841.895 0 .069.271.248 1.245.567l1.008.313c2.671.831 3.99 1.827 3.99 4.167 0 2.76-1.928 4.059-4.832 4.376-.782.085-1.52.098-2.452.066l-1.15-.046H6.221l.535-.811a67.46 67.46 0 001.122-1.787h2.04l.686.03c1.028.046 1.77.043 2.523-.039 1.832-.2 2.673-.767 2.673-1.789 0-.69-.483-1.09-1.992-1.585l-.83-.257c-1.192-.364-2.037-.7-2.59-1.165.399-1 .612-1.844.612-2.538a6.018 6.018 0 00-.382-2.098c.745-.573 1.884-.822 3.41-.883zM5 4.2c2.648 0 4.791 2.151 4.8 4.797C9.8 11.652 5 18.6 5 18.6l-.5-.744C3.273 15.993.2 11.121.2 8.997A4.802 4.802 0 015 4.2zm0 2.4a2.4 2.4 0 10.002 4.802A2.4 2.4 0 005 6.6zM17 .333a2.671 2.671 0 012.667 2.665C19.667 4.473 17 8.333 17 8.333l-.391-.587c-.741-1.137-2.276-3.629-2.276-4.748A2.668 2.668 0 0117 .333z"],satellite:["M9 18c.6 0 1 .4 1 1s-.4 1-1 1c-5 0-9-4-9-9 0-.6.4-1 1-1s1 .4 1 1c0 3.9 3.1 7 7 7zm0-4c.6 0 1 .4 1 1s-.4 1-1 1c-2.8 0-5-2.2-5-5 0-.6.4-1 1-1s1 .4 1 1c0 1.7 1.3 3 3 3zm5.7-3.7c.4-.4 1-.4 1.4 0l3.6 3.6c.4.4.4 1 0 1.4l-1.4 1.4c-.4.4-1 .4-1.4 0l-3.6-3.6c-.4-.4-.4-1 0-1.4l1.4-1.4zM4.7.3c.4-.4 1-.4 1.4 0l3.6 3.6c.4.4.4 1 0 1.4L8.3 6.7c-.4.4-1 .4-1.4 0L3.3 3.1c-.4-.4-.4-1 0-1.4L4.7.3zm11.1 1c.4-.4 1-.4 1.4 0l1.6 1.6c.4.4.4 1 0 1.4l-6.5 6.5c-.4.4-1 .4-1.4 0L9.3 9.2c-.4-.4-.4-1 0-1.4l6.5-6.5zM9 12c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1z"],saved:["M12 0H4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h13c.55 0 1-.45 1-1V6l-6-6zm4 18H5V2h6v5h5v11zm-8.29-6.71a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29.32 0 .59-.16.77-.38l.01.01 4-5-.01-.01c.14-.18.23-.38.23-.62 0-.55-.45-1-1-1-.32 0-.59.16-.77.38l-.01-.01-3.3 4.13-2.21-2.21z"],"scatter-plot":["M9 9c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm5 2c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm4-5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm1 10H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM5 15c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"],search:["M19.56 17.44l-4.94-4.94A8.004 8.004 0 0016 8c0-4.42-3.58-8-8-8S0 3.58 0 8s3.58 8 8 8c1.67 0 3.21-.51 4.5-1.38l4.94 4.94a1.498 1.498 0 102.12-2.12zM8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"],"search-around":["M9.9 6.9a3 3 0 100 6 3 3 0 100-6zM3 14c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM3 0C1.3 0 0 1.3 0 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM17 14c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM17 0c-1.7 0-3 1.3-3 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3zm0 5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM10 10L5 5","M5.379 4.671l5.02 5.02-.707.708-5.02-5.02zM10 10l5-5","M14.621 4.671l.707.708-5.02 5.02-.707-.707z","M10 10l5 5M10.379 9.671l5.02 5.02-.707.708-5.02-5.02z","M10 10l-5 5M9.621 9.671l.707.708-5.02 5.02-.707-.707z"],"search-template":["M13 8H5c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm0 3H5c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm0-6H5c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm6.56 12.44l-3.23-3.23A8.939 8.939 0 0018 9a9 9 0 10-9 9c1.94 0 3.74-.62 5.21-1.67l3.23 3.23a1.498 1.498 0 102.12-2.12zM9 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"],"search-text":["M19.56 17.44l-3.23-3.23A8.939 8.939 0 0018 9a9 9 0 10-9 9c1.94 0 3.74-.62 5.21-1.67l3.23 3.23a1.498 1.498 0 102.12-2.12zM9 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm3.5-11h-7c-.28 0-.5.22-.5.5v2c0 .28.22.5.5.5s.5-.22.5-.5V7h2v6h-.5c-.28 0-.5.22-.5.5s.22.5.5.5h3c.28 0 .5-.22.5-.5s-.22-.5-.5-.5H10V7h2v.5c0 .28.22.5.5.5s.5-.22.5-.5v-2c0-.28-.22-.5-.5-.5z"],"segmented-control":["M19 5H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-1 8h-8V7h8v6z"],select:["M19.71 18.29l-4.25-4.25L20 12.91 9.93 9.33c.04-.1.07-.21.07-.33V3c0-.55-.45-1-1-1H4V1c0-.55-.45-1-1-1S2 .45 2 1v1H1c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 .55.45 1 1 1h6c.12 0 .23-.03.34-.07L12.91 20l1.14-4.54 4.25 4.25c.17.18.42.29.7.29a1.003 1.003 0 00.71-1.71zM8 8H4V4h4v4z"],selection:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z","M10 6a4 4 0 100 8 4 4 0 100-8z"],"send-message":["M1.754.135L19.393 9.06c.57.288.775.943.458 1.462-.107.176-.266.32-.458.418l-17.64 8.924c-.57.289-1.288.102-1.604-.417A1.001 1.001 0 010 18.925v-6.851L11.021 10 0 7.938V1.075C0 .481.529 0 1.18 0c.201 0 .399.047.574.135z"],"send-to":["M19 0h-5c-.6 0-1 .4-1 1s.4 1 1 1h2.6l-4.3 4.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3L18 3.4V6c0 .5.5 1 1 1s1-.5 1-1V1c0-.6-.5-1-1-1zm0 9c-1 0-1.9-.5-2.5-1.3l-1.4 1.4c-.5.6-1.3.9-2.1.9-1.7 0-3-1.3-3-3 0-.8.3-1.6.9-2.1l1.4-1.4C11.5 2.9 11 2 11 1c0-.3.1-.6.2-.9-.4-.1-.8-.1-1.2-.1C4.5 0 0 4.5 0 10s4.5 10 10 10 10-4.5 10-10c0-.4 0-.8-.1-1.2-.3.1-.6.2-.9.2z"],"send-to-graph":["M8 11H3c-.55 0-1 .45-1 1s.45 1 1 1h2.59L.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 14.41V17c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zm10 2c-.53 0-1.01.21-1.37.55L11.9 10.6c.06-.19.1-.39.1-.6 0-.21-.04-.41-.1-.6l4.72-2.95c.37.34.85.55 1.38.55 1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2c0 .21.04.41.1.6l-4.73 2.96c-.24-.23-.54-.4-.87-.48V3.93c.86-.22 1.5-1 1.5-1.93 0-1.1-.9-2-2-2S8 .9 8 2c0 .93.64 1.71 1.5 1.93v4.14c-.33.09-.63.26-.87.48L7.6 7.91 5.42 6.55 3.9 5.6c.06-.19.1-.39.1-.6 0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2c.53 0 1.01-.21 1.37-.55L9 9.96V10h.06L12 11.84l.4.25 1.51.94 2.19 1.37c-.06.19-.1.39-.1.6 0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2zm-7-2.96l-.06-.04H11v.04z"],"send-to-map":["M8 11H3c-.55 0-1 .45-1 1s.45 1 1 1h2.59L.3 18.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71L7 14.41V17c0 .55.45 1 1 1s1-.45 1-1v-5c0-.55-.45-1-1-1zm11.54-6.82l.01-.02-6-4-.01.02C13.39.08 13.21 0 13 0s-.39.08-.54.18l-.01-.02L7 3.8 1.55.17l-.01.01A.969.969 0 001 0C.45 0 0 .45 0 1v9c0-.55.45-1 1-1h1V2.87l4 2.67V9h2V5.54l4-2.67v11.6l-1 .67v2.4l2-1.33 5.45 3.63.01-.02c.15.1.33.18.54.18.55 0 1-.45 1-1V5c0-.35-.19-.64-.46-.82zM18 17.13l-4-2.67V2.87l4 2.67v11.59z"],"series-add":["M13.29 9.29c.3.62.8 1.12 1.42 1.42l-3 3c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L7 10.41l-5 5V17h17c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8s.53.11.71.29l3.29 3.3 2.29-2.3zM12 5c0-.5.4-1 1-1h2V2c0-.6.4-1 1-1 .5 0 1 .4 1 1v2h2c.5 0 1 .4 1 1s-.5 1-1 1h-2v2c0 .6-.5 1-1 1-.6 0-1-.4-1-1V6h-2c-.6 0-1-.4-1-1z"],"series-configuration":["M11.91 10.67c.52.45 1.13.8 1.8 1.03l-2.01 2.01c-.18.18-.43.29-.71.29-.28 0-.53-.11-.71-.3L7 10.41l-5 5V17h16.99c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8c.28 0 .53.11.71.29l3.29 3.3.91-.92zM18.5 4.6h1.04c.25 0 .45.2.46.44v.9c0 .25-.2.45-.45.45h-1.04c-.07.22-.16.42-.27.62l.73.73c.17.17.17.44 0 .61l-.61.61c-.17.17-.44.17-.61 0l-.73-.73c-.2.11-.4.2-.62.26v1.05c0 .25-.2.45-.45.45h-.9c-.25 0-.45-.2-.45-.45V8.51c-.21-.06-.4-.15-.58-.25l-.76.77c-.17.17-.46.17-.64 0l-.64-.64a.465.465 0 010-.64l.76-.77c-.1-.19-.19-.38-.25-.59h-1.04c-.25 0-.45-.2-.45-.45v-.9c0-.25.2-.45.45-.45h1.04c.07-.22.16-.42.27-.61l-.73-.73a.429.429 0 010-.61l.61-.61c.17-.17.44-.17.61 0l.73.73c.2-.11.4-.2.62-.26V1.45a.44.44 0 01.44-.45h.9c.25 0 .45.2.45.45V2.5c.21.06.4.15.58.25l.76-.77c.17-.17.46-.17.64 0l.64.64c.17.17.17.46 0 .64l-.76.77c.1.17.19.36.25.57zm-4.69.9c0 .93.75 1.69 1.69 1.69.93 0 1.69-.75 1.69-1.69s-.75-1.69-1.69-1.69-1.69.76-1.69 1.69z"],"series-derived":["M18.82 6.58c-.03.05-.07.09-.11.13 0 0 0-.01-.01-.01l-2 2c-.2.2-.4.3-.7.3-.6 0-1-.4-1-1 0-.3.1-.5.3-.7L16.6 6H11c-.6 0-1-.4-1-1s.4-1 1-1h5.6l-1.3-1.3c-.2-.2-.3-.4-.3-.7 0-.6.4-1 1-1 .3 0 .5.1.7.3l3 3c.2.2.3.4.3.7s-.1.5-.3.7l-.88.88zm-5.53 2.71c.3.62.8 1.12 1.42 1.42l-3 3c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L7 10.41l-5 5V17h17c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8s.53.11.71.29l3.29 3.3 2.29-2.3z"],"series-filtered":["M12.14 10.45c.21.67.65 1.23 1.22 1.61l-1.65 1.65c-.18.18-.43.29-.71.29s-.53-.11-.71-.3L7 10.41l-5 5V17h17c.55 0 1 .45 1 1s-.45 1-1 1H1a.998.998 0 01-1-1V4c0-.55.45-1 1-1s1 .45 1 1v8.59l4.29-4.3C6.47 8.11 6.72 8 7 8s.53.11.71.29l3.29 3.3 1.14-1.14zM19.35 1a.642.642 0 01.46 1.1l-3.03 3.03v2.95c0 .18-.07.34-.19.46l-1.28 1.29c-.11.1-.27.17-.45.17-.35 0-.64-.29-.64-.64V5.13L11.19 2.1a.642.642 0 01.45-1.1h7.71z"],"series-search":["M11.28 11.31l-.28.28-3.29-3.3C7.53 8.11 7.28 8 7 8s-.53.11-.71.29L2 12.59V4c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1H2v-1.59l5-5 3.29 3.29c.18.19.43.3.71.3s.53-.11.71-.29l2.09-2.09c-.17.02-.34.02-.51.02-.7 0-1.38-.12-2.01-.33zm-.93-6c0-1.62 1.31-2.93 2.93-2.93s2.93 1.31 2.93 2.93-1.31 2.93-2.93 2.93-2.93-1.31-2.93-2.93zm6.47 2.43c.11-.17.21-.33.29-.51.01-.03.03-.06.04-.09.08-.18.16-.35.21-.54.06-.2.1-.38.14-.58.01-.05.01-.09.02-.14.03-.2.05-.39.05-.6 0-2.37-1.93-4.3-4.3-4.3-2.37.01-4.3 1.93-4.3 4.31s1.93 4.3 4.3 4.3c.21 0 .4-.02.6-.05.04 0 .09-.01.14-.02.2-.03.38-.08.57-.14.2-.06.37-.14.55-.21.03-.01.06-.03.09-.04.18-.09.34-.19.51-.29l2.87 2.87c.14.14.33.22.56.22.43 0 .78-.35.78-.78a.938.938 0 00-.23-.56l-2.89-2.85z"],settings:["M4 1c0-.55-.45-1-1-1S2 .45 2 1v5h2V1zM2 19c0 .55.45 1 1 1s1-.45 1-1v-6H2v6zm9-18c0-.55-.45-1-1-1S9 .45 9 1v8h2V1zm7 0c0-.55-.45-1-1-1s-1 .45-1 1v3h2V1zM9 19c0 .55.45 1 1 1s1-.45 1-1v-3H9v3zm9-14h-2c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-2 14c0 .55.45 1 1 1s1-.45 1-1v-8h-2v8zM4 7H2c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm7 3H9c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1z"],shapes:["M7.88 11.12a.958.958 0 011.277.33l3.719 6.207c.081.136.124.29.124.447 0 .495-.419.896-.936.896H4.936a.969.969 0 01-.436-.103.878.878 0 01-.392-1.21l3.409-6.208a.915.915 0 01.362-.36zM15 5a4 4 0 110 8 4 4 0 010-8zM8 1a1 1 0 011 1v6a1 1 0 01-1 1H2a1 1 0 01-1-1V2a1 1 0 011-1h6z"],share:["M15 18H2V5h8.76l2-2H1c-.55 0-1 .45-1 1v15c0 .55.45 1 1 1h15c.55 0 1-.45 1-1V7.24l-2 2V18zm4-18h-7c-.55 0-1 .45-1 1s.45 1 1 1h4.59l-7.3 7.29a1.003 1.003 0 001.42 1.42L18 3.41V8c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1z"],"shared-filter":["M13.917 17.209c1.01.454 2.543.928 2.873 1.643.31.722.186 1.148.186 1.148H6.026s-.13-.426.186-1.148 1.842-1.203 2.86-1.65c1.017-.447.914-.722.948-1.093 0-.048.007-.097.007-.145a3.067 3.067 0 01-.839-1.237l-.007-.007c0-.007-.006-.014-.006-.02a1.757 1.757 0 01-.11-.337c-.234-.042-.372-.296-.426-.537a1.045 1.045 0 01-.138-.598c.034-.35.179-.509.337-.57v-.056c0-.44.034-1.065.117-1.478a2.508 2.508 0 01.962-1.623c.426-.33 1.038-.501 1.58-.501.544 0 1.155.172 1.588.502a2.496 2.496 0 01.963 1.622c.075.413.117 1.045.117 1.478v.062c.15.062.288.22.323.564.02.268-.083.502-.138.598-.048.234-.185.488-.42.537a2.635 2.635 0 01-.116.364 3.094 3.094 0 01-.818 1.224c0 .055 0 .11.007.158.034.378-.103.653.914 1.1z","M14.976 16.57c-.24-.099-.455-.186-.65-.273l-.007-.004a3.801 3.801 0 01-.194-.091c.224-.288.41-.609.554-.946l.001-.002.013-.033c.018-.043.036-.087.052-.13l.011-.027.016-.04c.105-.092.19-.19.256-.284.129-.184.213-.38.265-.563.105-.226.225-.592.192-1.026l-.001-.011-.002-.011a1.854 1.854 0 00-.325-.91 9.924 9.924 0 00-.12-1.246 3.09 3.09 0 00-.106-.475l-.001-.006a3.543 3.543 0 00-.763-1.353c.27-.092.56-.139.83-.139.495 0 1.05.156 1.444.456a2.269 2.269 0 01.875 1.475c.069.375.106.95.106 1.344v.056c.138.056.263.2.294.513.019.244-.075.456-.125.543-.044.213-.169.444-.381.488-.025.1-.056.206-.094.3a2.815 2.815 0 01-.756 1.144c0 .05 0 .1.006.144.004.043.006.086.007.127.01.283.018.518.824.872.192.087.404.173.623.263.83.34 1.752.717 1.99 1.231.28.657.168 1.044.168 1.044h-2.081a3.864 3.864 0 00-.188-.542l-.005-.013-.006-.012c-.183-.397-.491-.681-.76-.88a5.614 5.614 0 00-.896-.522 17.36 17.36 0 00-.916-.4l-.15-.061zM14 1c.55 0 1 .45 1 1 0 .28-.11.53-.29.7L10 7.41v.897a3.182 3.182 0 00-.69.4 3.508 3.508 0 00-1.343 2.259c-.07.37-.107.836-.122 1.237a1.836 1.836 0 00-.339.926c-.046.458.09.84.195 1.06.053.178.138.376.27.56.055.08.125.162.21.242v.143l.053.052L6.71 16.71A1.003 1.003 0 015 16V7.41L.29 2.71A1.003 1.003 0 011 1h13z","M9.059 14.361c-.23-.044-.366-.296-.42-.535a1.045 1.045 0 01-.138-.598c.034-.35.179-.509.337-.57v-.056c0-.44.034-1.065.117-1.478A2.508 2.508 0 0110 9.441V13c0 .28-.11.53-.29.71l-.651.651z"],shield:["M10 20c6-3.81 9-9.048 9-15.714-2 0-5-1.429-9-4.286-4 2.857-7 4.286-9 4.286C1 10.952 4 16.19 10 20zm0-17.348c2.577 1.734 4.776 2.88 6.667 3.419-.44 4.627-2.636 8.353-6.667 11.297V2.652z"],shop:["M17.94 3.63c-.01-.02-.01-.03-.02-.04l-.03-.09h-.01c-.18-.3-.49-.5-.86-.5h-14c-.42 0-.77.25-.92.61L0 8.5h.02a2.5 2.5 0 005 0 2.5 2.5 0 005 0 2.5 2.5 0 005 0 2.5 2.5 0 005 0l-2.08-4.87zM3.02 2h14c.55 0 1-.45 1-1s-.45-1-1-1h-14c-.55 0-1 .45-1 1s.44 1 1 1zm13 14h-12v-4h-2v7c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-7h-2v4z"],"shopping-cart":["M18 14H8.72l-.67-2H17c.44 0 .8-.29.94-.69h.01l2-6h-.01c.03-.1.06-.2.06-.31 0-.55-.45-1-1-1H5.39l-.44-1.32h-.01C4.8 2.29 4.44 2 4 2H1c-.55 0-1 .45-1 1s.45 1 1 1h2.28l3.33 10H5c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2h9c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2zM6.05 6h11.56l-1.33 4H7.39L6.05 6z"],"signal-search":["M7.15 10.33c.888.8 1.999 1.36 3.228 1.574l2.326 6.98a.846.846 0 01-.535 1.07.844.844 0 01-1.072-.535l-1.225-3.671H7.125L5.9 19.419a.85.85 0 01-1.072.536.85.85 0 01-.536-1.071l2.857-8.555zm1.353 1.305l-.808 2.413h1.607l-.8-2.413zM5 5.5c0 .76.13 1.49.37 2.17-.496 1.056-.313 2.356.704 3.29.385.353.404.94.038 1.311a.982.982 0 01-1.356.038c-2.183-2.01-2-5.125.01-6.94a.95.95 0 01.24-.156A6.421 6.421 0 005 5.5z","M3.874 13.185c-1.346-.918-2.187-2.67-2.187-4.34 0-1.752.757-3.254 2.187-4.339.42-.25.42-.834.168-1.168-.252-.418-.84-.418-1.177-.167C1.014 4.59-.08 6.509.005 8.846c.084 2.253 1.177 4.423 2.86 5.675.168.083.336.166.504.166.253 0 .505-.083.673-.333.337-.418.253-.918-.168-1.169zM12.246 12.309a.98.98 0 01-1.354-.037.917.917 0 01-.206-.324 6.54 6.54 0 001.959-.049 5.125 5.125 0 01-.399.41zM14.631 11.476l1.228 1.229a6.6 6.6 0 01-1.723 1.816c-.169.083-.337.166-.505.166-.253 0-.505-.083-.673-.333-.337-.418-.253-.918.168-1.169.62-.422 1.133-1.022 1.505-1.709z","M11.5 0C14.54 0 17 2.46 17 5.5c0 .26-.02.51-.06.75l-.03.17c-.04.25-.1.49-.17.73v.01c-.08.24-.17.47-.28.69-.01.04-.03.07-.05.11-.11.23-.24.44-.38.65l3.68 3.68A1.003 1.003 0 0119 14c-.28 0-.53-.11-.7-.29l-3.68-3.68c-.21.14-.42.27-.65.38-.04.01-.07.03-.11.05-.22.11-.45.2-.69.28h-.01c-.24.07-.48.13-.73.17l-.17.03c-.25.04-.5.06-.76.06C8.46 11 6 8.54 6 5.5S8.46 0 11.5 0zm0 1.5c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"],"sim-card":["M16.71 5.29l-5-5A.997.997 0 0011 0H4c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.28-.11-.53-.29-.71zM9 7h2v3H9V7zM6 7h2v3H6V7zm2 11H6v-3h2v3zm3 0H9v-3h2v3zm3 0h-2v-3h2v3zm0-4H6v-3h8v3zm0-4h-2V7h2v3z"],slash:["M12 2c-.46 0-.85.32-.97.74L7.04 16.7c-.02.1-.04.2-.04.3 0 .55.45 1 1 1 .46 0 .85-.32.97-.74L12.96 3.3c.02-.1.04-.2.04-.3 0-.55-.45-1-1-1z"],"small-cross":["M11.41 10l3.29-3.29c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71L10 8.59l-3.29-3.3a1.003 1.003 0 00-1.42 1.42L8.59 10 5.3 13.29c-.19.18-.3.43-.3.71a1.003 1.003 0 001.71.71l3.29-3.3 3.29 3.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71L11.41 10z"],"small-minus":["M14 9H6c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1z"],"small-plus":["M14 9h-3V6c0-.55-.45-1-1-1s-1 .45-1 1v3H6c-.55 0-1 .45-1 1s.45 1 1 1h3v3c0 .55.45 1 1 1s1-.45 1-1v-3h3c.55 0 1-.45 1-1s-.45-1-1-1z"],"small-tick":["M15 5c-.28 0-.53.11-.71.29L8 11.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29s.53-.11.71-.29l7-7A1.003 1.003 0 0015 5z"],snowflake:["M11 11.776v2.81l2.31 2.242a.987.987 0 010 1.415c-.399.39-1.044.39-1.442 0L11 17.414V19a.99.99 0 01-.996 1A.996.996 0 019 19v-1.636l-.912.879c-.398.39-1.043.39-1.441 0a.987.987 0 010-1.415L9 14.536v-2.79l-2.548 1.435-.837 3.063c-.146.534-.705.85-1.248.707a.998.998 0 01-.721-1.224l.309-1.132-1.4.793a1.03 1.03 0 01-1.393-.366.99.99 0 01.373-1.366l1.445-.818-1.224-.322a.998.998 0 01-.72-1.225c.145-.533.704-.85 1.248-.707l3.193.84 2.462-1.395-2.532-1.434-3.123.82a1.022 1.022 0 01-1.249-.706.998.998 0 01.721-1.225L2.91 7.18l-1.4-.793a.99.99 0 01-.373-1.366 1.03 1.03 0 011.392-.366l1.445.818-.328-1.2a.998.998 0 01.72-1.225 1.022 1.022 0 011.25.707l.855 3.132L9 8.311V5.414L6.647 3.121a.987.987 0 010-1.414 1.033 1.033 0 011.441 0L9 2.586V1c0-.552.44-1 1.004-1A.99.99 0 0111 1l-.007 1.536.875-.829a1.033 1.033 0 011.441 0 .987.987 0 010 1.414L11 5.364v2.918l2.53-1.42.855-3.131c.146-.534.705-.85 1.249-.707a.998.998 0 01.72 1.224l-.327 1.2 1.4-.792a1.03 1.03 0 011.392.366.99.99 0 01-.373 1.366l-1.355.768 1.153.303a.998.998 0 01.721 1.225c-.146.533-.705.85-1.249.707l-3.123-.821-2.576 1.459 2.506 1.42 3.193-.84a1.022 1.022 0 011.249.707.998.998 0 01-.72 1.225l-1.224.322 1.4.793a.99.99 0 01.373 1.366 1.03 1.03 0 01-1.393.366l-1.356-.768.31 1.132a.998.998 0 01-.721 1.224 1.022 1.022 0 01-1.249-.707l-.837-3.063L11 11.776z"],"social-media":["M11.5 5c.8 0 1.6-.4 2-1 2 1.2 3.3 3.3 3.5 5.7 0 .5.5.9 1 .9.6 0 1-.5 1-1v-.1c-.2-3.3-2.2-6.2-5.1-7.6C13.7.8 12.7 0 11.5 0 10.1 0 9 1.1 9 2.5S10.1 5 11.5 5zm5 7c-1.4 0-2.5 1.1-2.5 2.5 0 .4.1.7.2 1.1-1.1.9-2.6 1.4-4.2 1.4-1.9 0-3.6-.8-4.9-2-.2-.2-.5-.4-.8-.4-.5 0-1 .5-1 1 0 .3.1.5.3.7C5.3 18 7.5 19 10 19c2.2 0 4.2-.8 5.8-2.1.2.1.5.1.7.1 1.4 0 2.5-1.1 2.5-2.5S17.9 12 16.5 12zM5 10.5c0-1.1-.7-2.1-1.7-2.4.5-1.9 1.9-3.5 3.6-4.4.3-.2.6-.5.6-.9 0-.5-.4-1-1-1-.2 0-.4.1-.6.2-2.4 1.2-4.2 3.6-4.7 6.4C.5 8.9 0 9.6 0 10.5 0 11.9 1.1 13 2.5 13S5 11.9 5 10.5z"],sort:["M19 16h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm0-5h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM7 15c-.28 0-.53.11-.71.29L5 16.59V11c0-.55-.45-1-1-1s-1 .45-1 1v5.59L1.71 15.3A.965.965 0 001 15a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 007 15zM19 1h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zm0 5h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V7c0-.55-.45-1-1-1z"],"sort-alphabetical":["M8 15c-.28 0-.53.11-.71.29L6 16.59v-5.58c0-.55-.45-1-1-1s-1 .45-1 1v5.58L2.71 15.3c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 008 15zm8.89-.79v-1.22H11.3v1.3h3.51L11 18.78V20h5.99v-1.3h-3.91l3.81-4.49zM14.97 0h-1.95L9.01 11.01h1.89l.98-2.92h4.17l.98 2.92h1.96L14.97 0zm-2.59 6.63l1.58-4.74H14l1.57 4.74h-3.19z"],"sort-alphabetical-desc":["M8.01 15c-.28 0-.53.11-.71.29L6 16.59v-5.58c0-.55-.45-1-1-1s-1 .45-1 1v5.58L2.71 15.3c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l3 3a1.014 1.014 0 001.42 0l3-3c.18-.18.29-.43.29-.71.01-.55-.44-1-.99-1zm4.44-5.65l6.4-7.88V0H10.5v1.67h5.91L10 9.44v1.57h9V9.35h-6.55zm1.27 3.64L11 20h1.59l.56-1.56h2.68l.55 1.56h1.64l-2.68-7.01h-1.62zm-.16 4.3l.93-2.57h.02l.9 2.57h-1.85z"],"sort-asc":["M10 8h5c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1h-5c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm0 5h7c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm0-10h3c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm9 12h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zM7 14c-.28 0-.53.11-.71.29L5 15.59V10c0-.55-.45-1-1-1s-1 .45-1 1v5.59L1.71 14.3A.965.965 0 001 14a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 007 14z"],"sort-desc":["M13 15h-3c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm-6-1c-.28 0-.53.11-.71.29L5 15.59V10c0-.55-.45-1-1-1s-1 .45-1 1v5.59L1.71 14.3A.965.965 0 001 14a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29s.53-.11.71-.29l3-3A1.003 1.003 0 007 14zM19 0h-9c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h9c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-4 10h-5c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-1c0-.55-.45-1-1-1zm2-5h-7c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z"],"sort-numerical":["M9 14.99c-.28 0-.53.11-.71.29L7 16.58v-5.59c0-.55-.45-1-1-1s-1 .45-1 1v5.59l-1.29-1.29a.965.965 0 00-.71-.3 1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l3-3c.18-.18.29-.43.29-.71a.99.99 0 00-1-1zm8.88.23c-.08-.42-.22-.79-.42-1.12-.2-.33-.47-.6-.8-.8-.33-.2-.76-.3-1.28-.3a2.333 2.333 0 00-1.72.71c-.21.22-.37.48-.49.78-.11.3-.17.62-.17.97 0 .27.04.54.13.8.08.26.22.5.4.7.19.21.43.38.71.5a2.142 2.142 0 001.72.02c.25-.12.47-.31.66-.58l.02.02c-.01.19-.04.4-.08.63-.04.24-.11.46-.21.67-.1.21-.23.38-.39.53a.92.92 0 01-.62.22c-.24 0-.44-.08-.6-.25-.16-.17-.27-.36-.31-.59h-1.31c.04.29.12.56.24.79.12.23.28.43.48.59.19.16.42.28.67.36.25.08.52.12.82.12.49 0 .9-.1 1.23-.31.34-.21.61-.48.82-.82.21-.34.37-.71.47-1.13.1-.42.15-.83.15-1.25 0-.43-.04-.85-.12-1.26zm-1.42.63c-.05.15-.11.28-.2.4-.09.12-.2.21-.34.27s-.3.1-.49.1c-.17 0-.33-.04-.46-.11s-.24-.17-.33-.29c-.08-.12-.15-.25-.19-.4-.04-.15-.06-.31-.06-.47 0-.15.02-.3.07-.45.05-.15.11-.28.2-.39.09-.12.2-.21.33-.28.13-.07.27-.11.44-.11.17 0 .33.04.47.11.14.07.25.17.34.28a1.387 1.387 0 01.28.86c.01.17-.02.33-.06.48zM15.32 11H17V0h-1.25c-.05.34-.17.62-.34.85-.17.23-.39.42-.63.57-.25.15-.52.25-.83.31-.3.06-.62.09-.94.09v1.41h2.31V11z"],"sort-numerical-desc":["M9 15c-.28 0-.53.11-.71.29L7 16.59v-5.58c0-.55-.45-1-1-1s-1 .45-1 1v5.58L3.71 15.3c-.18-.18-.43-.3-.71-.3a1.003 1.003 0 00-.71 1.71l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l3-3A1.003 1.003 0 009 15zm6.7-1.33a1.5 1.5 0 01-.44.43c-.17.11-.37.19-.58.23-.22.04-.44.06-.67.05v1.07h1.66V20H17v-6.99h-1.06c-.04.26-.12.48-.24.66zm3.15-10.3c-.11-.68-.29-1.26-.55-1.76-.26-.5-.62-.89-1.08-1.18C16.75.14 16.17 0 15.46 0c-.54 0-1.03.09-1.46.27-.43.18-.79.44-1.09.76-.3.33-.52.71-.67 1.15-.16.44-.24.92-.24 1.43 0 .54.08 1.04.23 1.47.15.44.37.81.65 1.12.28.31.61.55 1 .72.39.17.82.26 1.3.26.46 0 .88-.11 1.26-.33.38-.22.68-.53.9-.94l.03.03c-.03.35-.07.74-.12 1.16-.05.42-.15.81-.29 1.18-.14.37-.35.68-.61.92-.26.25-.62.37-1.06.37-.43 0-.77-.13-1.03-.4-.25-.27-.4-.62-.44-1.05h-1.64c.02.43.11.83.29 1.18.17.35.39.66.67.91a3.027 3.027 0 002.07.8c.71 0 1.3-.17 1.79-.5.48-.33.87-.76 1.17-1.29.3-.53.51-1.12.64-1.76.13-.64.19-1.28.19-1.92.01-.77-.05-1.49-.15-2.17zM17.1 4.44c-.08.27-.19.5-.34.71-.15.21-.34.37-.57.49-.23.12-.5.18-.8.18-.3 0-.56-.06-.78-.19-.22-.13-.4-.29-.55-.49-.14-.2-.25-.44-.32-.7-.07-.27-.11-.55-.11-.84 0-.28.04-.55.11-.82.07-.26.18-.49.32-.7.14-.2.33-.36.55-.48.22-.12.48-.17.78-.17.31 0 .57.06.8.18.23.12.42.28.57.48.15.2.26.43.34.69.08.26.11.53.11.82 0 .29-.04.57-.11.84z"],"split-columns":["M15 13a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-3-3a1.003 1.003 0 00-1.42 1.42L16.59 9H11V2h5v2c.77 0 1.47.3 2 .78V1c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v3.78C2.53 4.3 3.23 4 4 4V2h5v7H3.41L4.7 7.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-3 3C.11 9.47 0 9.72 0 10c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L3.41 11H9v7H4v-2c-.77 0-1.47-.3-2-.78V19c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.78c-.53.48-1.23.78-2 .78v2h-5v-7h5.59l-1.29 1.29c-.19.18-.3.43-.3.71z"],square:["M19 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H2V2h16v16z"],"stacked-chart":["M12 2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v4h4V2zm3 14h2c.55 0 1-.45 1-1v-5h-4v5c0 .55.45 1 1 1zm3-10c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v3h4V6zm-6 1H8v5h4V7zm-9 9h2c.55 0 1-.45 1-1v-3H2v3c0 .55.45 1 1 1zm16 1H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM6 9c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v2h4V9zm3 7h2c.55 0 1-.45 1-1v-2H8v2c0 .55.45 1 1 1z"],star:["M10 0l3.1 6.6 6.9 1-5 5.1 1.2 7.3-6.2-3.4L3.8 20 5 12.7 0 7.6l6.9-1z"],"star-empty":["M20 7.6l-6.9-1.1L10 0 6.9 6.6 0 7.6l5 5.1L3.8 20l6.2-3.4 6.2 3.4-1.2-7.2 5-5.2zM10 15l-4.5 2.4.9-5.2-3.6-3.6 5-.8L10 3.1l2.2 4.7 5 .8-3.6 3.7.9 5.2L10 15z"],"step-backward":["M15 3c-.23 0-.42.09-.59.21l-.01-.01L8 8V4c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-4l6.4 4.8.01-.01c.17.12.36.21.59.21.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"step-chart":["M19 16H2v-3h4c.55 0 1-.45 1-1V8h3v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V6h2c.55 0 1-.45 1-1s-.45-1-1-1h-3c-.55 0-1 .45-1 1v4h-3V7c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v4H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],"step-forward":["M15 3h-2c-.55 0-1 .45-1 1v4L5.6 3.2l-.01.01C5.42 3.09 5.23 3 5 3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1 .23 0 .42-.09.59-.21l.01.01L12 12v4c0 .55.45 1 1 1h2c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],stop:["M16 3H4c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],stopwatch:["M10 6a6 6 0 106 6h-6V6zm-.998-1.938A1.015 1.015 0 019 4V2H7a1 1 0 110-2h6a1 1 0 010 2h-2v2c0 .02 0 .041-.002.062A8.001 8.001 0 0110 20a8 8 0 01-.998-15.938z"],strikethrough:["M18 9h-4.46a4.7 4.7 0 00-.4-.14c-.19-.05-.51-.14-.96-.25-.45-.11-.9-.23-1.37-.35-.47-.12-.89-.23-1.27-.33s-.6-.16-.65-.17c-.53-.15-.95-.37-1.27-.66-.32-.28-.49-.68-.49-1.19 0-.36.09-.66.26-.9s.39-.43.65-.57c.26-.14.55-.24.87-.3s.63-.09.93-.09c.89 0 1.63.19 2.21.57.45.3.75.76.89 1.38h2.63c-.06-.52-.2-.98-.42-1.4-.3-.57-.71-1.05-1.23-1.43a5.33 5.33 0 00-1.79-.87c-.7-.2-1.42-.3-2.19-.3-.66 0-1.31.08-1.96.25s-1.22.43-1.73.77-.92.79-1.23 1.32c-.31.52-.46 1.15-.46 1.87 0 .37.05.74.15 1.1.1.36.28.7.53 1.02.18.24.41.47.69.67H2c-.55 0-1 .45-1 1s.45 1 1 1h10.14c.02.01.05.02.07.02.3.11.58.29.84.55.25.26.38.67.38 1.21 0 .27-.06.53-.17.79-.11.26-.29.49-.54.69-.25.2-.57.36-.97.49s-.88.19-1.44.19c-.52 0-1.01-.06-1.45-.17-.45-.11-.84-.29-1.19-.54s-.61-.56-.8-.95c-.05-.08-.09-.18-.12-.28H4.11c.09.43.22.82.4 1.18.33.65.77 1.18 1.32 1.59.55.41 1.2.72 1.94.92.74.2 1.53.3 2.37.3.73 0 1.44-.08 2.14-.25.7-.17 1.33-.43 1.88-.79.55-.36.99-.83 1.33-1.39.34-.56.51-1.25.51-2.05 0-.37-.06-.75-.18-1.12a3.12 3.12 0 00-.15-.39H18c.55 0 1-.45 1-1s-.45-1-1-1z"],style:["M18 18H2V2h12.3l2-2H1C.4 0 0 .4 0 1v18c0 .6.4 1 1 1h18c.6 0 1-.4 1-1V7.7l-2 2V18zm1.2-18l-7.6 7.6 2.8 2.8L20 4.8V0h-.8zM4 15.9c3.1.2 5.9.2 8.2-2 1.1-1.1 1.1-3 0-4.1-.6-.5-1.3-.8-2-.8s-1.4.3-1.9.8C7.2 11 6.6 14.3 4 15.9z"],"swap-horizontal":["M16.02 10c-.01 0-.01 0 0 0H16h.02zM2 6h13.58l-2.29 2.29a1 1 0 00-.3.71 1.003 1.003 0 001.71.71l4-4c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-4-4a1.003 1.003 0 00-1.42 1.42L15.58 4H2c-.55 0-1 .45-1 1s.45 1 1 1zm2 4h-.02H4zm14 4H4.42l2.29-2.29a1 1 0 00.3-.71 1.003 1.003 0 00-1.71-.71l-4 4c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L4.42 16H18c.55 0 1-.45 1-1s-.45-1-1-1z"],"swap-vertical":["M9.71 5.3l-4-4A.997.997 0 005 1.01c-.28 0-.53.11-.71.29l-4 4a1.003 1.003 0 001.42 1.42L4 4.42V18c0 .55.45 1 1 1s1-.45 1-1V4.42l2.29 2.29a1 1 0 00.71.3 1.003 1.003 0 00.71-1.71zM10 3.98c0 .01 0 .01 0 0V4v-.02zm0 12.04c0-.01 0-.01 0 0V16v.02zm9-3.03c-.28 0-.53.11-.71.29L16 15.58V2c0-.55-.45-1-1-1s-1 .45-1 1v13.58l-2.29-2.29a1.003 1.003 0 00-1.42 1.42l4 4c.18.18.43.29.71.29.28 0 .53-.11.71-.29l4-4c.18-.18.29-.43.29-.71 0-.56-.45-1.01-1-1.01z"],switch:["M12.293 2.293l1.414 1.414-7.127 7.129a3.5 3.5 0 11-1.415-1.415l7.128-7.128zM16.5 9a3.5 3.5 0 110 7 3.5 3.5 0 010-7zm-13 2a1.5 1.5 0 100 3 1.5 1.5 0 000-3zm13 0a1.5 1.5 0 100 3 1.5 1.5 0 000-3z"],"symbol-circle":["M10 4.01a6 6 0 100 12 6 6 0 100-12z"],"symbol-cross":["M15 8.01h-3v-3c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v3H5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h3v3c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-3h3c.55 0 1-.45 1-1v-2c0-.56-.45-1-1-1z"],"symbol-diamond":["M15 10.01c0-.21-.08-.39-.18-.54l.02-.01-4-6-.02.01c-.18-.28-.47-.46-.82-.46s-.64.18-.82.45l-.01-.01-4 6 .02.01c-.11.16-.19.34-.19.55s.08.39.18.54l-.02.01 4 6 .02-.01c.18.27.47.46.82.46s.64-.19.82-.46l.02.01 4-6-.02-.01c.1-.16.18-.34.18-.54z"],"symbol-square":["M15 4.01H5c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h10c.55 0 1-.45 1-1v-10c0-.56-.45-1-1-1z"],"symbol-triangle-down":["M16 5c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1 0 .16.05.31.11.44H4.1l5 10h.01c.17.33.5.56.89.56s.72-.23.89-.56h.01l5-10h-.01c.06-.13.11-.28.11-.44z"],"symbol-triangle-up":["M15.89 14.56l-4.99-10h-.01c-.17-.33-.5-.56-.89-.56s-.72.23-.89.56H9.1l-5 10h.01c-.06.13-.11.28-.11.44 0 .55.45 1 1 1h10c.55 0 1-.45 1-1 0-.16-.05-.31-.11-.44z"],tag:["M2 4a2 2 0 012-2h4.588a2 2 0 011.414.586l7.41 7.41a2 2 0 010 2.828l-4.588 4.588a2 2 0 01-2.829 0l-7.41-7.41A2 2 0 012 8.588V4zm3.489-.006a1.495 1.495 0 100 2.99 1.495 1.495 0 000-2.99z"],"take-action":["M5 7c.28 0 .53-.11.71-.29l5-5A1.003 1.003 0 009.29.29l-5 5A1.003 1.003 0 005 7zm6 6a1.003 1.003 0 001.71.71l5-5a1.003 1.003 0 00-1.42-1.42l-5 5c-.18.18-.29.43-.29.71zm8 5h-1c0-.55-.45-1-1-1h-7c-.55 0-1 .45-1 1H8c-.55 0-1 .45-1 1s.45 1 1 1h11c.55 0 1-.45 1-1s-.45-1-1-1zm-9-6l6-6-1.29-1.29a1.003 1.003 0 00-1.42-1.42L12 2 6 8l1.29 1.29-7 7a1.003 1.003 0 001.42 1.42l7-7L10 12z"],taxi:["M19 9h-.33l.33 1v.5c0 .15-.03.3-.07.44h.01L17 17.23v.27c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5V17H6v.5c0 .83-.67 1.5-1.5 1.5S3 18.33 3 17.5v-.27l-1.93-6.28h.01c-.05-.15-.08-.3-.08-.45V10s.02-.06.05-.16c.06-.17.16-.47.28-.84H1c-.55 0-1-.45-1-1s.45-1 1-1h1l1-3h-.01v-.01c.25-.64 1-1.31 1.67-1.5 0 0 .78-.21 2.33-.36V1c0-.55.45-1 1-1h4c.55 0 1 .45 1 1v1.13c1.55.14 2.33.36 2.33.36.67.19 1.42.86 1.67 1.5V4H17l1 3h1c.55 0 1 .45 1 1s-.45 1-1 1zM3 11.5c0 .83.67 1.5 1.5 1.5S6 12.33 6 11.5 5.33 10 4.5 10 3 10.67 3 11.5zM16 7l-1-3H5L4 7v1h12V7zm-.5 3c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"],"text-highlight":["M16 17c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1s1-.45 1-1-.45-1-1-1c-.77 0-1.47.3-2 .78-.53-.48-1.23-.78-2-.78-.55 0-1 .45-1 1s.45 1 1 1 1 .45 1 1v12c0 .55-.45 1-1 1s-1 .45-1 1 .45 1 1 1c.77 0 1.47-.3 2-.78.53.48 1.23.78 2 .78.55 0 1-.45 1-1s-.45-1-1-1zm-4-4H2V7h10V5H1c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h11v-2zm7-8h-3v2h2v6h-2v2h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z"],th:["M19 1H1c-.6 0-1 .5-1 1v16c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V2c0-.5-.5-1-1-1zM7 17H2v-3h5v3zm0-4H2v-3h5v3zm0-4H2V6h5v3zm11 8H8v-3h10v3zm0-4H8v-3h10v3zm0-4H8V6h10v3z"],"th-derived":["M5.3 13.3c-.2.2-.3.4-.3.7 0 .6.4 1 1 1 .3 0 .5-.1.7-.3l3-3c.2-.2.3-.4.3-.7s-.1-.5-.3-.7l-3-3C6.5 7.1 6.3 7 6 7c-.6 0-1 .4-1 1 0 .3.1.5.3.7L6.6 10H1c-.6 0-1 .4-1 1s.4 1 1 1h5.6l-1.3 1.3zM19 1H3c-.5 0-1 .5-1 1v6h1c0-1.7 1.3-3 3-3 .8 0 1.6.3 2.1.9l.1.1H9v.8l1 1V6h8v3h-6.8c.3.3.5.6.6 1H18v3h-6.8l-.1.1-.9.9H18v3h-8v-2.8l-1 1V17H4v-.8c-.6-.5-1-1.3-1-2.2H2v4c0 .5.5 1 1 1h16c.6 0 1-.5 1-1V2c0-.5-.5-1-1-1z"],"th-disconnect":["M14.25 1H19c.5 0 1 .5 1 1v16c0 .5-.5 1-1 1h-7.221l.278-2H18v-3h-5.527l.14-1H18v-3h-4.971l.139-1H18V6h-4.416l.637-4.587c.02-.139.03-.277.03-.413zM8.221 1l-.694 5H2v3h5.11l-.139 1H2v3h4.555l-.14 1H2v3h3.999l-.22 1.587c-.02.139-.03.277-.03.413H1c-.6 0-1-.5-1-1V2c0-.5.4-1 1-1h7.221zM10.26.862a1 1 0 011.98.276l-2.5 18a1 1 0 01-1.98-.276l2.5-18z"],"th-filtered":["M17.333 10l1.435-1.722a1 1 0 00.232-.64V4.85l1-.9V18c0 .5-.5 1-1 1H1c-.6 0-1-.5-1-1V2c0-.5.4-1 1-1h6.722L12 4.85V6H8v3h4v1H8v3h10v-3h-.667zM7 17v-3H2v3h5zm0-4v-3H2v3h5zm0-4V6H2v3h5zm11 8v-3H8v3h10z","M19.35 0a.642.642 0 01.46 1.1l-3.03 3.03v2.95c0 .18-.07.34-.19.46l-1.28 1.29c-.11.1-.27.17-.45.17-.35 0-.64-.29-.64-.64V4.13L11.19 1.1a.642.642 0 01.45-1.1h7.71z"],"th-list":["M19 1H1c-.6 0-1 .5-1 1v16c0 .5.4 1 1 1h18c.5 0 1-.5 1-1V2c0-.5-.5-1-1-1zm-1 16H2v-3h16v3zm0-4H2v-3h16v3zm0-4H2V6h16v3z"],"thumbs-down":["M18.55 6.56c-.31-.01-.65-.03-1.02-.06.03 0 .06-.01.09-.01.88-.12 1.68-.63 1.76-1.37.08-.75-.58-1.25-1.46-1.33-.32-.03-.65-.05-.99-.08.59-.19 1.05-.54 1.09-1.2.05-.75-.99-1.32-1.87-1.41-.34-.03-.64-.05-.91-.07h-.11c-.28-.02-.54-.02-.77-.02-3.92-.08-7.29.6-9.36 1.93v7.72c2.67 1.66 5.95 4.61 5.26 7.08-.21.76.39 1.35 1.23 1.26 1.01-.11 1.71-1.18 1.75-2.28.05-1.29-.19-2.59-.62-3.74-.05-.32.01-.65.47-.68.61-.04 1.39-.08 1.99-.1.32 0 .64-.01.94-.03h.01c.52-.03 1-.07 1.42-.12.88-.11 1.69-.6 1.79-1.35.1-.75-.55-1.25-1.44-1.35-.07-.01-.13-.02-.2-.02.21-.02.42-.04.61-.06.88-.11 1.69-.6 1.79-1.35.09-.75-.56-1.31-1.45-1.36zM3 3H0v8h3c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"thumbs-up":["M3 9H0v8h3c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm16.99 3.09c-.1-.75-.91-1.24-1.79-1.35-.19-.02-.4-.05-.61-.06.07-.01.14-.01.2-.02.88-.1 1.53-.61 1.44-1.35-.1-.74-.91-1.24-1.79-1.35-.42-.05-.9-.09-1.42-.12h-.01l-.94-.03c-.6-.02-1.39-.05-1.99-.1-.45-.03-.51-.36-.47-.68.43-1.15.67-2.45.62-3.74-.04-1.11-.74-2.17-1.75-2.28-.84-.09-1.45.5-1.23 1.26.7 2.47-2.58 5.43-5.25 7.08v7.72c2.08 1.33 5.44 2.01 9.35 1.93.24 0 .49-.01.77-.02h.11c.27-.02.57-.04.91-.07.88-.08 1.92-.66 1.87-1.41-.04-.65-.5-1.01-1.09-1.2.34-.03.67-.05.99-.08.89-.08 1.55-.58 1.46-1.33-.08-.75-.88-1.25-1.76-1.37-.03 0-.06-.01-.09-.01.37-.02.71-.04 1.02-.06.91-.05 1.55-.61 1.45-1.36z"],tick:["M17 4c-.28 0-.53.11-.71.29L7 13.59 3.71 10.3A.965.965 0 003 10a1.003 1.003 0 00-.71 1.71l4 4c.18.18.43.29.71.29s.53-.11.71-.29l10-10A1.003 1.003 0 0017 4z"],"tick-circle":["M10 20C4.48 20 0 15.52 0 10S4.48 0 10 0s10 4.48 10 10-4.48 10-10 10zm5-14c-.28 0-.53.11-.71.29L8 12.59l-2.29-2.3a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l7-7A1.003 1.003 0 0015 6z"],time:["M11 9.59V4c0-.55-.45-1-1-1s-1 .45-1 1v6c0 .28.11.53.29.71l3 3a1.003 1.003 0 001.42-1.42L11 9.59zM10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"],"timeline-area-chart":["M19 16H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zm0-13.41l-7.07 7.07-4.3-3.44-.01.01A.987.987 0 007 6c-.24 0-.46.1-.63.24l-.01-.01L3 9.03V15h16V2.59z"],"timeline-bar-chart":["M19 17H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM9 16h2c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1v13c0 .55.45 1 1 1zm6 0h2c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1zM3 16h2c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1z"],"timeline-events":["M5 5c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zm10 0c.6 0 1-.4 1-1V2c0-.5-.4-1-1-1s-1 .5-1 1v2c0 .6.4 1 1 1zm-9 9H4v2h2v-2zM17 3v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H7v1c0 1.1-.9 2-2 2s-2-.9-2-2V3H2c-.5 0-1 .5-1 1v14c0 .5.5 1 1 1h16c.5 0 1-.5 1-1V4c0-.5-.5-1-1-1h-1zM7 17H3v-4h4v4zm0-5H3V8h4v4zm5 5H8v-4h4v4zm0-5H8V8h4v4zm5 5h-4v-4h4v4zm0-5h-4V8h4v4zm-6 2H9v2h2v-2zm5-5h-2v2h2V9z"],"timeline-line-chart":["M19 16H2v-1.59l5-5 3.29 3.29c.18.19.43.3.71.3s.53-.11.71-.29l7-7a1.003 1.003 0 00-1.42-1.42L11 10.59l-3.29-3.3C7.53 7.11 7.28 7 7 7s-.53.11-.71.29L2 11.59V3c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],tint:["M9.86 2S3.98 9.18 3.98 12.17C3.99 15.4 6.78 18 9.96 18c3.18-.01 6.04-2.63 6.03-5.86C15.99 9.05 9.86 2 9.86 2z"],torch:["M6.97 19c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-2h-6v2zm-3-15l3 4v8h6V8l3-4h-12zm5 5c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1s-1-.45-1-1V9zm6-9h-10c-.55 0-1 .45-1 1v2h12V1c0-.55-.45-1-1-1z"],tractor:["M4.5 11a4.5 4.5 0 110 9 4.5 4.5 0 010-9zm11.499 1a4 4 0 110 8 4 4 0 010-8zm-11.5 1.571a1.928 1.928 0 100 3.857 1.928 1.928 0 000-3.857zM16 14.667a1.333 1.333 0 100 2.666 1.333 1.333 0 000-2.666zM5.999 0C7.46 0 8.527.668 9 2l.851 4.256c1.433.096 2.82.217 4.147.362V2h2L16 6.862c.962.13 1.886.275 2.767.435.779.141 1.232.614 1.232 1.284L20 13a4.995 4.995 0 00-4-1.997A5.001 5.001 0 0011.099 15h-1.12a5.499 5.499 0 00-5.478-4.994 5.482 5.482 0 00-3.377 1.157H.004v-1.18L0 7.327c-.002-.597.37-1.18.999-1.302V1a1 1 0 011-1h4zm1 2H3v4h.75c1.386.027 2.749.073 4.079.139L6.999 2z"],train:["M16 18h-2l2 2H4l.12-.12L6 18H4c-1.1 0-2-.9-2-2V2c0-1.1 3.58-2 8-2s8 .9 8 2v14c0 1.1-.9 2-2 2zM5.5 15c.83 0 1.5-.67 1.5-1.5S6.33 12 5.5 12 4 12.67 4 13.5 4.67 15 5.5 15zM9 3H4v6h5V3zm7 0h-5v6h5V3zm-1.5 9c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"],translate:["M19.89 18.56l-4.99-10h-.01c-.17-.33-.5-.56-.89-.56s-.72.23-.89.56h-.01l-1.73 3.46-2.8-2.3 1.99-1.64C11.44 7.34 12 6.23 12 5V4h1c.55 0 1-.45 1-1s-.45-1-1-1H8V1c0-.55-.45-1-1-1S6 .45 6 1v1H1c-.55 0-1 .45-1 1s.45 1 1 1h9v1c0 .62-.28 1.18-.73 1.54L7 8.42 4.73 6.54C4.28 6.18 4 5.62 4 5H2c0 1.23.56 2.34 1.44 3.07l1.99 1.64-3.06 2.52.01.01c-.23.18-.38.45-.38.76 0 .55.45 1 1 1 .24 0 .45-.1.63-.24l.01.01L7 11l3.36 2.77.01-.01c.02.02.05.03.08.05.01 0 .01.01.02.02l-2.36 4.73h.01c-.07.13-.12.28-.12.44 0 .55.45 1 1 1 .39 0 .72-.23.89-.56h.01L11.12 17h5.76l1.22 2.45h.01c.17.32.5.55.89.55.55 0 1-.45 1-1 0-.16-.05-.31-.11-.44zM12.12 15L14 11.24 15.88 15h-3.76z"],trash:["M17 1h-5c0-.55-.45-1-1-1H9c-.55 0-1 .45-1 1H3c-.55 0-1 .45-1 1v1h16V2c0-.55-.45-1-1-1zm.5 3h-15c-.28 0-.5.22-.5.5s.22.5.5.5H3v14c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5h.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5zM7 16c0 .55-.45 1-1 1s-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8zm4 0c0 .55-.45 1-1 1s-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8zm4 0c0 .55-.45 1-1 1s-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8z"],tree:["M11 15.542V20H9v-4.458L2 17l4.5-5.625L4 12l3.655-5.483L6 7l4-7 4 7-1.655-.483L16 12l-2.5-.625L18 17l-7-1.458z"],"trending-down":["M19 10c-.55 0-1 .45-1 1v1.37l-6.25-7.03-.01.01A.971.971 0 0011 5c-.23 0-.42.09-.59.21l-.01-.01-3.43 2.58-5.42-3.61-.01.01A.969.969 0 001 4c-.55 0-1 .45-1 1 0 .35.19.64.46.82l-.01.01 6 4 .01-.02c.15.11.33.19.54.19.23 0 .42-.09.59-.21l.01.01 3.26-2.45L16.77 14H15c-.55 0-1 .45-1 1s.45 1 1 1h4c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1z"],"trending-up":["M19 4h-4c-.55 0-1 .45-1 1s.45 1 1 1h1.77l-5.91 6.65L7.6 10.2l-.01.01C7.42 10.09 7.23 10 7 10c-.21 0-.39.08-.54.18l-.01-.02-6 4 .01.02c-.27.18-.46.47-.46.82 0 .55.45 1 1 1 .21 0 .39-.08.54-.18l.01.02 5.41-3.61 3.43 2.58.01-.01c.18.11.37.2.6.2.3 0 .56-.14.74-.34l.01.01L18 7.63V9c0 .55.45 1 1 1s1-.45 1-1V5c0-.55-.45-1-1-1z"],truck:["M16 0a1 1 0 011 1v11a1 1 0 011 1v3h.5a.5.5 0 01.5.5v1a.5.5 0 01-.5.5H17v1a1 1 0 01-1 1h-1a1 1 0 01-1-1v-1H6v1a1 1 0 01-1 1H4a1 1 0 01-1-1v-1H1.5a.5.5 0 01-.5-.5v-1a.5.5 0 01.5-.5H2v-3a1 1 0 011-1V1a1 1 0 112 0v3a2 2 0 012-2h6a2 2 0 012 2V1a1 1 0 011-1zm-4 10H8a1 1 0 00-1 1v4a1 1 0 001 1h4a1 1 0 001-1v-4a1 1 0 00-1-1zm-7 4H4a1 1 0 000 2h1a1 1 0 000-2zm11 0h-1a1 1 0 000 2h1a1 1 0 000-2zm-4.5 0a.5.5 0 110 1h-3l-.09-.008A.5.5 0 018.5 14zm0-1.5a.5.5 0 110 1h-3l-.09-.008a.5.5 0 01.09-.992zm0-1.5a.5.5 0 110 1h-3l-.09-.008A.5.5 0 018.5 11zM14 5H6v3h8V5z"],"two-columns":["M5 0H1C.45 0 0 .45 0 1v18c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm14.71 9.29l-3-3A1.003 1.003 0 0015 7v6a1.003 1.003 0 001.71.71l3-3c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71zM12 0H8c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h4c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],unarchive:["M16.434 0a1 1 0 01.857.486L20 5v14a1 1 0 01-1 1H1a1 1 0 01-1-1V5L2.709.486A1 1 0 013.566 0h12.868zM10 8c-.28 0-.53.11-.71.29l-3 3-.084.096A1.003 1.003 0 007.71 12.71L9 11.41v4.58l.007.116c.058.496.482.884.993.884.55 0 1-.45 1-1v-4.58l1.29 1.29.081.073c.171.139.389.227.629.227a1.003 1.003 0 00.71-1.71l-3-3-.096-.084A1.002 1.002 0 0010 8zm6-6H4L2 5.002h16L16 2z"],underline:["M10 17c3.3 0 6-2.7 6-6V3.5c0-.8-.7-1.5-1.5-1.5S13 2.7 13 3.5V11c0 1.7-1.3 3-3 3s-3-1.3-3-3V3.5C7 2.7 6.3 2 5.5 2S4 2.7 4 3.5V11c0 3.3 2.7 6 6 6zM16.5 19h-13c-.3 0-.5.2-.5.5s.2.5.5.5h13c.3 0 .5-.2.5-.5s-.2-.5-.5-.5z"],undo:["M5 14c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm9-9H3.41L5.7 2.71c.19-.18.3-.43.3-.71a1.003 1.003 0 00-1.71-.71l-4 4C.11 5.47 0 5.72 0 6c0 .28.11.53.29.71l4 4a1.003 1.003 0 001.42-1.42L3.41 7H14c2.21 0 4 1.79 4 4s-1.79 4-4 4H9v2h5c3.31 0 6-2.69 6-6s-2.69-6-6-6z"],"ungroup-objects":["M4.5 6C2.01 6 0 8.01 0 10.5S2.01 15 4.5 15 9 12.99 9 10.5 6.99 6 4.5 6zm11 0C13.01 6 11 8.01 11 10.5s2.01 4.5 4.5 4.5 4.5-2.01 4.5-4.5S17.99 6 15.5 6z"],"unknown-vehicle":["M13 11.988v-4H4v-1l1-3h6V2.003a35.867 35.867 0 00-1-.015c-3.593 0-5.332.488-5.332.488-.67.188-1.424.864-1.674 1.503l-.004.009H3l-1 3H1a1 1 0 100 2h.333l-.28.84-.053.16v7.5a1.5 1.5 0 103 0v-.5h12v.5a1.5 1.5 0 103 0v-4.5h-5a1 1 0 01-1-1zm-8.5 1a1.5 1.5 0 110-3 1.5 1.5 0 010 3zM19.83 2.782a2.392 2.392 0 00-.592-.853c-.276-.264-.64-.485-1.09-.663C17.695 1.09 17.132 1 16.457 1c-.523 0-.996.084-1.418.253a3.157 3.157 0 00-1.084.703c-.299.3-.532.656-.698 1.065-.166.41-.254.861-.264 1.353h2.096c0-.246.028-.476.085-.69.057-.214.145-.4.264-.56.119-.16.27-.287.456-.383.185-.095.406-.143.663-.143.38 0 .677.1.89.3.215.2.321.51.321.93.01.245-.035.45-.135.614-.1.164-.23.314-.392.45a8.598 8.598 0 01-.527.41 3.53 3.53 0 00-.542.485c-.171.187-.32.412-.45.676-.127.265-.206.592-.234.984v.614h1.924v-.519c.038-.273.13-.5.278-.683.147-.182.316-.343.506-.484a13.5 13.5 0 01.606-.424c.214-.14.408-.312.584-.512s.323-.442.442-.724.178-.642.178-1.079c0-.264-.059-.548-.178-.854zm-4.54 6.099v2.103h2.237V8.881H15.29z"],unlock:["M14 1c-2.21 0-4 1.79-4 4v4H2c-.55 0-1 .45-1 1v8c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-8c0-.55-.45-1-1-1h-2V5c0-1.1.9-2 2-2s2 .9 2 2v2c0 .55.45 1 1 1s1-.45 1-1V5c0-2.21-1.79-4-4-4z"],unpin:["M11.77 1.16c-.81.81-.74 2.28.02 3.76L6.1 8.71c-2.17-1.46-4.12-2-4.94-1.18l4.95 4.95-2.12 3.54 3.54-2.12 4.95 4.95c.82-.82.27-2.77-1.19-4.94l3.8-5.69c1.47.76 2.94.84 3.76.02l-7.08-7.08z"],unresolve:["M11.47 12.46c.16-.36.29-.74.38-1.14 0-.02.01-.04.01-.06.09-.4.14-.82.14-1.26 0-.44-.05-.86-.14-1.27 0-.02-.01-.04-.01-.06-.09-.4-.22-.78-.38-1.14-.01-.02-.02-.03-.02-.05a5.94 5.94 0 00-.61-1.03c0-.01-.01-.01-.01-.02a6.308 6.308 0 00-2.1-1.77c-.19-.1-.39-.18-.59-.26-.03-.01-.06-.02-.1-.03-.17-.07-.34-.12-.52-.17-.05-.01-.1-.03-.15-.04a4.34 4.34 0 00-.52-.09c-.05-.01-.11-.02-.17-.03C6.46 4.02 6.23 4 6 4c-3.31 0-6 2.69-6 6s2.69 6 6 6c.23 0 .46-.02.68-.04l.17-.03c.17-.02.34-.06.51-.09.05-.01.1-.03.15-.04.18-.05.36-.1.53-.17l.09-.03a5.973 5.973 0 002.68-2.04c0-.01.01-.01.01-.02.24-.32.44-.66.61-1.03.02-.01.03-.03.04-.05zM14 4c-.99 0-1.91.24-2.73.66a7.51 7.51 0 010 10.68c.82.42 1.74.66 2.73.66 3.31 0 6-2.69 6-6s-2.69-6-6-6z"],updated:["M10 0C6.71 0 3.82 1.6 2 4.05V2c0-.55-.45-1-1-1s-1 .45-1 1v4c0 .55.45 1 1 1h4c.55 0 1-.45 1-1s-.45-1-1-1H3.76C5.22 3.17 7.47 2 10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8c0-.55-.45-1-1-1s-1 .45-1 1c0 5.52 4.48 10 10 10s10-4.48 10-10S15.52 0 10 0zm4 7c-.28 0-.53.11-.71.29L9 11.58 6.71 9.29a1.003 1.003 0 00-1.42 1.42l3 3c.18.18.43.29.71.29.28 0 .53-.11.71-.29l5-5A1.003 1.003 0 0014 7z"],upload:["M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0zm4 10c-.28 0-.53-.11-.71-.29L11 7.41V15c0 .55-.45 1-1 1s-1-.45-1-1V7.41l-2.29 2.3a1.003 1.003 0 01-1.42-1.42l4-4c.18-.18.43-.29.71-.29s.53.11.71.29l4 4A1.003 1.003 0 0114 10z"],user:["M10 0C4.48 0 0 4.48 0 10c0 .33.02.65.05.97.01.12.03.23.05.35.03.2.05.4.09.59.03.14.06.28.1.42l.12.48c.05.16.1.31.15.46.05.13.09.27.15.4.06.16.13.32.21.48.05.11.1.22.16.33.09.17.17.34.27.5.05.09.1.17.15.25.11.18.22.35.34.52.04.06.08.11.12.17 1.19 1.62 2.85 2.86 4.78 3.53l.09.03c.46.15.93.27 1.42.36.08.01.17.03.25.04.49.07.99.12 1.5.12s1.01-.05 1.5-.12c.08-.01.17-.02.25-.04.49-.09.96-.21 1.42-.36l.09-.03c1.93-.67 3.59-1.91 4.78-3.53.04-.05.08-.1.12-.16.12-.17.23-.35.34-.53.05-.08.1-.16.15-.25.1-.17.19-.34.27-.51.05-.11.1-.21.15-.32.07-.16.14-.32.21-.49.05-.13.1-.26.14-.39.05-.15.11-.31.15-.46.05-.16.08-.32.12-.48.03-.14.07-.28.1-.42.04-.19.06-.39.09-.59.02-.12.04-.23.05-.35.05-.32.07-.64.07-.97 0-5.52-4.48-10-10-10zm0 18a7.94 7.94 0 01-6.15-2.89c.84-.44 1.86-.82 2.67-1.19 1.45-.65 1.3-1.05 1.35-1.59.01-.07.01-.14.01-.21-.51-.45-.93-1.08-1.2-1.8l-.01-.01c0-.01-.01-.02-.01-.03a4.42 4.42 0 01-.15-.48c-.33-.07-.53-.44-.61-.79-.08-.14-.23-.48-.2-.87.05-.51.26-.74.49-.83v-.08c0-.63.06-1.55.17-2.15.02-.17.06-.33.11-.5.21-.73.66-1.4 1.26-1.86.62-.47 1.5-.72 2.28-.72.78 0 1.65.25 2.27.73.6.46 1.05 1.12 1.26 1.86.05.16.08.33.11.5.11.6.17 1.51.17 2.15v.09c.22.1.42.33.46.82.04.39-.12.73-.2.87-.07.34-.27.71-.6.78-.04.16-.09.33-.15.48 0 .01-.02.05-.02.05-.26.71-.67 1.33-1.17 1.78 0 .08.01.16.01.23.05.54-.15.94 1.31 1.59.81.36 1.84.74 2.68 1.19A7.958 7.958 0 0110 18z"],variable:["M4.93 3.79a9.1 9.1 0 012.2-2.27L7.29 1c-1.38.59-2.57 1.33-3.55 2.22C2.46 4.39 1.49 5.72.83 7.23.28 8.51 0 9.81 0 11.12c0 2.28.83 4.57 2.49 6.86l.16-.55c-.49-1.23-.73-2.38-.73-3.44 0-1.67.28-3.46.84-5.36.55-1.9 1.28-3.51 2.17-4.84zm9.38 8.39l-.33-.2c-.37.54-.65.87-.82 1a.74.74 0 01-.42.12c-.19 0-.38-.12-.57-.37-.31-.42-.73-1.59-1.26-3.5.47-.85.86-1.41 1.19-1.67.23-.19.48-.29.74-.29.1 0 .28.04.53.11.26.07.48.11.68.11.27 0 .5-.1.68-.29.18-.19.27-.44.27-.75 0-.33-.09-.58-.27-.77-.18-.19-.44-.29-.78-.29-.3 0-.59.07-.86.22s-.61.47-1.02.97c-.31.37-.77 1.02-1.37 1.94a9.683 9.683 0 00-1.24-3.14l-3.24.59-.06.36c.24-.05.44-.07.61-.07.32 0 .59.14.8.43.33.45.8 1.8 1.39 4.07-.47.64-.78 1.06-.96 1.26-.28.32-.52.53-.7.62-.14.08-.3.11-.48.11-.14 0-.36-.08-.67-.23-.21-.1-.4-.15-.57-.15-.31 0-.57.11-.78.32s-.31.48-.31.8c0 .31.09.55.28.75.19.19.44.29.76.29.31 0 .6-.07.87-.2s.61-.42 1.02-.86c.41-.44.98-1.13 1.7-2.08.28.9.52 1.56.72 1.97.2.41.44.71.7.89.26.18.59.27.99.27.38 0 .77-.14 1.17-.43.54-.36 1.07-1 1.61-1.91zM17.51 1l-.15.54c.49 1.24.73 2.39.73 3.45 0 1.43-.21 2.96-.63 4.6-.33 1.26-.75 2.45-1.27 3.55-.52 1.11-1.02 1.97-1.51 2.6-.49.62-1.09 1.2-1.8 1.72l-.17.53c1.38-.59 2.57-1.34 3.55-2.23 1.29-1.17 2.26-2.5 2.91-4 .55-1.28.83-2.59.83-3.91 0-2.27-.83-4.56-2.49-6.85z"],"vertical-bar-chart-asc":["M8 7H7c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zM3 9H2c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1zm10-5h-1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm5-4h-1c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"],"vertical-bar-chart-desc":["M3 0H2c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm5 4H7c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm5 3h-1c-.55 0-1 .45-1 1v11c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1zm5 2h-1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-9c0-.55-.45-1-1-1z"],"vertical-distribution":["M1 2h18c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1s.45 1 1 1zm2 5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V8c0-.55-.45-1-1-1H3zm16 11H1c-.55 0-1 .45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],video:["M19 2H1c-.55 0-1 .45-1 1v14c0 .55.45 1 1 1h18c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zM7 14V6l6 4-6 4z"],virus:["M15.249 13.835l1.251 1.251.354-.354.087-.077a1 1 0 011.327 1.491l-2.122 2.122-.087.077a1 1 0 01-1.327-1.491l.354-.354-1.251-1.251A6.466 6.466 0 0111 16.424L10.999 18h.501a1 1 0 01.117 1.993L11.5 20h-3a1 1 0 01-.117-1.993L8.5 18h.499v-1.577a6.46 6.46 0 01-2.538-.97L5.414 16.5l.354.354a1 1 0 01-1.327 1.491l-.087-.077-2.122-2.122a1 1 0 011.327-1.491l.087.077.354.354.97-.97a6.472 6.472 0 01-1.384-3.057l-.025.002L2 11.06v.44a1 1 0 01-1.993.117L0 11.5v-3a1 1 0 011.993-.117L2 8.5v.56h1.567A6.471 6.471 0 014.97 5.883l-.971-.969-.353.354-.087.077a1 1 0 01-1.327-1.491l2.122-2.122.087-.077a1 1 0 011.327 1.491l-.354.353 1.047 1.048A6.46 6.46 0 019 3.577L9 2h-.5A1 1 0 018.383.007L8.5 0h3a1 1 0 01.117 1.993L11.5 2H11v1.577a6.466 6.466 0 012.838 1.176l.04-.046L15.086 3.5l-.353-.353a1 1 0 011.327-1.491l.087.077 2.122 2.122a1 1 0 01-1.327 1.491l-.087-.077-.354-.354-1.207 1.207-.046.041a6.467 6.467 0 011.16 2.733H18V8.5a1 1 0 011.993-.117L20 8.5v3a1 1 0 01-1.993.117L18 11.5v-.605h-1.561a6.466 6.466 0 01-1.19 2.94zM12.5 11a1.5 1.5 0 100 3 1.5 1.5 0 000-3zM8 6a2 2 0 100 4 2 2 0 000-4z"],"volume-down":["M15.92 3.93l-1.6 1.18A7.948 7.948 0 0116 10c0 1.84-.63 3.54-1.68 4.89l1.6 1.18A9.878 9.878 0 0018 10c0-2.29-.78-4.39-2.08-6.07zM11 3c-.28 0-.53.11-.71.29L7.59 6H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h4.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"volume-off":["M14 3c-.28 0-.53.11-.71.29L10.59 6H6c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h4.59l2.71 2.71c.17.18.42.29.7.29.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z"],"volume-up":["M9 3.43c-.28 0-.53.11-.71.29l-2.7 2.71H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h4.59l2.71 2.71a1.003 1.003 0 001.71-.71v-12c-.01-.55-.46-1-1.01-1zm8.31-1.56l-1.62 1.2C17.14 5.16 18 7.69 18 10.43s-.86 5.27-2.31 7.37l1.62 1.2C19 16.57 20 13.62 20 10.43c0-3.18-1-6.13-2.69-8.56zm-3.39 2.49l-1.6 1.18A7.948 7.948 0 0114 10.43c0 1.84-.63 3.54-1.68 4.89l1.6 1.18A9.94 9.94 0 0016 10.43c0-2.28-.78-4.38-2.08-6.07z"],walk:["M16 10h-2c-.23 0-.42-.09-.59-.21l-.01.01-1.69-1.27-.63 3.14 2.62 2.62c.19.18.3.43.3.71v4c0 .55-.45 1-1 1s-1-.45-1-1v-3.59L9.39 12.8l-2.45 6.55h-.01c-.14.38-.5.65-.93.65-.55 0-1-.45-1-1 0-.12.03-.24.07-.35h-.01L9.43 7h-2.9l-1.7 2.55-.01-.01c-.18.27-.47.46-.82.46-.55 0-1-.45-1-1 0-.21.08-.39.18-.54l-.01-.01 2-3 .02.01C5.36 5.19 5.65 5 6 5h4.18l.36-.96c-.33-.43-.54-.96-.54-1.54a2.5 2.5 0 015 0A2.5 2.5 0 0112.5 5c-.06 0-.12-.01-.18-.02l-.44 1.18L14.33 8H16c.55 0 1 .45 1 1s-.45 1-1 1z"],"warning-sign":["M19.86 17.52l.01-.01-9-16-.01.01C10.69 1.21 10.37 1 10 1s-.69.21-.86.52l-.01-.01-9 16 .01.01c-.08.14-.14.3-.14.48 0 .55.45 1 1 1h18c.55 0 1-.45 1-1 0-.18-.06-.34-.14-.48zM11 17H9v-2h2v2zm0-3H9V6h2v8z"],"waterfall-chart":["M13 7h2c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1zm-9 8h1c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm4-6h2c.55 0 1-.45 1-1s-.45-1-1-1H8c-.55 0-1 .45-1 1s.45 1 1 1zm11-5h-1c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h1c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm0 12H2V3c0-.55-.45-1-1-1s-1 .45-1 1v14a.998.998 0 001 1h18c.55 0 1-.45 1-1s-.45-1-1-1z"],widget:["M18 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM2 16c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm15-1h2V5h-2v10zM3 5H1v10h2V5zM2 0C.9 0 0 .9 0 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm3 3h10V1H5v2zm13 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM5 19h10v-2H5v2z"],"widget-button":["M1 4h18c.55 0 1 .45 1 1v10c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V5c0-.55.45-1 1-1zm1 2v8h16V6H2zm4 5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm4 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"],"widget-footer":["M17 0H3c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H4v-4h12v4zm0-5H4V2h12v11z"],"widget-header":["M17 0H3c-.55 0-1 .45-1 1v18c0 .55.45 1 1 1h14c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1zm-1 18H4V7h12v11zm0-12H4V2h12v4z"],wrench:["M19.8 4.44L16.13 8.1l-3.55-.71-.71-3.53L15.54.21c-2.01-.53-4.23-.03-5.8 1.53-1.86 1.85-2.23 4.6-1.14 6.83L.59 16.59C.22 16.95 0 17.45 0 18a2 2 0 002 2c.55 0 1.05-.22 1.41-.59l8.03-8.04c2.23 1.05 4.97.67 6.82-1.16 1.57-1.56 2.07-3.77 1.54-5.77z"],"zoom-in":["M19.56 17.44l-4.94-4.94A8.004 8.004 0 0016 8c0-4.42-3.58-8-8-8S0 3.58 0 8s3.58 8 8 8c1.67 0 3.21-.51 4.5-1.38l4.94 4.94a1.498 1.498 0 102.12-2.12zM8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm3-7H9V5c0-.55-.45-1-1-1s-1 .45-1 1v2H5c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1V9h2c.55 0 1-.45 1-1s-.45-1-1-1z"],"zoom-out":["M11 7H5c-.55 0-1 .45-1 1s.45 1 1 1h6c.55 0 1-.45 1-1s-.45-1-1-1zm8.56 10.44l-4.94-4.94A8.004 8.004 0 0016 8c0-4.42-3.58-8-8-8S0 3.58 0 8s3.58 8 8 8c1.67 0 3.21-.51 4.5-1.38l4.94 4.94a1.498 1.498 0 102.12-2.12zM8 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"],"zoom-to-fit":["M1 7c.55 0 1-.45 1-1V2h4c.55 0 1-.45 1-1s-.45-1-1-1H1C.45 0 0 .45 0 1v5c0 .55.45 1 1 1zm5 1a1.003 1.003 0 00-1.71-.71l-2 2c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2 2a1.003 1.003 0 001.42-1.42L4.41 10 5.7 8.71c.19-.18.3-.43.3-.71zm2-2c.28 0 .53-.11.71-.29L10 4.41l1.29 1.29c.18.19.43.3.71.3a1.003 1.003 0 00.71-1.71l-2-2C10.53 2.11 10.28 2 10 2s-.53.11-.71.29l-2 2A1.003 1.003 0 008 6zM6 18H2v-4c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1zm8-6a1.003 1.003 0 001.71.71l2-2c.18-.18.29-.43.29-.71 0-.28-.11-.53-.29-.71l-2-2a1.003 1.003 0 00-1.42 1.42l1.3 1.29-1.29 1.29c-.19.18-.3.43-.3.71zm5-12h-5c-.55 0-1 .45-1 1s.45 1 1 1h4v4c0 .55.45 1 1 1s1-.45 1-1V1c0-.55-.45-1-1-1zm-7 14c-.28 0-.53.11-.71.29L10 15.59 8.71 14.3A.965.965 0 008 14a1.003 1.003 0 00-.71 1.71l2 2c.18.18.43.29.71.29s.53-.11.71-.29l2-2A1.003 1.003 0 0012 14zm7-1c-.55 0-1 .45-1 1v4h-4c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1v-5c0-.55-.45-1-1-1z"]},Fn=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}var a;return bn(n,t),a=n,n.prototype.render=function(){var t=this.props.icon;if(null==t||"boolean"==typeof t)return null;if("string"!=typeof t)return t;var n=this.props,s=n.className,i=n.color,r=n.htmlTitle,o=n.iconSize,l=void 0===o?a.SIZE_STANDARD:o,c=n.intent,h=n.title,d=void 0===h?t:h,u=n.tagName,p=void 0===u?"span":u,m=_n(n,["className","color","htmlTitle","iconSize","intent","title","tagName"]),f=l>=a.SIZE_LARGE?a.SIZE_LARGE:a.SIZE_STANDARD,v=this.renderSvgPaths(f,t),g=xn()(je,function(e){if(null!=e)return 0===e.indexOf(M+"-icon-")?e:M+"-icon-"+e}(t),Ye(c),s),b="0 0 "+f+" "+f;return e.createElement(p,yn(yn({},m),{className:g,title:r}),e.createElement("svg",{fill:i,"data-icon":t,width:l,height:l,viewBox:b},d&&e.createElement("desc",null,d),v))},n.prototype.renderSvgPaths=function(t,n){var s=(t===a.SIZE_STANDARD?Rn:Bn)[n];return null==s?null:s.map((function(t,n){return e.createElement("path",{key:n,d:t,fillRule:"evenodd"})}))},n.displayName="Blueprint3.Icon",n.SIZE_STANDARD=16,n.SIZE_LARGE=20,n=a=wn([In.polyfill],n)}(Hn),Xn=45,Kn="M 50,50 m 0,-45 a 45,45 0 1 1 0,90 a 45,45 0 1 1 0,-90",Un=280,Gn=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}var a;return bn(n,t),a=n,n.prototype.componentDidUpdate=function(e){e.value!==this.props.value&&this.forceUpdate()},n.prototype.render=function(){var t,n=this.props,s=n.className,i=n.intent,r=n.value,o=n.tagName,l=void 0===o?"div":o,c=this.getSize(),h=xn()(De,Ye(i),((t={})[Be]=null!=r,t),s),d=Math.min(16,4*a.SIZE_LARGE/c),u=Un-Un*(null==r?.25:Ln(r,0,1));return e.createElement(l,{className:h},e.createElement(l,{className:Ie},e.createElement("svg",{width:c,height:c,strokeWidth:d.toFixed(2),viewBox:this.getViewBox(d)},e.createElement("path",{className:Fe,d:Kn}),e.createElement("path",{className:Re,d:Kn,pathLength:Un,strokeDasharray:"280 280",strokeDashoffset:u}))))},n.prototype.validateProps=function(e){var t=e.className,n=void 0===t?"":t;null!=e.size&&(n.indexOf(B)>=0||n.indexOf(O)>=0)&&console.warn("[Blueprint] Classes.SMALL/LARGE are ignored if size prop is set.")},n.prototype.getSize=function(){var e=this.props,t=e.className,n=void 0===t?"":t,s=e.size;return null==s?n.indexOf(B)>=0?a.SIZE_SMALL:n.indexOf(O)>=0?a.SIZE_LARGE:a.SIZE_STANDARD:Math.max(10,s)},n.prototype.getViewBox=function(e){var t=Xn+e/2,n=(50-t).toFixed(2),a=(2*t).toFixed(2);return n+" "+n+" "+a+" "+a},n.displayName="Blueprint3.Spinner",n.SIZE_SMALL=20,n.SIZE_STANDARD=50,n.SIZE_LARGE=100,n=a=wn([In.polyfill],n)}(Hn),jn=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.state={isActive:!1},e.handleKeyDown=function(t){var n,a;An(t.which)&&(t.preventDefault(),t.which!==e.currentKeyDown&&e.setState({isActive:!0})),e.currentKeyDown=t.which,null===(a=(n=e.props).onKeyDown)||void 0===a||a.call(n,t)},e.handleKeyUp=function(t){var n,a,s;An(t.which)&&(e.setState({isActive:!1}),null===(n=e.buttonRef)||void 0===n||n.click()),e.currentKeyDown=void 0,null===(s=(a=e.props).onKeyUp)||void 0===s||s.call(a,t)},e.handleBlur=function(t){var n,a;e.state.isActive&&e.setState({isActive:!1}),null===(a=(n=e.props).onBlur)||void 0===a||a.call(n,t)},e}return bn(n,t),n.prototype.getCommonButtonProps=function(){var e,t=this.props,n=t.active,a=t.alignText,s=t.fill,i=t.large,r=t.loading,o=t.outlined,l=t.minimal,c=t.small,h=t.tabIndex,d=this.props.disabled||r;return{className:xn()(Z,((e={})[x]=!d&&(n||this.state.isActive),e[P]=d,e[H]=s,e[O]=i,e[V]=r,e[D]=l,e[I]=o,e[B]=c,e),We(a),Ye(this.props.intent),this.props.className),disabled:d,onBlur:this.handleBlur,onClick:d?void 0:this.props.onClick,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,tabIndex:d?-1:h}},n.prototype.renderChildren=function(){var t=this.props,n=t.children,a=t.icon,s=t.loading,i=t.rightIcon,r=t.text;return[s&&e.createElement(Gn,{key:"loading",className:J,size:Fn.SIZE_LARGE}),e.createElement(Fn,{key:"leftIcon",icon:a}),(!Nn(r)||!Nn(n))&&e.createElement("span",{key:"text",className:$},r,n),e.createElement(Fn,{key:"rightIcon",icon:i})]},n}(Hn),Wn=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.buttonRef=null,e.handleRef=zn(e,"buttonRef",e.props.elementRef),e}return bn(n,t),n.prototype.render=function(){return e.createElement("button",yn({type:"button",ref:this.handleRef},Sn(this.props),this.getCommonButtonProps()),this.renderChildren())},n.prototype.componentDidUpdate=function(e){e.elementRef!==this.props.elementRef&&(kn(e.elementRef,null),this.handleRef=zn(this,"buttonRef",this.props.elementRef),kn(this.props.elementRef,this.buttonRef))},n.displayName="Blueprint3.Button",n}(jn),Qn=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.buttonRef=null,e.handleRef=zn(e,"buttonRef",e.props.elementRef),e}return bn(n,t),n.prototype.render=function(){var t=this.props,n=t.href,a=t.tabIndex,s=void 0===a?0:a,i=this.getCommonButtonProps();return e.createElement("a",yn({role:"button",ref:this.handleRef},Sn(this.props),i,{href:i.disabled?void 0:n,tabIndex:i.disabled?-1:s}),this.renderChildren())},n.prototype.componentDidUpdate=function(e){e.elementRef!==this.props.elementRef&&(kn(e.elementRef,null),this.handleRef=zn(this,"buttonRef",this.props.elementRef),kn(this.props.elementRef,this.buttonRef))},n.displayName="Blueprint3.AnchorButton",n}(jn);function Yn(t,n){return function(a){var s=a.className,i=a.elementRef,r=_n(a,["className","elementRef"]);return e.createElement(t,yn(yn({},r),{className:xn()(n,s),ref:i}))}}Yn("h1",Q),Yn("h2",Q),Yn("h3",Q);var Zn=Yn("h4",Q),qn=(Yn("h5",Q),Yn("h6",Q)),Jn=(Yn("blockquote",G),Yn("code",j),Yn("pre",W),Yn("label",de),Yn("ol",Y),Yn("ul",Y),n(1350));function $n(e){return"function"==typeof e}var ea=!$n(t.createPortal),ta={blueprintPortalClassName:function(e,t){if(null!=e[t]&&"string"!=typeof e[t])return new Error("[Blueprint] context blueprintPortalClassName must be string")}},na=function(n){function a(){var e=null!==n&&n.apply(this,arguments)||this;return e.context={},e.state={hasMounted:!1},e.portalElement=null,e}return bn(a,n),a.prototype.render=function(){return ea||"undefined"==typeof document||!this.state.hasMounted||null===this.portalElement?null:t.createPortal(this.props.children,this.portalElement)},a.prototype.componentDidMount=function(){this.props.container&&(this.portalElement=this.createContainerElement(),this.props.container.appendChild(this.portalElement),this.setState({hasMounted:!0},this.props.onChildrenMount),ea&&this.unstableRenderNoPortal())},a.prototype.componentDidUpdate=function(e){null!=this.portalElement&&e.className!==this.props.className&&(void 0!==e.className&&this.portalElement.classList.remove(e.className),aa(this.portalElement.classList,this.props.className)),ea&&this.unstableRenderNoPortal()},a.prototype.componentWillUnmount=function(){null!=this.portalElement&&(ea&&t.unmountComponentAtNode(this.portalElement),this.portalElement.remove())},a.prototype.createContainerElement=function(){var e=document.createElement("div");return e.classList.add(Ve),aa(e.classList,this.props.className),null!=this.context&&aa(e.classList,this.context.blueprintPortalClassName),e},a.prototype.unstableRenderNoPortal=function(){null!==this.portalElement&&t.unstable_renderSubtreeIntoContainer(this,e.createElement("div",null,this.props.children),this.portalElement)},a.displayName="Blueprint3.Portal",a.contextTypes=ta,a.defaultProps={container:"undefined"!=typeof document?document.body:void 0},a}(e.Component);function aa(e,t){null!=t&&""!==t&&e.add.apply(e,t.split(" "))}var sa,ia=function(n){function a(){var a=null!==n&&n.apply(this,arguments)||this;return a.state={hasEverOpened:a.props.isOpen},a.containerElement=null,a.refHandlers={container:function(e){return a.containerElement=(0,t.findDOMNode)(e)}},a.maybeRenderChild=function(t){if($n(t)&&(t=t()),null==t)return null;var n="object"==typeof t?e.cloneElement(t,{className:xn()(t.props.className,we),tabIndex:a.props.enforceFocus||a.props.autoFocus?0:void 0}):e.createElement("span",{className:we},t),s=a.props,i=s.onOpening,r=s.onOpened,o=s.onClosing,l=s.onClosed,c=s.transitionDuration,h=s.transitionName,d=Jn.CSSTransition;return e.createElement(d,{classNames:h,onEntering:i,onEntered:r,onExiting:o,onExited:l,timeout:c,addEndListener:a.handleTransitionAddEnd},n)},a.handleBackdropMouseDown=function(e){var t,n=a.props,s=n.backdropProps,i=n.canOutsideClickClose,r=n.enforceFocus,o=n.onClose;i&&(null==o||o(e)),r&&a.bringFocusInsideOverlay(),null===(t=null==s?void 0:s.onMouseDown)||void 0===t||t.call(s,e)},a.handleDocumentClick=function(e){var t=a.props,n=t.canOutsideClickClose,i=t.isOpen,r=t.onClose,o=e.composed?e.composedPath()[0]:e.target,l=s.openStack.indexOf(a),c=s.openStack.slice(l).some((function(e){var t=e.containerElement;return t&&t.contains(o)&&!t.isSameNode(o)}));i&&n&&!c&&(null==r||r(e))},a.handleDocumentFocus=function(e){var t=e.composed?e.composedPath()[0]:e.target;a.props.enforceFocus&&null!=a.containerElement&&t instanceof Node&&!a.containerElement.contains(t)&&(e.preventDefault(),e.stopImmediatePropagation(),a.bringFocusInsideOverlay())},a.handleKeyDown=function(e){var t=a.props,n=t.canEscapeKeyClose,s=t.onClose;27===e.which&&n&&(null==s||s(e),e.preventDefault())},a.handleTransitionAddEnd=function(){},a}var s;return bn(a,n),s=a,a.getDerivedStateFromProps=function(e){var t=e.isOpen;return t?{hasEverOpened:t}:null},a.prototype.render=function(){var t,n;if(this.props.lazy&&!this.state.hasEverOpened)return null;var a=this.props,s=a.children,i=a.className,r=a.usePortal,o=a.isOpen,l=o&&null!==(n=e.Children.map(s,this.maybeRenderChild))&&void 0!==n?n:[],c=this.maybeRenderBackdrop();null!==c&&l.unshift(c);var h=xn()(ye,((t={})[Ee]=o,t[Ce]=!r,t),i),d=e.createElement(Jn.TransitionGroup,{appear:!0,className:h,component:"div",onKeyDown:this.handleKeyDown,ref:this.refHandlers.container},l);return r?e.createElement(na,{className:this.props.portalClassName,container:this.props.portalContainer},d):d},a.prototype.componentDidMount=function(){this.props.isOpen&&this.overlayWillOpen()},a.prototype.componentDidUpdate=function(e){e.isOpen&&!this.props.isOpen?this.overlayWillClose():!e.isOpen&&this.props.isOpen&&this.overlayWillOpen()},a.prototype.componentWillUnmount=function(){this.overlayWillClose()},a.prototype.bringFocusInsideOverlay=function(){var e=this;return this.requestAnimationFrame((function(){if(null!=e.containerElement&&null!=document.activeElement&&e.props.isOpen&&!e.containerElement.contains(document.activeElement)){var t=e.containerElement.querySelector("[autofocus]"),n=e.containerElement.querySelector("[tabindex]");null!=t?t.focus():null!=n&&n.focus()}}))},a.prototype.maybeRenderBackdrop=function(){var t=this.props,n=t.backdropClassName,a=t.backdropProps,s=t.hasBackdrop,i=t.isOpen,r=t.transitionDuration,o=t.transitionName;return s&&i?e.createElement(Jn.CSSTransition,{classNames:o,key:"__backdrop",timeout:r,addEndListener:this.handleTransitionAddEnd},e.createElement("div",yn({},a,{className:xn()(_e,n,null==a?void 0:a.className),onMouseDown:this.handleBackdropMouseDown,tabIndex:this.props.canOutsideClickClose?0:void 0}))):null},a.prototype.overlayWillClose=function(){document.removeEventListener("focus",this.handleDocumentFocus,!0),document.removeEventListener("mousedown",this.handleDocumentClick);var e=s.openStack,t=e.indexOf(this);if(-1!==t){if(e.splice(t,1),e.length>0){var n=s.getLastOpened();n.props.enforceFocus&&document.addEventListener("focus",n.handleDocumentFocus,!0)}0===e.filter((function(e){return e.props.usePortal&&e.props.hasBackdrop})).length&&document.body.classList.remove(Ee)}},a.prototype.overlayWillOpen=function(){var e=s.openStack;e.length>0&&document.removeEventListener("focus",s.getLastOpened().handleDocumentFocus,!0),e.push(this),this.props.autoFocus&&this.bringFocusInsideOverlay(),this.props.enforceFocus&&document.addEventListener("focus",this.handleDocumentFocus,!0),this.props.canOutsideClickClose&&!this.props.hasBackdrop&&document.addEventListener("mousedown",this.handleDocumentClick),this.props.hasBackdrop&&this.props.usePortal&&document.body.classList.add(Ee)},a.displayName="Blueprint3.Overlay",a.defaultProps={autoFocus:!0,backdropProps:{},canEscapeKeyClose:!0,canOutsideClickClose:!0,enforceFocus:!0,hasBackdrop:!0,isOpen:!1,lazy:!0,transitionDuration:300,transitionName:ye,usePortal:!0},a.openStack=[],a.getLastOpened=function(){return s.openStack[s.openStack.length-1]},a=s=wn([In.polyfill],a)}(Hn),ra=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){return e.createElement(ia,yn({},this.props,{className:Se,hasBackdrop:!0}),e.createElement("div",{className:ne},e.createElement("div",{className:xn()(te,this.props.className),style:this.props.style},this.maybeRenderHeader(),this.props.children)))},n.prototype.validateProps=function(e){null==e.title&&(null!=e.icon&&console.warn("[Blueprint] iconName is ignored if title is omitted."),null!=e.isCloseButtonShown&&console.warn("[Blueprint] isCloseButtonShown prop is ignored if title is omitted."))},n.prototype.maybeRenderCloseButton=function(){return!1!==this.props.isCloseButtonShown?e.createElement(Wn,{"aria-label":"Close",className:ae,icon:e.createElement(Fn,{icon:"small-cross",iconSize:Fn.SIZE_LARGE}),minimal:!0,onClick:this.props.onClose}):void 0},n.prototype.maybeRenderHeader=function(){var t=this.props,n=t.icon,a=t.title;if(null!=a)return e.createElement("div",{className:se},e.createElement(Fn,{icon:n,iconSize:Fn.SIZE_LARGE}),e.createElement(Zn,null,a),this.maybeRenderCloseButton())},n.defaultProps={canOutsideClickClose:!0,isOpen:!1},n.displayName="Blueprint3.Dialog",n=wn([In.polyfill],n)}(Hn),oa=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){var t=this.props,n=t.className,a=t.tagName,s=void 0===a?"div":a,i=_n(t,["className","tagName"]),r=xn()(ie,n);return e.createElement(s,yn(yn({},i),{className:r}))},n.displayName="Blueprint3.Divider",n=wn([In.polyfill],n)}(Hn),la=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){var t,n=this.props,a=n.alignText,s=n.className,i=n.fill,r=n.minimal,o=n.large,l=n.vertical,c=_n(n,["alignText","className","fill","minimal","large","vertical"]),h=xn()(q,((t={})[H]=i,t[O]=o,t[D]=r,t[F]=l,t),We(a),s);return e.createElement("div",yn({},c,{className:h}),this.props.children)},n.displayName="Blueprint3.ButtonGroup",n=wn([In.polyfill],n)}(Hn),ca=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){var t,n=this.props,a=n.children,s=n.className,i=n.fill,r=n.vertical,o=_n(n,["children","className","fill","vertical"]),l=xn()(ee,((t={})[H]=i,t[F]=r,t),s);return e.createElement("div",yn({},o,{className:l}),a)},n.displayName="Blueprint3.ControlGroup",n=wn([In.polyfill],n)}(Hn),ha=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.state={hasPendingUpdate:!1,isComposing:!1,nextValue:e.props.value,value:e.props.value},e.handleCompositionStart=function(t){var n,a;e.setState({isComposing:!0,nextValue:e.state.value}),null===(a=(n=e.props).onCompositionStart)||void 0===a||a.call(n,t)},e.handleCompositionEnd=function(t){var n,a;e.setState({isComposing:!1}),null===(a=(n=e.props).onCompositionEnd)||void 0===a||a.call(n,t)},e.handleChange=function(t){var n,a,s=t.target.value;e.setState({nextValue:s}),null===(a=(n=e.props).onChange)||void 0===a||a.call(n,t)},e}return bn(n,t),n.getDerivedStateFromProps=function(e,t){return t.isComposing||void 0===e.value?null:t.nextValue!==t.value?e.value===t.nextValue?t.hasPendingUpdate?{value:e.value,hasPendingUpdate:!1}:{value:t.nextValue}:e.value===t.value?{hasPendingUpdate:!0}:{value:e.value,nextValue:e.value,hasPendingUpdate:!1}:{value:e.value,nextValue:e.value,hasPendingUpdate:!1}},n.prototype.render=function(){var t=this.state,n=t.isComposing,a=t.hasPendingUpdate,s=t.value,i=t.nextValue,r=this.props,o=r.inputRef,l=_n(r,["inputRef"]);return e.createElement("input",yn({},l,{ref:o,value:n||a?i:s,onCompositionStart:this.handleCompositionStart,onCompositionEnd:this.handleCompositionEnd,onChange:this.handleChange}))},n.displayName="Blueprint3.AsyncControllableInput",n=wn([In.polyfill],n)}(e.PureComponent),da=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.state={},e.leftElement=null,e.rightElement=null,e.refHandlers={leftElement:function(t){return e.leftElement=t},rightElement:function(t){return e.rightElement=t}},e}return bn(n,t),n.prototype.render=function(){var t,n=this.props,a=n.asyncControl,s=void 0!==a&&a,i=n.className,r=n.disabled,o=n.fill,l=n.inputRef,c=n.intent,h=n.large,d=n.small,u=n.round,p=xn()(le,Ye(c),((t={})[P]=r,t[H]=o,t[O]=h,t[B]=d,t[R]=u,t),i),m=yn(yn({},this.props.style),{paddingLeft:this.state.leftElementWidth,paddingRight:this.state.rightElementWidth}),f=yn(yn({type:"text"},Sn(this.props)),{className:oe,style:m});return e.createElement("div",{className:p},this.maybeRenderLeftElement(),s?e.createElement(ha,yn({},f,{inputRef:l})):e.createElement("input",yn({},f,{ref:l})),this.maybeRenderRightElement())},n.prototype.componentDidMount=function(){this.updateInputWidth()},n.prototype.componentDidUpdate=function(e){var t=this.props,n=t.leftElement,a=t.rightElement;e.leftElement===n&&e.rightElement===a||this.updateInputWidth()},n.prototype.validateProps=function(e){null!=e.leftElement&&null!=e.leftIcon&&console.warn("[Blueprint] leftElement and leftIcon prop are mutually exclusive, with leftElement taking priority.")},n.prototype.maybeRenderLeftElement=function(){var t=this.props,n=t.leftElement,a=t.leftIcon;return null!=n?e.createElement("span",{className:ce,ref:this.refHandlers.leftElement},n):null!=a?e.createElement(Fn,{icon:a}):void 0},n.prototype.maybeRenderRightElement=function(){var t=this.props.rightElement;if(null!=t)return e.createElement("span",{className:he,ref:this.refHandlers.rightElement},t)},n.prototype.updateInputWidth=function(){var e=this.state,t=e.leftElementWidth,n=e.rightElementWidth;if(null!=this.leftElement){var a=this.leftElement.clientWidth;(void 0===t||Math.abs(a-t)>2)&&this.setState({leftElementWidth:a})}else this.setState({leftElementWidth:void 0});if(null!=this.rightElement){a=this.rightElement.clientWidth;(void 0===n||Math.abs(a-n)>2)&&this.setState({rightElementWidth:a})}else this.setState({rightElementWidth:void 0})},n.displayName="Blueprint3.InputGroup",n=wn([In.polyfill],n)}(Hn);function ua(e){var t=1.9.toLocaleString(e),n=1..toLocaleString(e),a=9..toLocaleString(e),s=new RegExp(n+"(.+)"+a).exec(t);return s&&s[1]||"."}function pa(e,t){return void 0===t&&(t="en-US"),ba(e.toLocaleString(t),t)}function ma(e){return void 0===e&&(e=""),e.toString()}function fa(e,t){var n=""+e;if(parseFloat(n).toString()===e.toString())return e.toString();if(void 0!==t){var a=ua(t);return ba(n,t).split("").map((function(e){return function(e,t){var n=[0,1,2,3,4,5,6,7,8,9].map((function(e){return e.toLocaleString(t)})).indexOf(e);return-1!==n?n:e}(e,t)})).join("").replace(a,".")}return e.toString()}function va(e,t){return null==e.key||(!!(e.ctrlKey||e.altKey||e.metaKey)||(!(1===e.key.length)||ga(e.key,t)))}function ga(e,t){if(void 0!==t){var n=ua(t).replace(".","\\."),a=[0,1,2,3,4,5,6,7,8,9].map((function(e){return e.toLocaleString(t)})).join("");return new RegExp("^[Ee"+a+"\\+\\-"+n+"]$").test(e)}return/^[Ee0-9\+\-\.]$/.test(e)}function ba(e,t){var n=function(e){return e.replace(/[\uFF10-\uFF19]/g,(function(e){return String.fromCharCode(e.charCodeAt(0)-65248)}))}(e).split("");return n.filter((function(e){return ga(e,t)})).join("")}!function(e){e[e.DOWN=-1]="DOWN",e[e.UP=1]="UP"}(sa||(sa={}));var ya=["allowNumericCharactersOnly","buttonPosition","clampValueOnBlur","className","defaultValue","majorStepSize","minorStepSize","onButtonClick","onValueChange","selectAllOnFocus","selectAllOnIncrement","stepSize"],_a=function(t){function n(){var e,n=t.apply(this,arguments)||this;return n.state={currentImeInputInvalid:!1,shouldSelectAfterUpdate:!1,stepMaxPrecision:a.getStepMaxPrecision(n.props),value:ma(null!==(e=n.props.value)&&void 0!==e?e:n.props.defaultValue)},n.didPasteEventJustOccur=!1,n.delta=0,n.inputElement=null,n.inputRef=zn(n,"inputElement",n.props.inputRef),n.incrementButtonHandlers=n.getButtonEventHandlers(sa.UP),n.decrementButtonHandlers=n.getButtonEventHandlers(sa.DOWN),n.handleButtonClick=function(e,t){var a,s,i=n.updateDelta(t,e),r=n.incrementValue(i);null===(s=(a=n.props).onButtonClick)||void 0===s||s.call(a,Number(fa(r,n.props.locale)),r)},n.stopContinuousChange=function(){n.delta=0,n.clearTimeouts(),clearInterval(n.intervalId),document.removeEventListener("mouseup",n.stopContinuousChange)},n.handleContinuousChange=function(){var e,t,a,s;if(void 0!==n.props.min||void 0!==n.props.max){var i=null!==(e=n.props.min)&&void 0!==e?e:-1/0,r=null!==(t=n.props.max)&&void 0!==t?t:1/0,o=Number(fa(n.state.value,n.props.locale));if(o<=i||o>=r)return void n.stopContinuousChange()}var l=n.incrementValue(n.delta);null===(s=(a=n.props).onButtonClick)||void 0===s||s.call(a,Number(fa(l,n.props.locale)),l)},n.handleInputFocus=function(e){var t,a;n.setState({shouldSelectAfterUpdate:n.props.selectAllOnFocus}),null===(a=(t=n.props).onFocus)||void 0===a||a.call(t,e)},n.handleInputBlur=function(e){var t,a;if(n.setState({shouldSelectAfterUpdate:!1}),n.props.clampValueOnBlur){var s=e.target.value;n.handleNextValue(n.roundAndClampValue(s))}null===(a=(t=n.props).onBlur)||void 0===a||a.call(t,e)},n.handleInputKeyDown=function(e){var t,a;if(!n.props.disabled&&!n.props.readOnly){var s,i=e.keyCode;if(38===i?s=sa.UP:40===i&&(s=sa.DOWN),void 0!==s){e.preventDefault();var r=n.updateDelta(s,e);n.incrementValue(r)}null===(a=(t=n.props).onKeyDown)||void 0===a||a.call(t,e)}},n.handleCompositionEnd=function(e){n.props.allowNumericCharactersOnly&&(n.handleNextValue(ba(e.data,n.props.locale)),n.setState({currentImeInputInvalid:!1}))},n.handleCompositionUpdate=function(e){if(n.props.allowNumericCharactersOnly){var t=e.data;0===ba(t,n.props.locale).length&&t.length>0?n.setState({currentImeInputInvalid:!0}):n.setState({currentImeInputInvalid:!1})}},n.handleInputKeyPress=function(e){var t,a;n.props.allowNumericCharactersOnly&&!va(e,n.props.locale)&&e.preventDefault(),null===(a=(t=n.props).onKeyPress)||void 0===a||a.call(t,e)},n.handleInputPaste=function(e){var t,a;n.didPasteEventJustOccur=!0,null===(a=(t=n.props).onPaste)||void 0===a||a.call(t,e)},n.handleInputChange=function(e){var t=e.target.value,a=t;n.props.allowNumericCharactersOnly&&n.didPasteEventJustOccur&&(n.didPasteEventJustOccur=!1,a=ba(t,n.props.locale)),n.handleNextValue(a),n.setState({shouldSelectAfterUpdate:!1})},n}var a;return bn(n,t),a=n,n.getDerivedStateFromProps=function(e,t){var n,s,i={prevMaxProp:e.max,prevMinProp:e.min},r=e.min!==t.prevMinProp,o=e.max!==t.prevMaxProp,l=r||o,c=null!==(s=null===(n=e.value)||void 0===n?void 0:n.toString())&&void 0!==s?s:t.value,h=a.getStepMaxPrecision(e),d=c!==a.VALUE_EMPTY?a.roundAndClampValue(c,h,e.min,e.max,0,e.locale):a.VALUE_EMPTY;return l&&d!==t.value?yn(yn({},i),{stepMaxPrecision:h,value:d}):yn(yn({},i),{stepMaxPrecision:h,value:c})},n.getStepMaxPrecision=function(e){return null!=e.minorStepSize?Pn(e.minorStepSize):Pn(e.stepSize)},n.roundAndClampValue=function(e,t,n,s,i,r){if(void 0===i&&(i=0),!function(e,t){var n=fa(e,t);return null!=e&&n-parseFloat(n)+1>=0}(e,r))return a.VALUE_EMPTY;var o=fa(e,r),l=function(e,t){var n=Math.pow(10,t);return Math.round(e*n)/n}(Number(o)+i,t),c=function(e,t,n){return Ln(e,null!=t?t:-1/0,null!=n?n:1/0)}(l,n,s);return pa(c,r)},n.prototype.render=function(){var t,n=this.props,a=n.buttonPosition,s=n.className,i=n.fill,r=n.large,o=xn()(be,((t={})[O]=r,t),s),l=this.renderButtons();return e.createElement(ca,{className:o,fill:i},a===b&&l,this.renderInput(),a===w&&l)},n.prototype.componentDidUpdate=function(e,n){var s,i,r;t.prototype.componentDidUpdate.call(this,e,n),e.inputRef!==this.props.inputRef&&(kn(e.inputRef,null),this.inputRef=zn(this,"inputElement",this.props.inputRef),kn(this.props.inputRef,this.inputElement)),this.state.shouldSelectAfterUpdate&&(null===(s=this.inputElement)||void 0===s||s.setSelectionRange(0,this.state.value.length));var o=this.props.min!==e.min,l=this.props.max!==e.max,c=o||l,h=this.props.locale!==e.locale,d=this.state.value!==n.value;if(c&&d||h&&n.value!==a.VALUE_EMPTY){var u=fa(h?n.value:this.state.value,e.locale),p=pa(+u,this.props.locale);null===(r=(i=this.props).onValueChange)||void 0===r||r.call(i,+u,p,this.inputElement)}},n.prototype.validateProps=function(e){var t=e.majorStepSize,n=e.max,s=e.min,i=e.minorStepSize,r=e.stepSize,o=e.value;if(null!=s&&null!=n&&s>n&&console.error("[Blueprint] requires min to be no greater than max if both are defined."),r<=0&&console.error("[Blueprint] requires stepSize to be strictly greater than zero."),i&&i<=0&&console.error("[Blueprint] requires minorStepSize to be strictly greater than zero."),t&&t<=0&&console.error("[Blueprint] requires majorStepSize to be strictly greater than zero."),i&&i>r&&console.error("[Blueprint] requires minorStepSize to be no greater than stepSize."),t&&t requires stepSize to be no greater than majorStepSize."),null!=o){var l=a.getStepMaxPrecision(e),c=a.roundAndClampValue(o.toString(),l,s,n,0,this.props.locale),h=c!==o.toString(),d=pa(Number(fa(o,this.props.locale)),this.props.locale);h&&c!==d&&console.warn("[Blueprint] controlled value prop does not adhere to stepSize, min, and/or max constraints.")}},n.prototype.renderButtons=function(){var t=this.props,n=t.intent,a=t.max,s=t.min,i=t.locale,r=fa(this.state.value,i),o=this.props.disabled||this.props.readOnly,l=void 0!==a&&""!==r&&+r>=a,c=void 0!==s&&""!==r&&+r<=s;return e.createElement(la,{className:N,key:"button-group",vertical:!0},e.createElement(Wn,yn({disabled:o||l,icon:"chevron-up",intent:n},this.incrementButtonHandlers)),e.createElement(Wn,yn({disabled:o||c,icon:"chevron-down",intent:n},this.decrementButtonHandlers)))},n.prototype.renderInput=function(){var t=Sn(this.props,ya,!0);return e.createElement(da,yn({asyncControl:this.props.asyncControl,autoComplete:"off"},t,{intent:this.state.currentImeInputInvalid?m:this.props.intent,inputRef:this.inputRef,large:this.props.large,leftIcon:this.props.leftIcon,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,onChange:this.handleInputChange,onCompositionEnd:this.handleCompositionEnd,onCompositionUpdate:this.handleCompositionUpdate,onKeyDown:this.handleInputKeyDown,onKeyPress:this.handleInputKeyPress,onPaste:this.handleInputPaste,rightElement:this.props.rightElement,value:this.state.value}))},n.prototype.getButtonEventHandlers=function(e){var t=this;return{onKeyDown:function(n){!t.props.disabled&&An(n.keyCode)&&t.handleButtonClick(n,e)},onMouseDown:function(n){t.props.disabled||(t.handleButtonClick(n,e),t.startContinuousChange())}}},n.prototype.startContinuousChange=function(){var e=this;document.addEventListener("mouseup",this.stopContinuousChange),this.setTimeout((function(){e.intervalId=window.setInterval(e.handleContinuousChange,a.CONTINUOUS_CHANGE_INTERVAL)}),a.CONTINUOUS_CHANGE_DELAY)},n.prototype.handleNextValue=function(e){var t,n;null==this.props.value&&this.setState({value:e}),null===(n=(t=this.props).onValueChange)||void 0===n||n.call(t,Number(fa(e,this.props.locale)),e,this.inputElement)},n.prototype.incrementValue=function(e){var t=this.state.value===a.VALUE_EMPTY?a.VALUE_ZERO:this.state.value,n=this.roundAndClampValue(t,e);return n!==this.state.value&&(this.handleNextValue(n),this.setState({shouldSelectAfterUpdate:this.props.selectAllOnIncrement})),n},n.prototype.getIncrementDelta=function(e,t,n){var a=this.props,s=a.majorStepSize,i=a.minorStepSize,r=a.stepSize;return t&&null!=s?e*s:n&&null!=i?e*i:e*r},n.prototype.roundAndClampValue=function(e,t){return void 0===t&&(t=0),a.roundAndClampValue(e,this.state.stepMaxPrecision,this.props.min,this.props.max,t,this.props.locale)},n.prototype.updateDelta=function(e,t){return this.delta=this.getIncrementDelta(e,t.shiftKey,t.altKey),this.delta},n.displayName="Blueprint3.NumericInput",n.VALUE_EMPTY="",n.VALUE_ZERO="0",n.defaultProps={allowNumericCharactersOnly:!0,buttonPosition:w,clampValueOnBlur:!1,defaultValue:a.VALUE_EMPTY,large:!1,majorStepSize:10,minorStepSize:.1,selectAllOnFocus:!1,selectAllOnIncrement:!1,stepSize:1},n.CONTINUOUS_CHANGE_DELAY=300,n.CONTINUOUS_CHANGE_INTERVAL=100,n=a=wn([In.polyfill],n)}(Hn),wa=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){var t,n=this.props,a=n.className,s=n.disabled,i=n.elementRef,r=n.fill,o=n.iconProps,l=n.large,c=n.minimal,h=n.options,d=void 0===h?[]:h,u=_n(n,["className","disabled","elementRef","fill","iconProps","large","minimal","options"]),p=xn()(re,((t={})[P]=s,t[H]=r,t[O]=l,t[D]=c,t),a),m=d.map((function(t){var n="object"==typeof t?t:{value:t};return e.createElement("option",yn({},n,{key:n.value,children:n.label||n.value}))}));return e.createElement("div",{className:p},e.createElement("select",yn({disabled:s,ref:i},u,{multiple:!1}),m,u.children),e.createElement(Fn,yn({icon:"double-caret-vertical"},o)))},n=wn([In.polyfill],n)}(Hn),Ca=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){var t=this.props,n=t.className,a=t.title;return null==a?e.createElement("li",{className:xn()(ve,n)}):e.createElement("li",{className:xn()(ge,n)},e.createElement(qn,null,a))},n.displayName="Blueprint3.MenuDivider",n}(e.Component);function Ea(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Sa(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ka=n(626),za=n.n(ka),Ma=n(1265),xa=n.n(Ma),Aa=xa()(),Ta=xa()(),La=function(t){function n(){for(var e,n=arguments.length,a=new Array(n),s=0;s1?t-1:0),a=1;a=0)return 1;return 0}();var Fa=Ra&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then((function(){t=!1,e()})))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout((function(){t=!1,e()}),Ba))}};function Xa(e){return e&&"[object Function]"==={}.toString.call(e)}function Ka(e,t){if(1!==e.nodeType)return[];var n=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?n[t]:n}function Ua(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function Ga(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=Ka(e),n=t.overflow,a=t.overflowX,s=t.overflowY;return/(auto|scroll|overlay)/.test(n+s+a)?e:Ga(Ua(e))}function ja(e){return e&&e.referenceNode?e.referenceNode:e}var Wa=Ra&&!(!window.MSInputMethodContext||!document.documentMode),Qa=Ra&&/MSIE 10/.test(navigator.userAgent);function Ya(e){return 11===e?Wa:10===e?Qa:Wa||Qa}function Za(e){if(!e)return document.documentElement;for(var t=Ya(10)?document.body:null,n=e.offsetParent||null;n===t&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var a=n&&n.nodeName;return a&&"BODY"!==a&&"HTML"!==a?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===Ka(n,"position")?Za(n):n:e?e.ownerDocument.documentElement:document.documentElement}function qa(e){return null!==e.parentNode?qa(e.parentNode):e}function Ja(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var n=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,a=n?e:t,s=n?t:e,i=document.createRange();i.setStart(a,0),i.setEnd(s,0);var r,o,l=i.commonAncestorContainer;if(e!==l&&t!==l||a.contains(s))return"BODY"===(o=(r=l).nodeName)||"HTML"!==o&&Za(r.firstElementChild)!==r?Za(l):l;var c=qa(e);return c.host?Ja(c.host,t):Ja(e,qa(t).host)}function $a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===t?"scrollTop":"scrollLeft",a=e.nodeName;if("BODY"===a||"HTML"===a){var s=e.ownerDocument.documentElement,i=e.ownerDocument.scrollingElement||s;return i[n]}return e[n]}function es(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=$a(t,"top"),s=$a(t,"left"),i=n?-1:1;return e.top+=a*i,e.bottom+=a*i,e.left+=s*i,e.right+=s*i,e}function ts(e,t){var n="x"===t?"Left":"Top",a="Left"===n?"Right":"Bottom";return parseFloat(e["border"+n+"Width"])+parseFloat(e["border"+a+"Width"])}function ns(e,t,n,a){return Math.max(t["offset"+e],t["scroll"+e],n["client"+e],n["offset"+e],n["scroll"+e],Ya(10)?parseInt(n["offset"+e])+parseInt(a["margin"+("Height"===e?"Top":"Left")])+parseInt(a["margin"+("Height"===e?"Bottom":"Right")]):0)}function as(e){var t=e.body,n=e.documentElement,a=Ya(10)&&getComputedStyle(n);return{height:ns("Height",t,n,a),width:ns("Width",t,n,a)}}var ss=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},is=function(){function e(e,t){for(var n=0;n2&&void 0!==arguments[2]&&arguments[2],a=Ya(10),s="HTML"===t.nodeName,i=cs(e),r=cs(t),o=Ga(e),l=Ka(t),c=parseFloat(l.borderTopWidth),h=parseFloat(l.borderLeftWidth);n&&s&&(r.top=Math.max(r.top,0),r.left=Math.max(r.left,0));var d=ls({top:i.top-r.top-c,left:i.left-r.left-h,width:i.width,height:i.height});if(d.marginTop=0,d.marginLeft=0,!a&&s){var u=parseFloat(l.marginTop),p=parseFloat(l.marginLeft);d.top-=c-u,d.bottom-=c-u,d.left-=h-p,d.right-=h-p,d.marginTop=u,d.marginLeft=p}return(a&&!n?t.contains(o):t===o&&"BODY"!==o.nodeName)&&(d=es(d,t)),d}function ds(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.ownerDocument.documentElement,a=hs(e,n),s=Math.max(n.clientWidth,window.innerWidth||0),i=Math.max(n.clientHeight,window.innerHeight||0),r=t?0:$a(n),o=t?0:$a(n,"left"),l={top:r-a.top+a.marginTop,left:o-a.left+a.marginLeft,width:s,height:i};return ls(l)}function us(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===Ka(e,"position"))return!0;var n=Ua(e);return!!n&&us(n)}function ps(e){if(!e||!e.parentElement||Ya())return document.documentElement;for(var t=e.parentElement;t&&"none"===Ka(t,"transform");)t=t.parentElement;return t||document.documentElement}function ms(e,t,n,a){var s=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i={top:0,left:0},r=s?ps(e):Ja(e,ja(t));if("viewport"===a)i=ds(r,s);else{var o=void 0;"scrollParent"===a?"BODY"===(o=Ga(Ua(t))).nodeName&&(o=e.ownerDocument.documentElement):o="window"===a?e.ownerDocument.documentElement:a;var l=hs(o,r,s);if("HTML"!==o.nodeName||us(r))i=l;else{var c=as(e.ownerDocument),h=c.height,d=c.width;i.top+=l.top-l.marginTop,i.bottom=h+l.top,i.left+=l.left-l.marginLeft,i.right=d+l.left}}var u="number"==typeof(n=n||0);return i.left+=u?n:n.left||0,i.top+=u?n:n.top||0,i.right-=u?n:n.right||0,i.bottom-=u?n:n.bottom||0,i}function fs(e){return e.width*e.height}function vs(e,t,n,a,s){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var r=ms(n,a,i,s),o={top:{width:r.width,height:t.top-r.top},right:{width:r.right-t.right,height:r.height},bottom:{width:r.width,height:r.bottom-t.bottom},left:{width:t.left-r.left,height:r.height}},l=Object.keys(o).map((function(e){return os({key:e},o[e],{area:fs(o[e])})})).sort((function(e,t){return t.area-e.area})),c=l.filter((function(e){var t=e.width,a=e.height;return t>=n.clientWidth&&a>=n.clientHeight})),h=c.length>0?c[0].key:l[0].key,d=e.split("-")[1];return h+(d?"-"+d:"")}function gs(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=a?ps(t):Ja(t,ja(n));return hs(n,s,a)}function bs(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),n=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),a=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+a,height:e.offsetHeight+n}}function ys(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,(function(e){return t[e]}))}function _s(e,t,n){n=n.split("-")[0];var a=bs(e),s={width:a.width,height:a.height},i=-1!==["right","left"].indexOf(n),r=i?"top":"left",o=i?"left":"top",l=i?"height":"width",c=i?"width":"height";return s[r]=t[r]+t[l]/2-a[l]/2,s[o]=n===o?t[o]-a[c]:t[ys(o)],s}function ws(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function Cs(e,t,n){return(void 0===n?e:e.slice(0,function(e,t,n){if(Array.prototype.findIndex)return e.findIndex((function(e){return e[t]===n}));var a=ws(e,(function(e){return e[t]===n}));return e.indexOf(a)}(e,"name",n))).forEach((function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=e.function||e.fn;e.enabled&&Xa(n)&&(t.offsets.popper=ls(t.offsets.popper),t.offsets.reference=ls(t.offsets.reference),t=n(t,e))})),t}function Es(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=gs(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=vs(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=_s(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=Cs(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function Ss(e,t){return e.some((function(e){var n=e.name;return e.enabled&&n===t}))}function ks(e){for(var t=[!1,"ms","Webkit","Moz","O"],n=e.charAt(0).toUpperCase()+e.slice(1),a=0;a1&&void 0!==arguments[1]&&arguments[1],n=Ds.indexOf(e),a=Ds.slice(n+1).concat(Ds.slice(0,n));return t?a.reverse():a}var Rs="flip",Bs="clockwise",Fs="counterclockwise";function Xs(e,t,n,a){var s=[0,0],i=-1!==["right","left"].indexOf(a),r=e.split(/(\+|\-)/).map((function(e){return e.trim()})),o=r.indexOf(ws(r,(function(e){return-1!==e.search(/,|\s/)})));r[o]&&-1===r[o].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==o?[r.slice(0,o).concat([r[o].split(l)[0]]),[r[o].split(l)[1]].concat(r.slice(o+1))]:[r];return c=c.map((function(e,a){var s=(1===a?!i:i)?"height":"width",r=!1;return e.reduce((function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,r=!0,e):r?(e[e.length-1]+=t,r=!1,e):e.concat(t)}),[]).map((function(e){return function(e,t,n,a){var s=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),i=+s[1],r=s[2];if(!i)return e;if(0===r.indexOf("%")){return ls("%p"===r?n:a)[t]/100*i}if("vh"===r||"vw"===r)return("vh"===r?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*i;return i}(e,s,t,n)}))})),c.forEach((function(e,t){e.forEach((function(n,a){Ps(n)&&(s[t]+=n*("-"===e[a-1]?-1:1))}))})),s}var Ks={shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,n=t.split("-")[0],a=t.split("-")[1];if(a){var s=e.offsets,i=s.reference,r=s.popper,o=-1!==["bottom","top"].indexOf(n),l=o?"left":"top",c=o?"width":"height",h={start:rs({},l,i[l]),end:rs({},l,i[l]+i[c]-r[c])};e.offsets.popper=os({},r,h[a])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var n=t.offset,a=e.placement,s=e.offsets,i=s.popper,r=s.reference,o=a.split("-")[0],l=void 0;return l=Ps(+n)?[+n,0]:Xs(n,i,r,o),"left"===o?(i.top+=l[0],i.left-=l[1]):"right"===o?(i.top+=l[0],i.left+=l[1]):"top"===o?(i.left+=l[0],i.top-=l[1]):"bottom"===o&&(i.left+=l[0],i.top+=l[1]),e.popper=i,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var n=t.boundariesElement||Za(e.instance.popper);e.instance.reference===n&&(n=Za(n));var a=ks("transform"),s=e.instance.popper.style,i=s.top,r=s.left,o=s[a];s.top="",s.left="",s[a]="";var l=ms(e.instance.popper,e.instance.reference,t.padding,n,e.positionFixed);s.top=i,s.left=r,s[a]=o,t.boundaries=l;var c=t.priority,h=e.offsets.popper,d={primary:function(e){var n=h[e];return h[e]l[e]&&!t.escapeWithReference&&(a=Math.min(h[n],l[e]-("right"===e?h.width:h.height))),rs({},n,a)}};return c.forEach((function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";h=os({},h,d[t](e))})),e.offsets.popper=h,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,a=t.reference,s=e.placement.split("-")[0],i=Math.floor,r=-1!==["top","bottom"].indexOf(s),o=r?"right":"bottom",l=r?"left":"top",c=r?"width":"height";return n[o]i(a[o])&&(e.offsets.popper[l]=i(a[o])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!Os(e.instance.modifiers,"arrow","keepTogether"))return e;var a=t.element;if("string"==typeof a){if(!(a=e.instance.popper.querySelector(a)))return e}else if(!e.instance.popper.contains(a))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var s=e.placement.split("-")[0],i=e.offsets,r=i.popper,o=i.reference,l=-1!==["left","right"].indexOf(s),c=l?"height":"width",h=l?"Top":"Left",d=h.toLowerCase(),u=l?"left":"top",p=l?"bottom":"right",m=bs(a)[c];o[p]-mr[p]&&(e.offsets.popper[d]+=o[d]+m-r[p]),e.offsets.popper=ls(e.offsets.popper);var f=o[d]+o[c]/2-m/2,v=Ka(e.instance.popper),g=parseFloat(v["margin"+h]),b=parseFloat(v["border"+h+"Width"]),y=f-e.offsets.popper[d]-g-b;return y=Math.max(Math.min(r[c]-m,y),0),e.arrowElement=a,e.offsets.arrow=(rs(n={},d,Math.round(y)),rs(n,u,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,t){if(Ss(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var n=ms(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),a=e.placement.split("-")[0],s=ys(a),i=e.placement.split("-")[1]||"",r=[];switch(t.behavior){case Rs:r=[a,s];break;case Bs:r=Is(a);break;case Fs:r=Is(a,!0);break;default:r=t.behavior}return r.forEach((function(o,l){if(a!==o||r.length===l+1)return e;a=e.placement.split("-")[0],s=ys(a);var c=e.offsets.popper,h=e.offsets.reference,d=Math.floor,u="left"===a&&d(c.right)>d(h.left)||"right"===a&&d(c.left)d(h.top)||"bottom"===a&&d(c.top)d(n.right),f=d(c.top)d(n.bottom),g="left"===a&&p||"right"===a&&m||"top"===a&&f||"bottom"===a&&v,b=-1!==["top","bottom"].indexOf(a),y=!!t.flipVariations&&(b&&"start"===i&&p||b&&"end"===i&&m||!b&&"start"===i&&f||!b&&"end"===i&&v),_=!!t.flipVariationsByContent&&(b&&"start"===i&&m||b&&"end"===i&&p||!b&&"start"===i&&v||!b&&"end"===i&&f),w=y||_;(u||g||w)&&(e.flipped=!0,(u||g)&&(a=r[l+1]),w&&(i=function(e){return"end"===e?"start":"start"===e?"end":e}(i)),e.placement=a+(i?"-"+i:""),e.offsets.popper=os({},e.offsets.popper,_s(e.instance.popper,e.offsets.reference,e.placement)),e=Cs(e.instance.modifiers,e,"flip"))})),e},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],a=e.offsets,s=a.popper,i=a.reference,r=-1!==["left","right"].indexOf(n),o=-1===["top","left"].indexOf(n);return s[r?"left":"top"]=i[n]-(o?s[r?"width":"height"]:0),e.placement=ys(t),e.offsets.popper=ls(s),e}},hide:{order:800,enabled:!0,fn:function(e){if(!Os(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=ws(e.instance.modifiers,(function(e){return"preventOverflow"===e.name})).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};ss(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(a.update)},this.update=Fa(this.update.bind(this)),this.options=os({},e.Defaults,s),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(os({},e.Defaults.modifiers,s.modifiers)).forEach((function(t){a.options.modifiers[t]=os({},e.Defaults.modifiers[t]||{},s.modifiers?s.modifiers[t]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(e){return os({name:e},a.options.modifiers[e])})).sort((function(e,t){return e.order-t.order})),this.modifiers.forEach((function(e){e.enabled&&Xa(e.onLoad)&&e.onLoad(a.reference,a.popper,a.options,e,a.state)})),this.update();var i=this.options.eventsEnabled;i&&this.enableEventListeners(),this.state.eventsEnabled=i}return is(e,[{key:"update",value:function(){return Es.call(this)}},{key:"destroy",value:function(){return zs.call(this)}},{key:"enableEventListeners",value:function(){return Ts.call(this)}},{key:"disableEventListeners",value:function(){return Ls.call(this)}}]),e}();Gs.Utils=("undefined"!=typeof window?window:n.g).PopperUtils,Gs.placements=Vs,Gs.Defaults=Us;const js=Gs;var Ws={position:"absolute",top:0,left:0,opacity:0,pointerEvents:"none"},Qs={},Ys=function(e){function t(){for(var t,n=arguments.length,a=new Array(n),s=0;s0},e.prototype.connect_=function(){$s&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),ai?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){$s&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t,a=ni.some((function(e){return!!~n.indexOf(e)}));a&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),ii=function(e,t){for(var n=0,a=Object.keys(t);n0},e}(),gi="undefined"!=typeof WeakMap?new WeakMap:new Js,bi=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=si.getInstance(),a=new vi(t,n,this);gi.set(this,a)};["observe","unobserve","disconnect"].forEach((function(e){bi.prototype[e]=function(){var t;return(t=gi.get(this))[e].apply(t,arguments)}}));const yi=void 0!==ei.ResizeObserver?ei.ResizeObserver:bi;var _i=function(n){function a(){var e=null!==n&&n.apply(this,arguments)||this;return e.element=null,e.observer=new yi((function(t){var n,a;return null===(a=(n=e.props).onResize)||void 0===a?void 0:a.call(n,t)})),e}return bn(a,n),a.prototype.render=function(){return e.Children.only(this.props.children)},a.prototype.componentDidMount=function(){this.observeElement()},a.prototype.componentDidUpdate=function(e){this.observeElement(this.props.observeParents!==e.observeParents)},a.prototype.componentWillUnmount=function(){this.observer.disconnect()},a.prototype.observeElement=function(e){void 0===e&&(e=!1);var t=this.getElement();if(t instanceof Element){if((t!==this.element||e)&&(this.observer.disconnect(),this.element=t,this.observer.observe(t),this.props.observeParents))for(var n=t.parentElement;null!=n;)this.observer.observe(n),n=n.parentElement}else this.observer.disconnect()},a.prototype.getElement=function(){try{return(0,t.findDOMNode)(this)}catch(e){return null}},a.displayName="Blueprint3.ResizeSensor",a=wn([In.polyfill],a)}(Hn),wi=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.popover=null,e}return bn(n,t),n.prototype.render=function(){var t,n=this,a=this.props,s=a.children,i=a.intent,r=a.popoverClassName,o=_n(a,["children","intent","popoverClassName"]),l=xn()(Ge,((t={})[D]=this.props.minimal,t),Ye(i),r);return e.createElement(Pi,yn({interactionKind:Li.HOVER_TARGET_ONLY,modifiers:{arrow:{enabled:!this.props.minimal}}},o,{autoFocus:!1,canEscapeKeyClose:!1,enforceFocus:!1,lazy:!0,popoverClassName:l,portalContainer:this.props.portalContainer,ref:function(e){return n.popover=e}}),s)},n.prototype.reposition=function(){null!=this.popover&&this.popover.reposition()},n.displayName="Blueprint3.Tooltip",n.defaultProps={hoverCloseDelay:0,hoverOpenDelay:100,minimal:!1,transitionDuration:100},n=wn([In.polyfill],n)}(Hn);function Ci(e){return e.split("-")[0]}function Ei(e){return-1!==["left","right"].indexOf(e)}function Si(e){switch(e){case"top":return"bottom";case"left":return"right";case"bottom":return"top";default:return"left"}}function ki(e){switch(e.split("-")[1]){case"start":return"left";case"end":return"right";default:return"center"}}function zi(e){var t=Ci(e.placement);if(null==e.arrowElement)return Ei(t)?Si(t)+" "+ki(t):ki(t)+" "+Si(t);var n=e.arrowElement.clientHeight/2,a=e.offsets.arrow;return Ei(t)?Si(t)+" "+(a.top+n)+"px":a.left+n+"px "+Si(t)}var Mi=function(e){if(null==e.arrowElement)return e;var t=e.arrowElement.clientWidth,n=Ci(e.placement),a=Ei(n),s=a?"width":"height",i=a?"left":"top",r=Math.round(t/2/Math.sqrt(2));return"top"===n||"left"===n?(e.offsets.popper[i]-=r+4,e.offsets.arrow[i]=e.offsets.popper[s]-t+r):(e.offsets.popper[i]+=r+4,e.offsets.arrow[i]=-r),e};function xi(e){if(null==e)return 0;switch(Ci(e)){case"top":return-90;case"left":return 180;case"bottom":return 90;default:return 0}}var Ai=function(t){var n=t.arrowProps,a=n.ref,s=n.style,i=t.placement;return e.createElement("div",{className:ze,ref:a,style:null==s.left||isNaN(+s.left)?{}:s},e.createElement("svg",{viewBox:"0 0 30 30",style:{transform:"rotate("+xi(i)+"deg)"}},e.createElement("path",{className:ze+"-border",d:"M8.11 6.302c1.015-.936 1.887-2.922 1.887-4.297v26c0-1.378-.868-3.357-1.888-4.297L.925 17.09c-1.237-1.14-1.233-3.034 0-4.17L8.11 6.302z"}),e.createElement("path",{className:ze+"-fill",d:"M8.787 7.036c1.22-1.125 2.21-3.376 2.21-5.03V0v30-2.005c0-1.654-.983-3.9-2.21-5.03l-7.183-6.616c-.81-.746-.802-1.96 0-2.7l7.183-6.614z"})))};function Ti(e){switch(e){case k:return"top-start";case S:return"top";case z:return"top-end";case E:return"right-start";case w:return"right";case C:return"right-end";case g:return"bottom-end";case f:return"bottom";case v:return"bottom-start";case y:return"left-end";case b:return"left";case _:return"left-start";case"auto":case"auto-start":case"auto-end":return e;default:return function(e){throw new Error("Unexpected position: "+e)}(e)}}Ai.displayName="Blueprint3.PopoverArrow";var Li={CLICK:"click",CLICK_TARGET_ONLY:"click-target",HOVER:"hover",HOVER_TARGET_ONLY:"hover-target"},Pi=function(t){function n(){var n=null!==t&&t.apply(this,arguments)||this;return n.popoverRef=Dn(),n.popoverElement=null,n.targetElement=null,n.state={hasDarkParent:!1,isOpen:n.getIsOpen(n.props),transformOrigin:""},n.isMouseInTargetOrPopover=!1,n.lostFocusOnSamePage=!0,n.handlePopoverRef=zn(n,"popoverElement",n.props.popoverRef),n.handleTargetRef=function(e){return n.targetElement=e},n.reposition=function(){var e;return null===(e=n.popperScheduleUpdate)||void 0===e?void 0:e.call(n)},n.renderPopover=function(t){var a,s=n.props,i=s.usePortal,r=s.interactionKind,o=n.state.transformOrigin;n.popperScheduleUpdate=t.scheduleUpdate;var l={onClick:n.handlePopoverClick};(r===Li.HOVER||!i&&r===Li.HOVER_TARGET_ONLY)&&(l.onMouseEnter=n.handleMouseEnter,l.onMouseLeave=n.handleMouseLeave);var c=xn()(ke,((a={})[L]=n.props.inheritDarkTheme&&n.state.hasDarkParent,a[D]=n.props.minimal,a[xe]=n.props.captureDismiss,a),n.props.popoverClassName);return e.createElement("div",{className:Oe,ref:t.ref,style:t.style},e.createElement(_i,{onResize:n.reposition},e.createElement("div",yn({className:c,style:{transformOrigin:o},ref:n.popoverRef},l),n.isArrowEnabled()&&e.createElement(Ai,{arrowProps:t.arrowProps,placement:t.placement}),e.createElement("div",{className:Ae},n.understandChildren().content))))},n.renderTarget=function(t){var a,s,i=n.props,r=i.fill,o=i.openOnTargetFocus,l=i.targetClassName,c=i.targetProps,h=void 0===c?{}:c,d=n.state.isOpen,u=n.isControlled(),p=n.isHoverInteractionKind(),m=n.props.targetTagName;r&&(m="div");var f=p?{onBlur:n.handleTargetBlur,onFocus:n.handleTargetFocus,onMouseEnter:n.handleMouseEnter,onMouseLeave:n.handleMouseLeave}:{onClick:n.handleTargetClick};f.className=xn()(He,((a={})[Pe]=d,a),h.className,l),f.ref=t.ref;var v=On(n.understandChildren().target);if(void 0===v)return null;var g=v.props.tabIndex,b=null==g&&o&&p?0:g,y=e.cloneElement(v,{className:xn()(v.props.className,(s={},s[x]=d&&!u&&!p,s)),disabled:!(!d||!Vn(v,wi))||v.props.disabled,tabIndex:b}),_=e.createElement(m,yn(yn({},h),f),y);return e.createElement(_i,{onResize:n.reposition},_)},n.isControlled=function(){return void 0!==n.props.isOpen},n.handleTargetFocus=function(e){var t,a;if(n.props.openOnTargetFocus&&n.isHoverInteractionKind()){if(null==e.relatedTarget&&!n.lostFocusOnSamePage)return;n.handleMouseEnter(e)}null===(a=null===(t=n.props.targetProps)||void 0===t?void 0:t.onFocus)||void 0===a||a.call(t,e)},n.handleTargetBlur=function(e){var t,a;n.props.openOnTargetFocus&&n.isHoverInteractionKind()&&(null==e.relatedTarget||n.isElementInPopover(e.relatedTarget)||n.handleMouseLeave(e)),n.lostFocusOnSamePage=null!=e.relatedTarget,null===(a=null===(t=n.props.targetProps)||void 0===t?void 0:t.onBlur)||void 0===a||a.call(t,e)},n.handleMouseEnter=function(e){var t,a;n.isMouseInTargetOrPopover=!0,n.props.usePortal||!n.isElementInPopover(e.target)||n.props.interactionKind!==Li.HOVER_TARGET_ONLY||n.props.openOnTargetFocus?n.props.disabled||n.setOpenState(!0,e,n.props.hoverOpenDelay):n.handleMouseLeave(e),null===(a=null===(t=n.props.targetProps)||void 0===t?void 0:t.onMouseEnter)||void 0===a||a.call(t,e)},n.handleMouseLeave=function(e){var t,a;n.isMouseInTargetOrPopover=!1,n.setTimeout((function(){n.isMouseInTargetOrPopover||n.setOpenState(!1,e,n.props.hoverCloseDelay)})),null===(a=null===(t=n.props.targetProps)||void 0===t?void 0:t.onMouseLeave)||void 0===a||a.call(t,e)},n.handlePopoverClick=function(e){var t=e.target,a=t.closest("."+ke),s=a===n.popoverRef.current,i=null==a?void 0:a.classList.contains(xe),r=t.closest("."+Te+", ."+Le),o=null!=r&&r.classList.contains(Te),l=null!=t.closest(":disabled, ."+P);!o||l||i&&!s||n.setOpenState(!1,e)},n.handleOverlayClose=function(e){if(null!==n.targetElement&&void 0!==e){var t=e.target;(!qs(n.targetElement,t)||e.nativeEvent instanceof KeyboardEvent)&&n.setOpenState(!1,e)}},n.handleTargetClick=function(e){var t,a;n.props.disabled||n.isElementInPopover(e.target)||(null==n.props.isOpen?n.setState((function(e){return{isOpen:!e.isOpen}})):n.setOpenState(!n.props.isOpen,e)),null===(a=null===(t=n.props.targetProps)||void 0===t?void 0:t.onClick)||void 0===a||a.call(t,e)},n.updatePopoverState=function(e){return n.setState({transformOrigin:zi(e)}),e},n}return bn(n,t),n.prototype.render=function(){var t,n=this.props,a=n.className,s=n.disabled,i=n.fill,r=n.placement,o=n.position,l=void 0===o?"auto":o,c=this.state.isOpen,h=this.props.wrapperTagName;i&&(h="div");var d=null==On(this.understandChildren().content);!d||s||!1===c||Tn("production")||console.warn("[Blueprint] Disabling with empty/whitespace content...");var u=xn()(Ne,a,((t={})[H]=i,t)),p=e.createElement(h,{className:u},e.createElement(Va,{innerRef:this.handleTargetRef},this.renderTarget),e.createElement(ia,{autoFocus:this.props.autoFocus,backdropClassName:Me,backdropProps:this.props.backdropProps,canEscapeKeyClose:this.props.canEscapeKeyClose,canOutsideClickClose:this.props.interactionKind===Li.CLICK,className:this.props.portalClassName,enforceFocus:this.props.enforceFocus,hasBackdrop:this.props.hasBackdrop,isOpen:c&&!d,onClose:this.handleOverlayClose,onClosed:this.props.onClosed,onClosing:this.props.onClosing,onOpened:this.props.onOpened,onOpening:this.props.onOpening,transitionDuration:this.props.transitionDuration,transitionName:ke,usePortal:this.props.usePortal,portalContainer:this.props.portalContainer},e.createElement(Zs,{innerRef:this.handlePopoverRef,placement:null!=r?r:Ti(l),modifiers:this.getPopperModifiers()},this.renderPopover)));return e.createElement(La,null,p)},n.prototype.componentDidMount=function(){this.updateDarkParent()},n.prototype.componentDidUpdate=function(e,n){t.prototype.componentDidUpdate.call(this,e,n),e.popoverRef!==this.props.popoverRef&&(kn(e.popoverRef,null),this.handlePopoverRef=zn(this,"popoverElement",this.props.popoverRef),kn(this.props.popoverRef,this.popoverElement)),this.updateDarkParent();var a=this.getIsOpen(this.props);null!=this.props.isOpen&&a!==this.state.isOpen?(this.setOpenState(a),this.setState({isOpen:a})):this.props.disabled&&this.state.isOpen&&null==this.props.isOpen&&this.setOpenState(!1)},n.prototype.validateProps=function(t){null==t.isOpen&&null!=t.onInteraction&&console.warn("[Blueprint] onInteraction is ignored when uncontrolled."),t.hasBackdrop&&!t.usePortal&&console.warn("[Blueprint] ignores hasBackdrop"),t.hasBackdrop&&t.interactionKind!==Li.CLICK&&console.error("[Blueprint] requires interactionKind={PopoverInteractionKind.CLICK}."),void 0!==t.placement&&void 0!==t.position&&console.warn("[Blueprint] supports either placement or position prop, not both.");var n=e.Children.count(t.children),a=void 0!==t.content,s=void 0!==t.target;0!==n||s||console.error("[Blueprint] requires target prop or at least one child element."),n>2&&console.warn("[Blueprint] supports one or two children; additional children are ignored. First child is the target, second child is the content. You may instead supply these two as props."),n>0&&s&&console.warn("[Blueprint] with children ignores target prop; use either prop or children."),2===n&&a&&console.warn("[Blueprint] with two children ignores content prop; use either prop or children.")},n.prototype.updateDarkParent=function(){if(this.props.usePortal&&this.state.isOpen){var e=null!=this.targetElement&&null!=this.targetElement.closest("."+L);this.setState({hasDarkParent:e})}},n.prototype.understandChildren=function(){var t=this.props,n=t.children,a=t.content,s=t.target,i=e.Children.toArray(n),r=i[0],o=i[1];return{content:null==o?a:o,target:null==r?s:r}},n.prototype.getIsOpen=function(e){return!e.disabled&&(null!=e.isOpen?e.isOpen:e.defaultIsOpen)},n.prototype.getPopperModifiers=function(){var e=this.props,t=e.boundary,n=e.modifiers,a=n,s=a.flip,i=void 0===s?{}:s,r=a.preventOverflow,o=void 0===r?{}:r;return yn(yn({},n),{arrowOffset:{enabled:this.isArrowEnabled(),fn:Mi,order:510},flip:yn({boundariesElement:t},i),preventOverflow:yn({boundariesElement:t},o),updatePopoverState:{enabled:!0,fn:this.updatePopoverState,order:900}})},n.prototype.setOpenState=function(e,t,n){var a,s,i,r,o,l=this;null===(a=this.cancelOpenTimeout)||void 0===a||a.call(this),void 0!==n&&n>0?this.cancelOpenTimeout=this.setTimeout((function(){return l.setOpenState(e,t)}),n):(null==this.props.isOpen?this.setState({isOpen:e}):null===(i=(s=this.props).onInteraction)||void 0===i||i.call(s,e,t),e||null===(o=(r=this.props).onClose)||void 0===o||o.call(r,t))},n.prototype.isArrowEnabled=function(){var e=this.props,t=e.minimal,n=e.modifiers;return!t&&(null==(null==n?void 0:n.arrow)||n.arrow.enabled)},n.prototype.isElementInPopover=function(e){var t;return null===(t=this.popoverElement)||void 0===t?void 0:t.contains(e)},n.prototype.isHoverInteractionKind=function(){return this.props.interactionKind===Li.HOVER||this.props.interactionKind===Li.HOVER_TARGET_ONLY},n.displayName="Blueprint3.Popover",n.defaultProps={boundary:"scrollParent",captureDismiss:!1,defaultIsOpen:!1,disabled:!1,fill:!1,hasBackdrop:!1,hoverCloseDelay:300,hoverOpenDelay:150,inheritDarkTheme:!0,interactionKind:Li.CLICK,minimal:!1,modifiers:{},openOnTargetFocus:!0,targetTagName:"span",transitionDuration:300,usePortal:!0,wrapperTagName:"span"},n=wn([In.polyfill],n)}(Hn),Hi=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.state={isContentOverflowing:!1,textContent:""},e.textRef=null,e}return bn(n,t),n.prototype.componentDidMount=function(){this.update()},n.prototype.componentDidUpdate=function(){this.update()},n.prototype.render=function(){var t,n=this,a=xn()(((t={})[U]=this.props.ellipsize,t),this.props.className),s=this.props,i=s.children,r=s.tagName,o=s.title;return e.createElement(r,{className:a,ref:function(e){return n.textRef=e},title:null!=o?o:this.state.isContentOverflowing?this.state.textContent:void 0},i)},n.prototype.update=function(){var e;if(null!=(null===(e=this.textRef)||void 0===e?void 0:e.textContent)){var t={isContentOverflowing:this.props.ellipsize&&this.textRef.scrollWidth>this.textRef.clientWidth,textContent:this.textRef.textContent};this.setState(t)}},n.displayName="Blueprint3.Text",n.defaultProps={ellipsize:!1,tagName:"div"},n=wn([In.polyfill],n)}(Hn),Ni=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){var t,n,a=this.props,s=a.active,i=a.className,r=a.children,o=a.disabled,l=a.icon,c=a.intent,h=(a.labelClassName,a.labelElement),d=a.multiline,u=(a.popoverProps,a.shouldDismissPopover),p=a.text,m=a.textClassName,f=a.tagName,v=void 0===f?"a":f,g=a.htmlTitle,b=_n(a,["active","className","children","disabled","icon","intent","labelClassName","labelElement","multiline","popoverProps","shouldDismissPopover","text","textClassName","tagName","htmlTitle"]),y=null!=r,_=Ye(c),w=xn()(pe,_,((t={})[x]=s,t[X]=s&&null==_,t[P]=o,t[Te]=u&&!o&&!y,t),i),C=e.createElement(v,yn(yn(yn({},b),o?Vi:{}),{className:w}),e.createElement(Fn,{icon:l}),e.createElement(Hi,{className:xn()(H,m),ellipsize:!d,title:g},p),this.maybeRenderLabel(h),y?e.createElement(Fn,{icon:"caret-right"}):void 0),E=xn()(((n={})[fe]=y,n));return e.createElement("li",{className:E},this.maybeRenderPopover(C,r))},n.prototype.maybeRenderLabel=function(t){var n=this.props,a=n.label,s=n.labelClassName;return null==a&&null==t?null:e.createElement("span",{className:xn()(me,s)},a,t)},n.prototype.maybeRenderPopover=function(t,n){if(null==n)return t;var a=this.props,s=a.disabled,i=a.popoverProps;return e.createElement(Pi,yn({autoFocus:!1,captureDismiss:!1,disabled:s,enforceFocus:!1,hoverCloseDelay:0,interactionKind:Li.HOVER,modifiers:Oi,position:E,usePortal:!1},i,{content:e.createElement(Di,null,n),minimal:!0,popoverClassName:xn()(fe,null==i?void 0:i.popoverClassName),target:t}))},n.defaultProps={disabled:!1,multiline:!1,popoverProps:{},shouldDismissPopover:!0,text:""},n.displayName="Blueprint3.MenuItem",n=wn([In.polyfill],n)}(Hn),Oi={flip:{boundariesElement:"viewport",padding:20},offset:{offset:-5},preventOverflow:{boundariesElement:"viewport",padding:20}},Vi={href:void 0,onClick:void 0,onMouseDown:void 0,onMouseEnter:void 0,onMouseLeave:void 0,tabIndex:-1},Di=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return bn(n,t),n.prototype.render=function(){var t,n=this.props,a=n.className,s=n.children,i=n.large,r=n.ulRef,o=_n(n,["className","children","large","ulRef"]),l=xn()(ue,((t={})[O]=i,t),a);return e.createElement("ul",yn({},o,{className:l,ref:r}),s)},n.displayName="Blueprint3.Menu",n.Divider=Ca,n.Item=Ni,n=wn([In.polyfill],n)}(Hn),Ii=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.handleActionClick=function(t){var n,a;null===(a=null===(n=e.props.action)||void 0===n?void 0:n.onClick)||void 0===a||a.call(n,t),e.triggerDismiss(!1)},e.handleCloseClick=function(){return e.triggerDismiss(!1)},e.startTimeout=function(){e.clearTimeouts(),e.props.timeout>0&&e.setTimeout((function(){return e.triggerDismiss(!0)}),e.props.timeout)},e}return bn(n,t),n.prototype.render=function(){var t=this.props,n=t.className,a=t.icon,s=t.intent,i=t.message;return e.createElement("div",{className:xn()(Xe,Ye(s),n),onBlur:this.startTimeout,onFocus:this.clearTimeouts,onMouseEnter:this.clearTimeouts,onMouseLeave:this.startTimeout,tabIndex:0},e.createElement(Fn,{icon:a}),e.createElement("span",{className:Ue},i),e.createElement(la,{minimal:!0},this.maybeRenderActionButton(),e.createElement(Wn,{icon:"cross",onClick:this.handleCloseClick})))},n.prototype.componentDidMount=function(){this.startTimeout()},n.prototype.componentDidUpdate=function(e){e.timeout!==this.props.timeout&&(this.props.timeout>0?this.startTimeout():this.clearTimeouts())},n.prototype.componentWillUnmount=function(){this.clearTimeouts()},n.prototype.maybeRenderActionButton=function(){var t=this.props.action;return null==t?void 0:e.createElement(Qn,yn({},t,{intent:void 0,onClick:this.handleActionClick}))},n.prototype.triggerDismiss=function(e){var t,n;this.clearTimeouts(),null===(n=(t=this.props).onDismiss)||void 0===n||n.call(t,e)},n.defaultProps={className:"",message:"",timeout:5e3},n.displayName="Blueprint3.Toast",n=wn([In.polyfill],n)}(Hn),Ri=function(n){function a(){var t=null!==n&&n.apply(this,arguments)||this;return t.state={toasts:[]},t.toastId=0,t.renderToast=function(n){return e.createElement(Ii,yn({},n,{onDismiss:t.getDismissHandler(n)}))},t.getDismissHandler=function(e){return function(n){t.dismiss(e.key,n)}},t.handleClose=function(e){27===e.which&&t.clear()},t}var s;return bn(a,n),s=a,a.create=function(n,a){void 0===a&&(a=document.body),null==n||null==n.usePortal||Tn("production")||console.warn("[Blueprint] Toaster.create() ignores inline prop as it always creates a new element.");var i=document.createElement("div");a.appendChild(i);var r=t.render(e.createElement(s,yn({},n,{usePortal:!1})),i);if(null==r)throw new Error("[Blueprint] Toaster.create() is not supported inside React lifecycle methods in React 16. See usage example on the docs site.");return r},a.prototype.show=function(e,t){this.props.maxToasts&&this.dismissIfAtLimit();var n=this.createToastOptions(e,t);return void 0===t||this.isNewToastKey(t)?this.setState((function(e){return{toasts:Cn([n],e.toasts)}})):this.setState((function(e){return{toasts:e.toasts.map((function(e){return e.key===t?n:e}))}})),n.key},a.prototype.dismiss=function(e,t){void 0===t&&(t=!1),this.setState((function(n){return{toasts:n.toasts.filter((function(n){var a,s=n.key===e;return s&&(null===(a=n.onDismiss)||void 0===a||a.call(n,t)),!s}))}}))},a.prototype.clear=function(){this.state.toasts.forEach((function(e){var t;return null===(t=e.onDismiss)||void 0===t?void 0:t.call(e,!1)})),this.setState({toasts:[]})},a.prototype.getToasts=function(){return this.state.toasts},a.prototype.render=function(){var t=xn()(Ke,this.getPositionClasses(),this.props.className);return e.createElement(ia,{autoFocus:this.props.autoFocus,canEscapeKeyClose:this.props.canEscapeKeyClear,canOutsideClickClose:!1,className:t,enforceFocus:!1,hasBackdrop:!1,isOpen:this.state.toasts.length>0||null!=this.props.children,onClose:this.handleClose,transitionDuration:350,transitionName:Xe,usePortal:this.props.usePortal},this.state.toasts.map(this.renderToast,this),this.props.children)},a.prototype.validateProps=function(e){var t=e.maxToasts;if(void 0!==t&&t<1)throw new Error("[Blueprint] maxToasts is set to an invalid number, must be greater than 0")},a.prototype.isNewToastKey=function(e){return this.state.toasts.every((function(t){return t.key!==e}))},a.prototype.dismissIfAtLimit=function(){this.state.toasts.length===this.props.maxToasts&&this.dismiss(this.state.toasts[this.state.toasts.length-1].key)},a.prototype.createToastOptions=function(e,t){return void 0===t&&(t="toast-"+this.toastId++),yn(yn({},e),{key:t})},a.prototype.getPositionClasses=function(){return Cn(this.props.position.split("-").map((function(e){return Ke+"-"+e.toLowerCase()})),[Ke+"-"+(this.props.usePortal?"in-portal":"inline")])},a.displayName="Blueprint3.Toaster",a.defaultProps={autoFocus:!1,canEscapeKeyClear:!0,position:S,usePortal:!0},a=s=wn([In.polyfill],a)}(Hn);let Bi;function Fi(e,t){return void 0===t&&(t=5e3),Bi.show({intent:u,message:e,timeout:t})}function Xi(e,t){return void 0===t&&(t=5e3),Bi.show({intent:p,message:e,timeout:t})}function Ki(e,t){return void 0===t&&(t=5e3),Bi.show({intent:m,message:e,timeout:t})}function Ui(e,t,n){void 0===n&&(n=5e3);try{t=e.body.error_msg||t}catch(e){}return Bi.show({intent:m,message:t,timeout:n})}let Gi=!1;function ji(e){Gi=e}let Wi="";let Qi=new Set,Yi="dark";function Zi(){Yi="light",document.body.className="",Qi.forEach((e=>{e()}))}function qi(){Yi="dark",document.body.className="bp3-dark",Qi.forEach((e=>{e()}))}let Ji=new(n(4741))(window.navigator.userAgent);const $i=!!window.user,er=!!Ji.mobile(),tr=Ji.os(),nr={admin:"Admin",proxy:"Service",user:"User"},ar={linux:"Linux",macos_1010:"macOS 10.10",macos_1011:"macOS 10.11",macos_1012:"macOS 10.12",macos_1013:"macOS 10.13",macos_1014:"macOS 10.14",macos_1015:"macOS 10.15",macos11:"macOS 11",macos12:"macOS 12",macos13:"macOS 13",macos14:"macOS 14",windows_xp:"Windows XP",windows_7:"Windows 7",windows_vista:"Windows Vista",windows_8:"Windows 8",windows_10:"Windows 10",windows_11:"Windows 11",chrome_os:"Chrome OS",ios_8:"iOS 8",ios_9:"iOS 9",ios_10:"iOS 10",ios_11:"iOS 11",ios_12:"iOS 12",ios_13:"iOS 13",ios_14:"iOS 14",ios_15:"iOS 15",ios_16:"iOS 16",ios_17:"iOS 17",ios_18:"iOS 18",android_4:"Android KitKat 4.4",android_5:"Android Lollipop 5",android_6:"Android Marshmallow 6",android_7:"Android Nougat 7",android_8:"Android Oreo 8",android_9:"Android Pie 9",android_10:"Android 10",android_11:"Android 11",android_12:"Android 12",android_13:"Android 13",android_14:"Android 14",blackberry_10:"Blackerry 10",windows_phone:"Windows Phone",firefox_os:"Firefox OS",kindle:"Kindle"},sr={chrome:"Chrome",chrome_mobile:"Chrome Mobile",safari:"Safari",safari_mobile:"Safari Mobile",firefox:"Firefox",firefox_mobile:"Firefox Mobile",edge:"Microsoft Edge",internet_explorer:"Internet Explorer",internet_explorer_mobile:"Internet Explorer Mobile",opera:"Opera",opera_mobile:"Opera Mobile"},ir={US:"United States",US_AL:"Alabama, US",US_AK:"Alaska, US",US_AZ:"Arizona, US",US_AR:"Arkansas, US",US_CA:"California, US",US_CO:"Colorado, US",US_CT:"Connecticut, US",US_DE:"Delaware, US",US_FL:"Florida, US",US_GA:"Georgia, US",US_HI:"Hawaii, US",US_ID:"Idaho, US",US_IL:"Illinois, US",US_IN:"Indiana, US",US_IA:"Iowa, US",US_KS:"Kansas, US",US_KY:"Kentucky, US",US_LA:"Louisiana, US",US_ME:"Maine, US",US_MD:"Maryland, US",US_MA:"Massachusetts, US",US_MI:"Michigan, US",US_MN:"Minnesota, US",US_MS:"Mississippi, US",US_MO:"Missouri, US",US_MT:"Montana, US",US_NE:"Nebraska, US",US_NV:"Nevada, US",US_NH:"New Hampshire, US",US_NJ:"New Jersey, US",US_NM:"New Mexico, US",US_NY:"New York, US",US_NC:"North Carolina, US",US_ND:"North Dakota, US",US_OH:"Ohio, US",US_OK:"Oklahoma, US",US_OR:"Oregon, US",US_PA:"Pennsylvania, US",US_RI:"Rhode Island, US",US_SC:"South Carolina, US",US_SD:"South Dakota, US",US_TN:"Tennessee, US",US_TX:"Texas, US",US_UT:"Utah, US",US_VT:"Vermont, US",US_VA:"Virginia, US",US_WA:"Washington, US",US_DC:"Washington DC, US",US_WV:"West Virginia, US",US_WI:"Wisconsin, US",US_WY:"Wyoming, US",AF:"Afghanistan",AX:"Åland Islands",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia",BQ:"Bonaire",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",CV:"Cabo Verde",KH:"Cambodia",CM:"Cameroon",CA:"Canada",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos Islands",CO:"Colombia",KM:"Comoros",CG:"Congo",CD:"Congo Democratic Republic",CK:"Cook Islands",CR:"Costa Rica",CI:"Côte dIvoire",HR:"Croatia",CU:"Cuba",CW:"Curaçao",CY:"Cyprus",CZ:"Czechia",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and McDonald Islands",VA:"Holy See",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"North Korea",KR:"South Korea",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Lao Peoples",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia",MD:"Moldova",MC:"Monaco",MN:"Mongolia",ME:"Montenegro",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestine, State of",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Réunion",RO:"Romania",RU:"Russian Federation",RW:"Rwanda",BL:"Saint Barthélemy",SH:"Saint Helena",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",MF:"Saint Martin",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SX:"Sint Maarten",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",SS:"South Sudan",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan",TJ:"Tajikistan",TZ:"Tanzania",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela",VN:"Viet Nam",VG:"British Virgin Islands",VI:"US Virgin Islands",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe"};var rr=n(7619);class or extends rr.Dispatcher{}const lr=new or;var cr=n(5939);class hr extends cr.EventEmitter{emitDefer(e,...t){setTimeout((()=>{this.emit(e,...t)}))}}const dr="subscription.sync",ur="change",pr="reset",mr="reload";const fr=new class extends hr{constructor(){super(...arguments),this._token=lr.register(this._callback.bind(this))}get subscription(){return this._subscription}get subscriptionM(){if(this._subscription)return{...this._subscription}}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._subscription=Object.freeze(e),this.emitChange()}_callback(e){if(e.type===dr)this._sync(e.data)}},vr="organization.sync";const gr=new class extends hr{constructor(){super(...arguments),this._organizations=Object.freeze([]),this._map={},this._token=lr.register(this._callback.bind(this))}_reset(e){this._current=e,this.emitChange()}get current(){return this._current}get organizations(){return this._organizations}get organizationsM(){let e=[];return this._organizations.forEach((t=>{e.push({...t})})),e}organization(e){let t=this._map[e];return void 0===t?null:this._organizations[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){$i&&!this._current&&(e.length?this._current=e[0].id:this._current=null),this._map={};for(let t=0;t{this.setState({loading:_r.loading})},this.state={loading:_r.loading}}componentDidMount(){_r.addChangeListener(this.onChange)}componentWillUnmount(){_r.removeChangeListener(this.onChange)}render(){let t;if(this.state.loading){let n="bp3-progress-bar bp3-no-stripes bp3-no-animation ";this.props.intent&&(n+=" bp3-intent-"+this.props.intent),t=e.createElement("div",{className:n,style:wr.progress},e.createElement("div",{className:"bp3-progress-meter bp3-loading-bar",style:wr.progressBar}))}else t=e.createElement("div",{style:wr.progress});return e.createElement("div",{style:this.props.style},t)}}var Er=n(2396);class Sr extends rr.Dispatcher{}const kr=new Sr;function zr(){return(+new Date+Math.floor(999999*Math.random())).toString(36)}function Mr(e){return!e||"000000000000000000000000"==e}function xr(e,t){return e12?(r="PM",i-=12):0===i&&(i=12),a.getDay()){case 0:t="Sun";break;case 1:t="Mon";break;case 2:t="Tue";break;case 3:t="Wed";break;case 4:t="Thu";break;case 5:t="Fri";break;case 6:t="Sat"}switch(a.getMonth()){case 0:n="Jan";break;case 1:n="Feb";break;case 2:n="Mar";break;case 3:n="Apr";break;case 4:n="May";break;case 5:n="Jun";break;case 6:n="Jul";break;case 7:n="Aug";break;case 8:n="Sep";break;case 9:n="Oct";break;case 10:n="Nov";break;case 11:n="Dec"}return s+=t+" ",s+=a.getDate()+" ",s+=n+" ",s+=a.getFullYear()+", ",s+=i+":",s+=xr(a.getMinutes(),2)+":",s+=xr(a.getSeconds(),2)+" ",s+=r,s}function Pr(e){if(!e||"0001-01-01T00:00:00Z"===e)return"";let t,n=new Date(e),a=new Date;switch(n.getMonth()){case 0:t="Jan";break;case 1:t="Feb";break;case 2:t="Mar";break;case 3:t="Apr";break;case 4:t="May";break;case 5:t="Jun";break;case 6:t="Jul";break;case 7:t="Aug";break;case 8:t="Sep";break;case 9:t="Oct";break;case 10:t="Nov";break;case 11:t="Dec"}let s=t+" "+n.getDate();return n.getFullYear()!==a.getFullYear()&&(s+=" "+n.getFullYear()),s}function Hr(e){if(!e||"0001-01-01T00:00:00Z"===e)return"";let t,n=new Date(e),a=new Date;switch(n.getMonth()){case 0:t="Jan";break;case 1:t="Feb";break;case 2:t="Mar";break;case 3:t="Apr";break;case 4:t="May";break;case 5:t="Jun";break;case 6:t="Jul";break;case 7:t="Aug";break;case 8:t="Sep";break;case 9:t="Oct";break;case 10:t="Nov";break;case 11:t="Dec"}let s=t+" "+n.getDate();if(n.getFullYear()!==a.getFullYear())s+=" "+n.getFullYear();else if(n.getMonth()===a.getMonth()&&n.getDate()===a.getDate()){let e=n.getHours(),t="AM";e>12?(t="PM",e-=12):0===e&&(e=12),s=e+":",s+=xr(n.getMinutes(),2)+":",s+=xr(n.getSeconds(),2)+" ",s+=t}return s}class Nr{constructor(){this._id=zr()}loading(){return lr.dispatch({type:br,data:{id:this._id}}),this}done(){return lr.dispatch({type:yr,data:{id:this._id}}),this}}let Or;function Vr(e){let t=zr();Or=t;let n=(new Nr).loading();return new Promise(((a,s)=>{vn.get("/subscription"+(e?"/update":"")).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,i)=>{if(n.done(),i&&401===i.status)return window.location.href="/login",void a();if(t===Or){if(e)return Ui(i,"Failed to sync subscription"),s(e),void lr.dispatch({type:dr,data:{}});lr.dispatch({type:dr,data:i.body}),a()}else a()}))}))}function Dr(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/subscription").send({license:e}).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to activate subscription"),void a(e)):(lr.dispatch({type:dr,data:s.body}),void n()))))}))}kr.register((e=>{if("subscription.change"===e.type)$i||Vr(!1)}));const Ir={box:{display:"inline-flex",verticalAlign:"middle"},actionProgress:{position:"absolute",bottom:0,left:0,borderRadius:0,borderBottomLeftRadius:"3px",borderBottomRightRadius:"3px",width:"100%",height:"4px"},squareActionProgress:{position:"absolute",bottom:0,left:0,borderRadius:0,borderBottomLeftRadius:"1px",borderBottomRightRadius:"3px",width:"100%",height:"4px"},dialog:{width:"340px",position:"absolute"},label:{width:"100%",maxWidth:"220px",margin:"18px 0 0 0"},input:{width:"100%"}};class Rr extends e.Component{constructor(e,t){super(e,t),this.openDialog=()=>{this.setState({...this.state,dialog:!0})},this.closeDialog=()=>{this.setState({...this.state,dialog:!1,input:""})},this.closeDialogConfirm=()=>{this.setState({...this.state,dialog:!1,input:""}),this.props.onConfirm&&this.props.onConfirm()},this.confirm=e=>{let t=zr();if(e.shiftKey)return void(this.props.onConfirm&&this.props.onConfirm());this.setState({...this.state,confirming:t});let n=10,a=setInterval((()=>n>100?(clearInterval(a),void setTimeout((()=>{this.state.confirming===t&&(this.setState({...this.state,confirm:0,confirming:null}),this.props.onConfirm&&this.props.onConfirm())}),250)):this.state.confirming?(n%10==0&&this.setState({...this.state,confirm:n/10}),void(n+=2)):(clearInterval(a),void this.setState({...this.state,confirm:0,confirming:null}))),8)},this.clearConfirm=()=>{this.setState({...this.state,confirm:0,confirming:null})},this.state={input:"",dialog:!1,confirm:0,confirming:null}}render(){let t=er||this.props.safe,n={...this.props.style};n.position="relative";let a=this.props.className||"";this.props.label||(a+=" bp3-button-empty");let s,i=this.props.dialogClassName||this.props.className||"";if(this.props.label||this.props.dialogLabel||(i+=" bp3-button-empty"),this.props.confirmInput&&(s=e.createElement("label",{className:"bp3-label",style:Ir.label},'Enter "delete" to confirm:',e.createElement("input",{className:"bp3-input",style:Ir.input,disabled:this.props.disabled,autoCapitalize:"off",spellCheck:!1,placeholder:'Enter "delete" to confirm',value:this.state.input,onKeyDown:e=>{"Enter"===e.key&&"delete"===this.state.input&&this.closeDialogConfirm()},onChange:e=>{this.setState({...this.state,input:e.target.value})}}))),t){let r,o=this.props.confirmMsg?this.props.confirmMsg:"Confirm "+(this.props.label||"");if(this.props.items){let t=[];for(let n of this.props.items)t.push(e.createElement("li",null,n));r=e.createElement("ul",null,t)}return e.createElement("div",{style:Ir.box},e.createElement("button",{className:"bp3-button "+a,style:n,type:"button",hidden:this.props.hidden,disabled:this.props.disabled,onMouseDown:t?void 0:this.confirm,onMouseUp:t?void 0:this.clearConfirm,onMouseLeave:t?void 0:this.clearConfirm,onClick:t?this.openDialog:void 0},this.props.label),e.createElement(ra,{title:"Confirm",style:Ir.dialog,isOpen:this.state.dialog,usePortal:!0,portalContainer:document.body,onClose:this.closeDialog},e.createElement("div",{className:"bp3-dialog-body"},o,r,s),e.createElement("div",{className:"bp3-dialog-footer"},e.createElement("div",{className:"bp3-dialog-footer-actions"},e.createElement("button",{className:"bp3-button",type:"button",onClick:this.closeDialog},"Cancel"),e.createElement("button",{className:"bp3-button "+i,type:"button",disabled:this.props.confirmInput&&"delete"!==this.state.input,onClick:this.closeDialogConfirm},this.props.dialogLabel||this.props.label)))))}{let s;if(this.state.confirming){let t,a={width:10*this.state.confirm+"%",backgroundColor:n.color,borderRadius:0,left:0};t=this.props.grouped?Ir.squareActionProgress:Ir.actionProgress,s=e.createElement("div",{className:"bp3-progress-bar bp3-no-stripes "+(this.props.progressClassName||""),style:t},e.createElement("div",{className:"bp3-progress-meter",style:a}))}return e.createElement("button",{className:"bp3-button "+a,style:n,type:"button",hidden:this.props.hidden,disabled:this.props.disabled,onMouseDown:t?void 0:this.confirm,onMouseUp:t?void 0:this.clearConfirm,onMouseLeave:t?void 0:this.clearConfirm,onClick:t?this.openDialog:void 0},this.props.label,s)}}}const Br={card:{padding:"10px",minWidth:"310px",maxWidth:"350px",width:"calc(100% - 20px)",margin:"30px auto"},card2:{padding:"5px",minWidth:"310px",maxWidth:"380px",width:"calc(100% - 20px)",margin:"30px auto"},status:{width:"180px",margin:"20px auto",fontSize:"16px"},item:{margin:"2px 0"},message:{margin:"0 0 10px 0"},license:{width:"100%",height:"130px",margin:"0 0 10px 0",resize:"none",fontFamily:'"Lucida Console", Monaco, monospace'},button:{width:"150px",margin:"5px"},button2:{width:"160px",margin:"5px"},button3:{width:"195px",margin:"5px"},buttons:{margin:"0 auto"}};class Fr extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,subscription:fr.subscription})},this.state={subscription:fr.subscription,update:!1,message:"",license:"",disabled:!1}}componentDidMount(){fr.addChangeListener(this.onChange),this.state.subscription.active||Vr(!0)}componentWillUnmount(){fr.removeChangeListener(this.onChange)}update(){return e.createElement("div",null,e.createElement("div",{className:"bp3-card bp3-elevation-2",style:Br.card},e.createElement("div",{className:"bp3-callout bp3-intent-success",style:Br.message,hidden:!this.state.message},this.state.message),e.createElement("textarea",{className:"bp3-input",style:Br.license,disabled:this.state.disabled,placeholder:"New License Key",value:this.state.license,onChange:e=>{this.setState({...this.state,license:e.target.value})}}),e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-intent-danger bp3-icon-cross",style:Br.button,disabled:this.state.disabled,onClick:()=>{this.setState({...this.state,update:!1,license:""})}},"Cancel"),e.createElement("button",{className:"bp3-button bp3-intent-primary bp3-icon-endorsed",style:Br.button,disabled:this.state.disabled,onClick:()=>{this.setState({...this.state,disabled:!0}),Dr(this.state.license).then((()=>{this.setState({...this.state,disabled:!1,update:!1,license:""})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"Update License"))))}activate(){return e.createElement("div",null,e.createElement("div",{className:"bp3-card bp3-elevation-2",style:Br.card},e.createElement("div",{className:"bp3-callout bp3-intent-success",style:Br.message,hidden:!this.state.message},this.state.message),e.createElement("textarea",{className:"bp3-input",style:Br.license,disabled:this.state.disabled,placeholder:"License Key",value:this.state.license,onChange:e=>{this.setState({...this.state,license:e.target.value})}}),e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-intent-primary bp3-icon-endorsed",style:Br.button,disabled:this.state.disabled,onClick:()=>{this.setState({...this.state,disabled:!0}),Dr(this.state.license).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"Activate License"),e.createElement(Er.Z,{label:"Pritunl Cloud",image:"https://objectstorage.us-ashburn-1.oraclecloud.com/n/pritunl8472/b/pritunl-static/o/logo_stripe.png",allowRememberMe:!1,zipCode:!0,amount:5e3,name:"Pritunl Cloud - 7 Day Trial",description:"Subscribe to Cloud ($50/month)",panelLabel:"Subscribe",token:e=>{this.setState({...this.state,disabled:!0}),function(e,t,n){let a=(new Nr).loading();return new Promise(((s,i)=>{vn.post("https://app.pritunl.com/subscription").send({plan:e,card:t,email:n}).set("Accept","application/json").end(((e,t)=>(a.done(),t&&401===t.status?(window.location.href="/login",void s("")):e?(Ui(t,"Failed to checkout"),void i(e)):(s(t.body.msg),void Vr(!0)))))}))}("cloud",e.id,e.email).then((e=>{this.setState({...this.state,disabled:!1,message:e})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},onScriptError:e=>{Ki("Failed to load Stripe Checkout")},stripeKey:"pk_live_plmoOl3lS3k5dMNQViZWGfVR"},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-credit-card",style:Br.button,disabled:this.state.disabled},"Subscribe")))))}reactivate(){let t,n,a=this.state.subscription,s=a.cancel_at_period_end||"canceled"===a.status,i=a.cancel_at_period_end?"canceled":a.status,r=Pr(a.period_end),o=Pr(a.trial_end);return a.balance<0?(t=Tr(-1*a.balance),n="Credit"):(t=Tr(a.balance),n="Balance"),e.createElement("div",null,e.createElement("div",{className:"bp3-card bp3-elevation-2",style:Br.card2},e.createElement("div",{className:"bp3-callout bp3-intent-success",style:Br.message,hidden:!this.state.message},this.state.message),e.createElement("div",{className:"layout vertical",style:Br.status},e.createElement("div",{className:"layout horizontal"},e.createElement("div",{className:"flex"},"Status:"),e.createElement("div",null,Ar(i))),e.createElement("div",{className:"layout horizontal",style:Br.item},e.createElement("div",{className:"flex"},"Plan:"),e.createElement("div",null,Ar(a.plan))),e.createElement("div",{className:"layout horizontal",style:Br.item},e.createElement("div",{className:"flex"},"Amount:"),e.createElement("div",null,Tr(a.amount))),e.createElement("div",{className:"layout horizontal",style:Br.item},e.createElement("div",{className:"flex"},"Quantity:"),e.createElement("div",null,a.quantity)),e.createElement("div",{className:"layout horizontal",style:Br.item,hidden:!a.balance},e.createElement("div",{className:"flex"},n,":"),e.createElement("div",null,t)),e.createElement("div",{className:"layout horizontal",style:Br.item,hidden:""===r},e.createElement("div",{className:"flex"},s?"Ends":"Renew",":"),e.createElement("div",null,r)),e.createElement("div",{className:"layout horizontal",style:Br.item,hidden:""===o},e.createElement("div",{className:"flex"},"Trial Ends:"),e.createElement("div",null,o))),e.createElement("div",{className:"layout horizontal center-justified"},e.createElement(Rr,{className:"bp3-intent-danger bp3-icon-disable",progressClassName:"bp3-intent-danger",style:Br.button2,disabled:this.state.disabled,hidden:s,label:"End Subscription",onConfirm:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("https://app.pritunl.com/subscription").send({key:e}).set("Accept","application/json").end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to cancel subscription"),void a(e)):(n(),void Vr(!0)))))}))}(this.state.subscription.url_key).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}}),e.createElement(Er.Z,{label:"Pritunl Cloud",image:"https://objectstorage.us-ashburn-1.oraclecloud.com/n/pritunl8472/b/pritunl-static/o/logo_stripe.png",allowRememberMe:!1,zipCode:!0,amount:s&&"active"!==a.status?5e3:0,name:"Pritunl Cloud",description:s?"Reactivate Subscription ($50/month)":"Update Payment Information",panelLabel:s?"Reactivate":"Update",token:e=>{this.setState({...this.state,disabled:!0}),function(e,t,n,a){let s=(new Nr).loading();return new Promise(((i,r)=>{vn.put("https://app.pritunl.com/subscription").send({key:e,plan:t,card:n,email:a}).set("Accept","application/json").end(((e,t)=>(s.done(),t&&401===t.status?(window.location.href="/login",void i()):e?(Ui(t,"Failed to update payment"),void r(e)):(i(),void Vr(!0)))))}))}(this.state.subscription.url_key,"cloud",e.id,e.email).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},onScriptError:e=>{Ki("Failed to load Stripe Checkout")},stripeKey:"pk_live_plmoOl3lS3k5dMNQViZWGfVR"},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-credit-card",style:s?Br.button3:Br.button2,disabled:this.state.disabled},s?"Reactivate Subscription":"Update Payment"))),e.createElement("div",{className:"layout horizontal center-justified"},e.createElement(Rr,{className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",style:Br.button2,disabled:this.state.disabled,label:"Remove License",onConfirm:()=>{this.setState({...this.state,disabled:!0}),Dr("").then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}}),e.createElement("button",{className:"bp3-button bp3-intent-primary bp3-icon-endorsed",style:Br.button2,disabled:this.state.disabled,onClick:()=>{this.setState({...this.state,update:!0})}},"Update License"))))}render(){return this.state.update?this.update():this.state.subscription.status?this.reactivate():this.activate()}}const Xr="user.sync",Kr="user.traverse",Ur="user.filter",Gr="user.load",jr="user.unload";const Wr=new class extends hr{constructor(){super(...arguments),this._users=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._users=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this.emitChange()}get users(){return this._users}get usersM(){let e=[];return this._users.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||50}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}user(e){let t=this._map[e];return void 0===t?null:this._users[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&(e.type!==this._filter.type||e.administrator!==this._filter.administrator||e.disabled!==this._filter.disabled||e.role!==this._filter.role))&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/user/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to load user"),void a(e)):(lr.dispatch({type:Gr,data:{user:s.body}}),void n()))))}))}function qr(){let e=zr();Yr=e;let t=(new Nr).loading();return new Promise(((n,a)=>{vn.get("/user").query({...Wr.filter,page:Wr.page,page_count:Wr.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Yr){if(s)return Ui(i,"Failed to load users"),void a(s);lr.dispatch({type:Xr,data:{users:i.body.users,count:i.body.count}}),n()}else n()}))}))}function Jr(e){return lr.dispatch({type:Kr,data:{page:e}}),qr()}function $r(e){return lr.dispatch({type:Ur,data:{filter:e}}),qr()}function eo(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/user").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete users"),void a(e)):void n())))}))}kr.register((e=>{if("user.change"===e.type)$i||qr()}));const to="audit.sync",no="audit.traverse";const ao=new class extends hr{constructor(){super(...arguments),this._audits=Object.freeze([]),this._token=lr.register(this._callback.bind(this))}_reset(){this._userId=void 0,this._audits=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._count=void 0,this.emitChange()}get userId(){return this._userId}get audits(){return this._audits}get auditsM(){let e=[];return this._audits.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||10}get pages(){return Math.ceil(this.count/this.pageCount)}get count(){return this._count||0}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_sync(e,t,n){this._userId=e;for(let e=0;e{vn.get("/audit/"+e).query({page:ao.page,page_count:ao.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).end(((i,r)=>{if(n.done(),r&&401===r.status)return window.location.href="/login",void a();if(t===so){if(i)return Ui(r,"Failed to load audits"),void s(i);lr.dispatch({type:to,data:{userId:e,audits:r.body.audits,count:r.body.count}}),a()}else a()}))}))}function ro(){return io(ao.userId)}function oo(e){return lr.dispatch({type:no,data:{page:e}}),ro()}kr.register((e=>{if("audit.change"===e.type)$i||ro()}));const lo={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},type:{verticalAlign:"top",display:"table-cell",padding:"9px"},lastActivity:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},tag:{margin:"8px 5px 0 5px",height:"20px"},nameLink:{margin:"0 5px 0 0"}};class co extends e.Component{render(){let t=this.props.user,n=[];for(let a of t.roles||[])n.push(e.createElement("div",{className:"bp3-tag bp3-intent-primary",style:lo.tag,key:a},a));let a,s={...lo.card};switch(t.disabled&&(s.opacity=.6),t.type){case"local":a="Local";break;case"google":a="Google";break;case"onelogin":a="OneLogin";break;case"okta":a="Okta";break;case"authzero":a="Auth0";break;case"azure":a="Azure";break;case"jumpcloud":a="JumpCloud";break;case"api":a="API";break;default:a=t.type}return e.createElement("div",{className:"bp3-card bp3-row",style:s},e.createElement("div",{className:"bp3-cell",style:lo.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox",style:lo.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"})),e.createElement(pn,{to:"/user/"+t.id,style:lo.nameLink},t.username))),e.createElement("div",{className:"bp3-cell",style:lo.type},a),e.createElement("div",{className:"bp3-cell",style:lo.lastActivity},Hr(t.last_active)||"Inactive"),e.createElement("div",{className:"flex bp3-cell",style:lo.roles},e.createElement("span",{className:"bp3-tag bp3-intent-danger",style:lo.tag,hidden:!t.administrator},"admin"),n))}}class ho extends e.Component{render(){return e.createElement("div",{className:"bp3-input-group",style:this.props.style},e.createElement("span",{className:"bp3-icon bp3-icon-search"}),e.createElement("input",{className:"bp3-input bp3-round",type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:this.props.placeholder,value:this.props.value||"",onChange:e=>{this.props.onChange(e.target.value)}}))}}class uo extends e.Component{render(){let t={...this.props.style};return null!==this.props.checked&&void 0!==this.props.checked||(t.opacity=.5),e.createElement("label",{className:"bp3-control bp3-switch",style:t},e.createElement("input",{type:"checkbox",checked:!!this.props.checked,onChange:this.props.onToggle}),e.createElement("span",{className:"bp3-control-indicator"}),this.props.label)}}const po={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class mo extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){return null===this.props.filter?e.createElement("div",null):e.createElement("div",{className:"layout horizontal wrap",style:po.filters},e.createElement(ho,{style:po.input,placeholder:"User ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:po.input,placeholder:"Username",value:this.props.filter.username,onChange:e=>{let t={...this.props.filter};e?t.username=e:delete t.username,this.props.onFilter(t)}}),e.createElement(ho,{style:po.role,placeholder:"Role",value:this.props.filter.role,onChange:e=>{let t={...this.props.filter};e?t.role=e:delete t.role,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:po.type},e.createElement("select",{value:this.props.filter.type||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.type:t.type=n,this.props.onFilter(t)}},e.createElement("option",{value:"any"},"Any"),e.createElement("option",{value:"local"},"Local"),e.createElement("option",{value:"azure"},"Azure"),e.createElement("option",{value:"google"},"Google"),e.createElement("option",{value:"onelogin"},"OneLogin"),e.createElement("option",{value:"okta"},"Okta"),e.createElement("option",{value:"api"},"API"))),e.createElement(uo,{style:po.check,label:"Administrator",checked:this.props.filter.administrator,onToggle:()=>{let e={...this.props.filter};void 0===e.administrator?e.administrator=!0:!0===e.administrator?e.administrator=!1:delete e.administrator,this.props.onFilter(e)}}),e.createElement(uo,{style:po.check,label:"Disabled",checked:this.props.filter.disabled,onToggle:()=>{let e={...this.props.filter};void 0===e.disabled?e.disabled=!0:!0===e.disabled?e.disabled=!1:delete e.disabled,this.props.onFilter(e)}}))}}const fo={page:{margin:"0 auto",padding:"30px 20px",minWidth:"200px",maxWidth:"1100px"},pageWide:{margin:"0 auto",padding:"30px 20px",minWidth:"200px",maxWidth:"1250px"}};class vo extends e.Component{render(){return e.createElement("div",{style:this.props.wide?fo.pageWide:fo.page},this.props.children)}}const go={header:{fontSize:"24px",paddingBottom:"8px",marginBottom:"20px",borderBottomStyle:"solid"},label:{margin:0}};class bo extends e.Component{render(){let t;return this.props.label&&(t=e.createElement("h2",{style:go.label},this.props.label)),e.createElement("div",{className:"bp3-border",style:go.header},t,this.props.children)}}const yo={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class _o extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:Wr.page,pageCount:Wr.pageCount,pages:Wr.pages,count:Wr.count})},this.state={page:Wr.page,pageCount:Wr.pageCount,pages:Wr.pages,count:Wr.count}}componentDidMount(){Wr.addChangeListener(this.onChange)}componentWillUnmount(){Wr.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{Jr(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{Jr(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:yo.button,disabled:0===t,type:"button",onClick:()=>{Jr(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:yo.button,disabled:t===n-1,type:"button",onClick:()=>{Jr(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{Jr(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const wo={users:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},usersBox:{width:"100%",overflowY:"auto"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class Co extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=Wr.users,t={},n=this.state.selected;e.forEach((e=>{n[e.id]&&(t[e.id]=!0)})),this.setState({...this.state,users:e,filter:Wr.filter,selected:t})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),eo(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={users:Wr.users,filter:Wr.filter,selected:{},lastSelected:null,disabled:!1}}get selected(){for(let e in this.state.selected)if(this.state.selected[e])return!0;return!1}componentDidMount(){Wr.addChangeListener(this.onChange),oo(0),qr()}componentWillUnmount(){Wr.removeChangeListener(this.onChange)}render(){let t=[];this.state.users.forEach((n=>{t.push(e.createElement(co,{key:n.id,user:n,selected:!!this.state.selected[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.users;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})}}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(n+="bp3-active");let a=[];for(let e of Object.keys(this.state.selected)){let t=Wr.user(e);t?a.push(t.username||e):a.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:wo.header},e.createElement("h2",{style:wo.heading},"Users"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:wo.buttons},e.createElement("button",{className:n,style:wo.button,type:"button",onClick:()=>{null===this.state.filter?$r({}):$r(null)}},"Filters"),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:wo.button,confirmMsg:"Permanently delete the selected users",confirmInput:!0,items:a,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete}),e.createElement(pn,{className:"bp3-button bp3-intent-success bp3-icon-add",style:wo.button,to:"/user"},"New")))),e.createElement(mo,{filter:this.state.filter,onFilter:e=>{$r(e)}}),e.createElement("div",{style:wo.usersBox},e.createElement("div",{style:wo.users},t)),e.createElement(_o,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const Eo="session.sync",So="session.show_removed";const ko=new class extends hr{constructor(){super(...arguments),this._sessions=Object.freeze([]),this._token=lr.register(this._callback.bind(this))}_reset(){this._userId=void 0,this._showRemoved=void 0,this._sessions=Object.freeze([]),this.emitChange()}get userId(){return this._userId}get sessions(){return this._sessions}get sessionsM(){let e=[];return this._sessions.forEach((t=>{e.push({...t})})),e}get showRemoved(){return this._showRemoved}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e,t){this._userId=e;for(let e=0;e{vn.get("/session/"+e).query({show_removed:ko.showRemoved}).set("Accept","application/json").set("Csrf-Token",Wi).end(((i,r)=>{if(n.done(),r&&401===r.status)return window.location.href="/login",void a();if(t===zo){if(i)return Ui(r,"Failed to load sessions"),void s(i);lr.dispatch({type:Eo,data:{userId:e,sessions:r.body}}),a()}else a()}))}))}function xo(){return Mo(ko.userId)}kr.register((e=>{if("session.change"===e.type)$i||xo()}));const Ao={state:{height:"auto"}};class To extends e.Component{constructor(e,t){super(e,t),this.state={initialized:!1}}componentDidMount(){this.timeout=window.setTimeout((()=>{this.setState({...this.state,initialized:!0})}),700)}componentWillUnmount(){this.timeout&&window.clearTimeout(this.timeout)}render(){let t;return this.props.description&&(t=e.createElement("div",{className:"bp3-non-ideal-state-description"},this.props.description)),e.createElement("div",{className:"bp3-non-ideal-state",style:Ao.state,hidden:this.props.hidden||!this.state.initialized},e.createElement("div",{className:"bp3-non-ideal-state-visual bp3-non-ideal-state-icon"},e.createElement("span",{className:"bp3-icon "+this.props.iconClass})),e.createElement("h4",{className:"bp3-non-ideal-state-title"},this.props.title),t)}}function Lo(e){return e.continent&&e.continent_code?e.continent+(e.continent_code&&"XX"!==e.continent_code?" ("+e.continent_code+")":""):e.continent||e.continent_code||"Unknown"}function Po(e){return(e.city&&"Unknown"!==e.city?e.city+", ":"")+(e.region||"Unknown")+(e.region_code&&"XX"!==e.region_code?" ("+e.region_code+")":"")}function Ho(e){return(e.country||"Unknown")+(e.country_code&&"XX"!==e.country_code?" ("+e.country_code+")":"")}function No(e){return e.latitude&&e.longitude?e.latitude+", "+e.longitude:"Unknown"}const Oo={cursor:"pointer",marginLeft:"3px"},Vo={cursor:"pointer",marginLeft:"3px",opacity:.7},Do={cursor:"pointer",marginLeft:"3px",opacity:.5};class Io extends e.Component{constructor(e,t){super(e,t),this.state={hover:!1,click:!1,copied:!1}}render(){let t;t=this.state.click&&!this.state.copied?Do:this.state.hover&&!this.state.copied?Vo:Oo;let n="bp3-icon-standard";return this.state.copied?n+=" bp3-icon-tick bp3-intent-success":n+=" bp3-icon-clipboard",e.createElement("span",{ref:e=>this.elem=e,className:n,style:t,onMouseEnter:()=>{this.setState({...this.state,hover:!0})},onMouseLeave:()=>{this.setState({...this.state,hover:!1,click:!1})},onMouseDown:()=>{this.setState({...this.state,click:!0})},onMouseUp:()=>{this.setState({...this.state,click:!1})},onClick:()=>{this.setState({...this.state,copied:!0}),setTimeout((()=>{this.setState({...this.state,copied:!1})}),1200);let e=document.createElement("input");if(e.contentEditable="true",e.readOnly=!0,e.style.position="absolute",e.style.width="1px",e.style.height="1px",e.style.padding="0px",e.style.border="none",e.style.opacity="0",e.value=this.props.value,this.elem.parentElement.append(e),"iOS"===tr){let t=document.createRange();t.selectNodeContents(e);let n=window.getSelection();n.removeAllRanges(),n.addRange(t),e.setSelectionRange(0,999999)}else e.select();document.execCommand("copy"),e.remove()}})}}const Ro={label:{width:"100%",maxWidth:"320px"},value:{wordWrap:"break-word"},item:{marginBottom:"5px"},bar:{maxWidth:"280px"},copy:{cursor:"pointer",marginLeft:"3px"},copyHover:{cursor:"pointer",marginLeft:"3px",opacity:.7}};class Bo extends e.Component{render(){let t,n=[],a=[];for(let t of this.props.fields||[]){if(null==t)continue;let a,s;if("string"==typeof t.value)a=t.value,t.copy&&(s=e.createElement(Io,{value:t.value}));else if("number"==typeof t.value)a=t.value.toString(),t.copy&&(s=e.createElement(Io,{value:t.value.toString()}));else{a=[];for(let n=0;n{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/session/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete session"),void a(e)):void n())))}))}(this.props.session.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1}}render(){let t=this.props.session,n=t.agent||{},a={...Fo.card};return t.removed&&(a.opacity=.6),e.createElement("div",{className:"bp3-card",style:a},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Fo.group},e.createElement("div",{style:Fo.remove},e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-trash",type:"button",hidden:t.removed,disabled:this.state.disabled,onClick:this.onDelete})),e.createElement(Bo,{style:Fo.info,fields:[{label:"ID",value:t.id||"None"},{label:"Created",value:Lr(t.timestamp)||"Unknown"},{label:"Last Active",value:Lr(t.last_active)||"Unknown"}]})),e.createElement("div",{style:Fo.group},e.createElement(Bo,{style:Fo.info,fields:[{label:"Session Type",value:nr[t.type]||"Unknown"},{label:"Browser",value:(ar[n.operating_system]||"Unknown")+" "+(sr[n.browser]||"Unknown")},{label:"ISP",value:n.isp||"Unknown"}]})),e.createElement("div",{style:Fo.group},e.createElement(Bo,{style:Fo.info,fields:[{label:"Location",value:[Po(n),Ho(n),Lo(n)]},{label:"Coordinates",value:No(n)}]}))))}}const Ko={header:{marginTop:"5px"},heading:{margin:"19px 0 0 0"},button:{margin:"15px 0 -5px 0"}};class Uo extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,sessions:ko.sessions})},this.state={sessions:ko.sessions,showEnded:!1,disabled:!1}}componentDidMount(){var e;ko.addChangeListener(this.onChange),this.props.userId&&(e=this.props.userId,lr.dispatch({type:So,data:{showRemoved:!1}}),Mo(e))}componentWillUnmount(){ko.removeChangeListener(this.onChange)}render(){if(!this.props.userId)return e.createElement("div",null);let t=[];return this.state.sessions.forEach((n=>{n.removed&&!this.state.showEnded||t.push(e.createElement(Xo,{key:n.id,session:n}))})),e.createElement("div",null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Ko.header},e.createElement("h2",{style:Ko.heading},"User Sessions"),e.createElement("div",{className:"flex"}),e.createElement("div",null,e.createElement("button",{className:"bp3-button bp3-minimal",style:Ko.button,type:"button",onClick:()=>{var e;this.setState({...this.state,showEnded:!this.state.showEnded}),e=!this.state.showEnded,lr.dispatch({type:So,data:{showRemoved:e}}),xo()}},(this.state.showEnded?"Hide":"Show")+" ended sessions")))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-user",title:"No sessions"}))}}function Go(e){const t="==".slice(0,(4-e.length%4)%4),n=e.replace(/-/g,"+").replace(/_/g,"/")+t,a=atob(n),s=new ArrayBuffer(a.length),i=new Uint8Array(s);for(let e=0;eYo(e,t[0],n)));if(t instanceof Object){const a={};for(const[s,i]of Object.entries(t)){if(i.deriveFn){const e=i.deriveFn(n);void 0!==e&&(n[s]=e)}if(s in n)null!=n[s]?a[s]=Yo(e,i.schema,n[s]):a[s]=null;else if(i.required)throw new Error(`Missing key: ${s}`)}return a}}function Zo(e,t){return{required:!0,schema:e,deriveFn:t}}function qo(e){return{required:!0,schema:e}}function Jo(e){return{required:!1,schema:e}}var $o={type:qo(Wo),id:qo(Qo),transports:Jo(Wo)},el={appid:Jo(Wo),appidExclude:Jo(Wo),credProps:Jo(Wo)},tl={appid:Jo(Wo),appidExclude:Jo(Wo),credProps:Jo(Wo)},nl={publicKey:qo({rp:qo(Wo),user:qo({id:qo(Qo),name:qo(Wo),displayName:qo(Wo)}),challenge:qo(Qo),pubKeyCredParams:qo(Wo),timeout:Jo(Wo),excludeCredentials:Jo([$o]),authenticatorSelection:Jo(Wo),attestation:Jo(Wo),extensions:Jo(el)}),signal:Jo(Wo)},al={type:qo(Wo),id:qo(Wo),rawId:qo(Qo),response:qo({clientDataJSON:qo(Qo),attestationObject:qo(Qo),transports:Zo(Wo,(e=>e.getTransports?.()||[]))}),clientExtensionResults:Zo(tl,(e=>e.getClientExtensionResults()))};Jo(Wo),qo({challenge:qo(Qo),timeout:Jo(Wo),rpId:Jo(Wo),allowCredentials:Jo([$o]),userVerification:Jo(Wo),extensions:Jo(el)}),Jo(Wo),qo(Wo),qo(Wo),qo(Qo),qo({clientDataJSON:qo(Qo),authenticatorData:qo(Qo),signature:qo(Qo),userHandle:qo(Qo)}),Zo(tl,(e=>e.getClientExtensionResults()));async function sl(e){const t=await navigator.credentials.create(function(e){return Yo(Go,nl,e)}(e));return function(e){return Yo(jo,al,e)}(t)}const il="device.sync";const rl=new class extends hr{constructor(){super(...arguments),this._devices=Object.freeze([]),this._token=lr.register(this._callback.bind(this))}get userId(){return this._userId}get devices(){return this._devices}get devicesM(){let e=[];return this._devices.forEach((t=>{e.push({...t})})),e}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e,t){this._userId=e;for(let e=0;e{vn.get("/device/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((i,r)=>{if(n.done(),r&&401===r.status)return window.location.href="/login",void a();if(t===ol){if(i)return Ui(r,"Failed to load devices"),void s(i);lr.dispatch({type:il,data:{userId:e,devices:r.body}}),a()}else a()}))}))}kr.register((e=>{if("device.change"===e.type)ll(rl.userId)}));const cl={box:{position:"relative",display:"inline"},content:{padding:"20px"},button:{position:"absolute",top:"-7px",left:"-2px",padding:"7px",background:"none",opacity:.3},popover:{width:"230px"},popoverTarget:{top:"9px",left:"18px"},dialog:{maxWidth:"400px",margin:"30px 20px"},inputFirst:{width:"100%",marginTop:"15px"},input:{width:"100%",marginTop:"5px"}};class hl extends e.Component{constructor(e,t){super(e,t),this.autoSelect=e=>{e.currentTarget.select()},this.state={popover:!1}}render(){let t,n=[];for(let t=0;t<(this.props.examples||[]).length;t++)n.push(e.createElement("input",{key:"example-"+t,className:"bp3-input",style:0===t?cl.inputFirst:cl.input,disabled:!1,readOnly:!0,type:"text",autoCapitalize:"off",spellCheck:!1,value:this.props.examples[t],onClick:this.autoSelect}));return this.state.popover&&(t=e.createElement(ra,{title:this.props.title,style:cl.dialog,isOpen:this.state.popover,usePortal:!0,portalContainer:document.body,onClose:()=>{this.setState({...this.state,popover:!1})}},e.createElement("div",{className:"bp3-dialog-body"},this.props.content,n),e.createElement("div",{className:"bp3-dialog-footer"},e.createElement("div",{className:"bp3-dialog-footer-actions"},e.createElement("button",{className:"bp3-button",type:"button",onClick:()=>{this.setState({...this.state,popover:!this.state.popover})}},"Close"))))),e.createElement("div",{style:cl.box},e.createElement("div",{className:"bp3-button bp3-minimal bp3-icon-help",style:cl.button,onClick:()=>{this.setState({...this.state,popover:!this.state.popover})}}),t)}}const dl={label:{display:"inline-block"}};class ul extends e.Component{render(){return e.createElement("div",{hidden:this.props.hidden},e.createElement("label",{className:"bp3-control bp3-switch",style:dl.label},e.createElement("input",{type:"checkbox",disabled:this.props.disabled,checked:!!this.props.checked,onChange:this.props.onToggle}),e.createElement("span",{className:"bp3-control-indicator"}),this.props.label),e.createElement(hl,{title:this.props.label,content:this.props.help}))}}const pl={message:{marginTop:"6px"},messageWrap:{marginTop:"6px",marginRight:"10px"},box:{marginTop:"15px"},button:{marginLeft:"10px"},buttonWrap:{marginLeft:"10px",marginBottom:"10px"},buttonWrapFirst:{marginBottom:"10px"},buttons:{flexShrink:0}};class ml extends e.Component{render(){let t=this.props.light?null:pl.box;this.props.style&&(t={...t,...this.props.style});let n,a,s;return this.props.wrap?(n=pl.buttonWrap,a=pl.buttonWrapFirst,s=pl.messageWrap):(n=pl.button,a=pl.button,s=pl.message),e.createElement("div",{className:"layout horizontal"+(this.props.wrap?" wrap":""),style:t,hidden:this.props.hidden&&!this.props.children},this.props.children,e.createElement("div",{className:"flex"}),e.createElement("div",{className:"layout horizontal"},e.createElement("span",{style:s,hidden:!this.props.message},this.props.message),e.createElement("div",{style:pl.buttons},e.createElement("button",{className:"bp3-button bp3-icon-cross",style:a,hidden:this.props.hidden,type:"button",disabled:!this.props.changed||this.props.disabled,onClick:this.props.onCancel},"Cancel"),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-tick",style:n,hidden:this.props.hidden,type:"button",disabled:!this.props.changed||this.props.disabled,onClick:this.props.onSave},"Save"))))}}const fl={label:{width:"100%",maxWidth:"280px"},labelNarrow:{width:"100%",maxWidth:"220px"},input:{width:"100%"}};class vl extends e.Component{constructor(){super(...arguments),this.autoSelect=e=>{e.currentTarget.select()}}render(){let t=this.props.value;return t=isNaN(t)?this.props.value||"":this.props.value,e.createElement("label",{className:"bp3-label",style:this.props.narrow?fl.labelNarrow:fl.label,hidden:this.props.hidden},this.props.label,e.createElement(hl,{title:this.props.label,content:this.props.help}),e.createElement("input",{className:"bp3-input",style:fl.input,type:this.props.type,disabled:this.props.disabled,readOnly:this.props.readOnly,autoCapitalize:"off",spellCheck:!1,placeholder:this.props.placeholder,value:t,onClick:this.props.autoSelect?this.autoSelect:null,onChange:e=>{this.props.onChange&&this.props.onChange(e.target.value)}}))}}const gl={card:{position:"relative",padding:"10px",marginBottom:"5px"},info:{marginBottom:"-5px"},group:{flex:1,minWidth:"250px"},inputGroup:{marginBottom:"11px",width:"100%",maxWidth:"280px"},remove:{position:"absolute",top:"5px",right:"5px"},controlButton:{marginRight:"10px"},save:{paddingTop:"10px"}};class bl extends e.Component{constructor(e,t){super(e,t),this.onTestAlert=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/device/"+e+"/alert").set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to send test alert"),void a(e)):void n())))}))}(this.props.device.id).then((()=>{Fi("Test alert sent"),this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/device/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save device"),void a(e)):void n())))}))}(this.state.device).then((()=>{Fi("Device name updated"),this.setState({...this.state,disabled:!1,changed:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,changed:!1,device:null})}),1e3)})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/device/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete device"),void a(e)):void n())))}))}(this.props.device.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",device:null}}set(e,t){let n;n=this.state.changed?{...this.state.device}:{...this.props.device},n[e]=t,this.setState({...this.state,changed:!0,device:n})}toggleLevel(e){let t;t=this.state.changed?{...this.state.device}:{...this.props.device};let n=Object.assign([],t.alert_levels||[]),a=n.indexOf(e);-1!==a?n.splice(a,1):n.push(e),t.alert_levels=n,this.setState({...this.state,changed:!0,device:t})}render(){let t=this.state.device||this.props.device,n="phone"===this.props.device.mode,a="Unknown";switch(t.type){case"webauthn":a="WebAuthn";break;case"u2f":a="U2F";break;case"call":a="Call";break;case"message":a="SMS"}let s,i="Unknown";switch(t.mode){case"secondary":i="Secondary";break;case"phone":i="Phone"}t.wan_rp_id?s={label:"WebAuthn Domain",value:t.wan_rp_id}:"call"!==t.type&&"message"!==t.type||(s={label:"Phone Number",value:t.number});let r="bp3-icon-phone";"message"===t.type&&(r="bp3-icon-mobile-phone");let o,l,c,h={...gl.card};return t.disabled&&(h.opacity=.6),n?(o=[{label:"ID",value:t.id||"None"}],l=[{label:"Type",value:a},{label:"Mode",value:i},s,{label:"Registered",value:Lr(t.timestamp)||"Unknown"},{label:"Last Active",value:Lr(t.last_active)||"Unknown"}]):(o=[{label:"ID",value:t.id||"None"},{label:"Type",value:a},s],l=[{label:"Mode",value:i},{label:"Registered",value:Lr(t.timestamp)||"Unknown"},{label:"Last Active",value:Lr(t.last_active)||"Unknown"}]),n&&(c=e.createElement(Rr,{label:"Send Test Alert",className:"bp3-intent-success "+r,progressClassName:"bp3-intent-success",style:gl.controlButton,disabled:this.state.disabled,onConfirm:()=>{this.onTestAlert()}})),e.createElement("div",{className:"bp3-card",style:h},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:gl.group},e.createElement("div",{style:gl.remove},e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",confirmMsg:"Confirm device remove",disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Device Name",help:"Name of device.",type:"text",placeholder:"Enter name",disabled:this.state.disabled,value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(ul,{label:"Low alerts",help:"Recieve low level alerts on this device.",hidden:!n,disabled:this.state.disabled,checked:-1!==(t.alert_levels||[]).indexOf(1),onToggle:()=>{this.toggleLevel(1)}}),e.createElement(ul,{label:"Medium alerts",help:"Recieve medium level alerts on this device.",hidden:!n,disabled:this.state.disabled,checked:-1!==(t.alert_levels||[]).indexOf(5),onToggle:()=>{this.toggleLevel(5)}}),e.createElement(ul,{label:"High alerts",help:"Recieve high level alerts on this device.",hidden:!n,disabled:this.state.disabled,checked:-1!==(t.alert_levels||[]).indexOf(10),onToggle:()=>{this.toggleLevel(10)}}),e.createElement(Bo,{style:gl.info,fields:o})),e.createElement("div",{style:gl.group},e.createElement(Bo,{style:gl.info,fields:l}))),e.createElement(ml,{style:gl.save,hidden:!this.state.device&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,device:null})},onSave:this.onSave},c))}}const yl={header:{marginTop:"5px"},heading:{margin:"19px 0 0 0"},button:{margin:"15px 0 -5px 0"},group:{marginTop:"18px"},groupBox:{},inputBox:{flex:"1"}};class _l extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,devices:rl.devices})},this.wanRegister=()=>{this.setState({...this.state,disabled:!0});let e=(new Nr).loading();vn.get("/device/"+rl.userId+"/webauthn/register").set("Accept","application/json").set("Csrf-Token",Wi).end(((t,n)=>{e.done(),t?Ui(n,"Failed to request device registration"):this.wanCreate(n.body.token,n.body.options)}))},this.wanCreate=(e,t)=>{sl(t).then((t=>{t.name=this.state.deviceName,t.token=e,this.wanRespond(t)})).catch((e=>{Ui(e,"Failed to register device"),this.setState({...this.state,disabled:!1})}))},this.wanRespond=e=>{let t=(new Nr).loading();vn.post("/device/"+rl.userId+"/webauthn/register").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,n)=>{t.done(),this.setState({...this.state,disabled:!1,deviceName:""}),e?Ui(n,"Failed to register device"):Fi("Successfully registered device")}))},this.addDevice=()=>{if("phone_call"===this.state.deviceType||"phone_message"===this.state.deviceType){this.setState({...this.state,disabled:!0});let e=this.state.deviceType.split("_"),t=e[0],n=e[1];(function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/device").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create device"),void a(e)):void n())))}))})({id:null,user:this.props.userId,name:this.state.deviceName,type:n,mode:t,number:this.state.devicePhoneNumber}).then((()=>{this.setState({...this.state,disabled:!1,deviceName:"",devicePubKey:"",devicePhoneNumber:""}),Fi("Successfully registered device")})).catch((()=>{this.setState({...this.state,disabled:!1})}))}else this.wanRegister()},this.state={devices:rl.devices,deviceName:"",deviceType:"",devicePubKey:"",devicePhoneNumber:"",showEnded:!1,disabled:!1}}componentDidMount(){rl.addChangeListener(this.onChange),this.props.userId&&ll(this.props.userId)}componentWillUnmount(){rl.removeChangeListener(this.onChange)}render(){if(!this.props.userId)return e.createElement("div",null);let t=[];return this.state.devices.forEach((n=>{t.push(e.createElement(bl,{key:n.id,device:n}))})),e.createElement("div",null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:yl.header},e.createElement("h2",{style:yl.heading},"User Devices"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:yl.groupBox,className:"layout horizontal"},e.createElement("div",{className:"bp3-control-group",style:yl.group},e.createElement("div",{className:"bp3-select"},e.createElement("select",{value:this.state.deviceType,onChange:e=>{this.setState({...this.state,deviceType:e.target.value,devicePubKey:""})}},e.createElement("option",{value:"webauthn"},"WebAuthn"),e.createElement("option",{value:"phone_call"},"Phone (Call)"),e.createElement("option",{value:"phone_message"},"Phone (SMS)"))),e.createElement("div",{className:"layout horizontal",style:yl.inputBox},e.createElement("input",{className:"bp3-input",type:"text",placeholder:"Device name",value:this.state.deviceName,onChange:e=>{this.setState({...this.state,deviceName:e.target.value})},onKeyPress:e=>{"smart_card"!==this.state.deviceType&&"Enter"===e.key&&this.addDevice()}}),e.createElement("input",{className:"bp3-input",hidden:"phone_call"!==this.state.deviceType&&"phone_message"!==this.state.deviceType,type:"text",placeholder:"Device phone number",value:this.state.devicePhoneNumber,onChange:e=>{this.setState({...this.state,devicePhoneNumber:e.target.value})},onKeyPress:e=>{"Enter"===e.key&&this.addDevice()}})),e.createElement("div",null,e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",disabled:this.state.disabled,onClick:this.addDevice},"Add Device")))))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-id-number",title:"No devices"}))}}const wl={card:{position:"relative",padding:"10px",marginBottom:"5px"},info:{marginBottom:"-5px"},group:{flex:1,minWidth:"290px"}};class Cl extends e.Component{render(){let t=this.props.audit,n=t.agent||{},a=[];for(let e in t.fields)t.fields.hasOwnProperty(e)&&a.push(e+": "+t.fields[e]);return e.createElement("div",{className:"bp3-card",style:wl.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:wl.group},e.createElement(Bo,{style:wl.info,fields:[{label:"ID",value:t.id||"None"},{label:"Timestamp",value:Lr(t.timestamp)||"Unknown"},{label:"Fields",value:a}]})),e.createElement("div",{style:wl.group},e.createElement(Bo,{style:wl.info,fields:[{label:"Type",value:t.type},{label:"Operating System",value:ar[n.operating_system]||"Unknown"},{label:"Browser",value:sr[n.browser]||"Unknown"},{label:"ISP",value:n.isp||"Unknown"}]})),e.createElement("div",{style:wl.group},e.createElement(Bo,{style:wl.info,fields:[{label:"Location",value:[Po(n),Ho(n),Lo(n)]},{label:"Coordinates",value:No(n)}]}))))}}const El={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class Sl extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:ao.page,pageCount:ao.pageCount,pages:ao.pages,count:ao.count})},this.state={page:ao.page,pageCount:ao.pageCount,pages:ao.pages,count:ao.count}}componentDidMount(){ao.addChangeListener(this.onChange)}componentWillUnmount(){ao.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{oo(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{oo(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:El.button,disabled:0===t,type:"button",onClick:()=>{oo(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:El.button,disabled:t===n-1,type:"button",onClick:()=>{oo(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{oo(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const kl={header:{marginTop:"5px"},heading:{margin:"19px 0 0 0"}};class zl extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,audits:ao.audits})},this.state={audits:ao.audits,disabled:!1}}componentDidMount(){ao.addChangeListener(this.onChange),this.props.userId&&io(this.props.userId)}componentWillUnmount(){ao.removeChangeListener(this.onChange)}render(){if(!this.props.userId)return e.createElement("div",null);let t=[];return this.state.audits.forEach((n=>{t.push(e.createElement(Cl,{key:n.id,audit:n}))})),e.createElement("div",null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:kl.header},e.createElement("h2",{style:kl.heading},"User Audit Events"),e.createElement("div",{className:"flex"}))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-search-template",title:"No audit events"}),e.createElement(Sl,null))}}const Ml={panel:{flex:1,minWidth:"250px",padding:"0 10px"}};class xl extends e.Component{render(){return e.createElement("div",{className:this.props.className,style:Ml.panel,hidden:this.props.hidden},this.props.children)}}class Al extends e.Component{render(){return e.createElement("div",{className:"layout horizontal wrap"},this.props.children)}}const Tl={group:{marginBottom:"15px",width:"100%",maxWidth:"280px"},groupList:{marginTop:"5px",width:"100%",maxWidth:"280px"},groupTop:{width:"100%",maxWidth:"280px"},label:{width:"100%",maxWidth:"280px"},input:{width:"100%"},inputBox:{flex:"1"},buttonTop:{marginTop:"5px"}};class Ll extends e.Component{constructor(){super(...arguments),this.autoSelect=e=>{e.currentTarget.select()}}render(){let t="bp3-button";this.props.buttonClass&&(t+=" "+this.props.buttonClass);let n,a,s="";return this.props.labelTop?n=Tl.buttonTop:s=this.props.label||"",a=this.props.buttonConfirm?e.createElement(Rr,{className:t,style:n,disabled:this.props.disabled||this.props.buttonDisabled,onConfirm:this.props.onSubmit,label:s}):e.createElement("button",{className:t,style:n,disabled:this.props.disabled||this.props.buttonDisabled,onClick:this.props.onSubmit},s),this.props.labelTop?e.createElement("label",{className:"bp3-label",style:Tl.label,hidden:this.props.hidden},this.props.label,e.createElement(hl,{title:this.props.label,content:this.props.help}),e.createElement("div",{className:"bp3-control-group",style:Tl.groupTop,hidden:this.props.hidden},e.createElement("div",{style:Tl.inputBox},e.createElement("input",{className:"bp3-input",style:Tl.input,type:this.props.type,disabled:this.props.disabled,readOnly:this.props.readOnly,autoCapitalize:"off",spellCheck:!1,placeholder:this.props.placeholder,value:this.props.value||"",onClick:this.props.autoSelect?this.autoSelect:null,onChange:e=>{this.props.onChange&&this.props.onChange(e.target.value)},onKeyPress:e=>{"Enter"===e.key&&this.props.onSubmit()}})),e.createElement("div",null,a))):e.createElement("div",{className:"bp3-control-group",style:this.props.listStyle?Tl.groupList:Tl.group,hidden:this.props.hidden},e.createElement("div",{style:Tl.inputBox},e.createElement("input",{className:"bp3-input",style:Tl.input,type:this.props.type,disabled:this.props.disabled,readOnly:this.props.readOnly,autoCapitalize:"off",spellCheck:!1,placeholder:this.props.placeholder||"",value:this.props.value||"",onChange:e=>{this.props.onChange&&this.props.onChange(e.target.value)},onKeyPress:e=>{"Enter"===e.key&&this.props.onSubmit()}})),e.createElement("div",null,a))}}const Pl={label:{display:"inline-block"}};class Hl extends e.Component{render(){return e.createElement("div",{hidden:this.props.hidden},e.createElement("label",{className:"bp3-label",style:Pl.label},this.props.label,e.createElement(hl,{title:this.props.label,content:this.props.help}),e.createElement("div",{className:"bp3-select"},e.createElement("select",{disabled:this.props.disabled,value:this.props.value||"",onChange:e=>{this.props.onChange(e.target.value)}},this.props.children))))}}var Nl=M+"-datepicker",Ol=Nl+"-caption",Vl=Ol+"-measure",Dl=Nl+"-day-wrapper",Il=Nl+"-footer",Rl=Nl+"-month-select",Bl=Nl+"-year-select",Fl=Nl+"-navbar",Xl=Nl+"-timepicker-wrapper",Kl=M+"-daterangepicker",Ul=Kl+"-shortcuts",Gl=M+"-datetimepicker",jl=M+"-timepicker",Wl=jl+"-arrow-button",Ql=jl+"-arrow-row",Yl=jl+"-divider-text",Zl=jl+"-hour",ql=jl+"-input",Jl=jl+"-input-row",$l=jl+"-millisecond",ec=jl+"-minute",tc=jl+"-second",nc=jl+"-ampm-select";function ac(e,t){return sc(e,t)&&e.getDate()===t.getDate()}function sc(e,t){return null!=e&&null!=t&&e.getMonth()===t.getMonth()&&e.getFullYear()===t.getFullYear()}function ic(e,t){return null!=e&&null!=t&&e.getHours()===t.getHours()&&e.getMinutes()===t.getMinutes()&&e.getSeconds()===t.getSeconds()&&e.getMilliseconds()===t.getMilliseconds()}function rc(e){return new Date(e.getTime())}function oc(e,t,n){if(void 0===n&&(n=!1),null==e)return!1;var a=rc(e),s=rc(t[0]),i=rc(t[1]);return a.setHours(0,0,0,0),s.setHours(0,0,0,0),i.setHours(0,0,0,0),s<=a&&a<=i&&(!n||!ac(s,a)&&!ac(a,i))}function lc(e,t){return(null==e[0]||oc(e[0],t))&&(null==e[1]||oc(e[1],t))}var cc=function(e,t){return e.getTime()>=t.getTime()},hc=function(e,t){return e.getTime()<=t.getTime()};function dc(e,t,n){var a=mc(e),s=mc(t),i=mc(n),r=cc(a,s),o=hc(a,i);return hc(i,s)?r||o:r&&o}function uc(e,t,n){return ic(t,n)?n:dc(e,t,n)?e:function(e,t){var n=mc(e),a=mc(t);return cc(n,a)}(e,n)?n:t}function pc(e,t){return null==e?null:null==t?new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0):new Date(e.getFullYear(),e.getMonth(),e.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds())}function mc(e){return new Date(0,0,0,e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}function fc(e){if(e<0||e>23)throw new Error("hour must be between [0,23] inclusive: got "+e);return e>=12}function vc(e){if(e<0||e>23)throw new Error("hour must be between [0,23] inclusive: got "+e);var t=e%12;return 0===t?12:t}var gc=n(5727),bc="[Blueprint]",yc=bc+" defaultValue must be within minDate and maxDate bounds.",_c=bc+" initialMonth must be within minDate and maxDate bounds.",wc=bc+" maxDate must be later than minDate.",Cc=bc+" value prop must be within minDate and maxDate bounds.";yc.replace("DatePicker","DateRangePicker"),_c.replace("DatePicker","DateRangePicker"),wc.replace("DatePicker","DateRangePicker"),Cc.replace("DatePicker","DateRangePicker");function Ec(e,t){return e.lengthd&&g.push({value:p,disabled:!0}),this.displayedMonthText=c[u];var y=e.createElement(wa,{iconProps:{style:{right:this.state.monthRightOffset}},className:Rl,key:"month",minimal:!0,onChange:this.handleMonthSelectChange,value:u,options:v}),_=e.createElement(wa,{className:Bl,key:"year",minimal:!0,onChange:this.handleYearSelectChange,value:p,options:g}),w=this.props.reverseMonthAndYearMenus?[_,y]:[y,_];return e.createElement("div",{className:this.props.classNames.caption},e.createElement("div",{className:Ol,ref:function(e){return t.containerElement=e}},w),e.createElement(oa,null))},n.prototype.componentDidMount=function(){var e=this;this.requestAnimationFrame((function(){return e.positionArrows()}))},n.prototype.componentDidUpdate=function(){this.positionArrows()},n.prototype.positionArrows=function(){var e=function(e,t,n){if(void 0===t&&(t=""),void 0===n&&(n=document.body),null==n)return 0;var a=document.createElement("span");a.classList.add(t),a.textContent=e,n.appendChild(a);var s=a.offsetWidth;return a.remove(),s}(this.displayedMonthText,Vl,this.containerElement),t=null==this.containerElement?0:this.containerElement.firstElementChild.clientWidth,n=Math.max(2,t-e-Fn.SIZE_STANDARD-2);this.setState({monthRightOffset:n})},n.prototype.dateChangeHandler=function(e,t){var n=this;return function(a){var s,i,r=parseInt(a.target.value,10);if(!isNaN(r)){var o=rc(n.props.date);e(o,r),null===(i=(s=n.props).onDateChange)||void 0===i||i.call(s,o),null==t||t(r)}}},n=wn([In.polyfill],n)}(Hn);!function(e){e[e.JANUARY=0]="JANUARY",e[e.FEBRUARY=1]="FEBRUARY",e[e.MARCH=2]="MARCH",e[e.APRIL=3]="APRIL",e[e.MAY=4]="MAY",e[e.JUNE=5]="JUNE",e[e.JULY=6]="JULY",e[e.AUGUST=7]="AUGUST",e[e.SEPTEMBER=8]="SEPTEMBER",e[e.OCTOBER=9]="OCTOBER",e[e.NOVEMBER=10]="NOVEMBER",e[e.DECEMBER=11]="DECEMBER"}(Sc||(Sc={}));function zc(){var e=new Date;return e.setFullYear(e.getFullYear()-20),e.setMonth(Sc.JANUARY,1),e}var Mc,xc,Ac=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.handleNextClick=function(){return e.props.onNextClick()},e.handlePreviousClick=function(){return e.props.onPreviousClick()},e}return bn(n,t),n.prototype.render=function(){var t=this.props,n=t.classNames,a=t.month,s=t.maxDate,i=t.minDate;return e.createElement("div",{className:xn()(Fl,n.navBar)},this.props.hideLeftNavButton||e.createElement(Wn,{className:n.navButtonPrev,disabled:sc(a,i),icon:"chevron-left",minimal:!0,onClick:this.handlePreviousClick}),this.props.hideRightNavButton||e.createElement(Wn,{className:n.navButtonNext,disabled:sc(a,s),icon:"chevron-right",minimal:!0,onClick:this.handleNextClick}))},n}(e.PureComponent),Tc=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.getShorcutClickHandler=function(t,n){return function(){(0,e.props.onShortcutClick)(t,n)}},e.isShortcutInRange=function(t){var n=e.props;return lc(t,[n.minDate,n.maxDate])},e}return bn(n,t),n.prototype.render=function(){var t,n,a,s,i,r,o,l,c,h,d,u,p,m=this,f=(!0===this.props.shortcuts?(t=this.props.allowSingleDayRange,n=void 0!==this.props.timePrecision,a=!0===this.props.useSingleDateShortcuts,s=new Date,r=(i=function(e){var t=rc(s);return e(t),t.setDate(t.getDate()+1),t})((function(){return null})),o=i((function(e){return e.setDate(e.getDate()-2)})),l=i((function(e){return e.setDate(e.getDate()-7)})),c=i((function(e){return e.setMonth(e.getMonth()-1)})),h=i((function(e){return e.setMonth(e.getMonth()-3)})),d=i((function(e){return e.setMonth(e.getMonth()-6)})),u=i((function(e){return e.setFullYear(e.getFullYear()-1)})),p=i((function(e){return e.setFullYear(e.getFullYear()-2)})),Cn(t||a?[Lc("Today",[s,n?r:s]),Lc("Yesterday",[o,n?s:o])]:[],[Lc(a?"1 week ago":"Past week",[l,s]),Lc(a?"1 month ago":"Past month",[c,s]),Lc(a?"3 months ago":"Past 3 months",[h,s])],a?[]:[Lc("Past 6 months",[d,s])],[Lc(a?"1 year ago":"Past year",[u,s])],a?[]:[Lc("Past 2 years",[p,s])])):this.props.shortcuts).map((function(t,n){return e.createElement(Ni,{active:m.props.selectedShortcutIndex===n,className:Le,disabled:!m.isShortcutInRange(t.dateRange),key:n,onClick:m.getShorcutClickHandler(t,n),text:t.label})}));return e.createElement(Di,{className:Ul,tabIndex:0},f)},n.defaultProps={selectedShortcutIndex:-1},n}(e.PureComponent);function Lc(e,t){return{dateRange:t,label:e}}function Pc(e,t,n,a){switch(e){case xc.HOUR_24:n.setHours(t);break;case xc.HOUR_12:n.setHours(function(e,t){if(e<1||e>12)throw new Error("hour must be between [1,12] inclusive: got "+e);var n=12===e?0:e;return t?n+12:n}(t,a));break;case xc.MINUTE:n.setMinutes(t);break;case xc.SECOND:n.setSeconds(t);break;case xc.MS:n.setMilliseconds(t);break;default:throw Error("Invalid TimeUnit")}return n}function Hc(e,t){return null!=t&&!isNaN(t)&&Oc(e)<=t&&t<=Nc(e)}function Nc(e){return Uc[e].max}function Oc(e){return Uc[e].min}!function(e){e.HOUR_24="hour24",e.HOUR_12="hour12",e.MINUTE="minute",e.SECOND="second",e.MS="ms"}(xc||(xc={}));var Vc=0,Dc=0,Ic=0,Rc=0,Bc=23,Fc=59,Xc=59,Kc=999,Uc=((Mc={})[xc.HOUR_24]={className:Zl,max:Bc,min:Vc},Mc[xc.HOUR_12]={className:Zl,max:12,min:1},Mc[xc.MINUTE]={className:ec,max:Fc,min:Dc},Mc[xc.SECOND]={className:tc,max:Xc,min:Ic},Mc[xc.MS]={className:$l,max:Kc,min:Rc},Mc),Gc="millisecond",jc="minute",Wc="second",Qc=function(t){function n(e,n){var a=t.call(this,e,n)||this;a.getInputChangeHandler=function(e){return function(t){var n=Zc(t);switch(e){case xc.HOUR_12:case xc.HOUR_24:a.setState({hourText:n});break;case xc.MINUTE:a.setState({minuteText:n});break;case xc.SECOND:a.setState({secondText:n});break;case xc.MS:a.setState({millisecondText:n})}}},a.getInputBlurHandler=function(e){return function(t){var n,s,i=Zc(t);a.updateTime(parseInt(i,10),e),null===(s=(n=a.props).onBlur)||void 0===s||s.call(n,t,e)}},a.getInputFocusHandler=function(e){return function(t){var n,s;a.props.selectAllOnFocus&&t.currentTarget.select(),null===(s=(n=a.props).onFocus)||void 0===s||s.call(n,t,e)}},a.getInputKeyDownHandler=function(e){return function(t){var n,s,i;!function(e,t,n){void 0===n&&(n=!0);for(var a=0,s=Object.keys(t);a23)throw new Error("hour must be between [0,23] inclusive: got "+e);return t?e%12+12:e%12}(a.state.value.getHours(),t);a.setState({isPm:t},(function(){return a.updateTime(n,xc.HOUR_24)}))}},a.incrementTime=function(e){return a.shiftTime(e,1)},a.decrementTime=function(e){return a.shiftTime(e,-1)};var s=e.minTime;return null!=e.value?s=e.value:null!=e.defaultValue&&(s=e.defaultValue),a.state=a.getFullStateFromValue(s,e.useAmPm),a}return bn(n,t),n.prototype.render=function(){var t,n=this.props.precision===Gc,a=n||this.props.precision===Wc,s=this.props.useAmPm?xc.HOUR_12:xc.HOUR_24,i=xn()(jl,this.props.className,((t={})[P]=this.props.disabled,t));return e.createElement("div",{className:i},e.createElement("div",{className:Ql},this.maybeRenderArrowButton(!0,s),this.maybeRenderArrowButton(!0,xc.MINUTE),a&&this.maybeRenderArrowButton(!0,xc.SECOND),n&&this.maybeRenderArrowButton(!0,xc.MS)),e.createElement("div",{className:Jl},this.renderInput(Zl,s,this.state.hourText),this.renderDivider(),this.renderInput(ec,xc.MINUTE,this.state.minuteText),a&&this.renderDivider(),a&&this.renderInput(tc,xc.SECOND,this.state.secondText),n&&this.renderDivider("."),n&&this.renderInput($l,xc.MS,this.state.millisecondText)),this.maybeRenderAmPm(),e.createElement("div",{className:Ql},this.maybeRenderArrowButton(!1,s),this.maybeRenderArrowButton(!1,xc.MINUTE),a&&this.maybeRenderArrowButton(!1,xc.SECOND),n&&this.maybeRenderArrowButton(!1,xc.MS)))},n.prototype.componentDidUpdate=function(e){var t=e.minTime!==this.props.minTime,n=e.maxTime!==this.props.maxTime,a=t||n,s=e.value!==this.props.value,i=t||n||a||s,r=this.state.value;a&&(r=uc(this.state.value,this.props.minTime,this.props.maxTime)),null==this.props.value||ic(this.props.value,e.value)||(r=this.props.value),i&&this.setState(this.getFullStateFromValue(r,this.props.useAmPm))},n.prototype.maybeRenderArrowButton=function(t,n){var a=this;if(!this.props.showArrowButtons)return null;var s=xn()(Wl,Uc[n].className);return e.createElement("span",{tabIndex:-1,className:s,onClick:function(){return(t?a.incrementTime:a.decrementTime)(n)}},e.createElement(Fn,{icon:t?"chevron-up":"chevron-down"}))},n.prototype.renderDivider=function(t){return void 0===t&&(t=":"),e.createElement("span",{className:Yl},t)},n.prototype.renderInput=function(t,n,a){var s,i=Hc(n,parseInt(a,10)),r=n===xc.HOUR_12||n===xc.HOUR_24;return e.createElement("input",{className:xn()(ql,(s={},s[Ye(m)]=!i,s),t),onBlur:this.getInputBlurHandler(n),onChange:this.getInputChangeHandler(n),onFocus:this.getInputFocusHandler(n),onKeyDown:this.getInputKeyDownHandler(n),onKeyUp:this.getInputKeyUpHandler(n),value:a,disabled:this.props.disabled,autoFocus:r&&this.props.autoFocus})},n.prototype.maybeRenderAmPm=function(){return this.props.useAmPm?e.createElement(wa,{className:nc,disabled:this.props.disabled,onChange:this.handleAmPmChange,value:this.state.isPm?"pm":"am"},e.createElement("option",{value:"am"},"AM"),e.createElement("option",{value:"pm"},"PM")):null},n.prototype.getFullStateFromValue=function(e,t){var n=uc(e,this.props.minTime,this.props.maxTime),a=t?xc.HOUR_12:xc.HOUR_24;return{hourText:Yc(n.getHours(),a),minuteText:Yc(n.getMinutes(),xc.MINUTE),secondText:Yc(n.getSeconds(),xc.SECOND),millisecondText:Yc(n.getMilliseconds(),xc.MS),value:n,isPm:fc(n.getHours())}},n.prototype.shiftTime=function(e,t){if(!this.props.disabled){var n=function(e,t){switch(e){case xc.HOUR_24:return t.getHours();case xc.HOUR_12:return vc(t.getHours());case xc.MINUTE:return t.getMinutes();case xc.SECOND:return t.getSeconds();case xc.MS:return t.getMilliseconds();default:throw Error("Invalid TimeUnit")}}(e,this.state.value)+t;this.updateTime(function(e,t){var n=Nc(e),a=Oc(e);return t>n?a:ts?s:l},n.prototype.updateValue=function(e,t,n){var a,s;void 0===n&&(n=!1),n||null===(s=(a=this.props).onChange)||void 0===s||s.call(a,e,t),void 0===this.props.value&&this.setState({value:e})},n.defaultProps={canClearSelection:!0,clearButtonText:"Clear",dayPickerProps:{},highlightCurrentDay:!1,maxDate:(s=new Date,s.setFullYear(s.getFullYear()),s.setMonth(Sc.DECEMBER,31),s),minDate:zc(),reverseMonthAndYearMenus:!1,shortcuts:!1,showActionsBar:!1,timePickerProps:{},todayButtonText:"Today"},n.displayName="Blueprint3.DatePicker",n=a=wn([In.polyfill],n)}(Hn);var Jc=function(t){function n(e,n){var a=t.call(this,e,n)||this;a.handleDateChange=function(e,t){var n,s;void 0===a.props.value&&a.setState({dateValue:e});var i=pc(e,a.state.timeValue);null===(s=(n=a.props).onChange)||void 0===s||s.call(n,i,t)},a.handleTimeChange=function(e){var t,n;void 0===a.props.value&&a.setState({timeValue:e});var s=pc(a.state.dateValue,e);null===(n=(t=a.props).onChange)||void 0===n||n.call(t,s,!0)};var s=void 0!==a.props.value?a.props.value:a.props.defaultValue;return a.state={dateValue:s,timeValue:s},a}return bn(n,t),n.prototype.render=function(){var t=pc(this.state.dateValue,this.state.timeValue);return e.createElement("div",{className:xn()(Gl,this.props.className)},e.createElement(qc,yn({},this.props.datePickerProps,{canClearSelection:this.props.canClearSelection,onChange:this.handleDateChange,value:t})),e.createElement(Qc,yn({},this.props.timePickerProps,{onChange:this.handleTimeChange,value:t})))},n.prototype.componentDidUpdate=function(e){this.props.value!==e.value&&(null!=this.props.value?this.setState({dateValue:this.props.value,timeValue:this.props.value}):this.setState({dateValue:null}))},n.defaultProps={canClearSelection:!0,defaultValue:new Date},n.displayName="Blueprint3.DateTimePicker",n=wn([In.polyfill],n)}(Hn);const $c=new Date(2018,0,1),eh=new Date((new Date).getFullYear()+3,0,0),th={group:{display:"inline-block"},label:{marginBottom:"5px"}};class nh extends e.Component{render(){let t={},n=new Date(this.props.value);return(!this.props.value||this.props.value.includes("0000-12-31")||this.props.value.includes("0001-01-01"))&&(n=null),n&&!this.props.disabled||(t.opacity=.5),e.createElement("div",{hidden:this.props.hidden},e.createElement("div",{style:th.group},e.createElement("label",{className:"bp3-label",style:th.label},this.props.label,e.createElement(hl,{title:this.props.label,content:this.props.help})),e.createElement("div",{style:t},e.createElement(Jc,{value:this.props.disabled?null:n,timePickerProps:{showArrowButtons:!0},datePickerProps:{showActionsBar:!0,minDate:$c,maxDate:eh},onChange:e=>{this.props.disabled||(e?this.props.onChange(e.toJSON()):this.props.onChange(null))}}))))}}const ah={message:{marginTop:"6px"},box:{marginTop:"15px"},button:{marginLeft:"10px"},buttons:{flexShrink:0}};class sh extends e.Component{render(){return e.createElement("div",{className:"layout horizontal",style:ah.box},e.createElement("div",{className:"flex"}),e.createElement("div",{className:"layout horizontal"},e.createElement("span",{style:ah.message,hidden:!this.props.message},this.props.message),e.createElement("div",{style:ah.buttons},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:ah.button,type:"button",disabled:!this.props.changed||this.props.disabled,onClick:this.props.onSave},"New"))))}}const ih={label:{width:"100%",maxWidth:"280px"},textarea:{width:"100%",resize:"none",fontSize:"12px",fontFamily:'"Lucida Console", Monaco, monospace'}};class rh extends e.Component{render(){return e.createElement("label",{className:"bp3-label",style:ih.label,hidden:this.props.hidden},this.props.label,e.createElement(hl,{title:this.props.label,content:this.props.help}),e.createElement("textarea",{className:"bp3-input",style:ih.textarea,disabled:this.props.disabled,readOnly:this.props.readOnly,autoCapitalize:"off",spellCheck:!1,placeholder:this.props.placeholder,rows:this.props.rows,value:this.props.value||"",onChange:e=>{this.props.onChange(e.target.value)}}))}}const oh={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"10px 0 0 0"},role:{margin:"9px 5px 0 5px",height:"20px"}};class lh extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,user:Qr.userM})},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/user/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save user"),void a(e)):(lr.dispatch({type:Gr,data:{user:s.body}}),void n()))))}))}(this.state.user).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1})})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onNew=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/user").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create user"),void a(e)):void n())))}))}(this.state.user).then((()=>{this.setState({...this.state,message:"User has been created",changed:!1,disabled:!1,locked:!0})})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.set=(e,t)=>{let n={...this.state.user};n[e]=t,this.setState({...this.state,changed:!0,message:"",user:n})},this.onAddRole=()=>{let e=[...this.state.user.roles];this.state.addRole&&(-1===e.indexOf(this.state.addRole)&&e.push(this.state.addRole),e.sort(),this.setState({...this.state,changed:!0,message:"",addRole:"",user:{...this.state.user,roles:e}}))},this.onRemoveRole=e=>{let t=[...this.state.user.roles],n=t.indexOf(e);-1!==n&&(t.splice(n,1),this.setState({...this.state,changed:!0,message:"",addRole:"",user:{...this.state.user,roles:t}}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),eo([this.props.userId]).then((()=>{this.setState({...this.state,message:"User has been deleted",changed:!1,disabled:!1,locked:!0})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={changed:!1,disabled:!1,locked:!1,message:"",addRole:"",user:Qr.userM}}componentDidMount(){Qr.addChangeListener(this.onChange),Zr(this.props.userId)}componentWillUnmount(){Qr.removeChangeListener(this.onChange),lr.dispatch({type:jr})}render(){let t=this.props.userId,n=this.state.user;if(!n)return e.createElement("div",null);let a=[];for(let t of n.roles||[])a.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:oh.role,key:t},t,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.locked,onMouseUp:()=>{this.onRemoveRole(t)}})));return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:oh.header},e.createElement("h2",{style:oh.heading},t?"User Info":"New User"),e.createElement("div",{className:"flex"}),e.createElement("div",null,e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:oh.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete User",confirmMsg:"Permanently delete this user",confirmInput:!0,items:[n.username],disabled:this.state.disabled,onConfirm:this.onDelete})))),e.createElement(Al,null,e.createElement(xl,{className:"layout vertical"},e.createElement(vl,{disabled:this.state.locked,label:"Username",help:"Username, if using single sign-on username must match",type:"text",placeholder:"Enter username",value:n.username,onChange:e=>{this.set("username",e)}}),e.createElement(rh,{label:"Comment",help:"User comment.",placeholder:"User comment",rows:3,value:n.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(vl,{hidden:"local"!==n.type,disabled:this.state.locked,label:"Password",help:"Password, leave blank to keep current password",type:"password",placeholder:"Change password",value:n.password,onChange:e=>{this.set("password",e)}}),e.createElement(vl,{hidden:"api"!==n.type,disabled:this.state.locked,readOnly:!0,autoSelect:!0,label:"Token",help:"API token",type:"text",placeholder:"Save to generate token",value:n.token}),e.createElement(vl,{hidden:"api"!==n.type||!n.token||!n.secret,disabled:this.state.locked,readOnly:!0,autoSelect:!0,label:"Secret",help:"API secret, will only be shown once",type:"text",placeholder:"",value:n.secret}),e.createElement(ul,{hidden:"api"!==n.type||!n.token||!!n.secret,label:"Generate new token and secret",help:"Enable to generate a new token and secret on save. Secret can only be shown by generating new credentials.",disabled:this.state.locked,checked:n.generate_secret,onToggle:()=>{this.set("generate_secret",!n.generate_secret)}}),e.createElement(Hl,{disabled:this.state.locked,label:"Type",help:"A local user is a user that is created on the Pritunl Cloud database that has a username and password. The other user types can be used to create users for single sign-on services. Generally single sign-on users will be created automatically when the user authenticates for the first time. It can sometimes be desired to manaully create a single sign-on user to provide roles in advanced of the first login.",value:n.type,onChange:e=>{this.set("type",e)}},e.createElement("option",{value:"local"},"Local"),e.createElement("option",{value:"authzero"},"Auth0"),e.createElement("option",{value:"azure"},"Azure"),e.createElement("option",{value:"google"},"Google"),e.createElement("option",{value:"onelogin"},"OneLogin"),e.createElement("option",{value:"okta"},"Okta"),e.createElement("option",{value:"jumpcloud"},"JumpCloud"),e.createElement("option",{value:"api"},"API")),e.createElement("label",{className:"bp3-label"},"Roles",e.createElement(hl,{title:"Roles",content:"User roles will be used to match with service roles. A user must have a matching role to access a service."}),e.createElement("div",null,a)),e.createElement(Ll,{disabled:this.state.locked,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addRole,onChange:e=>{this.setState({...this.state,addRole:e})},onSubmit:this.onAddRole}),e.createElement(ul,{label:"Administrator",help:"Enable to give user administrator access to the management console",disabled:this.state.locked,checked:"super"===n.administrator,onToggle:()=>{"super"===this.state.user.administrator?this.set("administrator",""):this.set("administrator","super")}}),e.createElement(ul,{label:"Disabled",help:"Disables the user ending all active sessions and prevents new authentications",disabled:this.state.locked,checked:n.disabled,onToggle:()=>{this.set("disabled",!this.state.user.disabled)}})),e.createElement(xl,null,e.createElement(Bo,{fields:[{label:"ID",value:n.id||"None"},{label:"Last Active",value:Lr(n.last_active)||"Inactive"}]}),e.createElement(nh,{label:"Active Until",help:"Set this to schedule the user to be disabled at the set date and time. This is useful to give a user temporary access to a service.",value:n.active_until,disabled:n.disabled||this.state.locked,onChange:e=>{this.set("active_until",e)}}))),t?e.createElement(ml,{message:this.state.message,changed:this.state.changed,disabled:this.state.disabled||this.state.locked,onCancel:()=>{this.setState({...this.state,changed:!1,message:"Your changes have been discarded",addRole:"",user:Qr.userM})},onSave:this.onSave}):e.createElement(sh,{message:this.state.message,changed:this.state.changed,disabled:this.state.disabled||this.state.locked,onSave:this.onNew}),this.state.locked?null:e.createElement(Uo,{userId:t}),this.state.locked?null:e.createElement(_l,{userId:t}),this.state.locked?null:e.createElement(zl,{userId:t}))}}const ch="node.sync",hh="node.sync_zone",dh="node.traverse",uh="node.filter";const ph=new class extends hr{constructor(){super(...arguments),this._nodes=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._nodes=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get nodes(){return this._nodes}get nodesM(){let e=[];return this._nodes.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}node(e){let t=this._map[e];return void 0===t?null:this._nodes[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{e.push({...t})})),e}certificate(e){let t=this._map[e];return void 0===t?null:this._certificates[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{e.push({...t})})),e}datacenter(e){let t=this._map[e];return void 0===t?null:this._datacenters[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{e.push({...t})})),e}zone(e){let t=this._map[e];return void 0===t?null:this._zones[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{e.push({...t})})),e}block(e){let t=this._map[e];return void 0===t?null:this._blocks[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{vn.get("/node").query({...ph.filter,page:ph.page,page_count:ph.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===Ch){if(s)return Ui(i,"Failed to load nodes"),void a(s);lr.dispatch({type:ch,data:{nodes:i.body.nodes,count:i.body.count}}),e()}else e()}))}))}function Ah(e){let t=zr();if(Eh=t,!e)return lr.dispatch({type:hh,data:{nodes:[]}}),Promise.resolve();let n=(new Nr).loading();return new Promise(((a,s)=>{vn.get("/node").query({names:!0,zone:e}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,i)=>{if(n.done(),i&&401===i.status)return window.location.href="/login",void a();if(t===Eh){if(e)return Ui(i,"Failed to load nodes names"),void s(e);lr.dispatch({type:hh,data:{nodes:i.body}}),a()}else a()}))}))}function Th(e){return lr.dispatch({type:dh,data:{page:e}}),xh()}function Lh(e){return lr.dispatch({type:uh,data:{filter:e}}),xh()}function Ph(){let e=zr();Sh=e;let t=(new Nr).loading();return new Promise(((n,a)=>{vn.get("/certificate").set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Sh){if(s)return Ui(i,"Failed to load certificates"),void a(s);lr.dispatch({type:mh,data:{certificates:i.body}}),n()}else n()}))}))}function Hh(){let e=zr();kh=e;let t=(new Nr).loading();return new Promise(((n,a)=>{vn.get("/datacenter").set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===kh){if(s)return Ui(i,"Failed to load datacenters"),void a(s);lr.dispatch({type:vh,data:{datacenters:i.body}}),n()}else n()}))}))}function Nh(){let e=zr();zh=e;let t=(new Nr).loading();return new Promise(((n,a)=>{vn.get("/zone").set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===zh){if(s)return Ui(i,"Failed to load zones"),void a(s);lr.dispatch({type:bh,data:{zones:i.body}}),n()}else n()}))}))}function Oh(){let e=zr();Mh=e;let t=(new Nr).loading();return new Promise(((n,a)=>{vn.get("/block").set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Mh){if(s)return Ui(i,"Failed to load blocks"),void a(s);lr.dispatch({type:_h,data:{blocks:i.body}}),n()}else n()}))}))}function Vh(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/block/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save block"),void a(e)):void n())))}))}kr.register((e=>{if("node.change"===e.type)xh()})),kr.register((e=>{if("certificate.change"===e.type)Ph()})),kr.register((e=>{if("datacenter.change"===e.type)Hh()})),kr.register((e=>{if("zone.change"===e.type)Nh()})),kr.register((e=>{if("block.change"===e.type)$i||Oh()}));const Dh={box:{},button:{marginRight:"10px"},item:{margin:"9px 5px 0 5px",height:"20px"},callout:{marginBottom:"15px"},popover:{width:"230px"},popoverTarget:{top:"9px",left:"18px"},dialog:{maxWidth:"480px",margin:"30px 20px"},textarea:{width:"100%",resize:"none",fontSize:"12px",fontFamily:'"Lucida Console", Monaco, monospace'}};class Ih extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{let e=this.state.internalIface;if(!e){let t=this.ifaces();t.length&&(e=t[0])}let t=this.state.externalIface;if(!t){let e=this.ifaces();e.length&&(t=e[0])}let n={provider:this.state.provider||"other",zone:this.props.node.zone?this.props.node.zone:this.state.zone,firewall:this.state.firewall,internal_interface:e,external_interface:t,host_network:this.state.network,block_gateway:this.state.gateway,block_netmask:this.state.netmask,block_subnets:this.state.subnets};(function(e,t){let n=(new Nr).loading();return new Promise(((a,s)=>{vn.post("/node/"+e+"/init").send(t).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,t)=>(n.done(),t&&401===t.status?(window.location.href="/login",void a()):e?(Ui(t,"Failed to update node"),void s(e)):void a())))}))})(this.props.node.id,n).then((()=>{this.setState({...this.state,popover:!this.state.popover})})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onAddSubnet=()=>{if(!this.state.addSubnet)return;let e=[...this.state.subnets],t=this.state.addSubnet.trim();-1===e.indexOf(t)&&e.push(t),e.sort(),this.setState({...this.state,subnets:e,addSubnet:""})},this.onRemoveSubnet=e=>{let t=[...this.state.subnets||[]],n=t.indexOf(e);-1!==n&&(t.splice(n,1),this.setState({...this.state,subnets:t}))},this.state={disabled:!1,message:"",provider:"",datacenter:"",zone:"",firewall:!0,internalIface:"",externalIface:"",network:"",gateway:"",netmask:"",subnets:[],addSubnet:"",popover:!1}}ifaces(){let e=this.props.node,t=e.zone;this.state.zone&&(t=this.state.zone);let n=!1;for(let e of this.props.zones)if(e.id===t){"vxlan_vlan"===e.network_mode&&(n=!0);break}return e.available_bridges.concat(e.available_interfaces)}render(){let t;if(this.state.popover){let n,a="Initialize node, select the hosts public network interface.",s="";s&&(n=e.createElement("div",{className:"bp3-dialog-body"},e.createElement("div",{className:"bp3-callout bp3-intent-danger bp3-icon-ban-circle",style:Dh.callout},s)));let i="",r=!1,o=[];if(this.props.datacenters.length){r=!0,i=this.props.datacenters[0].id;for(let t of this.props.datacenters)o.push(e.createElement("option",{key:t.id,value:t.id},t.name))}r||o.push(e.createElement("option",{key:"null",value:""},"No Datacenters"));let l=this.state.datacenter||i,c=!1,h=[];if(this.props.zones.length){h.push(e.createElement("option",{key:"null",value:""},"Select Zone"));for(let t of this.props.zones)(this.props.node.zone||t.datacenter===l)&&(c=!0,h.push(e.createElement("option",{key:t.id,value:t.id},t.name)))}c||(h=[e.createElement("option",{key:"null",value:""},"No Zones")]);let d=this.ifaces(),u=[];for(let t of d||[])u.push(e.createElement("option",{key:t,value:t},t));let p=[];for(let t of this.state.subnets||[])p.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Dh.item,key:t},t,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveSubnet(t)}})));t=e.createElement(ra,{title:"Initialize Node",style:Dh.dialog,isOpen:this.state.popover,usePortal:!0,portalContainer:document.body,onClose:()=>{this.setState({...this.state,popover:!1})}},n,e.createElement("div",{className:"bp3-dialog-body",hidden:!!n},e.createElement("div",{className:"bp3-callout bp3-intent-primary bp3-icon-info-sign",style:Dh.callout},a),e.createElement(Hl,{disabled:this.state.disabled,label:"Provider",help:"Bare metal hosting provider.",value:this.state.provider,onChange:e=>{this.setState({...this.state,provider:e})}},e.createElement("option",{key:"other",value:"other"},"Other"),e.createElement("option",{key:"vultr",value:"vultr"},"Vultr"),e.createElement("option",{key:"phoenixnap",value:"phoenixnap"},"phoenixNAP")),e.createElement(Hl,{disabled:this.state.disabled||!r,hidden:!!this.props.node.zone,label:"Datacenter",help:"Node datacenter, cannot be changed once set.",value:this.state.datacenter,onChange:e=>{this.setState({...this.state,datacenter:e,zone:""})}},o),e.createElement(Hl,{disabled:!!this.props.node.zone||this.state.disabled||!c,label:"Zone",help:"Node zone, cannot be changed once set.",value:this.props.node.zone?this.props.node.zone:this.state.zone,onChange:e=>{this.setState({...this.state,zone:e})}},h),e.createElement(Hl,{disabled:this.state.disabled||!u.length,hidden:"phoenixnap"===this.state.provider,label:"Public Network Interface",help:"Network interface for instance public traffic.",value:this.state.externalIface,onChange:e=>{this.setState({...this.state,externalIface:e})}},u),e.createElement(Hl,{disabled:this.state.disabled||!u.length,hidden:"phoenixnap"!==this.state.provider,label:"Private Network Interface",help:"Network interface for instance private VPC interface.",value:this.state.internalIface,onChange:e=>{this.setState({...this.state,internalIface:e})}},u),e.createElement(Hl,{disabled:this.state.disabled||!u.length,hidden:"phoenixnap"!==this.state.provider,label:"Public Network Interface",help:"Network interface for instance public traffic.",value:this.state.externalIface,onChange:e=>{this.setState({...this.state,externalIface:e})}},u),e.createElement(vl,{disabled:this.state.disabled,hidden:"phoenixnap"!==this.state.provider,label:"Public Gateway",help:"Gateway address with prefix for public IP network.",type:"text",placeholder:"Enter gateway",value:this.state.gateway,onChange:e=>{this.setState({...this.state,gateway:e})}}),e.createElement(vl,{disabled:this.state.disabled,hidden:!0,label:"Public Netmask",help:"Netmask of of public IP addresses",type:"text",placeholder:"Enter netmask",value:this.state.netmask,onChange:e=>{this.setState({...this.state,netmask:e})}}),e.createElement("label",{className:"bp3-label",hidden:"phoenixnap"!==this.state.provider},"IP Addresses",e.createElement(hl,{title:"Public IP Addresses",content:"Public IP addresses that are available for instances."}),e.createElement("div",null,p)),e.createElement(Ll,{disabled:this.state.disabled,hidden:"phoenixnap"!==this.state.provider,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add addresses",value:this.state.addSubnet,onChange:e=>{this.setState({...this.state,addSubnet:e})},onSubmit:this.onAddSubnet}),e.createElement(vl,{disabled:this.state.disabled,label:"Host IPv4 Network",help:"Host IPv4 network with prefix that is configured on the host to provide networking between the host and the instances. If left blank no host network will be created.",type:"text",placeholder:"Enter network",value:this.state.network,onChange:e=>{this.setState({...this.state,network:e})}}),e.createElement(ul,{disabled:this.state.disabled,label:"Node firewall",help:"Configure a default firewall for the node allowing web and ssh traffic from all addresses. This should always be enabled unless an external firewall has been configured on the host system. The firewall can be modified after from the web console.",checked:this.state.firewall,onToggle:()=>{this.setState({...this.state,firewall:!this.state.firewall})}})),e.createElement("div",{className:"bp3-dialog-footer"},e.createElement("div",{className:"bp3-dialog-footer-actions"},e.createElement("button",{className:"bp3-button",type:"button",onClick:()=>{this.setState({...this.state,popover:!this.state.popover})}},"Close"),e.createElement("button",{className:"bp3-button bp3-icon-cloud-upload bp3-intent-primary",type:"button",onClick:this.onSave},"Initialize Node"))))}return e.createElement("div",{hidden:this.props.hidden,style:Dh.box},e.createElement("button",{className:"bp3-button bp3-icon-cloud-upload bp3-intent-primary",style:Dh.button,type:"button",disabled:this.props.disabled,onClick:()=>{this.setState({...this.state,popover:!this.state.popover})}},"Initialize Node"),t)}}const Rh={switchLabel:{display:"inline-block",marginBottom:0},inputLabel:{width:"100%",maxWidth:"280px"},input:{width:"100%"}};class Bh extends e.Component{render(){return e.createElement("div",{hidden:this.props.hidden},e.createElement("label",{className:"bp3-control bp3-switch",style:Rh.switchLabel},e.createElement("input",{type:"checkbox",disabled:this.props.disabled,checked:!!this.props.value||this.props.checked,onChange:()=>{this.props.value||this.props.checked?this.props.onChange(!1,null):this.props.onChange(!0,this.props.defaultValue)}}),e.createElement("span",{className:"bp3-control-indicator"}),this.props.label),e.createElement(hl,{title:this.props.label,content:this.props.help}),e.createElement("label",{className:"bp3-label",style:Rh.inputLabel},e.createElement("input",{className:"bp3-input",style:Rh.input,disabled:this.props.disabled,hidden:!this.props.value&&!this.props.checked,type:this.props.type,autoCapitalize:"off",spellCheck:!1,placeholder:this.props.placeholder,value:this.props.value||"",onChange:e=>{this.props.onChange(!0,e.target.value)}})))}}const Fh={group:{marginBottom:"15px",width:"100%",maxWidth:"280px"},select:{width:"100%",borderTopLeftRadius:"3px",borderBottomLeftRadius:"3px"},selectInner:{width:"100%"},selectBox:{flex:"1"}};class Xh extends e.Component{render(){let t="bp3-button";return this.props.buttonClass&&(t+=" "+this.props.buttonClass),e.createElement("div",{className:"bp3-control-group",style:Fh.group,hidden:this.props.hidden},e.createElement("div",{style:Fh.selectBox},e.createElement("div",{className:"bp3-select",style:Fh.select},e.createElement("select",{style:Fh.selectInner,disabled:this.props.disabled,value:this.props.value||"",onChange:e=>{this.props.onChange(e.target.value)}},this.props.children))),e.createElement("button",{className:t,disabled:this.props.disabled,onClick:this.props.onSubmit},this.props.label))}}const Kh={label:{display:"inline-block"}};class Uh extends e.Component{render(){return e.createElement("div",{hidden:this.props.hidden},e.createElement("label",{className:"bp3-label",style:Kh.label},this.props.label,e.createElement(hl,{title:this.props.label,content:this.props.help}),e.createElement(_a,{allowNumericCharactersOnly:!0,min:this.props.min,minorStepSize:this.props.minorStepSize,max:this.props.max,stepSize:this.props.stepSize,majorStepSize:this.props.majorStepSize,disabled:this.props.disabled,selectAllOnFocus:this.props.selectAllOnFocus,onValueChange:e=>{this.props.max&&e>this.props.max&&(e=this.props.max),this.props.onChange(e)},value:this.props.value})))}}const Gh={group:{width:"100%",maxWidth:"310px",marginTop:"5px"},sourceGroup:{width:"100%",maxWidth:"219px",marginTop:"5px"},control:{marginTop:"5px"},protocol:{flex:"0 1 auto"},port:{width:"100%"},portBox:{flex:"1"},other:{flex:"0 1 auto",width:"52px",borderRadius:"0 3px 3px 0"}};class jh extends e.Component{clone(){return{...this.props.block}}render(){let t=this.props.block,n=!1,a=[];for(let s of this.props.interfaces||[])t.interface===s&&(n=!0),a.push(e.createElement("option",{key:s,value:s},s));n||a.push(e.createElement("option",{key:t.interface,value:t.interface},t.interface));let s=[];for(let t of this.props.blocks||[])(this.props.ipv6||"ipv6"!==t.type)&&(this.props.ipv6&&"ipv6"!==t.type||s.push(e.createElement("option",{key:t.id,value:t.id},t.name)));return 0===s.length&&s.push(e.createElement("option",{key:"null",value:""},"No Blocks")),e.createElement("div",null,e.createElement("div",{className:"bp3-control-group",style:Gh.group},e.createElement("div",{className:"bp3-select",style:Gh.protocol},e.createElement("select",{value:t.interface,onChange:e=>{let t=this.clone();t.interface=e.target.value,this.props.onChange(t)}},a)),e.createElement("div",{className:"bp3-select",style:Gh.protocol},e.createElement("select",{value:t.block,onChange:e=>{let t=this.clone();t.block=e.target.value,this.props.onChange(t)}},s)),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",style:Gh.control,onClick:()=>{this.props.onRemove()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-success bp3-icon-add",style:Gh.control,onClick:()=>{this.props.onAdd()}})))}}const Wh={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",wordBreak:"break-all"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},restart:{marginRight:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"},protocol:{minWidth:"90px",flex:"0 1 auto"},port:{minWidth:"120px",flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},role:{margin:"9px 5px 0 5px",height:"20px"},blocks:{marginBottom:"15px"}};class Qh extends e.Component{constructor(e,t){super(e,t),this.onAddNetworkRole=()=>{let e;if(!this.state.addNetworkRole)return;e=this.state.changed?{...this.state.node}:{...this.props.node};let t=[...e.network_roles||[]];-1===t.indexOf(this.state.addNetworkRole)&&t.push(this.state.addNetworkRole),t.sort(),e.network_roles=t,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",node:e})},this.onRemoveNetworkRole=e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.network_roles||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.network_roles=n,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",node:t}))},this.onSave=()=>{this.setState({...this.state,disabled:!0});let e={...this.state.node};if(!this.props.node.zone){let t=this.state.zone;if(!t&&this.props.datacenters.length&&this.props.zones.length){let e=this.state.datacenter||this.props.datacenters[0].id;for(let n of this.props.zones)n.datacenter===e&&(t=n.id)}t&&(e.zone=t)}(function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/node/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save node"),void a(e)):void n())))}))})(e).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,node:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/node/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete nodes"),void a(e)):void n())))}))}(this.props.node.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onAddExternalIface=()=>{let e,t=this.ifaces();if(!this.state.addExternalIface&&!t.length)return;let n=this.state.addExternalIface||t[0];e=this.state.changed?{...this.state.node}:{...this.props.node};let a=[...e.external_interfaces||[]];-1===a.indexOf(n)&&a.push(n),a.sort(),e.external_interfaces=a,this.setState({...this.state,changed:!0,node:e})},this.onRemoveExternalIface=e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.external_interfaces||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.external_interfaces=n,this.setState({...this.state,changed:!0,node:t}))},this.onAddInternalIface=()=>{let e,t=this.ifaces();if(!this.state.addInternalIface&&!t.length)return;let n=this.state.addInternalIface||t[0];e=this.state.changed?{...this.state.node}:{...this.props.node};let a=[...e.internal_interfaces||[]];-1===a.indexOf(n)&&a.push(n),a.sort(),e.internal_interfaces=a,this.setState({...this.state,changed:!0,node:e})},this.onRemoveInternalIface=e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.internal_interfaces||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.internal_interfaces=n,this.setState({...this.state,changed:!0,node:t}))},this.onAddCert=()=>{let e;if(!this.state.addCert&&!this.props.certificates.length)return;e=this.state.changed?{...this.state.node}:{...this.props.node};let t=this.state.addCert;if(!t)for(let e of this.props.certificates)if(!e.organization){t=e.id;break}let n=[...e.certificates||[]];-1===n.indexOf(t)&&n.push(t),n.sort(),e.certificates=n,this.setState({...this.state,changed:!0,node:e})},this.onRemoveCert=e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.certificates||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.certificates=n,this.setState({...this.state,changed:!0,node:t}))},this.newBlock=e=>{let t="";for(let n of this.props.blocks||[])(e&&"ipv6"===n.type||!e&&"ipv4"===n.type)&&(t=n.id);return{interface:this.props.node.available_bridges.concat(this.props.node.available_interfaces)[0],block:t}},this.onNetworkMode=e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node},"static"===e&&0===(t.blocks||[]).length&&(t.blocks=[this.newBlock(!1)]),t.network_mode=e,this.setState({...this.state,changed:!0,node:t})},this.onNetworkMode6=e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node},"static"===e&&0===(t.blocks6||[]).length&&(t.blocks6=[this.newBlock(!0)]),t.network_mode6=e,this.setState({...this.state,changed:!0,node:t})},this.onAddOracleSubnet=()=>{let e,t=this.props.node.available_vpcs||[];if(!this.state.addOracleSubnet&&!t.length&&!t[0].subnets.length)return;let n=this.state.addOracleSubnet;n||(n=t[0].subnets[0].id),e=this.state.changed?{...this.state.node}:{...this.props.node};let a=[...e.oracle_subnets||[]],s=-1;for(let e=0;e{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.oracle_subnets||[]],a=-1;for(let t=0;t{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.blocks];n.splice(e+1,0,this.newBlock(!1)),t.blocks=n,this.setState({...this.state,changed:!0,message:"",node:t})},this.onAddBlock6=e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.blocks6];n.splice(e+1,0,this.newBlock(!0)),t.blocks6=n,this.setState({...this.state,changed:!0,message:"",node:t})},this.onAddDrive=()=>{let e,t=this.props.node.available_drives||[];if(!this.state.addDrive&&!t.length)return;let n=this.state.addDrive;n||(n=t[0].id),e=this.state.changed?{...this.state.node}:{...this.props.node};let a=[...e.instance_drives||[]],s=-1;for(let e=0;e{let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.instance_drives||[]],a=-1;for(let t=0;t!!e)),t.sort(),this.set("types",t)}ifaces(){let e;e=this.state.changed?{...this.state.node}:{...this.props.node};let t=e.zone;this.state.zone&&(t=this.state.zone);let n=!1;for(let e of this.props.zones)if(e.id===t){"vxlan_vlan"===e.network_mode&&(n=!0);break}return e.available_bridges.concat(e.available_interfaces)}subnetLabel(e){for(let t of this.props.node.available_vpcs||[])for(let n of t.subnets||[])if(n.id===e)return t.name+" - "+n.name;return e}operation(e){this.setState({...this.state,disabled:!0}),function(e,t){let n=(new Nr).loading();return new Promise(((a,s)=>{vn.put("/node/"+e+"/"+t).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,t)=>(n.done(),t&&401===t.status?(window.location.href="/login",void a()):e?(Ui(t,"Failed to update node"),void s(e)):void a())))}))}(this.props.node.id,e).then((()=>{setTimeout((()=>{this.setState({...this.state,disabled:!1})}),250)})).catch((()=>{this.setState({...this.state,disabled:!1})}))}onChangeBlock(e,t){let n;n=this.state.changed?{...this.state.node}:{...this.props.node};let a=[...n.blocks];a[e]=t,n.blocks=a,this.setState({...this.state,changed:!0,message:"",node:n})}onRemoveBlock(e){let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.blocks];n.splice(e,1),n.length||(n=[this.newBlock(!1)]),t.blocks=n,this.setState({...this.state,changed:!0,message:"",node:t})}onChangeBlock6(e,t){let n;n=this.state.changed?{...this.state.node}:{...this.props.node};let a=[...n.blocks6];a[e]=t,n.blocks6=a,this.setState({...this.state,changed:!0,message:"",node:n})}onRemoveBlock6(e){let t;t=this.state.changed?{...this.state.node}:{...this.props.node};let n=[...t.blocks6];n.splice(e,1),n.length||(n=[this.newBlock(!0)]),t.blocks6=n,this.setState({...this.state,changed:!0,message:"",node:t})}render(){let t=this.state.node||this.props.node,n=0!==t.requests_min||0!==t.memory||0!==t.load1||0!==t.load5||0!==t.load15,a=t.types||[],s=this.props.node.public_ips;s&&s.length||(s="None");let i=this.props.node.public_ips6;i&&i.length||(i="None");let r=[{progressClass:"bp3-no-stripes bp3-intent-success",label:"Load1",value:this.props.node.load1||0},{progressClass:"bp3-no-stripes bp3-intent-warning",label:"Load5",value:this.props.node.load5||0},{progressClass:"bp3-no-stripes bp3-intent-danger",label:"Load15",value:this.props.node.load15||0},{progressClass:"bp3-no-stripes bp3-intent-primary",label:"Memory",value:this.props.node.memory||0}];this.props.node.hugepages&&r.push({progressClass:"bp3-no-stripes bp3-intent-primary",label:"HugePages",value:this.props.node.hugepages_used||0,color:"#7207d4"});let o=[];for(let n of t.external_interfaces||[])o.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Wh.item,key:n},n,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveExternalIface(n)}})));let l=[];for(let n of t.internal_interfaces||[])l.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Wh.item,key:n},n,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveInternalIface(n)}})));let c=this.ifaces(),h=[];for(let t of c||[])h.push(e.createElement("option",{key:t,value:t},t));let d=[];for(let t of c||[])d.push(e.createElement("option",{key:t,value:t},t));let u=[];for(let n of t.oracle_subnets||[])u.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Wh.item,key:n},this.subnetLabel(n),e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveOracleSubnet(n)}})));let p=[];for(let n of t.available_vpcs||[])for(let t of n.subnets||[])p.push(e.createElement("option",{key:t.id,value:t.id},n.name+" - "+t.name));let m=[e.createElement("option",{key:"null",value:""},"Disabled")];for(let t of this.props.blocks||[])"ipv4"===t.type&&m.push(e.createElement("option",{key:t.id,value:t.id},t.name));let f=[];for(let n of t.instance_drives||[])f.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Wh.item,key:n.id},n.id,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveDrive(n.id)}})));let v=[];for(let n of t.available_drives||[])v.push(e.createElement("option",{key:n.id,value:n.id},n.id));let g=[];for(let n of t.certificates||[]){let t=fh.certificate(n);t&&g.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Wh.item,key:t.id},t.name,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveCert(t.id)}})))}let b=!1,y=[];if(this.props.certificates.length)for(let t of this.props.certificates)t.organization||(b=!0,y.push(e.createElement("option",{key:t.id,value:t.id},t.name)));b||(y=[e.createElement("option",{key:"null",value:""},"No Certificates")]);let _="",w=!1,C=[];if(this.props.datacenters.length){w=!0,_=this.props.datacenters[0].id;for(let t of this.props.datacenters)C.push(e.createElement("option",{key:t.id,value:t.id},t.name))}w||C.push(e.createElement("option",{key:"null",value:""},"No Datacenters"));let E=this.state.datacenter||_,S=!1,k=[];if(this.props.zones.length){k.push(e.createElement("option",{key:"null",value:""},"Select Zone"));for(let t of this.props.zones)(this.props.node.zone||t.datacenter===E)&&(S=!0,k.push(e.createElement("option",{key:t.id,value:t.id},t.name)))}S||(k=[e.createElement("option",{key:"null",value:""},"No Zones")]);let z=!1,M=[];if(this.props.node.available_renders&&this.props.node.available_renders.length){M.push(e.createElement("option",{key:"null",value:""},"Select Render"));for(let t of this.props.node.available_renders)z=!0,M.push(e.createElement("option",{key:t,value:t},t))}z||(M=[e.createElement("option",{key:"null",value:""},"No Renders")]);let x=[];for(let n of t.network_roles||[])x.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Wh.role,key:n},n,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveNetworkRole(n)}})));let A=t.blocks||[],T=[];for(let n=0;n{this.onChangeBlock(a,e)},onAdd:()=>{this.onAddBlock(a)},onRemove:()=>{this.onRemoveBlock(a)}}))}let L=t.blocks6||[],P=[];for(let n=0;n{this.onChangeBlock6(a,e)},onAdd:()=>{this.onAddBlock6(a)},onRemove:()=>{this.onRemoveBlock6(a)}}))}return e.createElement("td",{className:"bp3-cell",colSpan:4,style:Wh.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Wh.group},e.createElement("div",{className:"layout horizontal tab-close",style:Wh.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:Wh.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Node",confirmMsg:"Permanently delete this node",confirmInput:!0,items:[t.name],disabled:n||this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{disabled:this.state.disabled,label:"Name",help:"Name of node",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Node comment.",placeholder:"Node comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Admin",help:"Provides access to the admin console on this node.",checked:-1!==a.indexOf("admin"),onToggle:()=>{this.toggleType("admin")}}),e.createElement(ul,{disabled:this.state.disabled,label:"User",help:"Provides access to the user console on this node for SSH certificates.",checked:-1!==a.indexOf("user"),onToggle:()=>{this.toggleType("user")}}),e.createElement(ul,{disabled:this.state.disabled,label:"Load Balancer",help:"Provides access to load balancers.",checked:-1!==a.indexOf("balancer"),onToggle:()=>{this.toggleType("balancer")}}),e.createElement(ul,{disabled:this.state.disabled,label:"Hypervisor",help:"Run instances with hypervisor on this node.",checked:-1!==a.indexOf("hypervisor"),onToggle:()=>{this.toggleType("hypervisor")}}),e.createElement(vl,{disabled:this.state.disabled,hidden:-1===a.indexOf("balancer")&&(-1===a.indexOf("admin")||-1===a.indexOf("user")),label:"Admin Domain",help:"Domain that will be used to access the admin interface.",type:"text",placeholder:"Enter admin domain",value:t.admin_domain,onChange:e=>{this.set("admin_domain",e)}}),e.createElement(vl,{disabled:this.state.disabled,hidden:-1===a.indexOf("balancer")&&(-1===a.indexOf("admin")||-1===a.indexOf("user")),label:"User Domain",help:"Domain that will be used to access the user interface.",type:"text",placeholder:"Enter user domain",value:t.user_domain,onChange:e=>{this.set("user_domain",e)}}),e.createElement(vl,{disabled:this.state.disabled,hidden:-1===a.indexOf("admin")&&-1===a.indexOf("user"),label:"WebAuthn Domain",help:"Domain that will be used for WebAuthn relying party identifier. This domain should be the highest level domain for the relevant resources. All other Pritunl Cloud domains handling WebAuthn authentication must be a sub-domain of this domain. Changing this domain will invalidate all existing WebAuthn devices.",type:"text",placeholder:"Enter WebAuthn domain",value:t.webauthn_domain,onChange:e=>{this.set("webauthn_domain",e)}}),e.createElement("label",{className:"bp3-label",style:Wh.label},"Protocol and Port",e.createElement("div",{className:"bp3-control-group",style:Wh.inputGroup},e.createElement("div",{className:"bp3-select",style:Wh.protocol},e.createElement("select",{disabled:this.state.disabled,value:t.protocol||"https",onChange:e=>{this.set("protocol",e.target.value)}},e.createElement("option",{value:"http"},"HTTP"),e.createElement("option",{value:"https"},"HTTPS"))),e.createElement("input",{className:"bp3-input",disabled:this.state.disabled,style:Wh.port,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Port",value:t.port||443,onChange:e=>{this.set("port",parseInt(e.target.value,10))}}))),e.createElement(ul,{disabled:this.state.disabled,label:"Web redirect server",help:"Enable redirect server for HTTP requests to HTTPS. Required for Lets Encrypt certificates.",checked:!t.no_redirect_server,onToggle:()=>{this.set("no_redirect_server",!t.no_redirect_server)}}),e.createElement(Hl,{disabled:this.state.disabled||!w,hidden:!!this.props.node.zone,label:"Datacenter",help:"Node datacenter, cannot be changed once set.",value:this.state.datacenter,onChange:e=>{t=this.state.changed?{...this.state.node}:{...this.props.node},this.setState({...this.state,changed:!0,node:t,datacenter:e,zone:""})}},C),e.createElement(Hl,{disabled:!!this.props.node.zone||this.state.disabled||!S,label:"Zone",help:"Node zone, cannot be changed once set. Clear node ID in configuration file to reset node.",value:this.props.node.zone?this.props.node.zone:this.state.zone,onChange:e=>{let t;t=this.state.changed?{...this.state.node}:{...this.props.node},this.setState({...this.state,changed:!0,node:t,zone:e})}},k),e.createElement(Hl,{disabled:this.state.disabled,label:"Network IPv4 Mode",help:"Network mode for public IP addresses. Cannot be changed with instances running.",value:t.network_mode,onChange:e=>{this.onNetworkMode(e)}},e.createElement("option",{value:"dhcp"},"DHCP"),e.createElement("option",{value:"static"},"Static"),e.createElement("option",{value:"oracle"},"Oracle Cloud"),e.createElement("option",{value:"disabled"},"Disabled")),e.createElement(Hl,{disabled:this.state.disabled,label:"Network IPv6 Mode",help:"Network mode for public IPv6 addresses. Cannot be changed with instances running. Default will use IPv4 network mode.",value:t.network_mode6,onChange:e=>{this.onNetworkMode6(e)}},e.createElement("option",{value:"dhcp"},"DHCP"),e.createElement("option",{value:"static"},"Static"),e.createElement("option",{value:"oracle"},"Oracle Cloud"),e.createElement("option",{value:"disabled"},"Disabled")),e.createElement("label",{className:"bp3-label",style:Wh.label,hidden:"dhcp"!==t.network_mode&&""!==t.network_mode&&"dhcp"!==t.network_mode6&&""!==t.network_mode6},"External Interfaces",e.createElement(hl,{title:"External Interfaces",content:"External interfaces for instance public interface, must be a bridge interface. Leave blank for automatic configuration."}),e.createElement("div",null,o)),e.createElement(Xh,{hidden:"dhcp"!==t.network_mode&&""!==t.network_mode&&"dhcp"!==t.network_mode6&&""!==t.network_mode6,label:"Add Interface",value:this.state.addExternalIface,disabled:!h.length||this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addExternalIface:e})},onSubmit:this.onAddExternalIface},h),e.createElement("label",{className:"bp3-label",style:Wh.label},"Internal Interfaces",e.createElement(hl,{title:"Internal Interfaces",content:"Internal interfaces for instance private VPC interface. If zone network mode is default this must be a bridge interface. Set zone network mode to VXLan to use non-bridge interface. Leave blank to use external interface."}),e.createElement("div",null,l)),e.createElement(Xh,{label:"Add Interface",value:this.state.addInternalIface,disabled:!d.length||this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addInternalIface:e})},onSubmit:this.onAddInternalIface},d),e.createElement("label",{className:"bp3-label",hidden:"static"!==t.network_mode,style:Wh.label},"External IPv4 Block Attachments",T),e.createElement("label",{className:"bp3-label",hidden:"static"!==t.network_mode6,style:Wh.label},"External IPv6 Block Attachments",P),e.createElement("label",{className:"bp3-label",hidden:"oracle"!==t.network_mode,style:Wh.label},"Oracle Cloud Subnets",e.createElement(hl,{title:"Oracle Cloud Subnets",content:"Oracle Cloud VCN subnets available to attach to instances."}),e.createElement("div",null,u)),e.createElement(Xh,{label:"Add Subnet",hidden:"oracle"!==t.network_mode,value:this.state.addOracleSubnet,disabled:!p.length||this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addOracleSubnet:e})},onSubmit:this.onAddOracleSubnet},p),e.createElement(Hl,{disabled:this.state.disabled,label:"Host Network Block",help:"IP address block to use for static address on host network.",value:t.host_block,onChange:e=>{this.set("host_block",e)}},m),e.createElement(ul,{disabled:this.state.disabled,hidden:!t.host_block,label:"Host Network NAT",help:"Enable NAT to on the host network.",checked:t.host_nat,onToggle:()=>{this.set("host_nat",!t.host_nat)}}),e.createElement(ul,{disabled:this.state.disabled,hidden:!t.host_block,label:"Oracle Cloud host routing",help:"Automatically update Oracle Cloud routing tables with host network.",checked:t.oracle_host_route,onToggle:()=>{this.set("oracle_host_route",!t.oracle_host_route)}}),e.createElement(vl,{disabled:this.state.disabled,hidden:!t.oracle_host_route&&"oracle"!==t.network_mode&&"oracle"!==t.network_mode6,label:"Oracle Cloud User OCID",help:"User OCID for Oracle Cloud API authentication.",type:"text",placeholder:"Enter user OCID",value:t.oracle_user,onChange:e=>{this.set("oracle_user",e)}}),e.createElement(rh,{disabled:this.state.disabled,hidden:!t.oracle_host_route&&"oracle"!==t.network_mode&&"oracle"!==t.network_mode6,label:"Oracle Cloud Public Key",help:"Public key for Oracle Cloud API authentication.",placeholder:"Oracle Cloud public key",readOnly:!0,rows:6,value:t.oracle_public_key,onChange:e=>{this.set("oracle_public_key",e)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Default instance public IPv4 address",help:"Enable or disable default option for instance public IPv4 address.",checked:!t.default_no_public_address,onToggle:()=>{this.set("default_no_public_address",!t.default_no_public_address)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Default instance public IPv6 address",help:"Enable or disable default option for instance public IPv6 address.",checked:!t.default_no_public_address6,onToggle:()=>{this.set("default_no_public_address6",!t.default_no_public_address6)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Jumbo frames external",help:"Enable jumbo frames on external interfaces, requires node restart when changed. Node external interfaces must be configured for 9000 MTU. Also requires internal jumbo frames.",checked:t.jumbo_frames,onToggle:()=>{this.set("jumbo_frames",!t.jumbo_frames)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Jumbo frames internal",help:"Enable jumbo frames on internal interfaces, requires node restart when changed. Node interal interfaces must be configured for 9000 MTU.",checked:t.jumbo_frames||t.jumbo_frames_internal,onToggle:()=>{this.set("jumbo_frames_internal",!t.jumbo_frames_internal)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Instance iSCSI support",help:"Enable iSCSI disk support for instances.",checked:t.iscsi,onToggle:()=>{this.set("iscsi",!t.iscsi)}}),e.createElement(ul,{disabled:this.state.disabled,label:"PCI Passthough",help:"Enable PCI passthrough support for instances.",checked:t.pci_passthrough,onToggle:()=>{this.set("pci_passthrough",!t.pci_passthrough)}}),e.createElement(ul,{disabled:this.state.disabled,label:"USB Passthough",help:"Enable USB passthrough support for instances.",checked:t.usb_passthrough,onToggle:()=>{this.set("usb_passthrough",!t.usb_passthrough)}}),e.createElement(ul,{disabled:this.state.disabled,label:"HugePages",help:"Static hugepages provide a sector of the system memory to be dedicated for hugepages. This memory will be used for instances allowing higher memory performance and preventing the host system from disturbing memory dedicated for virtual instances. This option should always be used on production systems. The hugepages size must be set with the option below or manually with sysctl. Enabling this option while instances are running is likely to crash the system.",checked:t.hugepages,onToggle:()=>{this.set("hugepages",!t.hugepages)}}),e.createElement(Uh,{label:"HugePages Size",help:"Size of hugepages space in megabytes. Set this option to the size of memory that will be dedicated for virtual instances. It is recommended to leave 4GB of memory for the host system. Set to 0 if the hugepages size is being manually configured.",min:0,minorStepSize:0,stepSize:1024,majorStepSize:1024,disabled:this.state.disabled,hidden:!t.hugepages,selectAllOnFocus:!0,onChange:e=>{this.set("hugepages_size",e)},value:t.hugepages_size}),e.createElement(ul,{disabled:this.state.disabled,label:"Firewall",help:"Configure firewall on node. Incorrectly configuring the firewall can block access to the node.",checked:t.firewall,onToggle:()=>{this.toggleFirewall()}}),e.createElement(ul,{disabled:this.state.disabled,label:"Desktop GUI",help:"Enable support for desktop GUI display for instances. Requires Xorg or Wayland session to be running.",checked:t.gui,onToggle:()=>{this.set("gui",!t.gui)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Desktop GUI Mode",help:"Enable support for desktop GUI display for instances. Requires Xorg or Wayland session to be running.",checked:t.gui,onToggle:()=>{this.set("gui",!t.gui)}}),e.createElement(Hl,{hidden:!t.gui,disabled:this.state.disabled,label:"Desktop GUI Mode",help:"Desktop GUI display mode. SDL is recommended for better compatibility.",value:t.gui_mode,onChange:e=>{this.set("gui_mode",e)}},e.createElement("option",{value:"sdl"},"SDL"),e.createElement("option",{value:"gtk"},"GTK")),e.createElement(vl,{disabled:this.state.disabled,hidden:!t.gui,label:"Desktop GUI User",help:"Username of user to open desktop GUI window.",type:"text",placeholder:"Enter username",value:t.gui_user,onChange:e=>{this.set("gui_user",e)}})),e.createElement("div",{style:Wh.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.node.id||"None"},{label:"Version",value:t.software_version||"Unknown"},{valueClass:n?"":"bp3-text-intent-danger",label:"Timestamp",value:Lr(this.props.node.timestamp)||"Inactive"},{label:"CPU Units",value:(this.props.node.cpu_units||"Unknown").toString()},{label:"CPU Units Reserved",value:(this.props.node.cpu_units_res||0).toString()},{label:"Memory Units",value:(this.props.node.memory_units||"Unknown").toString()},{label:"Memory Units Reserved",value:(this.props.node.memory_units_res||0).toString()},{label:"Default Interface",value:this.props.node.default_interface||"Unknown"},{label:"Hostname",value:t.hostname||"Unknown"},{label:"Public IPv4",value:s,copy:!0},{label:"Public IPv6",value:i,copy:!0},{label:"Requests",value:this.props.node.requests_min+"/min"}],bars:r}),e.createElement(Hl,{hidden:-1===a.indexOf("hypervisor"),disabled:this.state.disabled,label:"Hypervisor Mode",help:"Hypervisor mode, select KVM if CPU has hardware virtualization support.",value:t.hypervisor,onChange:e=>{this.set("hypervisor",e)}},e.createElement("option",{value:"qemu"},"QEMU"),e.createElement("option",{value:"kvm"},"KVM")),e.createElement(Hl,{hidden:-1===a.indexOf("hypervisor"),disabled:this.state.disabled,label:"Hypervisor VGA Type",help:"Type of VGA card to emulate. Virtio provides the best performance. VMware provides better performance then standard. Virtio is required for UEFI guests.",value:t.vga,onChange:e=>{this.set("vga",e)}},e.createElement("option",{value:"virtio"},"Virtio"),e.createElement("option",{value:"virtio_egl"},"Virtio OpenGL"),e.createElement("option",{value:"vmware"},"VMware"),e.createElement("option",{value:"std"},"Standard")),e.createElement(Hl,{hidden:-1===a.indexOf("hypervisor")||"virtio_egl"!==t.vga,disabled:this.state.disabled||!z,label:"Hypervisor EGL Render",help:"Graphics card to use for EGL rendering.",value:t.vga_render,onChange:e=>{this.set("vga_render",e)}},M),e.createElement("label",{className:"bp3-label",style:Wh.label},"Instance Passthrough Disks",e.createElement(hl,{title:"Instance Direct Disks",content:"Disk devices available to instances for passthrough."}),e.createElement("div",null,f)),e.createElement(Xh,{label:"Add Disk",value:this.state.addDrive,disabled:!v.length||this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addDrive:e})},onSubmit:this.onAddDrive},v),e.createElement("label",{className:"bp3-label"},"Network Roles",e.createElement(hl,{title:"Network Roles",content:"Network roles that will be matched with firewall rules. Network roles are case-sensitive. Only firewall roles without an organization will match."}),e.createElement("div",null,x)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addNetworkRole,onChange:e=>{this.setState({...this.state,addNetworkRole:e})},onSubmit:this.onAddNetworkRole}),e.createElement("label",{className:"bp3-label",style:Wh.label,hidden:"http"===t.protocol},"Certificates",e.createElement(hl,{title:"Certificates",content:"The certificates to use for this nodes web server. The certificates must be valid for all the domains that this node provides access to. This includes the management domain and any service domains."}),e.createElement("div",null,g)),e.createElement(Xh,{hidden:"http"===t.protocol,label:"Add Certificate",value:this.state.addCert,disabled:this.state.disabled||!b,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addCert:e})},onSubmit:this.onAddCert},y),e.createElement(Bh,{disabled:this.state.disabled,label:"Forwarded for header",help:"Enable when using a load balancer. This header value will be used to get the users IP address. It is important to only enable this when a load balancer is used. If it is enabled without a load balancer users can spoof their IP address by providing a value for the header that will not be overwritten by a load balancer. Additionally the nodes firewall should be configured to only accept requests from the load balancer to prevent requests being sent directly to the node bypassing the load balancer.",type:"text",placeholder:"Forwarded for header",value:t.forwarded_for_header,checked:this.state.forwardedChecked,defaultValue:"X-Forwarded-For",onChange:(e,t)=>{let n;n=this.state.changed?{...this.state.node}:{...this.props.node},n.forwarded_for_header=t,this.setState({...this.state,changed:!0,forwardedChecked:e,node:n})}}),e.createElement(Bh,{label:"Forwarded proto header",help:"Enable when using a load balancer. This header value will be used to get the users protocol. This will redirect users to https when the forwarded protocol is http.",type:"text",placeholder:"Forwarded proto header",value:t.forwarded_proto_header,checked:this.state.forwardedProtoChecked,defaultValue:"X-Forwarded-Proto",onChange:(e,t)=>{let n;n=this.state.changed?{...this.state.node}:{...this.props.node},n.forwarded_proto_header=t,this.setState({...this.state,changed:!0,forwardedProtoChecked:e,node:n})}}))),e.createElement(ml,{style:Wh.save,hidden:!this.state.node,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,forwardedChecked:!1,forwardedProtoChecked:!1,node:null})},onSave:this.onSave},e.createElement(Ih,{disabled:this.state.disabled||this.state.changed,node:this.props.node,datacenters:this.props.datacenters,zones:this.props.zones,blocks:this.props.blocks})))}}const Yh={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"}};class Zh extends e.Component{render(){let t=this.props.node;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:Yh.cardOpen},e.createElement(Qh,{node:this.props.node,certificates:this.props.certificates,datacenters:this.props.datacenters,zones:this.props.zones,blocks:this.props.blocks,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n=0!==t.requests_min||0!==t.memory||0!==t.load1||0!==t.load5||0!==t.load15,a={...Yh.card};n||(a.opacity=.6);let s={width:(t.memory||0)+"%"},i={width:(t.hugepages_used||0)+"%",backgroundColor:"#7207d4"},r={width:(t.load1||0)+"%"},o={width:(t.load5||0)+"%"};return e.createElement("div",{className:"bp3-card bp3-row",style:a,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:Yh.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:Yh.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:Yh.nameSpan},t.name))),e.createElement("div",{className:"bp3-cell",style:Yh.item},t.requests_min+"/min"),e.createElement("div",{className:"bp3-cell",style:Yh.item},Hr(t.timestamp)||"Inactive"),e.createElement("div",{className:"bp3-cell",style:Yh.bars},e.createElement("div",{className:"bp3-progress-bar bp3-no-stripes bp3-intent-success",style:Yh.bar},e.createElement("div",{className:"bp3-progress-meter",style:r})),e.createElement("div",{className:"bp3-progress-bar bp3-no-stripes bp3-intent-warning",style:Yh.bar},e.createElement("div",{className:"bp3-progress-meter",style:o})),e.createElement("div",{className:"bp3-progress-bar bp3-no-stripes bp3-intent-primary",style:Yh.barLast,hidden:t.hugepages},e.createElement("div",{className:"bp3-progress-meter",style:s})),e.createElement("div",{className:"bp3-progress-bar bp3-no-stripes",style:Yh.barLast,hidden:!t.hugepages},e.createElement("div",{className:"bp3-progress-meter",style:i}))))}}const qh={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class Jh extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.zones&&this.props.zones.length)for(let n of this.props.zones)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));return e.createElement("div",{className:"layout horizontal wrap",style:qh.filters},e.createElement(ho,{style:qh.input,placeholder:"Node ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:qh.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement(ho,{style:qh.role,placeholder:"Network Role",value:this.props.filter.network_role,onChange:e=>{let t={...this.props.filter};e?t.network_role=e:delete t.network_role,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:qh.type},e.createElement("select",{value:this.props.filter.zone||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.zone:t.zone=n,this.props.onFilter(t)}},t)),e.createElement(uo,{style:qh.check,label:"Admin",checked:this.props.filter.admin,onToggle:()=>{let e={...this.props.filter};void 0===e.admin?e.admin=!0:!0===e.admin?e.admin=!1:delete e.admin,this.props.onFilter(e)}}),e.createElement(uo,{style:qh.check,label:"User",checked:this.props.filter.user,onToggle:()=>{let e={...this.props.filter};void 0===e.user?e.user=!0:!0===e.user?e.user=!1:delete e.user,this.props.onFilter(e)}}),e.createElement(uo,{style:qh.check,label:"Hypervisor",checked:this.props.filter.hypervisor,onToggle:()=>{let e={...this.props.filter};void 0===e.hypervisor?e.hypervisor=!0:!0===e.hypervisor?e.hypervisor=!1:delete e.hypervisor,this.props.onFilter(e)}}))}}const $h={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class ed extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:ph.page,pageCount:ph.pageCount,pages:ph.pages,count:ph.count})},this.state={page:ph.page,pageCount:ph.pageCount,pages:ph.pages,count:ph.count}}componentDidMount(){ph.addChangeListener(this.onChange)}componentWillUnmount(){ph.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{Th(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{Th(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:$h.button,disabled:0===t,type:"button",onClick:()=>{Th(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:$h.button,disabled:t===n-1,type:"button",onClick:()=>{Th(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{Th(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const td={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class nd extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=ph.nodes,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,nodes:e,filter:ph.filter,certificates:fh.certificates,datacenters:gh.datacenters,zones:yh.zones,blocks:wh.blocks,selected:t,opened:a})},this.state={nodes:ph.nodes,filter:ph.filter,certificates:fh.certificates,datacenters:gh.datacenters,zones:yh.zones,blocks:wh.blocks,selected:{},opened:{},lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){ph.addChangeListener(this.onChange),fh.addChangeListener(this.onChange),gh.addChangeListener(this.onChange),yh.addChangeListener(this.onChange),wh.addChangeListener(this.onChange),xh(),Ph(),Hh(),Nh(),Oh(),this.interval=setInterval((()=>{xh(!0)}),1e3)}componentWillUnmount(){ph.removeChangeListener(this.onChange),fh.removeChangeListener(this.onChange),gh.removeChangeListener(this.onChange),yh.removeChangeListener(this.onChange),wh.removeChangeListener(this.onChange),clearInterval(this.interval)}render(){let t=[];this.state.nodes.forEach((n=>{t.push(e.createElement(Zh,{key:n.id,node:n,certificates:this.state.certificates,datacenters:this.state.datacenters,zones:this.state.zones,blocks:this.state.blocks,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.nodes;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";return this.state.filter&&(n+="bp3-active"),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:td.header},e.createElement("h2",{style:td.heading},"Nodes"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:td.buttons},e.createElement("button",{className:n,style:td.button,type:"button",onClick:()=>{null===this.state.filter?Lh({}):Lh(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:td.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All")))),e.createElement(Jh,{filter:this.state.filter,onFilter:e=>{Lh(e)},zones:this.state.zones}),e.createElement("div",{style:td.itemsBox},e.createElement("div",{style:td.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:td.placeholder},e.createElement("td",{colSpan:4,style:td.placeholder})))),e.createElement(ed,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const ad="policy.sync";const sd=new class extends hr{constructor(){super(...arguments),this._policies=Object.freeze([]),this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._policies=Object.freeze([]),this._map={},this.emitChange()}get policies(){return this._policies}get policiesM(){let e=[];return this._policies.forEach((t=>{e.push({...t})})),e}policy(e){let t=this._map[e];return void 0===t?null:this._policies[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{vn.get("/policy").set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===od){if(s)return Ui(i,"Failed to load policies"),void a(s);lr.dispatch({type:ad,data:{policies:i.body}}),n()}else n()}))}))}function hd(){let e=zr();ld=e;let t=(new Nr).loading();return new Promise(((n,a)=>{vn.get("/settings").set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===ld){if(s)return Ui(i,"Failed to sync builds"),void a(s);lr.dispatch({type:id,data:i.body}),n()}else n()}))}))}kr.register((e=>{if("policy.change"===e.type)$i||cd()})),kr.register((e=>{if("settings.change"===e.type)$i||hd()}));const dd={item:{margin:"9px 5px 0 5px",height:"20px"}};class ud extends e.Component{constructor(e,t){super(e,t),this.onAddValue=e=>{if(!e)return;let t=this.clone(),n=[...t.values];-1===n.indexOf(e)&&n.push(e),n.sort(),t.values=n,this.props.onChange(t)},this.state={addValue:""}}clone(){return{...this.props.rule}}onRemoveValue(e){let t=this.clone(),n=[...t.values],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.values=n,this.props.onChange(t))}render(){let t,n,a,s,i,r=this.props.rule;switch(this.props.rule.type){case"operating_system":n="Permitted Operating Systems",a="Operating system policies",i=ar;break;case"browser":n="Permitted Browsers",a="Browser policies",i=sr;break;case"location":n="Permitted Locations",a="Location policies",i=ir;break;case"whitelist_networks":n="Permitted Networks",a="Permitted network policies",s="Add network";break;case"blacklist_networks":n="Blocked Networks",a="Blocked network policies",s="Add network"}let o=[];for(let n in i)i.hasOwnProperty(n)&&(t||(t=n),o.push(e.createElement("option",{key:n,value:n},i[n])));let l,c=[];for(let t of r.values||[])c.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:dd.item,key:t},i&&i[t]||t,e.createElement("button",{className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveValue(t)}})));return l=i?e.createElement(Xh,{hidden:null==r.values,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",value:this.state.addValue,onChange:e=>{this.setState({...this.state,addValue:e})},onSubmit:()=>{this.onAddValue(this.state.addValue||t)}},o):e.createElement(Ll,{hidden:null==r.values,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:s,value:this.state.addValue,onChange:e=>{this.setState({...this.state,addValue:e})},onSubmit:()=>{this.onAddValue(this.state.addValue),this.setState({...this.state,addValue:null})}}),e.createElement("div",null,e.createElement(ul,{label:a,help:"Turn on to enable policy.",checked:null!=r.values,onToggle:()=>{let e=this.clone();e.values=null==r.values?[]:null,this.props.onChange(e)}}),e.createElement(ul,{label:"Disabled user on failure",help:"This will disable the user when the policy check fails. It is generally only useful for the location check to disable a user account when an authentication occurs from a foreign country. It is important to consider that the policy check is the last check that occurs during authentication. An authentication attempt with an incorrect password from a foreign country would not trigger a policy failure or disable the user.",checked:r.disable,hidden:null==r.values,onToggle:()=>{let e=this.clone();e.disable=!e.disable,this.props.onChange(e)}}),e.createElement("label",{className:"bp3-label",hidden:null==r.values},n,e.createElement(hl,{title:n,content:"One of the values must match for the check to pass."}),e.createElement("div",null,c)),l)}}const pd={card:{position:"relative",padding:"10px 10px 0 10px",marginBottom:"5px"},remove:{position:"absolute",top:"5px",right:"5px"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"}};class md extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/policy/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save policy"),void a(e)):void n())))}))}(this.state.policy).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,policy:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/policy/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete policies"),void a(e)):void n())))}))}(this.props.policy.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onAddRole=()=>{let e;e=this.state.changed?{...this.state.policy}:{...this.props.policy};let t=[...e.roles||[]];this.state.addRole&&(-1===t.indexOf(this.state.addRole)&&t.push(this.state.addRole),t.sort(),e.roles=t,this.setState({...this.state,changed:!0,message:"",addRole:"",policy:e}))},this.state={disabled:!1,changed:!1,message:"",policy:null,addRole:null}}set(e,t){let n;n=this.state.changed?{...this.state.policy}:{...this.props.policy},n[e]=t,this.setState({...this.state,changed:!0,policy:n})}setRule(e,t){let n;n=this.state.changed?{...this.state.policy}:{...this.props.policy};let a={...n.rules||{}};null==t.values?delete a[e]:a[e]=t,n.rules=a,this.setState({...this.state,changed:!0,policy:n})}onRemoveRole(e){let t;t=this.state.changed?{...this.state.policy}:{...this.props.policy};let n=[...t.roles||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.roles=n,this.setState({...this.state,changed:!0,message:"",addRole:"",policy:t}))}render(){let t=this.state.policy||this.props.policy,n=[];for(let a of t.roles||[])n.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:pd.item,key:a},a,e.createElement("button",{className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveRole(a)}})));let a=t.rules||{},s=a.operating_system||{type:"operating_system"},i=a.browser||{type:"browser"},r=a.location||{type:"location"},o=a.whitelist_networks||{type:"whitelist_networks"},l=a.blacklist_networks||{type:"blacklist_networks"},c=[],h=[],d=[];if(this.props.providers.length)for(let t of this.props.providers)c.push(t.id),h.push(e.createElement("option",{key:t.id,value:t.id},t.name)),d.push(e.createElement("option",{key:t.id,value:t.id},t.name));else h.push(e.createElement("option",{key:"null",value:""},"None")),d.push(e.createElement("option",{key:"null",value:""},"None"));let u=t.admin_secondary&&-1!==c.indexOf(t.admin_secondary),p=t.user_secondary&&-1!==c.indexOf(t.user_secondary);return e.createElement("div",{className:"bp3-card",style:pd.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:pd.group},e.createElement("div",{style:pd.remove},e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Policy",confirmMsg:"Permanently delete this policy",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of policy",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Policy comment.",placeholder:"Policy comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement("label",{className:"bp3-label"},"Roles",e.createElement(hl,{title:"Roles",content:"Roles associated with this policy. All requests from users with associated roles must pass this policy check."}),e.createElement("div",null,n)),e.createElement(Ll,{buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addRole,onChange:e=>{this.setState({...this.state,addRole:e})},onSubmit:this.onAddRole}),e.createElement(ul,{label:"Admin two-factor authentication",help:"Require admins to use two-factor authentication.",checked:u,onToggle:()=>{if(u)this.set("admin_secondary",null);else{if(0===this.props.providers.length)return void Xi("No two-factor authentication providers exist");this.set("admin_secondary",this.props.providers[0].id)}}}),e.createElement(Hl,{disabled:this.state.disabled,label:"Admin Two-Factor Provider",help:"Two-factor authentication provider that will be used. For users matching multiple policies the first provider will be used.",hidden:!u,value:t.admin_secondary,onChange:e=>{this.set("admin_secondary",e)}},h),e.createElement(ul,{label:"User two-factor authentication",help:"Require users to use two-factor authentication.",checked:p,onToggle:()=>{if(p)this.set("user_secondary",null);else{if(0===this.props.providers.length)return void Xi("No two-factor authentication providers exist");this.set("user_secondary",this.props.providers[0].id)}}}),e.createElement(Hl,{disabled:this.state.disabled,label:"User Two-Factor Provider",help:"Two-factor authentication provider that will be used. For users matching multiple policies the first provider will be used.",hidden:!p,value:t.user_secondary,onChange:e=>{this.set("user_secondary",e)}},d),e.createElement(ud,{rule:o,onChange:e=>{this.setRule("whitelist_networks",e)}}),e.createElement(ud,{rule:l,onChange:e=>{this.setRule("blacklist_networks",e)}})),e.createElement("div",{style:pd.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.policy.id||"None"}]}),e.createElement(ul,{label:"Enabled",help:"Enable or disable policy.",checked:!t.disabled,onToggle:()=>{this.set("disabled",!t.disabled)}}),e.createElement(ud,{rule:r,onChange:e=>{this.setRule("location",e)}}),e.createElement(ud,{rule:s,onChange:e=>{this.setRule("operating_system",e)}}),e.createElement(ud,{rule:i,onChange:e=>{this.setRule("browser",e)}}),e.createElement(ul,{label:"Admin WebAuthn device authentication",help:"Require admins to use WebAuthn device authentication.",checked:t.admin_device_secondary,onToggle:()=>{this.set("admin_device_secondary",!t.admin_device_secondary)}}),e.createElement(ul,{label:"User WebAuthn device authentication",help:"Require users to use WebAuthn device authentication.",checked:t.user_device_secondary,onToggle:()=>{this.set("user_device_secondary",!t.user_device_secondary)}}))),e.createElement(ml,{style:pd.save,hidden:!this.state.policy,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,policy:null})},onSave:this.onSave}))}}const fd={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class vd extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,policies:sd.policies,providers:rd.settings?rd.settings.auth_secondary_providers:[]})},this.state={policies:sd.policies,providers:rd.settings?rd.settings.auth_secondary_providers:[],disabled:!1}}componentDidMount(){sd.addChangeListener(this.onChange),rd.addChangeListener(this.onChange),cd(),hd()}componentWillUnmount(){sd.removeChangeListener(this.onChange),rd.removeChangeListener(this.onChange)}render(){let t=[];return this.state.policies.forEach((n=>{t.push(e.createElement(md,{key:n.id,policy:n,providers:this.state.providers}))})),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:fd.header},e.createElement("h2",{style:fd.heading},"Policies"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:fd.buttons},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:fd.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/policy").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create policy"),void a(e)):void n())))}))}(null).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-filter",title:"No policies",description:"Add a new policy to get started."}))}}let gd;function bd(){let e=zr();gd=e;let t=(new Nr).loading();return new Promise(((n,a)=>{vn.get("/organization").set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===gd){if(s)return Ui(i,"Failed to load organizations"),void a(s);lr.dispatch({type:vr,data:{organizations:i.body}}),n()}else n()}))}))}kr.register((e=>{if("organization.change"===e.type)bd()}));const yd={group:{width:"100%",maxWidth:"310px",marginTop:"5px"},domain:{width:"100%",borderRadius:"0 3px 3px 0"},domainBox:{flex:"1"}};class _d extends e.Component{render(){return e.createElement("div",{className:"bp3-control-group",style:yd.group},e.createElement("div",{style:yd.domainBox},e.createElement("input",{className:"bp3-input",style:yd.domain,disabled:this.props.disabled,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Domain",value:this.props.domain||"",onChange:e=>{this.props.onChange(e.target.value)}})),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",disabled:this.props.disabled,onClick:()=>{this.props.onRemove()}}))}}const wd={card:{position:"relative",padding:"10px 10px 0 10px",marginBottom:"5px"},remove:{position:"absolute",top:"5px",right:"5px"},domain:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"}};class Cd extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/certificate/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save certificate"),void a(e)):void n())))}))}(this.state.certificate).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,certificate:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/certificate/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete certificates"),void a(e)):void n())))}))}(this.props.certificate.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onAddDomain=()=>{let e;e=this.state.changed?{...this.state.certificate}:{...this.props.certificate};let t=[...e.acme_domains,""];e.acme_domains=t,this.setState({...this.state,changed:!0,message:"",addDomain:"",certificate:e})},this.state={disabled:!1,changed:!1,message:"",certificate:null,addDomain:null}}set(e,t){let n;n=this.state.changed?{...this.state.certificate}:{...this.props.certificate},n[e]=t,this.setState({...this.state,changed:!0,certificate:n})}onChangeDomain(e,t){let n;n=this.state.changed?{...this.state.certificate}:{...this.props.certificate};let a=[...n.acme_domains];a[e]=t,n.acme_domains=a,this.setState({...this.state,changed:!0,message:"",certificate:n})}onRemoveDomain(e){let t;t=this.state.changed?{...this.state.certificate}:{...this.props.certificate};let n=[...t.acme_domains];n.splice(e,1),t.acme_domains=n,this.setState({...this.state,changed:!0,message:"",addDomain:"",certificate:t})}render(){let t=this.state.certificate||this.props.certificate,n=this.props.certificate.info||{},a=[];if(a.push(e.createElement("option",{key:"null",value:""},"Node Certificate")),this.props.organizations.length)for(let t of this.props.organizations)a.push(e.createElement("option",{key:t.id,value:t.id},t.name));let s=[];for(let n=0;n{this.onChangeDomain(a,e)},onRemove:()=>{this.onRemoveDomain(a)}}))}return e.createElement("div",{className:"bp3-card",style:wd.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:wd.group},e.createElement("div",{style:wd.remove},e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Certificate",confirmMsg:"Permanently delete this certificate",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of certificate",type:"text",placeholder:"Name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Certificate comment.",placeholder:"Certificate comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(rh,{readOnly:"text"!==t.type,label:"Private Key",help:"Certificate private key in PEM format",placeholder:"Private key",rows:6,value:t.key,onChange:e=>{this.set("key",e)}}),e.createElement(rh,{readOnly:"text"!==t.type,label:"Certificate Chain",help:"Certificate followed by certificate chain in PEM format",placeholder:"Certificate chain",rows:6,value:t.certificate,onChange:e=>{this.set("certificate",e)}}),e.createElement("label",{style:wd.itemsLabel,hidden:"lets_encrypt"!==t.type},"LetsEncrypt Domains",e.createElement(hl,{title:"LetsEncrypt Domains",content:"Enter domain names for the certificate. All domains names must point to a Pritunl Cloud server in the cluster. The servers must also have port 80 publicy open. The port will need to stay open to renew the certificate."})),e.createElement("div",{hidden:"lets_encrypt"!==t.type},s),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",disabled:this.state.disabled||$i,style:wd.itemsAdd,hidden:"lets_encrypt"!==t.type,type:"button",onClick:this.onAddDomain},"Add Domain")),e.createElement("div",{style:wd.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.certificate.id||"None"},{label:"Signature Algorithm",value:n.signature_alg||"Unknown"},{label:"Public Key Algorithm",value:n.public_key_alg||"Unknown"},{label:"Issuer",value:n.issuer||"Unknown"},{label:"Issued On",value:Lr(n.issued_on)||"Unknown"},{label:"Expires On",value:Lr(n.expires_on)||"Unknown"},{label:"DNS Names",value:n.dns_names||"Unknown"}]}),e.createElement(Hl,{label:"Type",disabled:this.state.disabled||$i,help:"Certificate type, use text to provide a certificate. LetsEncrypt provides free certificates that automatically renew.",value:t.type,onChange:e=>{this.set("type",e)}},e.createElement("option",{value:"text"},"Text"),e.createElement("option",{value:"lets_encrypt"},"LetsEncrypt")),e.createElement(Hl,{disabled:this.state.disabled,hidden:$i,label:"Organization",help:"Organization for certificate. Select node to create a certificate for nodes. Load balancers in the same organization will have access to this certificate.",value:t.organization,onChange:e=>{this.set("organization",e)}},a))),e.createElement(ml,{style:wd.save,hidden:!this.state.certificate,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,certificate:null})},onSave:this.onSave}))}}const Ed={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"},noCerts:{height:"auto"}};class Sd extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,certificates:fh.certificates,organizations:gr.organizations})},this.state={certificates:fh.certificates,organizations:gr.organizations,disabled:!1}}componentDidMount(){fh.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),Ph(),bd()}componentWillUnmount(){fh.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[];return this.state.certificates.forEach((n=>{t.push(e.createElement(Cd,{key:n.id,certificate:n,organizations:this.state.organizations}))})),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Ed.header},e.createElement("h2",{style:Ed.heading},"Certificates"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Ed.buttons},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:Ed.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/certificate").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create certificate"),void a(e)):void n())))}))}(null).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-endorsed",title:"No certificates",description:"Add a new certificate to get started."}))}}const kd={card:{position:"relative",padding:"10px 10px 0 10px",marginBottom:"5px"},remove:{position:"absolute",top:"5px",right:"5px"},role:{margin:"9px 5px 0 5px",height:"20px"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"}};class zd extends e.Component{constructor(e,t){super(e,t),this.onAddRole=()=>{let e;e=this.state.changed?{...this.state.organization}:{...this.props.organization};let t=[...e.roles];this.state.addRole&&(-1===t.indexOf(this.state.addRole)&&t.push(this.state.addRole),t.sort(),e.roles=t,this.setState({...this.state,changed:!0,message:"",addRole:"",organization:e}))},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/organization/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save organization"),void a(e)):void n())))}))}(this.state.organization).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,organization:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/organization/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete organizations"),void a(e)):void n())))}))}(this.props.organization.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",addRole:"",organization:null}}set(e,t){let n;n=this.state.changed?{...this.state.organization}:{...this.props.organization},n[e]=t,this.setState({...this.state,changed:!0,organization:n})}onRemoveRole(e){let t;t=this.state.changed?{...this.state.organization}:{...this.props.organization};let n=[...t.roles],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.roles=n,this.setState({...this.state,changed:!0,message:"",addRole:"",organization:t}))}render(){let t=this.state.organization||this.props.organization,n=[];for(let a of t.roles||[])n.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:kd.role,key:a},a,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveRole(a)}})));return e.createElement("div",{className:"bp3-card",style:kd.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:kd.group},e.createElement("div",{style:kd.remove},e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Organization",confirmMsg:"Permanently delete this organization",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of organization",type:"text",placeholder:"Name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Organization comment.",placeholder:"Organization comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}})),e.createElement("div",{style:kd.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.organization.id||"None"}]}),e.createElement("label",{className:"bp3-label"},"Roles",e.createElement(hl,{title:"Roles",content:"User roles will be used to match with organization roles. A user must have a matching role to access an organization."}),e.createElement("div",null,n)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addRole,onChange:e=>{this.setState({...this.state,addRole:e})},onSubmit:this.onAddRole}))),e.createElement(ml,{style:kd.save,hidden:!this.state.organization,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,organization:null})},onSave:this.onSave}))}}const Md={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"},noCerts:{height:"auto"}};class xd extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,organizations:gr.organizations})},this.state={organizations:gr.organizations,disabled:!1}}componentDidMount(){gr.addChangeListener(this.onChange),bd()}componentWillUnmount(){gr.removeChangeListener(this.onChange)}render(){let t=[];return this.state.organizations.forEach((n=>{t.push(e.createElement(zd,{key:n.id,organization:n}))})),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Md.header},e.createElement("h2",{style:Md.heading},"Organizations"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Md.buttons},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:Md.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/organization").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create organization"),void a(e)):void n())))}))}(null).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-people",title:"No organizations",description:"Add a new organization to get started."}))}}const Ad="storage.sync";const Td=new class extends hr{constructor(){super(...arguments),this._storages=Object.freeze([]),this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._storages=Object.freeze([]),this._map={},this.emitChange()}get storages(){return this._storages}get storagesM(){let e=[];return this._storages.forEach((t=>{e.push({...t})})),e}storage(e){let t=this._map[e];return void 0===t?null:this._storages[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{vn.get("/storage").set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Ld){if(s)return Ui(i,"Failed to load storages"),void a(s);lr.dispatch({type:Ad,data:{storages:i.body}}),n()}else n()}))}))}function Hd(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/storage/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save storage"),void a(e)):void n())))}))}kr.register((e=>{if("storage.change"===e.type)$i||Pd()}));const Nd={card:{position:"relative",padding:"10px 10px 0 10px",marginBottom:"5px"},remove:{position:"absolute",top:"5px",right:"5px"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"}};class Od extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/datacenter/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save datacenter"),void a(e)):void n())))}))}(this.state.datacenter).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,datacenter:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/datacenter/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete datacenters"),void a(e)):void n())))}))}(this.props.datacenter.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onAddStorage=()=>{let e;if(!this.state.addStorage&&!this.props.storages.length)return;let t=this.state.addStorage||this.props.storages[0].id;e=this.state.changed?{...this.state.datacenter}:{...this.props.datacenter};let n=[...e.public_storages||[]];-1===n.indexOf(t)&&n.push(t),n.sort(),e.public_storages=n,this.setState({...this.state,changed:!0,datacenter:e})},this.onRemoveStorage=e=>{let t;t=this.state.changed?{...this.state.datacenter}:{...this.props.datacenter};let n=[...t.public_storages||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.public_storages=n,this.setState({...this.state,changed:!0,datacenter:t}))},this.onAddOrganization=()=>{let e;if(!this.state.addOrganization&&!this.props.organizations.length)return;let t=this.state.addOrganization||this.props.organizations[0].id;e=this.state.changed?{...this.state.datacenter}:{...this.props.datacenter};let n=[...e.organizations||[]];-1===n.indexOf(t)&&n.push(t),n.sort(),e.organizations=n,this.setState({...this.state,changed:!0,datacenter:e})},this.onRemoveOrganization=e=>{let t;t=this.state.changed?{...this.state.datacenter}:{...this.props.datacenter};let n=[...t.organizations||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.organizations=n,this.setState({...this.state,changed:!0,datacenter:t}))},this.state={disabled:!1,changed:!1,message:"",datacenter:null,addStorage:"",addOrganization:null}}set(e,t){let n;n=this.state.changed?{...this.state.datacenter}:{...this.props.datacenter},n[e]=t,this.setState({...this.state,changed:!0,datacenter:n})}toggle(e){let t;t=this.state.changed?{...this.state.datacenter}:{...this.props.datacenter},t[e]=!t[e],this.setState({...this.state,changed:!0,datacenter:t})}render(){let t=this.state.datacenter||this.props.datacenter,n=[];for(let a of t.organizations||[]){let t=gr.organization(a);t&&n.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Nd.item,key:t.id},t.name,e.createElement("button",{className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveOrganization(t.id)}})))}let a=[];if(this.props.organizations.length)for(let t of this.props.organizations)a.push(e.createElement("option",{key:t.id,value:t.id},t.name));else a.push(e.createElement("option",{key:"null",value:""},"None"));let s=[];for(let n of t.public_storages||[]){let t=Td.storage(n);t&&s.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Nd.item,key:t.id},t.name,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveStorage(t.id)}})))}let i=!1,r=[e.createElement("option",{key:"null",value:""},"None")],o=[e.createElement("option",{key:"null",value:""},"None")],l=[];if(this.props.storages.length)for(let t of this.props.storages)"public"===t.type?(i=!0,l.push(e.createElement("option",{key:t.id,value:t.id},t.name))):"private"===t.type&&(r.push(e.createElement("option",{key:t.id,value:t.id},t.name)),o.push(e.createElement("option",{key:t.id,value:t.id},t.name)));return i||l.push(e.createElement("option",{key:"null",value:""},"No Storages")),e.createElement("div",{className:"bp3-card",style:Nd.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Nd.group},e.createElement("div",{style:Nd.remove},e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Datacenter",confirmMsg:"Permanently delete this datacenter",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{disabled:this.state.disabled,label:"Name",help:"Name of datacenter",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Datacenter comment.",placeholder:"Datacenter comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Hl,{disabled:this.state.disabled,label:"Private Storage",help:"Private storage that will store instance snapshots.",value:t.private_storage,onChange:e=>{this.set("private_storage",e)}},r),e.createElement(Hl,{disabled:this.state.disabled,label:"Private Storage Class",help:"Private storage class to use when upload new objects.",value:t.private_storage_class,onChange:e=>{this.set("private_storage_class",e)}},e.createElement("option",{value:""},"Default"),e.createElement("option",{value:"aws_standard"},"AWS Standard"),e.createElement("option",{value:"aws_infrequent_access"},"AWS Standard-IA"),e.createElement("option",{value:"aws_glacier"},"AWS Glacier")),e.createElement(Hl,{disabled:this.state.disabled,label:"Backup Storage",help:"Backup storage that will store instance backups.",value:t.backup_storage,onChange:e=>{this.set("backup_storage",e)}},o),e.createElement(Hl,{disabled:this.state.disabled,label:"Backup Storage Class",help:"Backup storage class to use when upload new objects.",value:t.backup_storage_class,onChange:e=>{this.set("backup_storage_class",e)}},e.createElement("option",{value:""},"Default"),e.createElement("option",{value:"aws_standard"},"AWS Standard"),e.createElement("option",{value:"aws_infrequent_access"},"AWS Standard-IA"),e.createElement("option",{value:"aws_glacier"},"AWS Glacier"))),e.createElement("div",{style:Nd.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.datacenter.id||"None"}]}),e.createElement("label",{className:"bp3-label",style:Nd.label},"Public Storages",e.createElement(hl,{title:"Public Storages",content:"Public storages that can be used for new instance images."}),e.createElement("div",null,s)),e.createElement(Xh,{label:"Add Storage",value:this.state.addStorage,disabled:!i||this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addStorage:e})},onSubmit:this.onAddStorage},l),e.createElement(ul,{label:"Match organizations",help:"Limit what organizations can access this datacenter, by default all organizations will have access.",checked:t.match_organizations,onToggle:()=>{this.toggle("match_organizations")}}),e.createElement("label",{className:"bp3-label",style:Nd.label,hidden:!t.match_organizations},"Organizations",e.createElement(hl,{title:"Organizations",content:"Organizations that can access this zone."}),e.createElement("div",null,n)),e.createElement(Xh,{label:"Add Organization",value:this.state.addOrganization,disabled:!this.props.organizations.length,hidden:!t.match_organizations,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addOrganization:e})},onSubmit:this.onAddOrganization},a))),e.createElement(ml,{style:Nd.save,hidden:!this.state.datacenter,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,datacenter:null})},onSave:this.onSave}))}}const Vd={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"},noCerts:{height:"auto"}};class Dd extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,datacenters:gh.datacenters,storages:Td.storages,organizations:gr.organizations})},this.state={datacenters:gh.datacenters,storages:Td.storages,organizations:gr.organizations,disabled:!1}}componentDidMount(){gh.addChangeListener(this.onChange),Td.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),Hh(),Pd(),bd()}componentWillUnmount(){gh.removeChangeListener(this.onChange),Td.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[];return this.state.datacenters.forEach((n=>{t.push(e.createElement(Od,{key:n.id,datacenter:n,storages:this.state.storages,organizations:this.state.organizations}))})),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Vd.header},e.createElement("h2",{style:Vd.heading},"Datacenters"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Vd.buttons},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:Vd.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/datacenter").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create datacenter"),void a(e)):void n())))}))}(null).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-cloud",title:"No datacenters",description:"Add a new datacenter to get started."}))}}const Id="alert.sync",Rd="alert.traverse",Bd="alert.filter";const Fd=new class extends hr{constructor(){super(...arguments),this._alerts=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}get alerts(){return this._alerts}get alertsM(){let e=[];return this._alerts.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}alert(e){let t=this._map[e];return void 0===t?null:this._alerts[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}authority(e){let t=this._map[e];return void 0===t?null:this._authorities[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/alert").query({...Fd.filter,page:Fd.page,page_count:Fd.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===jd){if(s)return Ui(i,"Failed to load alerts"),void a(s);lr.dispatch({type:Id,data:{alerts:i.body.alerts,count:i.body.count}}),n()}else n()}))}))}function Yd(e){return lr.dispatch({type:Rd,data:{page:e}}),Qd()}function Zd(e){return lr.dispatch({type:Bd,data:{filter:e}}),Qd()}function qd(e){let t,n=zr();return Wd=n,e||(t=(new Nr).loading()),new Promise(((e,a)=>{vn.get("/authority").query({...Gd.filter,page:Gd.page,page_count:Gd.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===Wd){if(s)return Ui(i,"Failed to load authorities"),void a(s);lr.dispatch({type:Xd,data:{authorities:i.body.authorities,count:i.body.count}}),e()}else e()}))}))}function Jd(e){return lr.dispatch({type:Kd,data:{page:e}}),qd()}function $d(e){return lr.dispatch({type:Ud,data:{filter:e}}),qd()}kr.register((e=>{if("alert.change"===e.type)Qd()})),kr.register((e=>{if("authority.change"===e.type)$i||qd()}));const eu={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},remove:{position:"absolute",top:"5px",right:"5px"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"250px",margin:"0 10px"},controlButton:{marginRight:"10px"},save:{paddingBottom:"10px"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},header:{fontSize:"20px",marginTop:"-10px",paddingBottom:"2px",marginBottom:"10px",borderBottomStyle:"solid"},heading:{margin:"19px 0 0 0"},alertsButtons:{marginTop:"8px"},alertsAdd:{margin:"8px 0 0 8px"}};class tu extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/alert/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save alert"),void a(e)):void n())))}))}(this.state.alert).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,alert:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/alert/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>{if(t.done(),e)return Ui(s,"Failed to delete alerts"),void a(e);n()}))}))}(this.props.alert.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onAddRole=()=>{let e;e=this.state.changed?{...this.state.alert}:{...this.props.alert};let t=[...e.roles];this.state.addRole&&(-1===t.indexOf(this.state.addRole)&&t.push(this.state.addRole),t.sort(),e.roles=t,this.setState({...this.state,changed:!0,message:"",addRole:"",alert:e}))},this.onAddIgnore=()=>{let e;e=this.state.changed?{...this.state.alert}:{...this.props.alert};let t=[...e.ignores||[]];this.state.addIgnore&&(-1===t.indexOf(this.state.addIgnore)&&t.push(this.state.addIgnore),t.sort(),e.ignores=t,this.setState({...this.state,changed:!0,message:"",addIgnore:"",alert:e}))},this.state={disabled:!1,changed:!1,message:"",addRole:"",addIgnore:"",alert:null}}set(e,t){let n;n=this.state.changed?{...this.state.alert}:{...this.props.alert},n[e]=t,this.setState({...this.state,changed:!0,alert:n})}onRemoveRole(e){let t;t=this.state.changed?{...this.state.alert}:{...this.props.alert};let n=[...t.roles],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.roles=n,this.setState({...this.state,changed:!0,message:"",addRole:"",alert:t}))}onRemoveIgnore(e){let t;t=this.state.changed?{...this.state.alert}:{...this.props.alert};let n=[...t.ignores||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.ignores=n,this.setState({...this.state,changed:!0,message:"",addIgnore:"",alert:t}))}render(){let t=this.state.alert||this.props.alert,n=[];if(n.push(e.createElement("option",{key:"null",value:""},"Node Firewall")),this.props.organizations.length)for(let t of this.props.organizations)n.push(e.createElement("option",{key:t.id,value:t.id},t.name));let a=[{label:"ID",value:this.props.alert.id||"None"}],s=[];for(let n of t.roles)s.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:eu.item,key:n},n,e.createElement("button",{className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveRole(n)}})));let i=[];for(let n of t.ignores||[])i.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:eu.item,key:n},n,e.createElement("button",{className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveRole(n)}})));let r=!1,o=!1,l="",c="";switch(t.resource){case"system_cpu_level":r=!0,l="Usage Threshold",c="Maximum percent CPU usage as integer before alert is triggered.";break;case"system_memory_level":r=!0,l="Usage Threshold",c="Maximum percent memory usage as integer before alert is triggered.";break;case"system_swap_level":r=!0,l="Usage Threshold",c="Maximum percent swap usage as integer before alert is triggered.";break;case"system_hugepages_level":r=!0,l="Usage Threshold",c="Maximum percent hugepages usage as integer before alert is triggered.";break;case"disk_usage_level":r=!0,l="Usage Threshold",c="Maximum percent disk space usage as integer before alert is triggered.";break;case"kmsg_keyword":o=!0,l="Dmesg Keyword Match",c="Case insensitive dmesg match string to trigger alert."}return e.createElement("td",{className:"bp3-cell",colSpan:2,style:eu.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:eu.group},e.createElement("div",{className:"layout horizontal tab-close",style:eu.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox",style:eu.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Alert",confirmMsg:"Permanently delete this alert",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{disabled:this.state.disabled,label:"Name",help:"Name of alert",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement("label",{className:"bp3-label"},"Roles",e.createElement(hl,{title:"Roles",content:"The user roles that will be allowed access to this alert. At least one role must match for the user to access the alert."}),e.createElement("div",null,s)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addRole,onChange:e=>{this.setState({...this.state,addRole:e})},onSubmit:this.onAddRole}),e.createElement(Hl,{disabled:this.state.disabled,label:"Alert Type",help:"Type of alert",value:t.resource,onChange:e=>{this.set("resource",e)}},e.createElement("option",{value:"instance_offline"},"Instance Offline")),e.createElement("label",{className:"bp3-label",hidden:!0},"",e.createElement(hl,{title:"",content:""}),e.createElement("div",null,i)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add ignore",value:this.state.addIgnore,hidden:!0,onChange:e=>{this.setState({...this.state,addIgnore:e})},onSubmit:this.onAddIgnore})),e.createElement("div",{style:eu.group},e.createElement(Bo,{fields:a}),e.createElement(Hl,{disabled:this.state.disabled,hidden:$i,label:"Organization",help:"Organization for alert, both the organaization and role must match. Select node firewall to match node network roles.",value:t.organization,onChange:e=>{this.set("organization",e)}},n),e.createElement(vl,{disabled:this.state.disabled,label:l,help:c,type:"text",placeholder:"Default",value:t.value_int,hidden:!r,onChange:e=>{this.set("value_int",parseInt(e,10))}}),e.createElement(vl,{disabled:this.state.disabled,label:l,help:c,type:"text",placeholder:"Default",value:t.value_str,hidden:!o,onChange:e=>{this.set("value_str",e)}}),e.createElement(Hl,{disabled:this.state.disabled,label:"Alert Level",help:"Level of alert, used for matching device notifications. An endpoint role must also match a user role for ntofications.",value:(t.level||0).toString(),onChange:e=>{this.set("level",parseInt(e,10))}},e.createElement("option",{value:"1"},"Low"),e.createElement("option",{value:"5"},"Medium"),e.createElement("option",{value:"10"},"High")),e.createElement(vl,{disabled:this.state.disabled,label:"Alert Frequency",help:"Minimum duration in seconds between repeat alerts.",type:"text",placeholder:"Enter frequency",value:t.frequency,onChange:e=>{this.set("frequency",parseInt(e,10))}}))),e.createElement(ml,{style:eu.save,hidden:!this.state.alert&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,alert:null})},onSave:this.onSave}))}}const nu={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},icon:{marginRight:"3px"},tag:{margin:"8px 5px 0 5px",height:"20px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"}};class au extends e.Component{render(){let t=this.props.alert;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:nu.cardOpen},e.createElement(tu,{alert:this.props.alert,organizations:this.props.organizations,authorities:this.props.authorities,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n={...nu.card},a=[];for(let n of t.roles)a.push(e.createElement("div",{className:"bp3-tag bp3-intent-primary",style:nu.tag,key:n},n));return e.createElement("div",{className:"bp3-card bp3-row",style:n,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:nu.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:nu.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:nu.nameSpan},t.name))),e.createElement("div",{className:"flex bp3-cell",style:nu.roles},a))}}const su={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class iu extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){return null===this.props.filter?e.createElement("div",null):e.createElement("div",{className:"layout horizontal wrap",style:su.filters},e.createElement(ho,{style:su.input,placeholder:"Alert ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:su.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement(ho,{style:su.role,placeholder:"Role",value:this.props.filter.role,onChange:e=>{let t={...this.props.filter};e?t.role=e:delete t.role,this.props.onFilter(t)}}))}}const ru={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class ou extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:Fd.page,pageCount:Fd.pageCount,pages:Fd.pages,count:Fd.count})},this.state={page:Fd.page,pageCount:Fd.pageCount,pages:Fd.pages,count:Fd.count}}componentDidMount(){Fd.addChangeListener(this.onChange)}componentWillUnmount(){Fd.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{Yd(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{Yd(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:ru.button,disabled:0===t,type:"button",onClick:()=>{Yd(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:ru.button,disabled:t===n-1,type:"button",onClick:()=>{Yd(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{Yd(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const lu={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class cu extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=Fd.alerts,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,alerts:e,filter:Fd.filter,authorities:Gd.authorities,organizations:gr.organizations,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/alert").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete alerts"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={alerts:Fd.alerts,filter:Fd.filter,authorities:Gd.authorities,organizations:gr.organizations,selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){Fd.addChangeListener(this.onChange),Gd.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),Qd(),qd()}componentWillUnmount(){Fd.removeChangeListener(this.onChange),Gd.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[];this.state.alerts.forEach((n=>{t.push(e.createElement(au,{key:n.id,alert:n,authorities:this.state.authorities,organizations:this.state.organizations,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.alerts;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(n+="bp3-active");let a=[];for(let e of Object.keys(this.state.selected)){let t=Fd.alert(e);t?a.push(t.name||e):a.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:lu.header},e.createElement("h2",{style:lu.heading},"Alerts"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:lu.buttons},e.createElement("button",{className:n,style:lu.button,type:"button",onClick:()=>{null===this.state.filter?Zd({}):Zd(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:lu.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:lu.button,confirmMsg:"Permanently delete the selected alerts",confirmInput:!0,items:a,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete}),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:lu.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/alert").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create alert"),void a(e)):void n())))}))}({id:null}).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement(iu,{filter:this.state.filter,onFilter:e=>{Zd(e)},authorities:this.state.authorities}),e.createElement("div",{style:lu.itemsBox},e.createElement("div",{style:lu.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:lu.placeholder},e.createElement("td",{colSpan:5,style:lu.placeholder})))),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-notifications",title:"No alerts",description:"Add a new alert to get started."}),e.createElement(ou,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const hu={card:{position:"relative",padding:"10px 10px 0 10px",marginBottom:"5px"},remove:{position:"absolute",top:"5px",right:"5px"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"}};class du extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/zone/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save zone"),void a(e)):void n())))}))}(this.state.zone).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,zone:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/zone/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete zones"),void a(e)):void n())))}))}(this.props.zone.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",zone:null,addCert:null,forwardedChecked:!1}}set(e,t){let n;n=this.state.changed?{...this.state.zone}:{...this.props.zone},n[e]=t,this.setState({...this.state,changed:!0,zone:n})}render(){let t=this.state.zone||this.props.zone,n=gh.datacenter(this.props.zone.datacenter);return e.createElement("div",{className:"bp3-card",style:hu.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:hu.group},e.createElement("div",{style:hu.remove},e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Zone",confirmMsg:"Permanently delete this zone",confirmInput:!0,disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of zone",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Zone comment.",placeholder:"Zone comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Hl,{disabled:this.state.disabled,label:"Network Mode",help:"Network mode for internal VPC networking. If layer 2 networking with VLAN support isn't available VXLan must be used. A network bridge is required for the node internal interfaces when using default. Other zones in datacenter must use same network mode to support connectivity between zones.",value:t.network_mode,onChange:e=>{this.set("network_mode",e)}},e.createElement("option",{value:"default"},"Default"),e.createElement("option",{value:"vxlan_vlan"},"VXLAN"))),e.createElement("div",{style:hu.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.zone.id||"None"},{label:"Datacenter",value:n?n.name:this.props.zone.datacenter||"None"}]}))),e.createElement(ml,{style:hu.save,hidden:!this.state.zone,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,forwardedChecked:!1,zone:null})},onSave:this.onSave}))}}const uu={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},group:{margin:"15px 0 0 0",width:"220px"},select:{width:"100%",borderTopLeftRadius:"3px",borderBottomLeftRadius:"3px"},selectInner:{width:"100%"},selectBox:{flex:"1"}};class pu extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,zones:yh.zones,datacenters:gh.datacenters})},this.state={zones:yh.zones,datacenters:gh.datacenters,datacenter:"",disabled:!1}}componentDidMount(){yh.addChangeListener(this.onChange),gh.addChangeListener(this.onChange),Nh(),Hh()}componentWillUnmount(){yh.removeChangeListener(this.onChange),gh.removeChangeListener(this.onChange)}render(){let t=[];this.state.zones.forEach((n=>{t.push(e.createElement(du,{key:n.id,zone:n}))}));let n=!1,a=[];if(this.state.datacenters.length){n=!0;for(let t of this.state.datacenters)a.push(e.createElement("option",{key:t.id,value:t.id},t.name))}else a.push(e.createElement("option",{key:"null",value:""},"No Datacenters"));return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:uu.header},e.createElement("h2",{style:uu.heading},"Zones"),e.createElement("div",{className:"flex"}),e.createElement("div",null,e.createElement("div",{className:"bp3-control-group",style:uu.group},e.createElement("div",{style:uu.selectBox},e.createElement("div",{className:"bp3-select",style:uu.select},e.createElement("select",{style:uu.selectInner,disabled:!n||this.state.disabled,value:this.state.datacenter,onChange:e=>{this.setState({...this.state,datacenter:e.target.value})}},a))),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",disabled:!n||this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/zone").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create zone"),void a(e)):void n())))}))}({id:null,network_mode:"vxlan_vlan",datacenter:this.state.datacenter||this.state.datacenters[0].id}).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New"))))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-layout-circle",title:"No zones",description:"Add a new zone to get started."}))}}const mu={card:{position:"relative",padding:"10px 10px 0 10px",marginBottom:"5px"},remove:{position:"absolute",top:"5px",right:"5px"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},controlButton:{marginRight:"10px"}};class fu extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),Vh(this.state.block).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,block:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onSync=()=>{this.setState({...this.state,disabled:!0}),Vh(this.props.block).then((()=>{this.setState({...this.state,disabled:!1}),Fi("Block sync started")})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/block/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete blocks"),void a(e)):void n())))}))}(this.props.block.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onAddSubnet=()=>{let e;if(!this.state.addSubnet)return;e=this.state.changed?{...this.state.block}:{...this.props.block};let t=[...e.subnets||[]],n=this.state.addSubnet.trim();-1===t.indexOf(n)&&t.push(n),t.sort(),e.subnets=t,this.setState({...this.state,changed:!0,message:"",addSubnet:"",block:e})},this.onRemoveSubnet=e=>{let t;t=this.state.changed?{...this.state.block}:{...this.props.block};let n=[...t.subnets||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.subnets=n,this.setState({...this.state,changed:!0,message:"",block:t}))},this.onAddSubnet6=()=>{let e;if(!this.state.addSubnet6)return;e=this.state.changed?{...this.state.block}:{...this.props.block};let t=[...e.subnets6||[]],n=this.state.addSubnet6.trim();-1===t.indexOf(n)&&t.push(n),t.sort(),e.subnets6=t,this.setState({...this.state,changed:!0,message:"",addSubnet6:"",block:e})},this.onRemoveSubnet6=e=>{let t;t=this.state.changed?{...this.state.block}:{...this.props.block};let n=[...t.subnets6||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.subnets6=n,this.setState({...this.state,changed:!0,message:"",block:t}))},this.onAddExclude=()=>{let e;if(!this.state.addExclude)return;e=this.state.changed?{...this.state.block}:{...this.props.block};let t=[...e.excludes||[]],n=this.state.addExclude.trim();-1===t.indexOf(n)&&t.push(n),t.sort(),e.excludes=t,this.setState({...this.state,changed:!0,message:"",addExclude:"",block:e})},this.onRemoveExclude=e=>{let t;t=this.state.changed?{...this.state.block}:{...this.props.block};let n=[...t.excludes||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.excludes=n,this.setState({...this.state,changed:!0,message:"",block:t}))},this.state={disabled:!1,changed:!1,message:"",addSubnet:"",addSubnet6:"",addExclude:"",block:null}}set(e,t){let n;n=this.state.changed?{...this.state.block}:{...this.props.block},n[e]=t,this.setState({...this.state,changed:!0,block:n})}render(){let t=this.state.block||this.props.block,n=[];for(let a of t.subnets||[])n.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:mu.item,key:a},a,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveSubnet(a)}})));let a=[];for(let n of t.subnets6||[])a.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:mu.item,key:n},n,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveSubnet6(n)}})));let s=[];for(let n of t.excludes||[])s.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:mu.item,key:n},n,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveExclude(n)}})));return e.createElement("div",{className:"bp3-card",style:mu.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:mu.group},e.createElement("div",{style:mu.remove},e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Block",confirmMsg:"Permanently delete this block",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{disabled:this.state.disabled,label:"Name",help:"Name of IP block",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Block comment.",placeholder:"Block comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Hl,{disabled:this.state.disabled,label:"Network Mode",help:"Network mode IP block.",value:t.type,onChange:e=>{this.set("type",e)}},e.createElement("option",{value:"ipv4"},"IPv4"),e.createElement("option",{value:"ipv6"},"IPv6")),e.createElement(vl,{disabled:this.state.disabled,hidden:"ipv6"===t.type,label:"Netmask",help:"Netmask of IP block",type:"text",placeholder:"Enter netmask",value:t.netmask,onChange:e=>{this.set("netmask",e)}}),e.createElement("label",{className:"bp3-label",hidden:"ipv6"===t.type},"IP Addresses",e.createElement(hl,{title:"IP Addresses",content:"IP addresses that are available for instances."}),e.createElement("div",null,n)),e.createElement(Ll,{disabled:this.state.disabled,hidden:"ipv6"===t.type,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add addresses",value:this.state.addSubnet,onChange:e=>{this.setState({...this.state,addSubnet:e})},onSubmit:this.onAddSubnet}),e.createElement("label",{className:"bp3-label",hidden:"ipv6"!==t.type},"IPv6 Addresses",e.createElement(hl,{title:"IPv6 Addresses",content:"IPv6 addresses that are available for instances."}),e.createElement("div",null,a)),e.createElement(Ll,{disabled:this.state.disabled,hidden:"ipv6"!==t.type,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add addresses",value:this.state.addSubnet6,onChange:e=>{this.setState({...this.state,addSubnet6:e})},onSubmit:this.onAddSubnet6})),e.createElement("div",{style:mu.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.block.id||"None"}]}),e.createElement(vl,{disabled:this.state.disabled,hidden:"ipv6"===t.type,label:"Gateway",help:"Gateway address of IP block",type:"text",placeholder:"Enter gateway",value:t.gateway,onChange:e=>{this.set("gateway",e)}}),e.createElement(vl,{disabled:this.state.disabled,hidden:"ipv6"!==t.type,label:"IPv6 Gateway",help:"Gateway address of IPv6 block",type:"text",placeholder:"Enter IPv6 gateway",value:t.gateway6,onChange:e=>{this.set("gateway6",e)}}),e.createElement("label",{className:"bp3-label",hidden:"ipv6"===t.type},"IP Excludes",e.createElement(hl,{title:"IP Excludes",content:"IP addresses that are excluded from block. Add host or other reserved addresses here."}),e.createElement("div",null,s)),e.createElement(Ll,{disabled:this.state.disabled,hidden:"ipv6"===t.type,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add exclude",value:this.state.addExclude,onChange:e=>{this.setState({...this.state,addExclude:e})},onSubmit:this.onAddExclude}))),e.createElement(ml,{style:mu.save,hidden:!this.state.block,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,block:null})},onSave:this.onSave}))}}const vu={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"},noCerts:{height:"auto"}};class gu extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,blocks:wh.blocks})},this.state={blocks:wh.blocks,disabled:!1}}componentDidMount(){wh.addChangeListener(this.onChange),Oh()}componentWillUnmount(){wh.removeChangeListener(this.onChange)}render(){let t=[];return this.state.blocks.forEach((n=>{t.push(e.createElement(fu,{key:n.id,block:n}))})),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:vu.header},e.createElement("h2",{style:vu.heading},"Blocks"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:vu.buttons},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:vu.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/block").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create block"),void a(e)):void n())))}))}(null).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-ip-address",title:"No IP blocks",description:"Add a new IP block to get started."}))}}const bu="vpc.sync",yu="vpc.sync_names",_u="vpc.traverse",wu="vpc.filter";const Cu=new class extends hr{constructor(){super(...arguments),this._vpcs=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._vpcs=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get vpcs(){return this._vpcs}get vpcsM(){let e=[];return this._vpcs.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}vpc(e){let t=this._map[e];return void 0===t?null:this._vpcs[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/vpc").query({...Cu.filter,page:Cu.page,page_count:Cu.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===Eu){if(s)return Ui(i,"Failed to load vpcs"),void a(s);lr.dispatch({type:bu,data:{vpcs:i.body.vpcs,count:i.body.count}}),e()}else e()}))}))}function zu(e){return lr.dispatch({type:_u,data:{page:e}}),ku()}function Mu(e){return lr.dispatch({type:wu,data:{filter:e}}),ku()}kr.register((e=>{if("vpc.change"===e.type)ku()}));const xu={group:{width:"100%",maxWidth:"310px",marginTop:"5px"},input:{width:"100%"},inputBox:{flex:"1"}};class Au extends e.Component{clone(){return{...this.props.route}}render(){let t=this.props.route;return e.createElement("div",null,e.createElement("div",{className:"bp3-control-group",style:xu.group},e.createElement("div",{style:xu.inputBox},e.createElement("input",{className:"bp3-input",style:xu.input,disabled:this.props.disabled,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Destination",value:t.destination||"",onChange:e=>{let t=this.clone();t.destination=e.target.value,this.props.onChange(t)}})),e.createElement("div",{style:xu.inputBox},e.createElement("input",{className:"bp3-input",style:xu.input,disabled:this.props.disabled,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Target",value:t.target||"",onChange:e=>{let t=this.clone();t.target=e.target.value,this.props.onChange(t)}})),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",disabled:this.props.disabled,onClick:()=>{this.props.onRemove()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-success bp3-icon-add",onClick:()=>{this.props.onAdd()}})))}}const Tu={group:{width:"100%",maxWidth:"310px",marginTop:"5px"},input:{width:"100%"},inputBox:{flex:"1"}};class Lu extends e.Component{clone(){return{...this.props.subnet}}render(){let t=this.props.subnet;return e.createElement("div",null,e.createElement("div",{className:"bp3-control-group",style:Tu.group},e.createElement("div",{style:Tu.inputBox},e.createElement("input",{className:"bp3-input",style:Tu.input,disabled:this.props.disabled,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Name",value:t.name||"",onChange:e=>{let t=this.clone();t.name=e.target.value,this.props.onChange(t)}})),e.createElement("div",{style:Tu.inputBox},e.createElement("input",{className:"bp3-input",style:Tu.input,disabled:this.props.disabled,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Network",value:t.network||"",onChange:e=>{let t=this.clone();t.network=e.target.value,this.props.onChange(t)}})),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",disabled:this.props.disabled,onClick:()=>{this.props.onRemove()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-success bp3-icon-add",onClick:()=>{this.props.onAdd()}})))}}const Pu={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},role:{margin:"9px 5px 0 5px",height:"20px"},list:{marginBottom:"15px"}};class Hu extends e.Component{constructor(e,t){super(e,t),this.onAddSubnet=e=>{let t;t=this.state.changed?{...this.state.vpc}:{...this.props.vpc};let n=[...t.subnets||[]];0===n.length&&(n=[{}]),n.splice(e+1,0,{}),t.subnets=n,this.setState({...this.state,changed:!0,message:"",vpc:t})},this.onAddRoute=e=>{let t;t=this.state.changed?{...this.state.vpc}:{...this.props.vpc};let n=[...t.routes||[]];n.splice(e+1,0,{}),t.routes=n,this.setState({...this.state,changed:!0,message:"",vpc:t})},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/vpc/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save vpc"),void a(e)):void n())))}))}(this.state.vpc).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,vpc:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/vpc/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete vpc"),void a(e)):void n())))}))}(this.props.vpc.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",addNetworkRole:null,addVpc:null,vpc:null}}set(e,t){let n;n=this.state.changed?{...this.state.vpc}:{...this.props.vpc},n[e]=t,this.setState({...this.state,changed:!0,vpc:n})}onChangeSubnet(e,t){let n;n=this.state.changed?{...this.state.vpc}:{...this.props.vpc};let a=[...n.subnets||[]];0===a.length&&(a=[{}]),a[e]=t,n.subnets=a,this.setState({...this.state,changed:!0,message:"",vpc:n})}onRemoveSubnet(e){let t;t=this.state.changed?{...this.state.vpc}:{...this.props.vpc};let n=[...t.subnets||[]];0!==n.length&&n.splice(e,1),0===n.length&&(n=[{}]),t.subnets=n,this.setState({...this.state,changed:!0,message:"",vpc:t})}onChangeRoute(e,t){let n;n=this.state.changed?{...this.state.vpc}:{...this.props.vpc};let a=[...n.routes];a[e]=t,n.routes=a,this.setState({...this.state,changed:!0,message:"",vpc:n})}onRemoveRoute(e){let t;t=this.state.changed?{...this.state.vpc}:{...this.props.vpc};let n=[...t.routes];n.splice(e,1),t.routes=n,this.setState({...this.state,changed:!0,message:"",vpc:t})}render(){let t=this.state.vpc||this.props.vpc,n=gh.datacenter(t.datacenter),a=n?n.name:t.datacenter,s=gr.organization(this.props.vpc.organization),i=t.subnets||[];0===i.length&&i.push({});let r=[];for(let t=0;t{this.onChangeSubnet(n,e)},onAdd:()=>{this.onAddSubnet(n)},onRemove:()=>{this.onRemoveSubnet(n)}}))}let o=[e.createElement(Au,{disabled:!0,key:-1,route:{destination:"0.0.0.0/0",target:"0.0.0.0"},onAdd:()=>{this.onAddRoute(-1)}})];if(t.routes)for(let n=0;n<(t.routes||[]).length;n++){let a=n;o.push(e.createElement(Au,{key:a,route:t.routes[a],onChange:e=>{this.onChangeRoute(a,e)},onAdd:()=>{this.onAddRoute(a)},onRemove:()=>{this.onRemoveRoute(a)}}))}let l=[{label:"ID",value:this.props.vpc.id||"Unknown"},{label:"Datacenter",value:a},{label:"Organization",value:s?s.name:this.props.vpc.organization},{label:"VLAN Number",value:this.props.vpc.vpc_id||"Unknown"},{label:"Private IPv6 Network",value:this.props.vpc.network6||"Unknown",copy:!0}];return e.createElement("td",{className:"bp3-cell",colSpan:6,style:Pu.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Pu.group},e.createElement("div",{className:"layout horizontal tab-close",style:Pu.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox",style:Pu.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:Pu.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete VPC",confirmMsg:"Permanently delete this VPC",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of vpc",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"VPC comment.",placeholder:"VPC comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(vl,{label:"Network",help:"Network address of vpc with cidr.",type:"text",placeholder:"Enter network",value:t.network,onChange:e=>{this.set("network",e)}}),e.createElement("label",{style:Pu.itemsLabel},"Subnets",e.createElement(hl,{title:"Subnets",content:"Subnets in VPC, can only be added or removed. Once added a subnet network block cannot be modified."})),e.createElement("div",{style:Pu.list},r)),e.createElement("div",{style:Pu.group},e.createElement(Bo,{fields:l}),e.createElement("label",{style:Pu.itemsLabel},"Route Table",e.createElement(hl,{title:"Route Table",content:"VPC routing table, enter a CIDR network for the desitnation and IP address for taget."})),e.createElement("div",{style:Pu.list},o))),e.createElement(ml,{style:Pu.save,hidden:!this.state.vpc&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,vpc:null})},onSave:this.onSave}))}}const Nu={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},tag:{margin:"8px 5px 0 5px",height:"20px"}};class Ou extends e.Component{render(){let t=this.props.vpc;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:Nu.cardOpen},e.createElement(Hu,{organizations:this.props.organizations,vpc:this.props.vpc,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n={...Nu.card},a="";if(t.organization){let e=gr.organization(t.organization);a=e?e.name:t.organization}else a="Unknown";let s=gh.datacenter(t.datacenter),i=s?s.name:t.datacenter;return e.createElement("div",{className:"bp3-card bp3-row",style:n,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:Nu.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:Nu.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:Nu.nameSpan},t.name))),e.createElement("div",{className:"bp3-cell",style:Nu.item},e.createElement("span",{style:Nu.icon,className:"bp3-icon-standard bp3-text-muted "+(t.organization?"bp3-icon-people":"bp3-icon-layers")}),a),e.createElement("div",{className:"bp3-cell",style:Nu.item},e.createElement("span",{style:Nu.icon,className:"bp3-icon-standard bp3-text-muted bp3-icon-cloud"}),i),e.createElement("div",{className:"bp3-cell",style:Nu.item},e.createElement("span",{style:Nu.icon,className:"bp3-icon-standard bp3-text-muted bp3-icon-layout-auto"}),t.network))}}const Vu={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class Du extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.datacenters&&this.props.datacenters.length)for(let n of this.props.datacenters)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));let n=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.organizations&&this.props.organizations.length)for(let t of this.props.organizations)n.push(e.createElement("option",{key:t.id,value:t.id},t.name));return e.createElement("div",{className:"layout horizontal wrap",style:Vu.filters},e.createElement(ho,{style:Vu.input,placeholder:"VPC ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:Vu.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement(ho,{style:Vu.role,placeholder:"Network",value:this.props.filter.network,onChange:e=>{let t={...this.props.filter};e?t.network=e:delete t.network,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:Vu.type},e.createElement("select",{value:this.props.filter.datacenter||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.datacenter:t.datacenter=n,this.props.onFilter(t)}},t)),e.createElement("div",{className:"bp3-select",style:Vu.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},n)))}}const Iu={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class Ru extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:Cu.page,pageCount:Cu.pageCount,pages:Cu.pages,count:Cu.count})},this.state={page:Cu.page,pageCount:Cu.pageCount,pages:Cu.pages,count:Cu.count}}componentDidMount(){Cu.addChangeListener(this.onChange)}componentWillUnmount(){Cu.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{zu(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{zu(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:Iu.button,disabled:0===t,type:"button",onClick:()=>{zu(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:Iu.button,disabled:t===n-1,type:"button",onClick:()=>{zu(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{zu(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const Bu={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},group:{width:"100%"},groupBox:{margin:"16px 0 0 0",width:"100%",maxWidth:"420px"},groupBoxUser:{margin:"16px 0 0 0",width:"100%",maxWidth:"310px"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},input:{width:"107px"},select:{width:"100%"},selectFirst:{width:"100%",borderTopLeftRadius:"3px",borderBottomLeftRadius:"3px"},selectInner:{width:"100%"},selectBox:{flex:"1"},button:{margin:"8px 0 0 8px"},buttons:{margin:"8px 8px 0 0"}};class Fu extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=Cu.vpcs,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,vpcs:e,filter:Cu.filter,datacenters:gh.datacenters,organizations:gr.organizations,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/vpc").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete vpcs"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={vpcs:Cu.vpcs,filter:Cu.filter,datacenters:gh.datacenters,organizations:gr.organizations,network:"",organization:"",datacenter:"",selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){Cu.addChangeListener(this.onChange),gh.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),ku(),Hh(),bd()}componentWillUnmount(){Cu.removeChangeListener(this.onChange),gh.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[],n=!1,a=[];if(this.state.organizations.length){n=!0;for(let t of this.state.organizations)a.push(e.createElement("option",{key:t.id,value:t.id},t.name))}else a.push(e.createElement("option",{key:"null",value:""},"No Organizations"));let s=!1,i=[];if(this.state.datacenters.length){s=!0;for(let t of this.state.datacenters)i.push(e.createElement("option",{key:t.id,value:t.id},t.name))}else i.push(e.createElement("option",{key:"null",value:""},"No Datacenters"));this.state.vpcs.forEach((n=>{t.push(e.createElement(Ou,{key:n.id,vpc:n,organizations:this.state.organizations,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.vpcs;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let r="bp3-button bp3-intent-primary bp3-icon-filter ";return this.state.filter&&(r+="bp3-active"),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Bu.header},e.createElement("h2",{style:Bu.heading},"VPCs"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Bu.buttons},e.createElement("button",{className:r,style:Bu.button,type:"button",onClick:()=>{null===this.state.filter?Mu({}):Mu(null)}},"Filters")),e.createElement("div",{style:$i?Bu.groupBoxUser:Bu.groupBox},e.createElement("div",{className:"bp3-control-group",style:Bu.group},e.createElement("input",{className:"bp3-input",style:Bu.input,type:"text",disabled:!n||this.state.disabled,autoCapitalize:"off",spellCheck:!1,placeholder:"Enter network",value:this.state.network,onChange:e=>{this.setState({...this.state,network:e.target.value})}}),e.createElement("div",{style:Bu.selectBox,hidden:$i},e.createElement("div",{className:"bp3-select",style:Bu.selectFirst},e.createElement("select",{style:Bu.selectInner,disabled:!n||this.state.disabled,value:this.state.organization,onChange:e=>{this.setState({...this.state,organization:e.target.value})}},a))),e.createElement("div",{style:Bu.selectBox},e.createElement("div",{className:"bp3-select",style:Bu.select},e.createElement("select",{style:Bu.selectInner,disabled:!s||this.state.disabled,value:this.state.datacenter,onChange:e=>{this.setState({...this.state,datacenter:e.target.value})}},i))),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",disabled:!s||!n||this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/vpc").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create vpc"),void a(e)):void n())))}))}({id:null,network:this.state.network,organization:this.state.organization||this.state.organizations[0].id,datacenter:this.state.datacenter||this.state.datacenters[0].id}).then((()=>{this.setState({...this.state,network:"",disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New"))))),e.createElement(Du,{filter:this.state.filter,onFilter:e=>{Mu(e)},organizations:this.state.organizations,datacenters:this.state.datacenters}),e.createElement("div",{style:Bu.itemsBox},e.createElement("div",{style:Bu.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:Bu.placeholder},e.createElement("td",{colSpan:6,style:Bu.placeholder})))),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-layout-auto",title:"No vpcs",description:"Add a new vpc to get started."}),e.createElement(Ru,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const Xu="domain.sync",Ku="domain.sync_name",Uu="domain.traverse",Gu="domain.filter";const ju=new class extends hr{constructor(){super(...arguments),this._domains=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._domains=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get domains(){return this._domains}get domainsM(){let e=[];return this._domains.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}domain(e){let t=this._map[e];return void 0===t?null:this._domains[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/domain").query({...ju.filter,page:ju.page,page_count:ju.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===Wu){if(s)return Ui(i,"Failed to load domains"),void a(s);lr.dispatch({type:Xu,data:{domains:i.body.domains,count:i.body.count}}),e()}else e()}))}))}function Zu(e){return lr.dispatch({type:Uu,data:{page:e}}),Yu()}function qu(e){return lr.dispatch({type:Gu,data:{filter:e}}),Yu()}function Ju(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/domain").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create domain"),void a(e)):void n())))}))}kr.register((e=>{if("domain.change"===e.type)Yu()}));const $u={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},role:{margin:"9px 5px 0 5px",height:"20px"},rules:{marginBottom:"15px"}};class ep extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/domain/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save domain"),void a(e)):void n())))}))}(this.state.domain).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,domain:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/domain/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete domain"),void a(e)):void n())))}))}(this.props.domain.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",domain:null}}set(e,t){let n;n=this.state.changed?{...this.state.domain}:{...this.props.domain},n[e]=t,this.setState({...this.state,changed:!0,domain:n})}render(){let t=this.state.domain||this.props.domain,n=gr.organization(this.props.domain.organization);return e.createElement("td",{className:"bp3-cell",colSpan:5,style:$u.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:$u.group},e.createElement("div",{className:"layout horizontal tab-close",style:$u.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox",style:$u.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:$u.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Domain",confirmMsg:"Permanently delete this domain",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Domain",help:"Domain name.",type:"text",placeholder:"Enter domain",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Domain comment.",placeholder:"Domain comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Hl,{label:"Type",help:"Domain type.",value:t.type,onChange:e=>{this.set("type",e)}},e.createElement("option",{value:""},"Select Type"),e.createElement("option",{value:"route_53"},"AWS Route53")),e.createElement(vl,{hidden:"route_53"!==t.type,label:"AWS Access Key ID",help:"AWS access key ID.",type:"text",placeholder:"Enter access key ID",value:t.aws_id,onChange:e=>{this.set("aws_id",e)}}),e.createElement(vl,{hidden:"route_53"!==t.type,label:"AWS Secret Access Key",help:"AWS secret access key.",type:"text",placeholder:"Enter secret access key",value:t.aws_secret,onChange:e=>{this.set("aws_secret",e)}})),e.createElement("div",{style:$u.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.domain.id||"Unknown"},{label:"Organization",value:n?n.name:this.props.domain.organization}]}))),e.createElement(ml,{style:$u.save,hidden:!this.state.domain&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,domain:null})},onSave:this.onSave}))}}const tp={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},tag:{margin:"8px 5px 0 5px",height:"20px"}};class np extends e.Component{render(){let t=this.props.domain;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:tp.cardOpen},e.createElement(ep,{organizations:this.props.organizations,domain:this.props.domain,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n={...tp.card},a="";if(t.organization){let e=gr.organization(t.organization);a=e?e.name:t.organization}else a="Node Domain";return e.createElement("div",{className:"bp3-card bp3-row",style:n,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:tp.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:tp.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:tp.nameSpan},t.name))),e.createElement("div",{className:"bp3-cell",style:tp.item},e.createElement("span",{style:tp.icon,className:"bp3-icon-standard bp3-text-muted "+(t.organization?"bp3-icon-people":"bp3-icon-layers")}),a))}}const ap={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class sp extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.organizations&&this.props.organizations.length)for(let n of this.props.organizations)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));return e.createElement("div",{className:"layout horizontal wrap",style:ap.filters},e.createElement(ho,{style:ap.input,placeholder:"Domain ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:ap.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:ap.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},t)))}}const ip={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class rp extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:ju.page,pageCount:ju.pageCount,pages:ju.pages,count:ju.count})},this.state={page:ju.page,pageCount:ju.pageCount,pages:ju.pages,count:ju.count}}componentDidMount(){ju.addChangeListener(this.onChange)}componentWillUnmount(){ju.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{Zu(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{Zu(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:ip.button,disabled:0===t,type:"button",onClick:()=>{Zu(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:ip.button,disabled:t===n-1,type:"button",onClick:()=>{Zu(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{Zu(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const op={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},group:{width:"100%"},groupBox:{margin:"16px 0 0 8px",width:"100%",maxWidth:"200px"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},selectFirst:{width:"100%",borderTopLeftRadius:"3px",borderBottomLeftRadius:"3px"},selectInner:{width:"100%"},selectBox:{flex:"1"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class lp extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=ju.domains,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,domains:e,filter:ju.filter,organizations:gr.organizations,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/domain").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete domains"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={domains:ju.domains,filter:ju.filter,organizations:gr.organizations,organization:"",selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){ju.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),Yu(),bd()}componentWillUnmount(){ju.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[],n=!1,a=[];if(this.state.organizations.length){n=!0;for(let t of this.state.organizations)a.push(e.createElement("option",{key:t.id,value:t.id},t.name))}else a.push(e.createElement("option",{key:"null",value:""},"No Organizations"));this.state.domains.forEach((n=>{t.push(e.createElement(np,{key:n.id,domain:n,organizations:this.state.organizations,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.domains;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let s="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(s+="bp3-active");let i=[];for(let e of Object.keys(this.state.selected)){let t=ju.domain(e);t?i.push(t.name||e):i.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:op.header},e.createElement("h2",{style:op.heading},"Domains"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:op.buttons},e.createElement("button",{className:s,style:op.button,type:"button",onClick:()=>{null===this.state.filter?qu({}):qu(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:op.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",hidden:!$i,disabled:this.state.disabled,style:op.button,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),Ju({id:null}).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New"),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:op.button,confirmMsg:"Permanently delete the selected domains",confirmInput:!0,items:i,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete})),e.createElement("div",{style:op.groupBox,hidden:$i},e.createElement("div",{className:"bp3-control-group",style:op.group},e.createElement("div",{style:op.selectBox},e.createElement("div",{className:"bp3-select",style:op.selectFirst},e.createElement("select",{style:op.selectInner,disabled:!n||this.state.disabled,value:this.state.organization,onChange:e=>{this.setState({...this.state,organization:e.target.value})}},a))),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",disabled:!n||this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),Ju({id:null,organization:this.state.organization||this.state.organizations[0].id}).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New"))))),e.createElement(sp,{filter:this.state.filter,onFilter:e=>{qu(e)},organizations:this.state.organizations}),e.createElement("div",{style:op.itemsBox},e.createElement("div",{style:op.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:op.placeholder},e.createElement("td",{colSpan:5,style:op.placeholder})))),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-map-marker",title:"No domains",description:"Add a new domain to get started."}),e.createElement(rp,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const cp="balancer.sync",hp="balancer.traverse",dp="balancer.filter";const up=new class extends hr{constructor(){super(...arguments),this._balancers=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._balancers=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get balancers(){return this._balancers}get balancersM(){let e=[];return this._balancers.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}balancer(e){let t=this._map[e];return void 0===t?null:this._balancers[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/balancer").query({...up.filter,page:up.page,page_count:up.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===pp){if(s)return Ui(i,"Failed to load balancers"),void a(s);lr.dispatch({type:cp,data:{balancers:i.body.balancers,count:i.body.count}}),e()}else e()}))}))}function fp(e){return lr.dispatch({type:hp,data:{page:e}}),mp()}function vp(e){return lr.dispatch({type:dp,data:{filter:e}}),mp()}kr.register((e=>{if("balancer.change"===e.type)mp()}));const gp={group:{width:"100%",maxWidth:"310px",marginTop:"5px"},domain:{width:"100%",borderRadius:"0 3px 3px 0"},domainBox:{flex:"1"}};class bp extends e.Component{clone(){return{...this.props.domain}}render(){let t=this.props.domain;return e.createElement("div",{className:"bp3-control-group",style:gp.group},e.createElement("div",{style:gp.domainBox},e.createElement("input",{className:"bp3-input",style:gp.domain,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Domain",value:t.domain||"",onChange:e=>{let t=this.clone();t.domain=e.target.value,this.props.onChange(t)}})),e.createElement("div",{style:gp.domainBox},e.createElement("input",{className:"bp3-input",style:gp.domain,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Host",value:t.host||"",onChange:e=>{let t=this.clone();t.host=e.target.value,this.props.onChange(t)}})),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",onClick:()=>{this.props.onRemove()}}))}}const yp={group:{width:"100%",maxWidth:"310px",marginTop:"5px"},protocol:{flex:"0 1 auto"},hostname:{width:"100%"},hostnameBox:{flex:"1"},port:{flex:"0 1 auto",width:"52px",borderRadius:"0 3px 3px 0"}};class _p extends e.Component{clone(){return{...this.props.backend}}render(){let t=this.props.backend;return e.createElement("div",{className:"bp3-control-group",style:yp.group},e.createElement("div",{className:"bp3-select",style:yp.protocol},e.createElement("select",{value:t.protocol,onChange:e=>{let t=this.clone();t.protocol=e.target.value,this.props.onChange(t)}},e.createElement("option",{value:"http"},"HTTP"),e.createElement("option",{value:"https"},"HTTPS"))),e.createElement("div",{style:yp.hostnameBox},e.createElement("input",{className:"bp3-input",style:yp.hostname,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Hostname",value:t.hostname||"",onChange:e=>{let t=this.clone();t.hostname=e.target.value,this.props.onChange(t)}})),e.createElement("input",{className:"bp3-input",style:yp.port,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Port",value:t.port,onChange:e=>{let t=this.clone();t.port=parseInt(e.target.value,10),this.props.onChange(t)}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",onClick:()=>{this.props.onRemove()}}))}}const wp={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},role:{margin:"9px 5px 0 5px",height:"20px"},rules:{marginBottom:"15px"}};class Cp extends e.Component{constructor(e,t){super(e,t),this.onAddBackend=()=>{let e;e=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let t=[...e.backends,{protocol:"http",hostname:"",port:80}];e.backends=t,this.setState({...this.state,changed:!0,message:"",balancer:e})},this.onAddCert=()=>{let e;if(!this.state.addCert&&!this.props.certificates.length)return;e=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let t=this.state.addCert;if(!t)for(let n of this.props.certificates)if(n.organization===e.organization){t=n.id;break}let n=[...e.certificates||[]];-1===n.indexOf(t)&&n.push(t),n.sort(),e.certificates=n,this.setState({...this.state,changed:!0,balancer:e})},this.onRemoveCert=e=>{let t;t=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let n=[...t.certificates||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.certificates=n,this.setState({...this.state,changed:!0,balancer:t}))},this.onAddDomain=()=>{let e;e=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let t=[...e.domains,{}];e.domains=t,this.setState({...this.state,changed:!0,message:"",balancer:e})},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/balancer/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save balancer"),void a(e)):void n())))}))}(this.state.balancer).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,balancer:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/balancer/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete balancer"),void a(e)):void n())))}))}(this.props.balancer.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",balancer:null,addCert:null}}set(e,t){let n;n=this.state.changed?{...this.state.balancer}:{...this.props.balancer},n[e]=t,this.setState({...this.state,changed:!0,balancer:n})}onChangeBackend(e,t){let n;n=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let a=[...n.backends];a[e]=t,n.backends=a,this.setState({...this.state,changed:!0,message:"",balancer:n})}onRemoveBackend(e){let t;t=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let n=[...t.backends];n.splice(e,1),t.backends=n,this.setState({...this.state,changed:!0,message:"",balancer:t})}onChangeDomain(e,t){let n;n=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let a=[...n.domains];a[e]=t,n.domains=a,this.setState({...this.state,changed:!0,message:"",balancer:n})}onRemoveDomain(e){let t;t=this.state.changed?{...this.state.balancer}:{...this.props.balancer};let n=[...t.domains];n.splice(e,1),t.domains=n,this.setState({...this.state,changed:!0,message:"",balancer:t})}render(){let t=this.state.balancer||this.props.balancer,n=!1,a=[];if(this.props.organizations.length){a.push(e.createElement("option",{key:"null",value:""},"Select Organization"));for(let t of this.props.organizations)n=!0,a.push(e.createElement("option",{key:t.id,value:t.id},t.name))}n||a.push(e.createElement("option",{key:"null",value:""},"No Organizations"));let s=[];for(let n=0;n{this.onChangeDomain(a,e)},onRemove:()=>{this.onRemoveDomain(a)}}))}let i=[];for(let n=0;n{this.onChangeBackend(a,e)},onRemove:()=>{this.onRemoveBackend(a)}}))}let r=[];for(let n of t.certificates||[]){let t=fh.certificate(n);t&&r.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:wp.item,key:t.id},t.name,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveCert(t.id)}})))}let o=!1,l=[];if(this.props.certificates.length)for(let n of this.props.certificates)n.organization===t.organization&&(o=!0,l.push(e.createElement("option",{key:n.id,value:n.id},n.name)));o||(l=[e.createElement("option",{key:"null",value:""},"No Certificates")]);let c=!1,h=[];if(this.props.datacenters.length){h.push(e.createElement("option",{key:"null",value:""},"Select Datacenter")),c=!0;for(let t of this.props.datacenters)h.push(e.createElement("option",{key:t.id,value:t.id},t.name))}c||h.push(e.createElement("option",{key:"null",value:""},"No Datacenters"));let d=0,u=0,p=0,m=[],f={},v=[],g=[],b=[],y=[],_=[],w=[];if(this.props.balancer.state&&t.states){for(let e in t.states){if(!t.states.hasOwnProperty(e))continue;let n=t.states[e];d+=n.requests||0,u+=n.retries||0,p+=n.websockets||0;for(let e of n.offline){let t=f[e];(void 0===t||t>1)&&(f[e]=1)}for(let e of n.unknown_low){let t=f[e];(void 0===t||t>2)&&(f[e]=2)}for(let e of n.unknown_mid){let t=f[e];(void 0===t||t>3)&&(f[e]=3)}for(let e of n.unknown_high){let t=f[e];(void 0===t||t>4)&&(f[e]=4)}for(let e of n.online){void 0===f[e]&&(f[e]=5)}}for(let e in f){if(!f.hasOwnProperty(e))continue;switch(f[e]){case 5:v.push(e);break;case 4:g.push(e);break;case 3:b.push(e);break;case 2:y.push(e);break;case 1:_.push(e)}}v.sort();for(let e of v)m.push(e+" - Online"),w.push("bp3-text-intent-success");g.sort();for(let e of g)m.push(e+" - Unknown High"),w.push("bp3-text-intent-warning");b.sort();for(let e of b)m.push(e+" - Unknown Mid"),w.push("bp3-text-intent-warning");y.sort();for(let e of y)m.push(e+" - Unknown Low"),w.push("bp3-text-intent-warning");_.sort();for(let e of _)m.push(e+" - Offline"),w.push("bp3-text-intent-danger")}return m.length||(m=["-"]),e.createElement("td",{className:"bp3-cell",colSpan:5,style:wp.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:wp.group},e.createElement("div",{className:"layout horizontal tab-close",style:wp.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox bp3-checkbox",style:wp.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:wp.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Balancer",confirmMsg:"Permanently delete this balancer",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{disabled:this.state.disabled,label:"Name",help:"Name of load balancer",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Load balancer comment.",placeholder:"Load balancer comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Active",help:"Enable or disable load balancer.",checked:t.state,onToggle:()=>{this.set("state",!t.state)}}),e.createElement(Hl,{label:"Type",help:"Load balancer type",value:t.type,onChange:e=>{this.set("type",e)}},e.createElement("option",{value:"http"},"HTTP")),e.createElement(Hl,{disabled:this.state.disabled||!c,label:"Datacenter",help:"Load balancer datacenter.",value:t.datacenter,onChange:e=>{this.set("datacenter",e)}},h),e.createElement("label",{style:wp.itemsLabel},"External Domains",e.createElement(hl,{title:"External Domains",content:"When a request comes into a node the requests host will be used to match the request with the domain of a load balancer. Some internal services will be expecting a specific host such as a web server that serves mutliple websites that is also matching the requests host to one of the mutliple websites. If the internal service is expecting a different host set the host field, otherwise leave it blank. Load balancers that are associated with the same datacenter should not also have the same domains."})),s,e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:wp.itemsAdd,type:"button",onClick:this.onAddDomain},"Add Domain"),e.createElement("label",{style:wp.itemsLabel},"Internal Backends",e.createElement(hl,{title:"Internal Backends",content:"After a node receives a request it will be forwarded to the internal servers and the response will be sent back to the user. Multiple internal servers can be added to balance the requests between the servers. If a domain is used with HTTPS the internal server must have a valid certificate. When an IP address is used with HTTPS the internal servers certificate will not be validated."})),i,e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:wp.itemsAdd,type:"button",onClick:this.onAddBackend},"Add Backend")),e.createElement("div",{style:wp.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.balancer.id||"Unknown"},{label:"Requests",value:d+"/min"},{label:"Retries",value:u+"/min"},{label:"WebSockets",value:p},{label:"Backends",value:m,valueClasses:w}]}),e.createElement(ul,{disabled:this.state.disabled,label:"WebSockets",help:"Enable or disable WebSocket support on balancer.",checked:t.websockets,onToggle:()=>{this.set("websockets",!t.websockets)}}),e.createElement(Hl,{disabled:this.state.disabled||!n,hidden:$i,label:"Organization",help:"Organization for balancer, both the organaization and role must match. Select balancer balancer to match balancer network roles.",value:t.organization,onChange:e=>{this.set("organization",e)}},a),e.createElement("label",{className:"bp3-label",style:wp.label},"Certificates",e.createElement(hl,{title:"Certificates",content:"The certificates to use for this load balancer. The certificates must be valid for all the domains that this load balancer provides access to."}),e.createElement("div",null,r)),e.createElement(Xh,{label:"Add Certificate",value:this.state.addCert,disabled:this.state.disabled||!o,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addCert:e})},onSubmit:this.onAddCert},l),e.createElement(vl,{label:"Health Check Path",help:"Path to check status of backend servers. Path must return 200-299 status code.",type:"text",placeholder:"Enter path",value:t.check_path,onChange:e=>{this.set("check_path",e)}}))),e.createElement(ml,{style:wp.save,hidden:!this.state.balancer&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,balancer:null})},onSave:this.onSave}))}}const Ep={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"2px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},tag:{margin:"8px 5px 0 5px",height:"20px"}};class Sp extends e.Component{render(){let t=this.props.balancer;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:Ep.cardOpen},e.createElement(Cp,{organizations:this.props.organizations,certificates:this.props.certificates,datacenters:this.props.datacenters,balancer:this.props.balancer,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n={...Ep.card},a="";if(!Mr(t.organization)){let e=gr.organization(t.organization);a=e?e.name:t.organization}let s=gh.datacenter(this.props.balancer.datacenter),i=s?s.name:null;return e.createElement("div",{className:"bp3-card bp3-row",style:n,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:Ep.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:Ep.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:Ep.nameSpan},t.name))),e.createElement("div",{className:"bp3-cell",style:Ep.item},e.createElement("span",{style:Ep.icon,hidden:!a,className:"bp3-icon-standard bp3-text-muted bp3-icon-people"}),a),e.createElement("div",{className:"bp3-cell",style:Ep.item},e.createElement("span",{style:Ep.icon,hidden:!i,className:"bp3-icon-standard bp3-text-muted bp3-icon-cloud"}),i))}}const kp={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class zp extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:up.page,pageCount:up.pageCount,pages:up.pages,count:up.count})},this.state={page:up.page,pageCount:up.pageCount,pages:up.pages,count:up.count}}componentDidMount(){up.addChangeListener(this.onChange)}componentWillUnmount(){up.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{fp(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{fp(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:kp.button,disabled:0===t,type:"button",onClick:()=>{fp(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:kp.button,disabled:t===n-1,type:"button",onClick:()=>{fp(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{fp(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const Mp={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class xp extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.organizations&&this.props.organizations.length)for(let n of this.props.organizations)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));return e.createElement("div",{className:"layout horizontal wrap",style:Mp.filters},e.createElement(ho,{style:Mp.input,placeholder:"Balancer ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:Mp.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:Mp.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},t)))}}const Ap={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class Tp extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=up.balancers,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,balancers:e,filter:up.filter,organizations:gr.organizations,certificates:fh.certificates,datacenters:gh.datacenters,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/balancer").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete balancers"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={balancers:up.balancers,filter:up.filter,organizations:gr.organizations,certificates:fh.certificates,datacenters:gh.datacenters,selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){up.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),fh.addChangeListener(this.onChange),gh.addChangeListener(this.onChange),mp(),bd(),Ph(),Hh(),this.interval=setInterval((()=>{mp(!0)}),5e3)}componentWillUnmount(){up.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange),fh.removeChangeListener(this.onChange),gh.removeChangeListener(this.onChange),clearInterval(this.interval)}render(){let t=[];this.state.balancers.forEach((n=>{t.push(e.createElement(Sp,{key:n.id,balancer:n,organizations:this.state.organizations,certificates:this.state.certificates,datacenters:this.state.datacenters,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.balancers;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(n+="bp3-active");let a=[];for(let e of Object.keys(this.state.selected)){let t=up.balancer(e);t?a.push(t.name||e):a.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Ap.header},e.createElement("h2",{style:Ap.heading},"Balancers"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Ap.buttons},e.createElement("button",{className:n,style:Ap.button,type:"button",onClick:()=>{null===this.state.filter?vp({}):vp(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:Ap.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:Ap.button,confirmMsg:"Permanently delete the selected balancers",confirmInput:!0,items:a,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete}),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:Ap.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/balancer").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create balancer"),void a(e)):void n())))}))}({}).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement(xp,{filter:this.state.filter,onFilter:e=>{vp(e)},organizations:this.state.organizations}),e.createElement("div",{style:Ap.itemsBox},e.createElement("div",{style:Ap.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:Ap.placeholder},e.createElement("td",{colSpan:5,style:Ap.placeholder})))),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-random",title:"No balancers",description:"Add a new balancer to get started."}),e.createElement(zp,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const Lp={card:{position:"relative",padding:"10px 10px 0 10px",marginBottom:"5px"},remove:{position:"absolute",top:"5px",right:"5px"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},controlButton:{marginRight:"10px"}};class Pp extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),Hd(this.state.storage).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:"",changed:!1,storage:null})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onSync=()=>{this.setState({...this.state,disabled:!0}),Hd(this.props.storage).then((()=>{this.setState({...this.state,disabled:!1}),Fi("Storage sync started")})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/storage/"+e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete storages"),void a(e)):void n())))}))}(this.props.storage.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",storage:null}}set(e,t){let n;n=this.state.changed?{...this.state.storage}:{...this.props.storage},n[e]=t,this.setState({...this.state,changed:!0,storage:n})}render(){let t=this.state.storage||this.props.storage;return e.createElement("div",{className:"bp3-card",style:Lp.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Lp.group},e.createElement("div",{style:Lp.remove},e.createElement(Rr,{safe:!0,className:"bp3-minimal bp3-intent-danger bp3-icon-trash",progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Storage",confirmMsg:"Permanently delete this storage",confirmInput:!0,disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{disabled:this.state.disabled,label:"Name",help:"Name of storage",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Storage comment.",placeholder:"Storage comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(vl,{disabled:this.state.disabled,label:"Endpoint",help:"Storage endpoint domain and port",type:"text",placeholder:"Enter endpoint",value:t.endpoint,onChange:e=>{this.set("endpoint",e)}}),e.createElement(vl,{disabled:this.state.disabled,label:"Bucket",help:"Storage bucket name",type:"text",placeholder:"Enter bucket",value:t.bucket,onChange:e=>{this.set("bucket",e)}})),e.createElement("div",{style:Lp.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.storage.id||"None"}]}),e.createElement(Hl,{disabled:this.state.disabled,label:"Type",help:"Select public for read only storages with virtual machine images. Select private for read-write storages for snapshots.",value:t.type,onChange:e=>{this.set("type",e)}},e.createElement("option",{value:"public"},"Public"),e.createElement("option",{value:"private"},"Private")),e.createElement(vl,{disabled:this.state.disabled,label:"Access Key",help:"Storage access key",type:"text",placeholder:"Enter access key",value:t.access_key,onChange:e=>{this.set("access_key",e)}}),e.createElement(vl,{disabled:this.state.disabled,label:"Secret Key",help:"Storage secret key",type:"text",placeholder:"Enter secret key",value:t.secret_key,onChange:e=>{this.set("secret_key",e)}}),e.createElement(ul,{label:"SSL Connection",help:"Use secure SSL connection.",disabled:this.state.disabled,checked:!t.insecure,onToggle:()=>{this.set("insecure",!t.insecure)}}))),e.createElement(ml,{style:Lp.save,hidden:!this.state.storage,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,storage:null})},onSave:this.onSave},e.createElement(Rr,{label:"Sync",className:"bp3-intent-success bp3-icon-refresh",progressClassName:"bp3-intent-success",style:Lp.controlButton,disabled:this.state.disabled,onConfirm:()=>{this.onSync()}})))}}const Hp={header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"},noCerts:{height:"auto"}};class Np extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,storages:Td.storages})},this.state={storages:Td.storages,disabled:!1}}componentDidMount(){Td.addChangeListener(this.onChange),Pd()}componentWillUnmount(){Td.removeChangeListener(this.onChange)}render(){let t=[];return this.state.storages.forEach((n=>{t.push(e.createElement(Pp,{key:n.id,storage:n}))})),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Hp.header},e.createElement("h2",{style:Hp.heading},"Storages"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Hp.buttons},e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:Hp.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/storage").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create storage"),void a(e)):void n())))}))}(null).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement("div",null,t),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-database",title:"No storages",description:"Add a new storage to get started."}))}}const Op="image.sync",Vp="image.sync_datacenter",Dp="image.traverse",Ip="image.filter";const Rp=new class extends hr{constructor(){super(...arguments),this._images=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._images=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get images(){return this._images}get imagesM(){let e=[];return this._images.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}image(e){let t=this._map[e];return void 0===t?null:this._images[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/image").query({...Rp.filter,page:Rp.page,page_count:Rp.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Bp){if(s)return Ui(i,"Failed to load images"),void a(s);lr.dispatch({type:Op,data:{images:i.body.images,count:i.body.count}}),n()}else n()}))}))}function Xp(e){let t=zr();if(Bp=t,!e)return lr.dispatch({type:Vp,data:{images:[]}}),Promise.resolve();let n=(new Nr).loading();return new Promise(((a,s)=>{vn.get("/image").query({datacenter:e}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,i)=>{if(n.done(),i&&401===i.status)return window.location.href="/login",void a();if(t===Bp){if(e)return Ui(i,"Failed to load images names"),void s(e);lr.dispatch({type:Vp,data:{images:i.body}}),a()}else a()}))}))}function Kp(e){return lr.dispatch({type:Dp,data:{page:e}}),Fp()}function Up(e){return lr.dispatch({type:Ip,data:{filter:e}}),Fp()}kr.register((e=>{if("image.change"===e.type)Fp()}));const Gp={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"}};class jp extends e.Component{constructor(e,t){super(e,t),this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/image/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save image"),void a(e)):void n())))}))}(this.state.image).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,image:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/image/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete image"),void a(e)):void n())))}))}(this.props.image.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",image:null}}set(e,t){let n;n=this.state.changed?{...this.state.image}:{...this.props.image},n[e]=t,this.setState({...this.state,changed:!0,image:n})}render(){let t=this.state.image||this.props.image,n=gr.organization(this.props.image.organization),a=Td.storage(this.props.image.storage),s=t.type;s&&(s=s.charAt(0).toUpperCase()+s.slice(1));let i="";i=t.organization?n?n.name:t.organization:"Public Image",t.signed&&(i="Signed Public Image");let r="Default";switch(this.props.image.storage_class){case"aws_standard":r="AWS Standard";break;case"aws_infrequent_access":r="AWS Standard-IA";break;case"aws_glacier":r="AWS Glacier";break;case"oracle_standard":r="Oracle Standard";break;case"oracle_archive":r="Oracle Archive"}return e.createElement("td",{className:"bp3-cell",colSpan:5,style:Gp.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Gp.group},e.createElement("div",{className:"layout horizontal tab-close",style:Gp.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox",style:Gp.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:Gp.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Image",confirmMsg:"Permanently delete this image",confirmInput:!0,items:[t.name],disabled:"public"===this.props.image.type||this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of image",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Image comment.",placeholder:"Image comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}})),e.createElement("div",{style:Gp.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.image.id||"Unknown"},{label:"Storage",value:a?a.name:this.props.image.storage||"Unknown"},{label:"Organization",value:i},{label:"Type",value:s||"Unknown"},{label:"Key",value:this.props.image.key||"Unknown"},{label:"Storage Class",value:r},{label:"Last Modified",value:Lr(this.props.image.last_modified)||"Unknown"},{label:"ETag",value:this.props.image.etag||"Unknown"}]}))),e.createElement(ml,{style:Gp.save,hidden:!this.state.image&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,image:null})},onSave:this.onSave}))}}const Wp={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"}};class Qp extends e.Component{render(){let t=this.props.image;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:Wp.cardOpen},e.createElement(jp,{image:this.props.image,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n={...Wp.card},a="",s="",i="";if(t.organization){let e=gr.organization(t.organization);s="bp3-text-muted bp3-icon-people",i=e?e.name:t.organization}else s="bp3-text-muted bp3-icon-globe",i="Public Image";t.signed&&(a="bp3-text-intent-success",s="bp3-icon-endorsed",i="Signed Public Image");let r="bp3-icon-box";switch(this.props.image.storage_class){case"aws_standard":case"oracle_standard":r="bp3-icon-box";break;case"aws_infrequent_access":r="bp3-icon-compressed";break;case"aws_glacier":case"oracle_archive":r="bp3-icon-snowflake"}return e.createElement("div",{className:"bp3-card bp3-row",style:n,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:Wp.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:Wp.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:Wp.nameSpan},t.name))),e.createElement("div",{className:"bp3-cell "+a,style:Wp.item},e.createElement("span",{style:Wp.icon,className:"bp3-icon-standard "+s}),i),e.createElement("div",{className:"bp3-cell",style:Wp.item},e.createElement("span",{style:Wp.icon,hidden:!t.key,className:"bp3-icon-standard bp3-text-muted "+r}),t.key))}}const Yp={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class Zp extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.organizations&&this.props.organizations.length)for(let n of this.props.organizations)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));return e.createElement("div",{className:"layout horizontal wrap",style:Yp.filters},e.createElement(ho,{style:Yp.input,placeholder:"Image ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:Yp.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:Yp.type},e.createElement("select",{value:this.props.filter.type||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.type:t.type=n,this.props.onFilter(t)}},e.createElement("option",{value:"any"},"Any"),e.createElement("option",{value:"private"},"Private"),e.createElement("option",{value:"public"},"Public"))),e.createElement("div",{className:"bp3-select",style:Yp.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},t)))}}const qp={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class Jp extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:Rp.page,pageCount:Rp.pageCount,pages:Rp.pages,count:Rp.count})},this.state={page:Rp.page,pageCount:Rp.pageCount,pages:Rp.pages,count:Rp.count}}componentDidMount(){Rp.addChangeListener(this.onChange)}componentWillUnmount(){Rp.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{Kp(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{Kp(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:qp.button,disabled:0===t,type:"button",onClick:()=>{Kp(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:qp.button,disabled:t===n-1,type:"button",onClick:()=>{Kp(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{Kp(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const $p={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class em extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=Rp.images,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,images:e,filter:Rp.filter,organizations:gr.organizations,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/image").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete images"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={images:Rp.images,filter:Rp.filter,organizations:gr.organizations,selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){Rp.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),Fp(),bd()}componentWillUnmount(){Rp.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[];this.state.images.forEach((n=>{t.push(e.createElement(Qp,{key:n.id,image:n,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.images;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(n+="bp3-active");let a=[];for(let e of Object.keys(this.state.selected)){let t=Rp.image(e);t?a.push(t.name||e):a.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:$p.header},e.createElement("h2",{style:$p.heading},"Images"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:$p.buttons},e.createElement("button",{className:n,style:$p.button,type:"button",onClick:()=>{null===this.state.filter?Up({}):Up(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:$p.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:$p.button,confirmMsg:"Permanently force delete the selected images",confirmInput:!0,items:a,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete})))),e.createElement(Zp,{filter:this.state.filter,onFilter:e=>{Up(e)},organizations:this.state.organizations}),e.createElement("div",{style:$p.itemsBox},e.createElement("div",{style:$p.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:$p.placeholder},e.createElement("td",{colSpan:5,style:$p.placeholder})))),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-compressed",title:"No images",description:"Add a new image to get started."}),e.createElement(Jp,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const tm="disk.sync",nm="disk.traverse",am="disk.filter";const sm=new class extends hr{constructor(){super(...arguments),this._disks=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._disks=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get disks(){return this._disks}get disksM(){let e=[];return this._disks.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}disk(e){let t=this._map[e];return void 0===t?null:this._disks[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/disk").query({...sm.filter,page:sm.page,page_count:sm.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===im){if(s)return Ui(i,"Failed to load disks"),void a(s);lr.dispatch({type:tm,data:{disks:i.body.disks,count:i.body.count}}),e()}else e()}))}))}function om(e){return lr.dispatch({type:nm,data:{page:e}}),rm()}function lm(e){return lr.dispatch({type:am,data:{filter:e}}),rm()}function cm(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/disk/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save disk"),void a(e)):void n())))}))}function hm(e,t){let n=(new Nr).loading();return new Promise(((a,s)=>{vn.put("/disk").send({ids:e,state:t}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,t)=>(n.done(),t&&401===t.status?(window.location.href="/login",void a()):e?(Ui(t,"Failed to update disks"),void s(e)):void a())))}))}kr.register((e=>{if("disk.change"===e.type)rm()}));const dm={group:{marginBottom:"15px",width:"100%",maxWidth:"280px"},select:{width:"100%",borderTopLeftRadius:"3px",borderBottomLeftRadius:"3px"},selectInner:{width:"100%"},selectBox:{flex:"1"}};class um extends e.Component{render(){let t="bp3-button";return this.props.buttonClass&&(t+=" "+this.props.buttonClass),e.createElement("div",{className:"bp3-control-group",style:dm.group,hidden:this.props.hidden},e.createElement("div",{style:dm.selectBox},e.createElement("div",{className:"bp3-select",style:dm.select},e.createElement("select",{style:dm.selectInner,disabled:this.props.disabled,value:this.props.value||"",onChange:e=>{this.props.onChange(e.target.value)}},this.props.children))),e.createElement(Rr,{label:this.props.label,className:t,progressClassName:this.props.progressClassName,confirmMsg:this.props.confirmMsg,disabled:this.props.disabled,onConfirm:this.props.onSubmit}))}}const pm="instance.sync",mm="instance.sync_node",fm="instance.traverse",vm="instance.filter";const gm=new class extends hr{constructor(){super(...arguments),this._instances=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._instances=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get instances(){return this._instances}get instancesM(){let e=[];return this._instances.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}instance(e){let t=this._map[e];return void 0===t?null:this._instances[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/instance").query({...gm.filter,page:gm.page,page_count:gm.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===bm){if(s)return Ui(i,"Failed to load instances"),void a(s);lr.dispatch({type:pm,data:{instances:i.body.instances,count:i.body.count}}),e()}else e()}))}))}function _m(e){return lr.dispatch({type:fm,data:{page:e}}),ym()}function wm(e){return lr.dispatch({type:vm,data:{filter:e}}),ym()}function Cm(e,t){let n=(new Nr).loading();return new Promise(((a,s)=>{vn.put("/instance").send({ids:e,state:t}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,t)=>(n.done(),t&&401===t.status?(window.location.href="/login",void a()):e?(Ui(t,"Failed to update instances"),void s(e)):void a())))}))}function Em(e){let t=zr();if(bm=t,!e)return Promise.resolve();let n=(new Nr).loading();return new Promise(((a,s)=>{vn.get("/instance").query({node_names:e}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((i,r)=>{if(n.done(),r&&401===r.status)return window.location.href="/login",void a();if(t===bm){if(i)return Ui(r,"Failed to load instance names"),void s(i);lr.dispatch({type:mm,data:{node:e,instances:r.body}}),a()}else a()}))}))}kr.register((e=>{if("instance.change"===e.type)ym()}));const Sm=new class extends hr{constructor(){super(...arguments),this._instances=new Map(Object.freeze([])),this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._instances=new Map(Object.freeze([])),this._map={},this.emitChange()}instances(e){return this._instances.get(e)||[]}instance(e){let t=this._map[e];return void 0===t?null:this._instances.get(t[0])[t[1]]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e,t){for(let e=0;e{this.setState({...this.state,instances:Sm.instances(this.props.disk.node)})},this.onSave=()=>{this.setState({...this.state,disabled:!0});let e={...this.state.disk};this.state.resizeDisk&&e.new_size>e.size&&(e.state="expand"),cm(e).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,disk:null,changed:!1,resizeDisk:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/disk/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete disk"),void a(e)):void n())))}))}(this.props.disk.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onRestoreBackup=()=>{let e,t;if(this.state.restoreImage)e=this.state.restoreImage;else{if(!this.props.disk.backups||!this.props.disk.backups.length)return;e=this.props.disk.backups[0].image}this.setState({...this.state,disabled:!0}),t=this.state.changed?{...this.state.disk}:{...this.props.disk},t.state="restore",t.restore_image=e,cm(t).then((()=>{Fi("Disk restore started"),this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",disk:null,instances:null,restoreImage:null,resizeDisk:!1}}componentDidMount(){Sm.addChangeListener(this.onChange),Em(this.props.disk.node)}componentWillUnmount(){Sm.removeChangeListener(this.onChange)}set(e,t){let n;n=this.state.changed?{...this.state.disk}:{...this.props.disk},n[e]=t,"instance"!==e||Number(n.index)||(n.index="0"),this.setState({...this.state,changed:!0,disk:n})}setResizeDisk(e){let t;t=this.state.changed?{...this.state.disk}:{...this.props.disk},t.new_size=e?t.size:0,this.setState({...this.state,changed:!0,resizeDisk:e,disk:t})}render(){let t=this.state.disk||this.props.disk,n=ph.node(this.props.disk.node),a=gr.organization(this.props.disk.organization),s=!1,i=[];if(null===this.state.instances)i=[e.createElement("option",{key:"null",value:""},"Loading")];else{if(this.state.instances.length){i.push(e.createElement("option",{key:"null",value:""},"Detached Disk")),s=!0;for(let t of this.state.instances)i.push(e.createElement("option",{key:t.id,value:t.id},t.name))}s||(i=[e.createElement("option",{key:"null",value:""},"No Instances")])}let r=[];for(let n of t.backups||[])r.push(e.createElement("option",{key:n.image,value:n.image},n.name));let o=!1;r.length?o=!0:r=[e.createElement("option",{key:"null",value:""},"No Backups")];let l="Unknown",c="tab-close ";switch(this.props.disk.state){case"provision":l="Provisioning",c+=" bp3-text-intent-primary";break;case"available":l=this.props.disk.instance?"Connected":"Available",c+=" bp3-text-intent-success";break;case"destroy":l="Destroying",c+=" bp3-text-intent-danger";break;case"snapshot":l="Snapshotting",c+=" bp3-text-intent-primary";break;case"backup":l="Backing Up",c+=" bp3-text-intent-primary";break;case"restore":l="Restoring",c+=" bp3-text-intent-primary";break;case"expand":l="Expanding",c+=" bp3-text-intent-primary"}let h=[{label:"ID",value:this.props.disk.id||"Unknown"},{label:"Image",value:this.props.disk.image||"Blank Disk"},{label:"Organization",value:a?a.name:this.props.disk.organization},{label:"Node",value:(n?n.name:this.props.disk.node)||"-"},{label:"Size",value:this.props.disk.size+"GB"}],d=this.props.disk.backing_image;return d&&(d=d.replace("-","\n"),h.splice(2,0,{label:"Backing Image",value:d})),e.createElement("td",{className:"bp3-cell",colSpan:5,style:km.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:km.group},e.createElement("div",{className:"layout horizontal tab-close",style:km.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox tab-close",style:km.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:c,style:km.status},e.createElement("span",{style:km.icon,className:"bp3-icon-standard bp3-icon-pulse"}),l),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:km.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Disk",confirmMsg:"Permanently delete this disk",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of disk.",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Disk comment.",placeholder:"Disk comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Hl,{disabled:this.state.disabled||!s,label:"Instance",help:"Instance to attach disk to.",value:t.instance,onChange:e=>{this.set("instance",e)}},i),e.createElement(Uh,{label:"Index",help:"Index to attach disk.",hidden:!t.instance,min:0,max:8,minorStepSize:1,stepSize:1,majorStepSize:1,disabled:this.state.disabled,selectAllOnFocus:!0,value:Number(t.index)||0,onChange:e=>{this.set("index",String(e))}}),e.createElement(ul,{disabled:this.state.disabled,label:"Delete protection",help:"Block disk from being deleted.",checked:t.delete_protection,onToggle:()=>{this.set("delete_protection",!t.delete_protection)}})),e.createElement("div",{style:km.group},e.createElement(Bo,{fields:h}),e.createElement(ul,{disabled:this.state.disabled||"available"!=t.state,label:"Resize disk",help:"Change size of disk. Instance will be stopped.",checked:this.state.resizeDisk,onToggle:()=>{this.setResizeDisk(!this.state.resizeDisk)}}),e.createElement(Uh,{label:"New Size",help:"New disk size in gigabytes.",hidden:!this.state.resizeDisk,min:t.size,minorStepSize:1,stepSize:1,majorStepSize:1,disabled:this.state.disabled,selectAllOnFocus:!0,value:t.new_size,onChange:e=>{this.set("new_size",e)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Automatic backup",help:"Automatically backup disk daily.",checked:t.backup,onToggle:()=>{this.set("backup",!t.backup)}}),e.createElement("label",{className:"bp3-label",style:km.label},"Restore Backup",e.createElement(hl,{title:"Restore Backup",content:"Select a backup to restore and replace the existing disk with the backup image. Instance will be stopped."})),e.createElement(um,{label:"Restore",value:this.state.restoreImage,disabled:!o||this.state.disabled,confirmMsg:"Confirm disk restore",buttonClass:"bp3-intent-success bp3-icon-box",progressClassName:"bp3-intent-success",onChange:e=>{this.setState({...this.state,restoreImage:e})},onSubmit:this.onRestoreBackup},r))),e.createElement(ml,{style:km.save,hidden:!this.state.disk&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,disk:null})},onSave:this.onSave}))}}const Mm={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},tag:{margin:"8px 5px 0 5px",height:"20px"}};class xm extends e.Component{render(){let t=this.props.disk,n=ph.node(this.props.disk.node);if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:Mm.cardOpen},e.createElement(zm,{organizations:this.props.organizations,disk:this.props.disk,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let a="";if(t.organization){let e=gr.organization(t.organization);a=e?e.name:t.organization}else a="Node Disk";let s="Unknown",i="bp3-cell";switch(t.state){case"provision":s="Provisioning",i+=" bp3-text-intent-primary";break;case"available":s=t.instance?"Connected":"Available",i+=" bp3-text-intent-success";break;case"destroy":s="Destroying",i+=" bp3-text-intent-danger";break;case"snapshot":s="Snapshotting",i+=" bp3-text-intent-primary";break;case"backup":s="Backing Up",i+=" bp3-text-intent-primary";break;case"restore":s="Restoring",i+=" bp3-text-intent-primary";break;case"expand":s="Expanding",i+=" bp3-text-intent-primary"}return e.createElement("div",{className:"bp3-card bp3-row",style:Mm.card,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:Mm.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:Mm.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:Mm.nameSpan},t.name))),e.createElement("div",{className:i,style:Mm.item},e.createElement("span",{style:Mm.icon,className:"bp3-icon-standard bp3-icon-pulse"}),s),e.createElement("div",{className:"bp3-cell",style:Mm.item},e.createElement("span",{style:Mm.icon,className:"bp3-icon-standard bp3-text-muted "+(t.organization?"bp3-icon-people":"bp3-icon-layers")}),a),e.createElement("div",{className:"bp3-cell",style:Mm.item},e.createElement("span",{style:Mm.icon,className:"bp3-icon-standard bp3-text-muted bp3-icon-layers"}),n?n.name:this.props.disk.node),e.createElement("div",{className:"bp3-cell",style:Mm.item},e.createElement("span",{style:Mm.icon,className:"bp3-icon-standard bp3-text-muted bp3-icon-database"}),t.size,"GB"))}}const Am={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class Tm extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.organizations&&this.props.organizations.length)for(let n of this.props.organizations)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));let n=[e.createElement("option",{key:"key",value:"any"},"Any Node")];if(this.props.nodes&&this.props.nodes.length)for(let t of this.props.nodes)n.push(e.createElement("option",{key:t.id,value:t.id},t.name));return e.createElement("div",{className:"layout horizontal wrap",style:Am.filters},e.createElement(ho,{style:Am.input,placeholder:"Disk ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:Am.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement(ho,{style:Am.input,placeholder:"Instance ID",value:this.props.filter.instance,onChange:e=>{let t={...this.props.filter};e?t.instance=e:delete t.instance,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:Am.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},t)),e.createElement("div",{className:"bp3-select",style:Am.type,hidden:$i},e.createElement("select",{value:this.props.filter.node||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.node:t.node=n,this.props.onFilter(t)}},n)))}}const Lm={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class Pm extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:sm.page,pageCount:sm.pageCount,pages:sm.pages,count:sm.count})},this.state={page:sm.page,pageCount:sm.pageCount,pages:sm.pages,count:sm.count}}componentDidMount(){sm.addChangeListener(this.onChange)}componentWillUnmount(){sm.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{om(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{om(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:Lm.button,disabled:0===t,type:"button",onClick:()=>{om(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:Lm.button,disabled:t===n-1,type:"button",onClick:()=>{om(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{om(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const Hm=new class extends hr{constructor(){super(...arguments),this._images=Object.freeze([]),this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._images=Object.freeze([]),this._map={},this.emitChange()}get images(){return this._images}get imagesM(){let e=[];return this._images.forEach((t=>{e.push({...t})})),e}image(e){let t=this._map[e];return void 0===t?null:this._images[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{e.push({...t})})),e}node(e){let t=this._map[e];return void 0===t?null:this._nodes[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{this.setState({...this.state,images:Hm.images,nodes:Nm.nodes,instances:Sm.instances(this.state.disk.node)})},this.onCreate=()=>{this.setState({...this.state,disabled:!0});let e={...this.state.disk};this.props.organizations.length&&!e.organization&&(e.organization=this.props.organizations[0].id),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/disk").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create disk"),void a(e)):void n())))}))}(e).then((()=>{this.setState({...this.state,message:"Disk created successfully",changed:!1}),setTimeout((()=>{this.setState({...this.state,disabled:!1,changed:!0})}),2e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.state={closed:!1,disabled:!1,changed:!1,message:"",disk:{name:"New Disk",index:"1",size:10},datacenter:"",zone:"",images:[],nodes:[],instances:[],hiddenImages:!1}}componentDidMount(){Hm.addChangeListener(this.onChange),Nm.addChangeListener(this.onChange),Sm.addChangeListener(this.onChange),Xp(""),Ah("")}componentWillUnmount(){Hm.removeChangeListener(this.onChange),Nm.removeChangeListener(this.onChange),Sm.removeChangeListener(this.onChange)}set(e,t){let n={...this.state.disk};n[e]=t,this.setState({...this.state,changed:!0,disk:n})}render(){let t=this.state.disk,n=[];if(this.props.organizations.length)for(let t of this.props.organizations)n.push(e.createElement("option",{key:t.id,value:t.id},t.name));let a=!1,s=[];if(this.props.datacenters.length){s.push(e.createElement("option",{key:"null",value:""},"Select Datacenter")),a=!0;for(let t of this.props.datacenters)s.push(e.createElement("option",{key:t.id,value:t.id},t.name))}a||s.push(e.createElement("option",{key:"null",value:""},"No Datacenters"));let i=this.state.datacenter,r=!1,o=[];if(this.props.zones.length){o.push(e.createElement("option",{key:"null",value:""},"Select Zone"));for(let t of this.props.zones)t.datacenter===i&&(r=!0,o.push(e.createElement("option",{key:t.id,value:t.id},t.name)))}r||(o=[e.createElement("option",{key:"null",value:""},"No Zones")]);let l=!1,c=[];if(this.state.nodes.length){c.push(e.createElement("option",{key:"null",value:""},"Select Node")),l=!0;for(let t of this.state.nodes)c.push(e.createElement("option",{key:t.id,value:t.id},t.name))}l||(c=[e.createElement("option",{key:"null",value:""},"No Nodes")]);let h=!1,d=[];if(this.state.instances.length){d.push(e.createElement("option",{key:"null",value:""},"Detached Disk")),h=!0;for(let t of this.state.instances)d.push(e.createElement("option",{key:t.id,value:t.id},t.name))}h||(d=[e.createElement("option",{key:"null",value:""},"No Instances")]);let u=[e.createElement("option",{key:"null",value:""},"Blank Disk")],p=new Map,m=new Map;if(this.state.images.length){for(let e of this.state.images){if(!this.state.hiddenImages&&e.signed){let t=e.key.split("_");if(t.length>=2&&t[t.length-1].length>=4){let n=t[0]+"_"+e.firmware,a=parseInt(t[t.length-1].substring(0,4),10);if(a){let t=m.get(n);(!t||a>t[0])&&m.set(n,[a,e.id,e.name]);continue}}}p.set(e.id,e.name)}for(let t of p.entries())u.push(e.createElement("option",{key:t[0],value:t[0]},t[1]));for(let t of m.entries())u.push(e.createElement("option",{key:t[1][1],value:t[1][1]},t[1][2]))}return e.createElement("div",{className:"bp3-card bp3-row",style:Dm.row},e.createElement("td",{className:"bp3-cell",colSpan:5,style:Dm.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Dm.group},e.createElement("div",{style:Dm.buttons}),e.createElement(vl,{label:"Name",help:"Name of disk",type:"text",placeholder:"Enter name",disabled:this.state.disabled,value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(Hl,{disabled:this.state.disabled,label:"Organization",help:"Organization for disk.",value:t.organization,onChange:e=>{this.set("organization",e)}},n),e.createElement(Hl,{disabled:this.state.disabled||!a,label:"Datacenter",help:"Datacenter for disk.",value:this.state.datacenter,onChange:e=>{this.setState({...this.state,datacenter:e,disk:{...this.state.disk,node:"",image:""}}),Xp(e),Ah("")}},s),e.createElement(Hl,{disabled:this.state.disabled||!r,label:"Zone",help:"Zone for disk.",value:this.state.zone,onChange:e=>{this.setState({...this.state,zone:e,disk:{...this.state.disk,node:"",instance:""}}),Ah(e)}},o),e.createElement(Hl,{disabled:this.state.disabled||!l,label:"Node",help:"Node to run disk on.",value:t.node,onChange:e=>{this.setState({...this.state,disk:{...this.state.disk,node:e,instance:""}}),Em(e)}},c),e.createElement(ul,{disabled:this.state.disabled,label:"Delete protection",help:"Block disk from being deleted.",checked:t.delete_protection,onToggle:()=>{this.set("delete_protection",!t.delete_protection)}})),e.createElement("div",{style:Dm.group},e.createElement(Hl,{disabled:this.state.disabled||!h,label:"Instance",help:"Instance to attach disk to.",value:t.instance,onChange:e=>{this.set("instance",e)}},d),e.createElement(Uh,{label:"Index",help:"Index to attach disk.",hidden:!t.instance,min:0,max:8,minorStepSize:1,stepSize:1,majorStepSize:1,disabled:this.state.disabled,selectAllOnFocus:!0,value:Number(t.index),onChange:e=>{this.set("index",String(e))}}),e.createElement(Hl,{disabled:this.state.disabled,label:"Image",help:"Starting image for disk.",value:t.image,onChange:e=>{this.set("image",e)}},u),e.createElement(ul,{label:"Show hidden images",help:"Show previous versions of images.",checked:this.state.hiddenImages,onToggle:()=>{this.setState({...this.state,hiddenImages:!this.state.hiddenImages})}}),e.createElement(ul,{label:"Linked disk image",help:"Link to source disk image instead of creating full copy. This will reduce disk size and provide faster creation.",checked:t.backing,onToggle:()=>{this.set("backing",!t.backing)}}),e.createElement(Uh,{label:"Size",help:"Disk size in gigabytes.",min:10,minorStepSize:1,stepSize:1,majorStepSize:2,disabled:this.state.disabled,selectAllOnFocus:!0,value:t.size,onChange:e=>{this.set("size",e)}}))),e.createElement(Vm,{style:Dm.save,hidden:!this.state.disk,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,closed:this.state.closed,light:!0,onCancel:this.props.onClose,onCreate:this.onCreate})))}}const Rm={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"},debug:{margin:"0 0 4px 0"},debugButton:{opacity:.5,margin:"8px 0 0 8px"}};class Bm extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=sm.disks,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,disks:e,filter:sm.filter,organizations:gr.organizations,datacenters:gh.datacenters,zones:yh.zones,nodes:ph.nodes,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/disk").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete disks"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onForceDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/disk").query({force:!0}).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete disks"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onSnapshot=()=>{this.setState({...this.state,disabled:!0}),hm(Object.keys(this.state.selected),"snapshot").then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onBackup=()=>{this.setState({...this.state,disabled:!0}),hm(Object.keys(this.state.selected),"backup").then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disks:sm.disks,filter:sm.filter,debug:!1,organizations:gr.organizations,datacenters:gh.datacenters,zones:yh.zones,nodes:ph.nodes,selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){gm.addChangeListener(this.onChange),sm.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),gh.addChangeListener(this.onChange),yh.addChangeListener(this.onChange),ph.addChangeListener(this.onChange),ym(),rm(),bd(),Hh(),Nh(),xh()}componentWillUnmount(){gm.removeChangeListener(this.onChange),sm.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange),gh.removeChangeListener(this.onChange),yh.removeChangeListener(this.onChange),ph.removeChangeListener(this.onChange)}render(){let t,n=[];this.state.disks.forEach((t=>{n.push(e.createElement(xm,{key:t.id,disk:t,organizations:this.state.organizations,selected:!!this.state.selected[t.id],open:!!this.state.opened[t.id],onSelect:e=>{let n={...this.state.selected};if(e){let e,a,s=this.state.disks;for(let n=0;na&&(a=[e,e=a][0]);for(let t=e;t<=a;t++)n[s[t].id]=!0;return void this.setState({...this.state,lastSelected:t.id,selected:n})}}n[t.id]?delete n[t.id]:n[t.id]=!0,this.setState({...this.state,lastSelected:t.id,selected:n})},onOpen:()=>{let e={...this.state.opened};e[t.id]?delete e[t.id]:e[t.id]=!0,this.setState({...this.state,opened:e})}}))})),this.state.newOpened&&(t=e.createElement(Im,{organizations:this.state.organizations,datacenters:this.state.datacenters,zones:this.state.zones,onClose:()=>{this.setState({...this.state,newOpened:!1})}}));let a="bp3-button bp3-icon-console ";this.state.debug&&(a+="bp3-active");let s="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(s+="bp3-active");let i=[];for(let e of Object.keys(this.state.selected)){let t=sm.disk(e);t?i.push(t.name||e):i.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Rm.header},e.createElement("h2",{style:Rm.heading},"Disks"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Rm.buttons},e.createElement("button",{className:a,style:Rm.debugButton,hidden:$i,type:"button",onClick:()=>{this.setState({...this.state,debug:!this.state.debug})}},"Debug"),e.createElement("button",{className:s,style:Rm.button,type:"button",onClick:()=>{null===this.state.filter?lm({}):lm(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:Rm.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement(Rr,{label:"Snapshot Selected",className:"bp3-intent-primary bp3-icon-floppy-disk",progressClassName:"bp3-intent-primary",safe:!0,style:Rm.button,confirmMsg:"Snapshot the selected disks",items:i,disabled:!this.selected||this.state.disabled,onConfirm:this.onSnapshot}),e.createElement(Rr,{label:"Backup Selected",className:"bp3-intent-primary bp3-icon-compressed",progressClassName:"bp3-intent-primary",safe:!0,style:Rm.button,confirmMsg:"Backup the selected disks",items:i,disabled:!this.selected||this.state.disabled,onConfirm:this.onBackup}),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:Rm.button,confirmMsg:"Permanently delete the selected disks",confirmInput:!0,items:i,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete}),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:Rm.button,disabled:this.state.disabled||this.state.newOpened,type:"button",onClick:()=>{this.setState({...this.state,newOpened:!0})}},"New"))),e.createElement("div",{className:"layout horizontal wrap",style:Rm.debug,hidden:!this.state.debug},e.createElement(Rr,{label:"Force Delete Selected",className:"bp3-intent-danger bp3-icon-warning-sign",progressClassName:"bp3-intent-danger",safe:!0,style:Rm.button,confirmMsg:"Permanently force delete the selected disks",items:i,disabled:!this.selected||this.state.disabled,onConfirm:this.onForceDelete}))),e.createElement(Tm,{filter:this.state.filter,onFilter:e=>{lm(e)},organizations:this.state.organizations,nodes:this.state.nodes}),e.createElement("div",{style:Rm.itemsBox},e.createElement("div",{style:Rm.items},t,n,e.createElement("tr",{className:"bp3-card bp3-row",style:Rm.placeholder},e.createElement("td",{colSpan:5,style:Rm.placeholder})))),e.createElement(To,{hidden:!!n.length,iconClass:"bp3-icon-floppy-disk",title:"No disks",description:"Add a new disk to get started."}),e.createElement(Pm,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const Fm=new class extends hr{constructor(){super(...arguments),this._domains=Object.freeze([]),this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._domains=Object.freeze([]),this._map={},this.emitChange()}get domains(){return this._domains}get domainsM(){let e=[];return this._domains.forEach((t=>{e.push({...t})})),e}domain(e){let t=this._map[e];return void 0===t?null:this._domains[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{e.push({...t})})),e}vpc(e){let t=this._map[e];return void 0===t?null:this._vpcs[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_sync(e){this._map={};for(let t=0;t{let t=this.clone();t.uri=e.target.value,this.props.onChange(t)}})),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",disabled:this.props.disabled,onClick:()=>{this.props.onRemove()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-success bp3-icon-add",onClick:()=>{this.props.onAdd()}})))}}const jm={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%",maxWidth:"1060px"},button:{height:"30px"},controlButton:{marginRight:"10px",marginBottom:"10px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",wordBreak:"break-all"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},list:{marginBottom:"15px"},group:{flex:1,minWidth:"280px",margin:"0 10px"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},role:{margin:"9px 5px 0 5px",height:"20px"},vncBox:{position:"relative"}};class Wm extends e.Component{constructor(t,n){super(t,n),this.onTogleVnc=()=>{this.state.vnc?this.vncRfb&&this.vncRfb.disconnect():this.connectVnc(),this.setState({...this.state,vnc:!this.state.vnc})},this.connectVnc=()=>{this.vncRfb=new Km.Z(this.vncRef.current,"wss://"+location.hostname+(location.port?":"+location.port:"")+"/instance/"+this.props.instance.id+"/vnc?csrf_token="+Wi,{shared:!0,wsProtocols:["binary"],credentials:{password:this.props.instance.vnc_password}}),this.vncRfb.addEventListener("disconnect",function(){setTimeout(function(){this.state.vnc&&this.vncState&&this.connectVnc()}.bind(this),250)}.bind(this)),this.state.vncScale&&(this.vncRfb.scaleViewport="scale")},this.onToggleVncCtrl=()=>{this.vncRfb&&(this.state.vncCtrl?this.vncRfb.sendKey(65507,"ControlLeft",!1):this.vncRfb.sendKey(65507,"ControlLeft",!0)),this.setState({...this.state,vncCtrl:!this.state.vncCtrl})},this.onToggleVncAlt=()=>{this.vncRfb&&(this.state.vncAlt?this.vncRfb.sendKey(65513,"AltLeft",!1):this.vncRfb.sendKey(65513,"AltLeft",!0)),this.setState({...this.state,vncAlt:!this.state.vncAlt})},this.onToggleVncSuper=()=>{this.vncRfb&&(this.state.vncSuper?this.vncRfb.sendKey(65515,"MetaLeft",!1):this.vncRfb.sendKey(65515,"MetaLeft",!0)),this.setState({...this.state,vncSuper:!this.state.vncSuper})},this.onVncCtrlAltDel=()=>{this.vncRfb&&this.vncRfb.sendCtrlAltDel()},this.onVncTab=()=>{this.vncRfb&&this.vncRfb.sendKey(65289,"Tab")},this.onVncEsc=()=>{this.vncRfb&&this.vncRfb.sendKey(65307,"Escape")},this.onToggleVncFullscreen=()=>{document.fullscreenElement?document.exitFullscreen&&document.exitFullscreen():this.vncRef&&this.vncRef.current.requestFullscreen&&this.vncRef.current.requestFullscreen()},this.onToggleVncScale=()=>{let e,t=this.state.vncScale;if(t)this.vncRfb.scaleViewport="";else{let t=this.vncRfb._canvas.height/this.vncRfb._canvas.width;e=Math.floor(this.vncRef.current.offsetWidth*t)}this.setState({...this.state,vncScale:!this.state.vncScale,vncHeight:e}),t||(this.vncRfb.scaleViewport="scale",setTimeout((()=>{this.state.vncScale&&(this.vncRfb.scaleViewport="scale"),setTimeout((()=>{this.state.vncScale&&(this.vncRfb.scaleViewport="scale"),setTimeout((()=>{this.state.vncScale&&(this.vncRfb.scaleViewport="scale"),setTimeout((()=>{this.state.vncScale&&(this.vncRfb.scaleViewport="scale"),setTimeout((()=>{this.state.vncScale&&(this.vncRfb.scaleViewport="scale"),setTimeout((()=>{this.state.vncScale&&(this.vncRfb.scaleViewport="scale")}),50)}),50)}),50)}),50)}),50)}),50))},this.onAddNetworkRole=()=>{let e;if(!this.state.addNetworkRole)return;e=this.state.changed?{...this.state.instance}:{...this.props.instance};let t=[...e.network_roles||[]];-1===t.indexOf(this.state.addNetworkRole)&&t.push(this.state.addNetworkRole),t.sort(),e.network_roles=t,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",instance:e})},this.onRemoveNetworkRole=e=>{let t;t=this.state.changed?{...this.state.instance}:{...this.props.instance};let n=[...t.network_roles||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.network_roles=n,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",instance:t}))},this.onAddDriveDevice=()=>{let e,t=this.props.instance.info.drive_devices||[];if(!this.state.addDriveDevice&&!t.length)return;let n=this.state.addDriveDevice;n||(n=t[0].id),e=this.state.changed?{...this.state.instance}:{...this.props.instance};let a=[...e.drive_devices||[]],s=-1;for(let e=0;e{let t;t=this.state.changed?{...this.state.instance}:{...this.props.instance};let n=[...t.drive_devices||[]],a=-1;for(let t=0;t{let e,t=this.props.instance.info.isos||[];if(!this.state.addIso&&!t.length)return;let n=this.state.addIso;n||(n=t[0].name),e=this.state.changed?{...this.state.instance}:{...this.props.instance};let a=[...e.isos||[]],s=-1;for(let e=0;e{let t;t=this.state.changed?{...this.state.instance}:{...this.props.instance};let n=[...t.isos||[]],a=-1;for(let t=0;t{let e,t=this.props.instance.info.usb_devices||[];if(!this.state.addUsbDevice&&!t.length)return;let n=this.state.addUsbDevice;n||(n=t[0].vendor+":"+t[0].product);let a=-1!==n.indexOf("-");e=this.state.changed?{...this.state.instance}:{...this.props.instance};let s=[...e.usb_devices||[]],i=-1;for(let e=0;e{let t;t=this.state.changed?{...this.state.instance}:{...this.props.instance};let n=[...t.usb_devices||[]],a=-1!==e.indexOf("-"),s=-1;for(let t=0;t{let e,t=this.props.instance.info.pci_devices||[];if(!this.state.addPciDevice&&!t.length)return;let n=this.state.addPciDevice;n||(n=t[0].slot),e=this.state.changed?{...this.state.instance}:{...this.props.instance};let a=[...e.pci_devices||[]],s=-1;for(let e=0;e{let t;t=this.state.changed?{...this.state.instance}:{...this.props.instance};let n=[...t.pci_devices||[]],a=-1;for(let t=0;t{let t;t=this.state.changed?{...this.state.instance}:{...this.props.instance};let n=[...t.iscsi_devices||[]];0===n.length&&(n=[{}]),n.splice(e+1,0,{}),t.iscsi_devices=n,this.setState({...this.state,changed:!0,message:"",instance:t})},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/instance/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save instance"),void a(e)):void n())))}))}({...this.state.instance,state:null}).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,instance:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/instance/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete instance"),void a(e)):void n())))}))}(this.props.instance.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",instance:null,addCert:null,addNetworkRole:"",addVpc:"",addDriveDevice:"",addIso:"",addUsbDevice:"",addPciDevice:"",forwardedChecked:!1,vnc:!1,vncCtrl:!1,vncAlt:!1,vncSuper:!1,vncScale:!1,vncHeight:null},this.vncRef=e.createRef()}componentDidMount(){this.vncState=!0}componentWillUnmount(){this.vncState=!1,this.vncRfb&&this.vncRfb.disconnect()}set(e,t){let n;n=this.state.changed?{...this.state.instance}:{...this.props.instance},n[e]=t,this.setState({...this.state,changed:!0,instance:n})}onChangeIscsiDevice(e,t){let n;n=this.state.changed?{...this.state.instance}:{...this.props.instance};let a=[...n.iscsi_devices||[]];0===a.length&&(a=[{}]),a[e]=t,n.iscsi_devices=a,this.setState({...this.state,changed:!0,message:"",instance:n})}onRemoveIscsiDevice(e){let t;t=this.state.changed?{...this.state.instance}:{...this.props.instance};let n=[...t.iscsi_devices||[]];0!==n.length&&n.splice(e,1),0===n.length&&(n=[{}]),t.iscsi_devices=n,this.setState({...this.state,changed:!0,message:"",instance:t})}update(e){this.setState({...this.state,disabled:!0}),Cm([this.props.instance.id],e).then((()=>{setTimeout((()=>{this.setState({...this.state,disabled:!1})}),250)})).catch((()=>{this.setState({...this.state,disabled:!1})}))}render(){let t=this.state.instance||this.props.instance,n=this.props.instance.info||{},a=gr.organization(this.props.instance.organization),s=yh.zone(this.props.instance.zone),i=this.props.instance.private_ips;i&&i.length||(i="None");let r=this.props.instance.private_ips6;r&&r.length||(r="None");let o=this.props.instance.gateway_ips;o&&o.length||(o="None");let l=this.props.instance.gateway_ips6;l&&l.length||(l="None");let c=this.props.instance.public_ips;c&&c.length||(c="None");let h=this.props.instance.public_ips6;h&&h.length||(h="None");let d=this.props.instance.host_ips;d&&d.length||(d="None");let u=this.props.instance.oracle_private_ips;u&&u.length||(u=null);let p=this.props.instance.oracle_public_ips;p&&p.length||(p=null);let m="no-select tab-close";switch(t.status){case"Running":m+=" bp3-text-intent-success";break;case"Restart Required":m+=" bp3-text-intent-warning";break;case"Stopped":case"Failed":case"Destroying":m+=" bp3-text-intent-danger"}let f=[];for(let n of t.network_roles||[])f.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:jm.role,key:n},n,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveNetworkRole(n)}})));let v=!1,g=[];if(this.props.vpcs&&this.props.vpcs.length){g.push(e.createElement("option",{key:"null",value:""},"Select Vpc"));for(let n of this.props.vpcs)n.organization===t.organization&&(v=!0,g.push(e.createElement("option",{key:n.id,value:n.id},n.name)))}v||(g=[e.createElement("option",{key:"null",value:""},"No Vpcs")]);let b=!1,y=[];if(this.props.vpcs&&this.props.vpcs.length){y.push(e.createElement("option",{key:"null",value:""},"Select Subnet"));for(let n of this.props.vpcs)if(n.organization===t.organization&&n.id===t.vpc)for(let t of n.subnets||[])b=!0,y.push(e.createElement("option",{key:t.id,value:t.id},t.name+" - "+t.network))}b||(y=[e.createElement("option",{key:"null",value:""},"No Subnets")]);let _=[e.createElement("option",{key:"null",value:""},"Disabled")];if(this.props.instance.info.oracle_subnets)for(let t of this.props.instance.info.oracle_subnets||[])_.push(e.createElement("option",{key:t.id,value:t.id},t.name));let w=[e.createElement("option",{key:"null",value:""},"No Domain")];if(this.props.domains&&this.props.domains.length)for(let n of this.props.domains)n.organization===t.organization&&w.push(e.createElement("option",{key:n.id,value:n.id},n.name));let C=[];for(let n of t.drive_devices||[]){let t=n.id;C.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:jm.item,key:t},t,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveDriveDevice(t)}})))}let E=this.props.instance.info.drive_devices,S=[];for(let t=0;t<(E||[]).length;t++){let n=E[t];S.push(e.createElement("option",{key:n.id,value:n.id},n.id))}let k=[];for(let n of t.isos||[]){let t=n.name;k.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:jm.item,key:t},t,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveIso(t)}})))}let z=this.props.instance.info.isos,M=[];for(let t=0;t<(z||[]).length;t++){let n=z[t];M.push(e.createElement("option",{key:n.name,value:n.name},n.name))}let x=[];for(let n of t.usb_devices||[]){let t="";t=n.bus&&n.address?n.bus+"-"+n.address:n.vendor+":"+n.product,x.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:jm.item,key:t},t,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemoveUsbDevice(t)}})))}let A=this.props.instance.info.usb_devices,T=[];for(let t=0;t<(A||[]).length;t++){let n=A[t];T.push(e.createElement("option",{key:t+"_"+n.vendor+":"+n.product,value:n.vendor+":"+n.product},"Device="+n.vendor+":"+n.product+" ("+n.name+")"))}for(let t=0;t<(A||[]).length;t++){let n=A[t];T.push(e.createElement("option",{key:t+"_"+n.bus+"-"+n.address,value:n.bus+"-"+n.address},"Bus="+n.bus+" Port="+n.address+" ("+n.name+")"))}let L=[];for(let n of t.pci_devices||[]){let t=n.slot;L.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:jm.item,key:t},t,e.createElement("button",{disabled:this.state.disabled,className:"bp3-tag-remove",onMouseUp:()=>{this.onRemovePciDevice(t)}})))}let P=this.props.instance.info.pci_devices,H=[];for(let t=0;t<(P||[]).length;t++){let n=P[t];H.push(e.createElement("option",{key:n.slot,value:n.slot},n.slot+" "+n.class+":"+n.name))}let N=[...t.iscsi_devices||[]];0===N.length&&N.push({});let O=[];for(let t=0;t{this.onChangeIscsiDevice(n,e)},onAdd:()=>{this.onAddIscsiDevice(n)},onRemove:()=>{this.onRemoveIscsiDevice(n)}}))}let V=[{label:"ID",value:this.props.instance.id||"None"},{label:"Organization",value:a?a.name:this.props.instance.organization||"None"},{label:"Zone",value:s?s.name:this.props.instance.zone||"None"},{label:"Node",value:n.node||"None"},{label:"State",value:(this.props.instance.state||"None")+":"+(this.props.instance.vm_state||"None")},{label:"Uptime",value:this.props.instance.uptime||"-"},{label:"Public MAC Address",value:this.props.instance.public_mac||"Unknown",copy:!0},{label:"QEMU Version",value:this.props.instance.qemu_version||"Unknown"},{label:"Platform",value:this.props.instance.uefi?"UEFI":"BIOS"},{label:"SecureBoot",value:this.props.instance.secure_boot?"Enabled":"Disabled"},{label:"Public IPv4",value:c,copy:!0},{label:"Public IPv6",value:h,copy:!0},{label:"Private IPv4",value:i,copy:!0},{label:"Private IPv6",value:r,copy:!0},{label:"Gateway IPv4",value:o,copy:!0},{label:"Gateway IPv6",value:l,copy:!0}];if(p&&V.push({label:"Oracle Public IPv4",value:p,copy:!0}),u&&V.push({label:"Oracle Private IPv4",value:u,copy:!0}),V.push({label:"Host IPv4",value:d,copy:!0}),this.props.instance.info.mtu&&V.push({label:"Network MTU",value:this.props.instance.info.mtu,copy:!0}),V.push({label:"Network Namespace",value:this.props.instance.network_namespace||"None",copy:!0}),this.props.instance.root_enabled&&V.push({label:"Root Password",value:this.props.instance.root_passwd,copy:!0}),this.props.instance.vnc){let e;this.props.instance.info.node_public_ip&&V.push({label:"VNC IP",value:this.props.instance.info.node_public_ip,copy:!0}),e=this.props.instance.vnc_display?this.props.instance.vnc_display+5900:"-",V.push({label:"VNC Port",value:e,copy:!0},{label:"VNC Password",value:this.props.instance.vnc_password,copy:!0})}this.props.instance.spice&&(this.props.instance.info.node_public_ip&&V.push({label:"Spice IP",value:this.props.instance.info.node_public_ip,copy:!0}),V.push({label:"Spice Port",value:this.props.instance.spice_port||"-",copy:!0},{label:"Spice Password",value:this.props.instance.spice_password,copy:!0})),V.push({label:"Disks",value:n.disks||""},{label:"Firewall Rules",value:this.props.instance.info.firewall_rules||""},{label:"Authorities",value:this.props.instance.info.authorities||""});let D={height:this.state.vncHeight?this.state.vncHeight+"px":"100%",marginBottom:"10px"};return e.createElement("td",{className:"bp3-cell",colSpan:6,style:jm.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:jm.group},e.createElement("div",{className:"layout horizontal tab-close",style:jm.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox",style:jm.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:m,style:jm.status},e.createElement("span",{style:jm.icon,hidden:!t.status,className:"bp3-icon-standard bp3-icon-power"}),t.status),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:jm.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Instance",confirmMsg:"Permanently delete this instance",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of instance",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Instance comment.",placeholder:"Instance comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Uh,{label:"Memory Size",help:"Instance memory size in megabytes.",min:256,minorStepSize:256,stepSize:512,majorStepSize:1024,disabled:this.state.disabled,selectAllOnFocus:!0,onChange:e=>{this.set("memory",e)},value:t.memory}),e.createElement(Uh,{label:"Processors",help:"Number of instance processors.",min:1,minorStepSize:1,stepSize:1,majorStepSize:2,disabled:this.state.disabled,selectAllOnFocus:!0,onChange:e=>{this.set("processors",e)},value:t.processors}),e.createElement("label",{className:"bp3-label"},"Network Roles",e.createElement(hl,{title:"Network Roles",content:"Network roles that will be matched with firewall rules. Network roles are case-sensitive."}),e.createElement("div",null,f)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addNetworkRole,onChange:e=>{this.setState({...this.state,addNetworkRole:e})},onSubmit:this.onAddNetworkRole}),e.createElement("label",{className:"bp3-label",style:jm.label,hidden:!k.length&&!M.length},"ISO Images",e.createElement(hl,{title:"ISO Images",content:"ISO images to attach to instance."}),e.createElement("div",null,k)),e.createElement(Xh,{hidden:!M.length,label:"Add ISO",value:this.state.addIso,disabled:this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addIso:e})},onSubmit:this.onAddIso},M),e.createElement("label",{className:"bp3-label",style:jm.label,hidden:!C.length&&!S.length},"Disk Passthrough Devices",e.createElement(hl,{title:"Disk Passthrough Devices",content:"Passthrough node disk to instance."}),e.createElement("div",null,C)),e.createElement(Xh,{hidden:!S.length,label:"Add Device",value:this.state.addDriveDevice,disabled:this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addDriveDevice:e})},onSubmit:this.onAddDriveDevice},S),e.createElement("label",{hidden:!(n.iscsi||this.props.instance.iscsi_devices&&0!==this.props.instance.iscsi_devices.length),style:jm.itemsLabel},"iSCSI Devices",e.createElement(hl,{title:"iSCSI Devices",content:"Mount iSCSI disks with URI, below are examples without and with authentication.",examples:["iscsi://10.0.0.1/iqn.2001-04.com.example/lun","iscsi://username:password@10.0.0.1/iqn.2001-04.com.example/lun"]})),e.createElement("div",{hidden:!(n.iscsi||this.props.instance.iscsi_devices&&0!==this.props.instance.iscsi_devices.length),style:jm.list},O),e.createElement("label",{className:"bp3-label",style:jm.label,hidden:!L.length&&!H.length},"PCI Devices",e.createElement(hl,{title:"PCI Devices",content:"PCI devices to for host passthrough to instance."}),e.createElement("div",null,L)),e.createElement(Xh,{hidden:!H.length,label:"Add Device",value:this.state.addPciDevice,disabled:this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addPciDevice:e})},onSubmit:this.onAddPciDevice},H),e.createElement("label",{className:"bp3-label",style:jm.label,hidden:null===A},"USB Devices",e.createElement(hl,{title:"USB Devices",content:"USB devices to for host passthrough to instance."}),e.createElement("div",null,x)),e.createElement(Xh,{hidden:null===A,label:"Add Device",value:this.state.addUsbDevice,disabled:!T.length||this.state.disabled,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,addUsbDevice:e})},onSubmit:this.onAddUsbDevice},T),e.createElement(Hl,{disabled:this.state.disabled||!v,label:"VPC",help:"VPC for instance.",value:t.vpc,onChange:e=>{this.set("vpc",e)}},g),e.createElement(Hl,{disabled:this.state.disabled||!v,label:"Subnet",help:"Subnet for instance.",value:t.subnet,onChange:e=>{this.set("subnet",e)}},y),e.createElement(Hl,{disabled:this.state.disabled,hidden:_.length<=1,label:"Oracle Cloud Subnet",help:"Oracle Cloud subnet for instance.",value:t.oracle_subnet,onChange:e=>{this.set("oracle_subnet",e)}},_),e.createElement(Hl,{disabled:this.state.disabled,label:"DNS Domain",help:"Domain to create DNS name using instance name.",value:t.domain,onChange:e=>{this.set("domain",e)}},w),e.createElement(Hl,{disabled:this.state.disabled,label:"CloudInit Type",help:"Target operating system for cloud init",value:t.cloud_type,onChange:e=>{this.set("cloud_type",e)}},e.createElement("option",{key:"linux",value:"linux"},"Linux"),",",e.createElement("option",{key:"bsd",value:"bsd"},"BSD"),","),e.createElement(ul,{disabled:this.state.disabled,label:"Root enabled",help:"Enable root unix account for VNC/Spice access. Random password will be generated.",checked:t.root_enabled,onToggle:()=>{this.set("root_enabled",!t.root_enabled)}}),e.createElement(ul,{disabled:this.state.disabled,label:"VNC server",help:"Enable VNC server for remote control of instance.",checked:t.vnc,onToggle:()=>{this.set("vnc",!t.vnc)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Spice server",help:"Enable Spice server for remote control of instance.",checked:t.spice,onToggle:()=>{this.set("spice",!t.spice)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Desktop GUI",help:"Enable desktop GUI window for instance display.",checked:t.gui,onToggle:()=>{this.set("gui",!t.gui)}}),e.createElement(ul,{disabled:this.state.disabled,label:"UEFI",help:"Enable UEFI boot, requires OVMF package for UEFI image.",checked:t.uefi,onToggle:()=>{this.set("uefi",!t.uefi)}}),e.createElement(ul,{disabled:this.state.disabled,hidden:!t.uefi,label:"SecureBoot",help:"Enable secure boot, requires OVMF package for UEFI image.",checked:t.secure_boot,onToggle:()=>{this.set("secure_boot",!t.secure_boot)}}),e.createElement(ul,{disabled:this.state.disabled,hidden:!t.uefi,label:"TPM",help:"Enable TPM, requires swtpm and OVMF package.",checked:t.tpm,onToggle:()=>{this.set("tpm",!t.tpm)}}),e.createElement(ul,{disabled:this.state.disabled,label:"DHCP server",help:"Enable instance DHCP server, use for instances without cloud init network configuration support.",checked:t.dhcp_server,onToggle:()=>{this.set("dhcp_server",!t.dhcp_server)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Delete protection",help:"Block instance and any attached disks from being deleted.",checked:t.delete_protection,onToggle:()=>{this.set("delete_protection",!t.delete_protection)}}),e.createElement(ul,{label:"Public IPv4 address",help:"Enable or disable public IPv4 address for instance. Node must have network mode configured to assign public address.",checked:!t.no_public_address,onToggle:()=>{this.set("no_public_address",!t.no_public_address)}}),e.createElement(ul,{label:"Public IPv6 address",help:"Enable or disable public IPv6 address for instance. Node must have network mode configured to assign public address.",checked:!t.no_public_address6,onToggle:()=>{this.set("no_public_address6",!t.no_public_address6)}}),e.createElement(ul,{label:"Host address",help:"Enable or disable host address for instance. Node must have host networking configured to assign host address.",checked:!t.no_host_address,onToggle:()=>{this.set("no_host_address",!t.no_host_address)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Skip source/destination check",help:"Allow network traffic from non-instance addresses.",checked:t.skip_source_dest_check,onToggle:()=>{this.set("skip_source_dest_check",!t.skip_source_dest_check)}})),e.createElement("div",{style:jm.group},e.createElement(Bo,{fields:V}))),e.createElement(ml,{hidden:!this.state.instance&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,wrap:!0,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,forwardedChecked:!1,instance:null})},onSave:this.onSave},e.createElement(Rr,{label:"Start",className:"bp3-intent-success bp3-icon-power",progressClassName:"bp3-intent-success",style:jm.controlButton,hidden:"stop"!==this.props.instance.state,disabled:this.state.disabled,onConfirm:()=>{this.update("start")}}),e.createElement(Rr,{label:"Stop",className:"bp3-intent-danger bp3-icon-power",progressClassName:"bp3-intent-danger",style:jm.controlButton,hidden:"start"!==this.props.instance.state,disabled:this.state.disabled,onConfirm:()=>{this.update("stop")}}),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-console",hidden:this.state.vnc||!this.props.instance.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onTogleVnc()}},"VNC Console"),e.createElement("button",{className:"bp3-button bp3-intent-danger bp3-icon-console",hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onTogleVnc()}},"VNC Console")),e.createElement("div",{style:jm.vncBox},e.createElement("div",{className:"layout horizontal"},e.createElement("button",{className:"bp3-button bp3-icon-key-control"+(this.state.vncCtrl?" bp3-active":""),hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onToggleVncCtrl()}},"Ctrl"),e.createElement("button",{className:"bp3-button bp3-icon-key-option"+(this.state.vncAlt?" bp3-active":""),hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onToggleVncAlt()}},"Alt"),e.createElement("button",{className:"bp3-button bp3-icon-key-command"+(this.state.vncSuper?" bp3-active":""),hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onToggleVncSuper()}},"Super"),e.createElement("button",{className:"bp3-button bp3-icon-key-tab",hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onVncTab()}},"Tab"),e.createElement("button",{className:"bp3-button bp3-icon-key-escape",hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onVncEsc()}},"Esc"),e.createElement("button",{className:"bp3-button bp3-icon-fullscreen",hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onToggleVncFullscreen()}},"Fullscreen"),e.createElement("button",{className:"bp3-button bp3-icon-zoom-to-fit"+(this.state.vncScale?" bp3-active":""),hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onToggleVncScale()}},"Scale"),e.createElement("button",{className:"bp3-button bp3-icon-control",hidden:!this.state.vnc,style:jm.controlButton,disabled:this.state.disabled,type:"button",onClick:()=>{this.onVncCtrlAltDel()}},"Ctrl+Alt+Del")),e.createElement("div",{ref:this.vncRef,style:D,hidden:!this.state.vnc})))}}const Qm={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"}};class Ym extends e.Component{render(){let t=this.props.instance;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:Qm.cardOpen},e.createElement(Wm,{instance:this.props.instance,vpcs:this.props.vpcs,domains:this.props.domains,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n=ph.node(this.props.instance.node),a=n?n.name:null,s=yh.zone(this.props.instance.zone),i=s?s.name:null,r={...Qm.card},o="",l="";t.public_ips&&t.public_ips.length>0?o=t.public_ips[0]:t.host_ips&&t.host_ips.length>0&&(o=t.host_ips[0]),t.private_ips&&t.private_ips.length>0&&(l=t.private_ips[0]);let c="bp3-cell";switch(t.status){case"Running":c+=" bp3-text-intent-success";break;case"Restart Required":c+=" bp3-text-intent-warning";break;case"Stopped":case"Failed":case"Destroying":c+=" bp3-text-intent-danger"}return e.createElement("div",{className:"bp3-card bp3-row",style:r,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:Qm.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:Qm.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:Qm.nameSpan},t.name))),e.createElement("div",{className:c,style:Qm.item},e.createElement("span",{style:Qm.icon,hidden:!t.status,className:"bp3-icon-standard bp3-icon-power"}),t.status),e.createElement("div",{className:"bp3-cell",style:Qm.item},e.createElement("span",{style:Qm.icon,hidden:!a,className:"bp3-icon-standard bp3-text-muted bp3-icon-layers"}),a),e.createElement("div",{className:"bp3-cell",style:Qm.item},e.createElement("span",{style:Qm.icon,hidden:!i,className:"bp3-icon-standard bp3-text-muted bp3-icon-layout-circle"}),i),e.createElement("div",{className:"bp3-cell",style:Qm.item},e.createElement("span",{style:Qm.icon,hidden:!o,className:"bp3-icon-standard bp3-text-muted bp3-icon-ip-address"}),o),e.createElement("div",{className:"bp3-cell",style:Qm.item},e.createElement("span",{style:Qm.icon,hidden:!l,className:"bp3-icon-standard bp3-text-muted bp3-icon-ip-address"}),l))}}const Zm={dialog:{height:"500px",width:"90%",maxWidth:"700px"},textarea:{resize:"none",fontSize:"12px",fontFamily:'"Lucida Console", Monaco, monospace'}};class qm extends e.Component{render(){return this.props.open?e.createElement("div",null,e.createElement(ra,{title:"Oracle Linux End-User License Agreement",style:Zm.dialog,isOpen:this.props.open,usePortal:!0,portalContainer:document.body,onClose:()=>{this.props.onClose()}},e.createElement("textarea",{className:"bp3-dialog-body bp3-input",style:Zm.textarea,autoCapitalize:"off",spellCheck:!1,readOnly:!0,value:"ORACLE LINUX LICENSE AGREEMENT \n\n“We,” “us,” “our” and “Oracle” refers to Oracle America, Inc. “You” and “your” refers to the \nindividual or entity that has acquired the Oracle Linux programs. “Oracle Linux programs” \nrefers to the Linux software product which you have acquired. “License” refers to your right to \nuse the Oracle Linux programs under the terms of this Agreement and the licenses referenced \nherein. This Agreement is governed by the substantive and procedural laws of the United States \nand the State of California and you and Oracle agree to submit to the exclusive jurisdiction of, \nand venue in, the courts of San Francisco or Santa Clara counties in California in any dispute \narising out of or relating to this Agreement.\n\nWe are willing to provide a copy of the Oracle Linux programs to you only upon the condition \nthat you accept all of the terms contained in this Agreement. Read the terms carefully and \nindicate your acceptance by either selecting the “Accept” button at the bottom of the page to \nconfirm your acceptance, if you are downloading the Oracle Linux programs, or continuing to \ninstall the Oracle Linux programs, if you have received this Agreement during the installation \nprocess. If you are not willing to be bound by these terms, select the “Do Not Accept” button or \ndiscontinue the installation process.\n\n1. Grant of Licenses to the Oracle Linux programs. Subject to the terms of this Agreement, \nOracle grants to you a license to the Oracle Linux programs under the GNU General Public \nLicense version 2.0. The Oracle Linux programs contain many components developed by Oracle \nand various third parties. The license for each component is located in the licensing \ndocumentation and/or in the component's source code. In addition, a list of components may be \ndelivered with the Oracle Linux programs and the Additional Oracle Linux programs (as defined \nbelow) or accessed online at http://oss.oracle.com/linux/legal/oracle-list.html. The source code \nfor the Oracle Linux Programs and the Additional Oracle Linux programs can be found and \naccessed online at https://oss.oracle.com/sources/. This agreement does not limit, supersede or \nmodify your rights under the license associated with any separately licensed individual \ncomponent.\n\n2. Licenses to Additional Oracle Linux programs. Certain third-party technology (collectively \nthe “Additional Oracle Linux programs”) may be included on the same medium or as part of the \ndownload of Oracle Linux programs you receive, but is not part of the Oracle Linux programs. \nEach Additional Oracle Linux program is licensed solely under the terms of the Mozilla Public \nLicense, Apache License, Common Public License, GNU Lesser General Public License, \nNetscape Public License or similar license that is included with the relevant Additional Oracle \nLinux program. \n\n3. Ownership. The Oracle Linux programs and their components and the Additional Oracle \nLinux programs are owned by Oracle or its licensors. Subject to the licenses granted and/or \nreferenced herein, title to the Oracle Linux programs and their components and the Additional \nOracle Linux programs remains with Oracle and/or its licensors. \n\n4. Trademark License. You are permitted to distribute unmodified Oracle Linux programs or \nunmodified Additional Oracle Linux programs without removing the trademark(s) owned by \nOracle or its affiliates that are included in the unmodified Oracle Linux programs or unmodified \nAdditional Oracle Linux programs (the “Oracle Linux trademarks”). You may only distribute \nmodified Oracle Linux programs or modified Additional Oracle Linux programs if you remove \nrelevant images containing the Oracle Linux trademarks. Certain files, identified in \nhttp://oss.oracle.com/linux/legal/oracle-list.html, include such trademarks. Do not delete these \nfiles, as deletion may corrupt the Oracle Linux programs or Additional Oracle Linux programs. \nYou are not granted any other rights to Oracle Linux trademarks, and you acknowledge that you \nshall not gain any proprietary interest in the Oracle Linux trademarks. All goodwill arising out of \nuse of the Oracle Linux trademarks shall inure to the benefit of Oracle or its affiliates. You may \nnot use any trademarks owned by Oracle or its affiliates (including “ORACLE”) or potentially \nconfusing variations (such as, “ORA”) as a part of your logo(s), product name(s), service \nname(s), company name, or domain name(s) even if such products, services or domains include, \nor are related to, the Oracle Linux programs or Additional Oracle Linux programs. \n\n5. Limited Warranty. THE ORACLE LINUX PROGRAMS AND ADDITIONAL ORACLE \nLINUX PROGRAMS ARE PROVIDED \"AS IS\" WITHOUT WARRANTY OF ANY KIND. \nWE FURTHER DISCLAIM ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING \nWITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR \nFITNESS FOR A PARTICULAR PURPOSE.\n\n6. Limitation of Liability. IN NO EVENT SHALL WE BE LIABLE FOR ANY INDIRECT, \nINCIDENTAL, SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR DAMAGES \nFOR LOSS OF PROFITS, REVENUE, DATA OR DATA USE, INCURRED BY YOU OR \nANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT, EVEN IF WE \nHAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. OUR ENTIRE \nLIABILITY FOR DAMAGES HEREUNDER SHALL IN NO EVENT EXCEED ONE \nHUNDRED DOLLARS (U.S.).\n\n7. No Technical Support. Our technical support organization will not provide technical support, \nphone support, or updates to you for the materials licensed under this Agreement. Technical \nsupport, if available, may be acquired from Oracle or its affiliates under a separate agreement.\n\n8. Relationship Between the Parties. The relationship between you and us is that of \nlicensee/licensor. Neither party will represent that it has any authority to assume or create any \nobligation, express or implied, on behalf of the other party, nor to represent the other party as \nagent, employee, franchisee, or in any other capacity. Nothing in this Agreement shall be \nconstrued to limit either party's right to independently develop or distribute programs that are \nfunctionally similar to the other party’s products, so long as proprietary information of the other \nparty is not included in such programs.\n\n9. Entire Agreement. You agree that this Agreement is the complete Agreement for the Oracle \nLinux programs and the Additional Oracle Linux programs, and this Agreement supersedes all \nprior or contemporaneous Agreements or representations. If any term of this Agreement is found \nto be invalid or unenforceable, the remaining provisions will remain effective. Neither the \nUniform Computer Information Transactions Act nor the United Nations Convention on the \nInternational Sale of Goods applies to this agreement.\n\nYou can find a copy of the GNU General Public License version 2.0 in the “copying” or \n“license” file included with the Oracle Linux programs or here: \nhttp://oss.oracle.com/licenses/GPL-2.\n\nOFFER TO PROVIDE SOURCE CODE\n\nFor software that you receive from Oracle in binary form that is licensed under an open source \nlicense that gives you the right to receive the source code for that binary, you can obtain a copy \nof the applicable source code from https://oss.oracle.com/sources/ or \nhttp://www.oracle.com/goto/opensourcecode. Alternatively, if the source code for the \ntechnology was not provided to you with the binary, you can also receive a copy of the source \ncode on physical media by submitting a written request to:\n \nOracle America, Inc. \nAttn: Associate General Counsel \nDevelopment and Engineering Legal \n500 Oracle Parkway, 10th Floor \nRedwood Shores, CA 94065 \n \nOr, you may send an email to Oracle using the form linked from \nhttp://www.oracle.com/goto/opensourcecode. Your written or emailed request should include:\n•\tThe name of the component or binary file(s) for which you are requesting the source code\n•\tThe name and version number of the Oracle product\n•\tThe date you received the Oracle product\n•\tYour name\n•\tYour company name (if applicable)\n•\tYour return mailing address and email\n•\tA telephone number in the event we need to reach you.\nWe may charge you a fee to cover the cost of physical media and processing. Your request must \nbe sent (i) within three (3) years of the date you received the Oracle product that included the \ncomponent or binary file(s) that are the subject of your request, or (ii) in the case of code \nlicensed under the GPL v3, for as long as Oracle offers spare parts or customer support for that \nproduct model or version.\n\nLast updated 24 March 2017"}),e.createElement("div",{className:"bp3-dialog-footer"},e.createElement("div",{className:"bp3-dialog-footer-actions"},e.createElement("button",{className:"bp3-button bp3-intent-danger",type:"button",onClick:()=>{this.props.onClose()}},"Decline"),e.createElement("button",{className:"bp3-button bp3-intent-success",type:"button",onClick:()=>{ji(!0),new Promise(((e,t)=>{vn.put("/license").send({oracle:Gi}).set("Accept","application/json").set("Csrf-Token",Wi).end(((n,a)=>a&&401===a.status?(window.location.href="/login",void e()):n?(Ui(a,"Failed to save license state"),void t(n)):void e()))})),this.props.onClose()}},"Accept"))))):e.createElement("div",null)}}const Jm={row:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},card:{position:"relative",padding:"10px 10px 0 10px",width:"100%"},buttons:{position:"absolute",top:"5px",right:"5px"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},role:{margin:"9px 5px 0 5px",height:"20px"}};class $m extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,images:Hm.images,nodes:Nm.nodes})},this.onCreate=()=>{this.setState({...this.state,disabled:!0});let e={...this.state.instance};this.props.organizations.length&&!e.organization&&(e.organization=this.props.organizations[0].id),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/instance").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create instance"),void a(e)):void n())))}))}(e).then((()=>{this.setState({...this.state,message:"Instance created successfully",changed:!1}),setTimeout((()=>{this.setState({...this.state,disabled:!1,changed:!0})}),2e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onAddNetworkRole=()=>{if(!this.state.addNetworkRole)return;let e={...this.state.instance},t=[...e.network_roles||[]];-1===t.indexOf(this.state.addNetworkRole)&&t.push(this.state.addNetworkRole),t.sort(),e.network_roles=t,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",instance:e})},this.onRemoveNetworkRole=e=>{let t={...this.state.instance},n=[...t.network_roles||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.network_roles=n,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",instance:t}))},this.onImageselect=e=>{let t={...this.state.instance},n=this.imagesMap.get(e);t.image=e,-1!==n.indexOf("BSD")?(t.secure_boot=!1,t.cloud_type="bsd"):(this.state.secureBootChanged||(t.secure_boot=!0),t.cloud_type="linux"),this.setState({...this.state,changed:!0,instance:t})},this.state={closed:!1,disabled:!1,changed:!1,message:"",licenseOpen:!1,instance:this.default,datacenter:"",images:[],nodes:[],addNetworkRole:"",addVpc:"",dhcpChanged:!1,secureBootChanged:!1,hiddenImages:!1}}componentDidMount(){Hm.addChangeListener(this.onChange),Nm.addChangeListener(this.onChange)}componentWillUnmount(){Hm.removeChangeListener(this.onChange),Nm.removeChangeListener(this.onChange)}get default(){return{id:null,name:"New instance",uefi:!0,secure_boot:!0,init_disk_size:10,memory:1024,processors:1,count:1}}set(e,t){let n={...this.state.instance};n[e]=t,this.setState({...this.state,changed:!0,instance:n})}onUefi(e){let t={...this.state.instance};t.uefi!==e&&(t.image=""),t.uefi=e,this.setState({...this.state,changed:!0,instance:t})}onSecureBoot(e){let t={...this.state.instance};t.secure_boot!==e&&(t.image=""),t.secure_boot=e,this.setState({...this.state,changed:!0,instance:t,secureBootChanged:!0})}onDhcpServer(e){let t={...this.state.instance};t.dhcp_server=e,this.setState({...this.state,changed:!0,instance:t,dhcpChanged:!0})}onNode(e){let t={...this.state.instance};t.node=e;let n=Nm.node(t.node);n&&(t.no_public_address=n.default_no_public_address,t.no_public_address6=n.default_no_public_address6),this.setState({...this.state,changed:!0,instance:t})}render(){let t,n=this.state.instance;n.node&&(t=Nm.node(n.node));let a=!!this.props.organizations.length,s=[];if(this.props.organizations&&this.props.organizations.length){s.push(e.createElement("option",{key:"null",value:""},"Select Organization"));for(let t of this.props.organizations)s.push(e.createElement("option",{key:t.id,value:t.id},t.name))}a||s.push(e.createElement("option",{key:"null",value:""},"No Organizations"));let i=!1,r=[];if(this.props.datacenters&&this.props.datacenters.length){r.push(e.createElement("option",{key:"null",value:""},"Select Datacenter")),i=!0;for(let t of this.props.datacenters)r.push(e.createElement("option",{key:t.id,value:t.id},t.name))}i||r.push(e.createElement("option",{key:"null",value:""},"No Datacenters"));let o=this.state.datacenter,l=!1,c=[];if(this.props.zones&&this.props.zones.length){c.push(e.createElement("option",{key:"null",value:""},"Select Zone"));for(let t of this.props.zones)t.datacenter===o&&(l=!0,c.push(e.createElement("option",{key:t.id,value:t.id},t.name)))}l||(c=[e.createElement("option",{key:"null",value:""},"No Zones")]);let h=!1,d=[];if(this.state.nodes&&this.state.nodes.length){d.push(e.createElement("option",{key:"null",value:""},"Select Node")),h=!0;for(let t of this.state.nodes)d.push(e.createElement("option",{key:t.id,value:t.id},t.name))}h||(d=[e.createElement("option",{key:"null",value:""},"No Nodes")]);let u=!1,p=[];if(this.props.vpcs&&this.props.vpcs.length){p.push(e.createElement("option",{key:"null",value:""},"Select Vpc"));for(let t of this.props.vpcs){if($i){if(t.organization!==gr.current)continue}else if(t.organization!==n.organization)continue;t.datacenter===this.state.datacenter&&(u=!0,p.push(e.createElement("option",{key:t.id,value:t.id},t.name)))}}u||(p=[e.createElement("option",{key:"null",value:""},"No Vpcs")]);let m=!1,f=[];if(this.props.vpcs&&this.props.vpcs.length){f.push(e.createElement("option",{key:"null",value:""},"Select Subnet"));for(let t of this.props.vpcs){if($i){if(t.organization!==gr.current)continue}else if(t.organization!==n.organization)continue;if(t.datacenter===this.state.datacenter&&t.id===n.vpc)for(let n of t.subnets||[])m=!0,f.push(e.createElement("option",{key:n.id,value:n.id},n.name+" - "+n.network))}}m||(f=[e.createElement("option",{key:"null",value:""},"No Subnets")]);let v=[e.createElement("option",{key:"null",value:""},"Disabled")];if(t&&t.oracle_subnets&&t.oracle_subnets.length){let n=new Map;for(let e of t.available_vpcs||[])for(let t of e.subnets||[])n.set(t.id,e.name+" - "+t.name);for(let a of t.oracle_subnets||[])v.push(e.createElement("option",{key:a,value:a},n.get(a)||a))}let g=[e.createElement("option",{key:"null",value:""},"No Domain")];if(this.props.domains&&this.props.domains.length)for(let t of this.props.domains)($i||t.organization===n.organization)&&g.push(e.createElement("option",{key:t.id,value:t.id},t.name));let b=!1,y=[];this.imagesMap=new Map;let _=new Map;if(this.state.images.length){y.push(e.createElement("option",{key:"null",value:""},"Select Image")),b=!0;for(let e of this.state.images)if((!n.uefi||"bios"!==e.firmware)&&(n.uefi||"uefi"!==e.firmware)){if(!this.state.hiddenImages&&e.signed){let t=e.key.split("_");if(t.length>=2&&t[t.length-1].length>=4){let n=t[0]+"_"+e.firmware,a=parseInt(t[t.length-1].substring(0,4),10);if(a){let t=_.get(n);(!t||a>t[0])&&_.set(n,[a,e.id,e.name]);continue}}}this.imagesMap.set(e.id,e.name)}for(let t of this.imagesMap.entries())y.push(e.createElement("option",{key:t[0],value:t[0]},t[1]));for(let t of _.entries())this.imagesMap.set(t[1][1],t[1][2]),y.push(e.createElement("option",{key:t[1][1],value:t[1][1]},t[1][2]))}let w=[];for(let t of n.network_roles||[])w.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Jm.role,key:t},t,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveNetworkRole(t)}})));return b||(y=[e.createElement("option",{key:"null",value:""},"No Images")]),e.createElement("div",{className:"bp3-card bp3-row",style:Jm.row},e.createElement("td",{className:"bp3-cell",colSpan:6,style:Jm.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement(qm,{open:this.state.licenseOpen,onClose:()=>{this.setState({...this.state,licenseOpen:!1})}}),e.createElement("div",{style:Jm.group},e.createElement("div",{style:Jm.buttons}),e.createElement(vl,{label:"Name",help:"Name of instance. String formatting such as %d or %02d can be used to add the instance number or zero padded number.",type:"text",placeholder:"Enter name",disabled:this.state.disabled,value:n.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Instance comment.",placeholder:"Instance comment",rows:3,value:n.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Hl,{disabled:this.state.disabled||!a,hidden:$i,label:"Organization",help:"Organization for instance.",value:n.organization,onChange:e=>{this.set("organization",e)}},s),e.createElement(Hl,{disabled:this.state.disabled||!i,label:"Datacenter",help:"Datacenter for instance.",value:this.state.datacenter,onChange:e=>{this.setState({...this.state,datacenter:e,instance:{...this.state.instance,node:"",zone:"",image:""}}),Xp(e),Ah("")}},r),e.createElement(Hl,{disabled:this.state.disabled||!l,label:"Zone",help:"Zone for instance.",value:n.zone,onChange:e=>{this.setState({...this.state,instance:{...this.state.instance,node:"",zone:e}}),Ah(e)}},c),e.createElement(Hl,{disabled:this.state.disabled||!h,label:"Node",help:"Node to run instance on.",value:n.node,onChange:e=>{this.onNode(e)}},d),e.createElement(Hl,{disabled:this.state.disabled||!u,label:"VPC",help:"VPC for instance.",value:n.vpc,onChange:e=>{this.setState({...this.state,instance:{...this.state.instance,vpc:e}})}},p),e.createElement(Hl,{disabled:this.state.disabled||!u,label:"Subnet",help:"Subnet for instance.",value:n.subnet,onChange:e=>{this.setState({...this.state,instance:{...this.state.instance,subnet:e}})}},f),e.createElement(Hl,{disabled:this.state.disabled,hidden:v.length<=1,label:"Oracle Cloud Subnet",help:"Oracle Cloud subnet for instance.",value:n.oracle_subnet,onChange:e=>{this.setState({...this.state,instance:{...this.state.instance,oracle_subnet:e}})}},v),e.createElement(Hl,{disabled:this.state.disabled,label:"DNS Domain",help:"Domain to create DNS name using instance name.",value:n.domain,onChange:e=>{this.set("domain",e)}},g),e.createElement(Hl,{disabled:this.state.disabled,label:"CloudInit Type",help:"Target operating system for cloud init",value:n.cloud_type,onChange:e=>{this.set("cloud_type",e)}},e.createElement("option",{key:"linux",value:"linux"},"Linux"),",",e.createElement("option",{key:"bsd",value:"bsd"},"BSD"),","),e.createElement(ul,{disabled:this.state.disabled,label:"Root enabled",help:"Enable root unix account for VNC/Spice access. Random password will be generated.",checked:n.root_enabled,onToggle:()=>{this.set("root_enabled",!n.root_enabled)}}),e.createElement(ul,{disabled:this.state.disabled,label:"VNC server",help:"Enable VNC server for remote control of instance.",checked:n.vnc,onToggle:()=>{this.set("vnc",!n.vnc)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Spice server",help:"Enable Spice server for remote control of instance.",checked:n.spice,onToggle:()=>{this.set("spice",!n.spice)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Desktop GUI",help:"Enable desktop GUI window for instance display.",checked:n.gui,onToggle:()=>{this.set("gui",!n.gui)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Start instance",help:"Automatically start instance. Disable to get the public MAC address before instance is started for first time.",checked:!n.state,onToggle:()=>{"stop"===n.state?this.set("state",""):this.set("state","stop")}}),e.createElement(ul,{disabled:this.state.disabled,label:"UEFI",help:"Enable UEFI boot, requires OVMF package for UEFI image.",checked:n.uefi,onToggle:()=>{this.onUefi(!n.uefi)}}),e.createElement(ul,{disabled:this.state.disabled,hidden:!n.uefi,label:"SecureBoot",help:"Enable secure boot, requires OVMF package for UEFI image.",checked:n.secure_boot,onToggle:()=>{this.onSecureBoot(!n.secure_boot)}}),e.createElement(ul,{disabled:this.state.disabled,hidden:!n.uefi,label:"TPM",help:"Enable TPM, requires swtpm and OVMF package.",checked:n.tpm,onToggle:()=>{this.set("tpm",!n.tpm)}}),e.createElement(ul,{disabled:this.state.disabled,label:"DHCP server",help:"Enable instance DHCP server, use for instances without cloud init network configuration support.",checked:n.dhcp_server,onToggle:()=>{this.onDhcpServer(!n.dhcp_server)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Delete protection",help:"Block instance and any attached disks from being deleted.",checked:n.delete_protection,onToggle:()=>{this.set("delete_protection",!n.delete_protection)}})),e.createElement("div",{style:Jm.group},e.createElement(Hl,{disabled:this.state.disabled||!b,label:"Image",help:"Starting image for node.",value:n.image,onChange:this.onImageselect},y),e.createElement(ul,{label:"Show hidden images",help:"Show previous versions of images.",checked:this.state.hiddenImages,onToggle:()=>{this.setState({...this.state,hiddenImages:!this.state.hiddenImages})}}),e.createElement(ul,{label:"Linked disk image",help:"Link to source disk image instead of creating full copy. This will reduce disk size and provide faster startup.",checked:n.image_backing,onToggle:()=>{this.set("image_backing",!n.image_backing)}}),e.createElement("label",{className:"bp3-label"},"Network Roles",e.createElement(hl,{title:"Network Roles",content:"Network roles that will be matched with firewall rules. Network roles are case-sensitive."}),e.createElement("div",null,w)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addNetworkRole,onChange:e=>{this.setState({...this.state,addNetworkRole:e})},onSubmit:this.onAddNetworkRole}),e.createElement(Uh,{label:"Disk Size",help:"Instance memory size in megabytes.",min:10,minorStepSize:1,stepSize:2,majorStepSize:5,disabled:this.state.disabled,selectAllOnFocus:!0,onChange:e=>{this.set("init_disk_size",e)},value:n.init_disk_size}),e.createElement(Uh,{label:"Memory Size",help:"Instance memory size in megabytes.",min:256,minorStepSize:256,stepSize:512,majorStepSize:1024,disabled:this.state.disabled,selectAllOnFocus:!0,onChange:e=>{this.set("memory",e)},value:n.memory}),e.createElement(Uh,{label:"Processors",help:"Number of instance processors.",min:1,minorStepSize:1,stepSize:1,majorStepSize:2,disabled:this.state.disabled,selectAllOnFocus:!0,onChange:e=>{this.set("processors",e)},value:n.processors}),e.createElement(Uh,{label:"Count",help:"Number of instances to create.",min:1,minorStepSize:1,stepSize:1,majorStepSize:1,disabled:this.state.disabled,selectAllOnFocus:!0,onChange:e=>{this.set("count",e)},value:n.count}),e.createElement(ul,{disabled:this.state.disabled,label:"Public IPv4 address",help:"Enable or disable public IPv4 address for instance. Node must have network mode configured to assign public address.",checked:!n.no_public_address,onToggle:()=>{this.set("no_public_address",!n.no_public_address)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Public IPv6 address",help:"Enable or disable public IPv6 address for instance. Node must have network mode configured to assign public address.",checked:!n.no_public_address6,onToggle:()=>{this.set("no_public_address6",!n.no_public_address6)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Host address",help:"Enable or disable host address for instance. Node must have host networking configured to assign host address.",checked:!n.no_host_address,onToggle:()=>{this.set("no_host_address",!n.no_host_address)}}),e.createElement(ul,{disabled:this.state.disabled,label:"Skip source/destination check",help:"Allow network traffic from non-instance addresses.",checked:n.skip_source_dest_check,onToggle:()=>{this.set("skip_source_dest_check",!n.skip_source_dest_check)}}))),e.createElement(Vm,{style:Jm.save,hidden:!this.state.instance,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,closed:this.state.closed,light:!0,onCancel:this.props.onClose,onCreate:this.onCreate})))}}const ef={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},shortInput:{width:"180px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class tf extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any Organization")];if(this.props.organizations&&this.props.organizations.length)for(let n of this.props.organizations)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));let n=[e.createElement("option",{key:"key",value:"any"},"Any Node")];if(this.props.nodes&&this.props.nodes.length)for(let t of this.props.nodes)n.push(e.createElement("option",{key:t.id,value:t.id},t.name));let a=[e.createElement("option",{key:"key",value:"any"},"Any Zone")];if(this.props.zones&&this.props.zones.length)for(let t of this.props.zones)a.push(e.createElement("option",{key:t.id,value:t.id},t.name));let s=[e.createElement("option",{key:"key",value:"any"},"Any VPC")];if(this.props.vpcs&&this.props.vpcs.length)for(let t of this.props.vpcs)s.push(e.createElement("option",{key:t.id,value:t.id},t.name));let i=[e.createElement("option",{key:"key",value:"any"},"Any Subnet")];if(this.props.vpcs&&this.props.vpcs.length)for(let t of this.props.vpcs)if(t.id===this.props.filter.vpc)for(let n of t.subnets||[])i.push(e.createElement("option",{key:n.id,value:n.id},n.name+" - "+n.network));return e.createElement("div",{className:"layout horizontal wrap",style:ef.filters},e.createElement(ho,{style:ef.input,placeholder:"Instance ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:ef.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement(ho,{style:ef.shortInput,placeholder:"Network Role",value:this.props.filter.network_role,onChange:e=>{let t={...this.props.filter};e?t.network_role=e:delete t.network_role,this.props.onFilter(t)}}),e.createElement(ho,{style:ef.shortInput,placeholder:"Network Namespace",value:this.props.filter.network_namespace,onChange:e=>{let t={...this.props.filter};e?t.network_namespace=e:delete t.network_namespace,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:ef.type},e.createElement("select",{value:this.props.filter.node||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.node:t.node=n,this.props.onFilter(t)}},n)),e.createElement("div",{className:"bp3-select",style:ef.type},e.createElement("select",{value:this.props.filter.zone||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.zone:t.zone=n,this.props.onFilter(t)}},a)),e.createElement("div",{className:"bp3-select",style:ef.type},e.createElement("select",{value:this.props.filter.vpc||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?(delete t.vpc,delete t.subnet):t.vpc!==n&&(t.vpc=n,delete t.subnet),this.props.onFilter(t)}},s)),e.createElement("div",{className:"bp3-select",style:ef.type},e.createElement("select",{value:this.props.filter.subnet||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.subnet:t.subnet=n,this.props.onFilter(t)}},i)),e.createElement("div",{className:"bp3-select",style:ef.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},t)))}}const nf={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class af extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:gm.page,pageCount:gm.pageCount,pages:gm.pages,count:gm.count})},this.state={page:gm.page,pageCount:gm.pageCount,pages:gm.pages,count:gm.count}}componentDidMount(){gm.addChangeListener(this.onChange)}componentWillUnmount(){gm.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{_m(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{_m(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:nf.button,disabled:0===t,type:"button",onClick:()=>{_m(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:nf.button,disabled:t===n-1,type:"button",onClick:()=>{_m(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{_m(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const sf={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"},debug:{margin:"0 0 4px 0"},debugButton:{opacity:.5,margin:"8px 0 0 8px"}};class rf extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=gm.instances,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,instances:e,filter:gm.filter,organizations:gr.organizations,domains:Fm.domains,vpcs:Xm.vpcs,datacenters:gh.datacenters,nodes:ph.nodes,zones:yh.zones,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/instance").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete instances"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.onForceDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/instance").query({force:!0}).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to force delete instances"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={instances:gm.instances,filter:gm.filter,debug:!1,organizations:gr.organizations,domains:Fm.domains,vpcs:Xm.vpcs,datacenters:gh.datacenters,nodes:ph.nodes,zones:yh.zones,selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){gm.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),Fm.addChangeListener(this.onChange),Xm.addChangeListener(this.onChange),gh.addChangeListener(this.onChange),ph.addChangeListener(this.onChange),yh.addChangeListener(this.onChange),ym(),bd(),function(){let e=zr();Qu=e;let t=(new Nr).loading();new Promise(((n,a)=>{vn.get("/domain").query({names:!0}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Qu){if(s)return Ui(i,"Failed to load domain names"),void a(s);lr.dispatch({type:Ku,data:{domains:i.body}}),n()}else n()}))}))}(),function(){let e=zr();Su=e;let t=(new Nr).loading();new Promise(((n,a)=>{vn.get("/vpc").query({names:"true"}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Su){if(s)return Ui(i,"Failed to load vpcs names"),void a(s);lr.dispatch({type:yu,data:{vpcs:i.body}}),n()}else n()}))}))}(),Hh(),xh(),Nh(),this.interval=setInterval((()=>{ym(!0)}),1e3)}componentWillUnmount(){gm.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange),Fm.removeChangeListener(this.onChange),Xm.removeChangeListener(this.onChange),gh.removeChangeListener(this.onChange),ph.removeChangeListener(this.onChange),yh.removeChangeListener(this.onChange),clearInterval(this.interval)}updateSelected(e){this.setState({...this.state,disabled:!0}),Cm(Object.keys(this.state.selected),e).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}render(){let t,n=[];this.state.instances.forEach((t=>{n.push(e.createElement(Ym,{key:t.id,instance:t,domains:this.state.domains,vpcs:this.state.vpcs,selected:!!this.state.selected[t.id],open:!!this.state.opened[t.id],onSelect:e=>{let n={...this.state.selected};if(e){let e,a,s=this.state.instances;for(let n=0;na&&(a=[e,e=a][0]);for(let t=e;t<=a;t++)n[s[t].id]=!0;return void this.setState({...this.state,lastSelected:t.id,selected:n})}}n[t.id]?delete n[t.id]:n[t.id]=!0,this.setState({...this.state,lastSelected:t.id,selected:n})},onOpen:()=>{let e={...this.state.opened};e[t.id]?delete e[t.id]:e[t.id]=!0,this.setState({...this.state,opened:e})}}))})),this.state.newOpened&&(t=e.createElement($m,{organizations:this.state.organizations,vpcs:this.state.vpcs,domains:this.state.domains,datacenters:this.state.datacenters,zones:this.state.zones,onClose:()=>{this.setState({...this.state,newOpened:!1})}}));let a="bp3-button bp3-icon-console ";this.state.debug&&(a+="bp3-active");let s="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(s+="bp3-active");let i=[];for(let e of Object.keys(this.state.selected)){let t=gm.instance(e);t?i.push(t.name||e):i.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:sf.header},e.createElement("h2",{style:sf.heading},"Instances"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:sf.buttons},e.createElement("button",{className:a,style:sf.debugButton,hidden:$i,type:"button",onClick:()=>{this.setState({...this.state,debug:!this.state.debug})}},"Debug"),e.createElement("button",{className:s,style:sf.button,type:"button",onClick:()=>{null===this.state.filter?wm({}):wm(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:sf.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement(Rr,{label:"Start Selected",className:"bp3-intent-success bp3-icon-power",progressClassName:"bp3-intent-success",safe:!0,style:sf.button,confirmMsg:"Start the selected instances",items:i,disabled:!this.selected||this.state.disabled,onConfirm:()=>{this.updateSelected("start")}}),e.createElement(Rr,{label:"Stop Selected",className:"bp3-intent-warning bp3-icon-power",progressClassName:"bp3-intent-warning",safe:!0,style:sf.button,confirmMsg:"Stop the selected instances",items:i,disabled:!this.selected||this.state.disabled,onConfirm:()=>{this.updateSelected("stop")}}),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:sf.button,confirmMsg:"Permanently delete the selected instances",confirmInput:!0,items:i,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete}),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:sf.button,disabled:this.state.disabled||this.state.newOpened,type:"button",onClick:()=>{this.setState({...this.state,newOpened:!0})}},"New"))),e.createElement("div",{className:"layout horizontal wrap",style:sf.debug,hidden:!this.state.debug},e.createElement(Rr,{label:"Force Delete Selected",className:"bp3-intent-danger bp3-icon-warning-sign",progressClassName:"bp3-intent-danger",style:sf.button,confirmMsg:"Permanently force delete the selected instances",items:i,disabled:!this.selected||this.state.disabled,onConfirm:this.onForceDelete}))),e.createElement(tf,{filter:this.state.filter,onFilter:e=>{wm(e)},nodes:this.state.nodes,zones:this.state.zones,vpcs:this.state.vpcs,organizations:this.state.organizations}),e.createElement("div",{style:sf.itemsBox},e.createElement("div",{style:sf.items},t,n,e.createElement("tr",{className:"bp3-card bp3-row",style:sf.placeholder},e.createElement("td",{colSpan:6,style:sf.placeholder})))),e.createElement(To,{hidden:!!n.length,iconClass:"bp3-icon-dashboard",title:"No instances",description:"Add a new instance to get started."}),e.createElement(af,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const of="firewall.sync",lf="firewall.traverse",cf="firewall.filter";const hf=new class extends hr{constructor(){super(...arguments),this._firewalls=Object.freeze([]),this._filter=null,this._map={},this._token=lr.register(this._callback.bind(this))}_reset(){this._firewalls=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this._map={},this.emitChange()}get firewalls(){return this._firewalls}get firewallsM(){let e=[];return this._firewalls.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||20}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}firewall(e){let t=this._map[e];return void 0===t?null:this._firewalls[t]}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.name!==this._filter.name)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){this._map={};for(let t=0;t{vn.get("/firewall").query({...hf.filter,page:hf.page,page_count:hf.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((s,i)=>{if(t&&t.done(),i&&401===i.status)return window.location.href="/login",void e();if(n===df){if(s)return Ui(i,"Failed to load firewalls"),void a(s);lr.dispatch({type:of,data:{firewalls:i.body.firewalls,count:i.body.count}}),e()}else e()}))}))}function pf(e){return lr.dispatch({type:lf,data:{page:e}}),uf()}function mf(e){return lr.dispatch({type:cf,data:{filter:e}}),uf()}kr.register((e=>{if("firewall.change"===e.type)uf()}));const ff={group:{width:"100%",maxWidth:"310px",marginTop:"5px"},sourceGroup:{width:"100%",maxWidth:"219px",marginTop:"5px"},protocol:{flex:"0 1 auto"},port:{width:"100%"},portBox:{flex:"1"},other:{flex:"0 1 auto",width:"52px",borderRadius:"0 3px 3px 0"}};class vf extends e.Component{constructor(){super(...arguments),this.onAddSourceIp=e=>{let t=this.clone(),n=[...t.source_ips||[]];n.splice(e+1,0,""),t.source_ips=n,this.props.onChange(t)},this.onChangeSourceIp=(e,t)=>{let n=this.clone(),a=[...n.source_ips||[]];a[e]=t,n.source_ips=a,this.props.onChange(n)},this.onRemoveSourceIp=e=>{let t=this.clone(),n=[...t.source_ips||[]];n.splice(e,1),t.source_ips=n,this.props.onChange(t)}}clone(){return{...this.props.rule}}render(){let t=this.props.rule,n=t.port,a="";switch(t.protocol){case"all":n=null,a="Allow all traffic";break;case"icmp":n=null,a="Allow all ICMP traffic"}let s=t.source_ips||[];0===s.length&&s.push("");let i=[];return s.forEach(((t,n)=>{i.push(e.createElement("div",{className:"bp3-control-group",style:ff.sourceGroup,key:n},e.createElement("input",{className:"bp3-input",style:ff.port,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:"Source IP range",value:t,onChange:e=>{this.onChangeSourceIp(n,e.target.value)}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",onClick:()=>{this.onRemoveSourceIp(n)}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-success bp3-icon-add",onClick:()=>{this.onAddSourceIp(n)}})))})),e.createElement("div",null,e.createElement("div",{className:"bp3-control-group",style:ff.group},e.createElement("div",{className:"bp3-select",style:ff.protocol},e.createElement("select",{value:t.protocol,onChange:e=>{let t=this.clone();t.protocol=e.target.value,"all"!==t.protocol&&"icmp"!==t.protocol||(t.port=null),this.props.onChange(t)}},e.createElement("option",{value:"all"},"All Traffic"),e.createElement("option",{value:"icmp"},"ICMP"),e.createElement("option",{value:"tcp"},"TCP"),e.createElement("option",{value:"udp"},"UDP"))),e.createElement("div",{style:ff.portBox},e.createElement("input",{className:"bp3-input",style:ff.port,disabled:!!a,type:"text",autoCapitalize:"off",spellCheck:!1,placeholder:a||"Enter port range",value:t.port||"",onChange:e=>{let t=this.clone();t.port=e.target.value,this.props.onChange(t)}})),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-danger bp3-icon-remove",onClick:()=>{this.props.onRemove()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-intent-success bp3-icon-add",onClick:()=>{this.props.onAdd()}})),i)}}const gf={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},role:{margin:"9px 5px 0 5px",height:"20px"},rules:{marginBottom:"15px"}};class bf extends e.Component{constructor(e,t){super(e,t),this.onAddNetworkRole=()=>{let e;if(!this.state.addNetworkRole)return;e=this.state.changed?{...this.state.firewall}:{...this.props.firewall};let t=[...e.network_roles||[]];-1===t.indexOf(this.state.addNetworkRole)&&t.push(this.state.addNetworkRole),t.sort(),e.network_roles=t,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",firewall:e})},this.onRemoveNetworkRole=e=>{let t;t=this.state.changed?{...this.state.firewall}:{...this.props.firewall};let n=[...t.network_roles||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.network_roles=n,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",firewall:t}))},this.onAddIngress=e=>{let t;t=this.state.changed?{...this.state.firewall}:{...this.props.firewall};let n=[...t.ingress];n.splice(e+1,0,{protocol:"all",source_ips:["0.0.0.0/0","::/0"]}),t.ingress=n,this.setState({...this.state,changed:!0,message:"",firewall:t})},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/firewall/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save firewall"),void a(e)):void n())))}))}(this.state.firewall).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,firewall:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/firewall/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete firewall"),void a(e)):void n())))}))}(this.props.firewall.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",addNetworkRole:null,firewall:null,ingress:null}}set(e,t){let n;n=this.state.changed?{...this.state.firewall}:{...this.props.firewall},n[e]=t,this.setState({...this.state,changed:!0,firewall:n})}onChangeIngress(e,t){let n;n=this.state.changed?{...this.state.firewall}:{...this.props.firewall};let a=[...n.ingress];a[e]=t,n.ingress=a,this.setState({...this.state,changed:!0,message:"",firewall:n})}onRemoveIngress(e){let t;t=this.state.changed?{...this.state.firewall}:{...this.props.firewall};let n=[...t.ingress];n.splice(e,1),n.length||(n=[{protocol:"all",source_ips:["0.0.0.0/0","::/0"]}]),t.ingress=n,this.setState({...this.state,changed:!0,message:"",firewall:t})}render(){let t=this.state.firewall||this.props.firewall,n=[];if(n.push(e.createElement("option",{key:"null",value:""},"Node Firewall")),this.props.organizations.length)for(let t of this.props.organizations)n.push(e.createElement("option",{key:t.id,value:t.id},t.name));let a=[];for(let n of t.network_roles||[])a.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:gf.role,key:n},n,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveNetworkRole(n)}})));let s=[];for(let n=0;n{this.onChangeIngress(a,e)},onAdd:()=>{this.onAddIngress(a)},onRemove:()=>{this.onRemoveIngress(a)}}))}return e.createElement("td",{className:"bp3-cell",colSpan:5,style:gf.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:gf.group},e.createElement("div",{className:"layout horizontal tab-close",style:gf.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox",style:gf.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:gf.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Firewall",confirmMsg:"Permanently delete this firewall",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of firewall",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Firewall comment.",placeholder:"Firewall comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement("label",{style:gf.itemsLabel},"Ingress Rules",e.createElement(hl,{title:"Ingress Rules",content:"Firewall rules."})),e.createElement("div",{style:gf.rules},s)),e.createElement("div",{style:gf.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.firewall.id||"Unknown"}]}),e.createElement(Hl,{disabled:this.state.disabled,hidden:$i,label:"Organization",help:"Organization for firewall, both the organaization and role must match. Select node firewall to match node network roles.",value:t.organization,onChange:e=>{this.set("organization",e)}},n),e.createElement("label",{className:"bp3-label"},"Network Roles",e.createElement(hl,{title:"Network Roles",content:"Network roles that will be matched with firewall rules. Network roles are case-sensitive."}),e.createElement("div",null,a)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addNetworkRole,onChange:e=>{this.setState({...this.state,addNetworkRole:e})},onSubmit:this.onAddNetworkRole}))),e.createElement(ml,{style:gf.save,hidden:!this.state.firewall&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,firewall:null})},onSave:this.onSave}))}}const yf={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},tag:{margin:"8px 5px 0 5px",height:"20px"}};class _f extends e.Component{render(){let t=this.props.firewall;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:yf.cardOpen},e.createElement(bf,{organizations:this.props.organizations,firewall:this.props.firewall,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n={...yf.card},a=[];for(let n of t.network_roles||[])a.push(e.createElement("div",{className:"bp3-tag bp3-intent-primary",style:yf.tag,key:n},n));let s="";if(Mr(t.organization))s="Node Firewall";else{let e=gr.organization(t.organization);s=e?e.name:t.organization}return e.createElement("div",{className:"bp3-card bp3-row",style:n,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:yf.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:yf.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:yf.nameSpan},t.name))),e.createElement("div",{className:"bp3-cell",style:yf.item},e.createElement("span",{style:yf.icon,className:"bp3-icon-standard bp3-text-muted "+(t.organization?"bp3-icon-people":"bp3-icon-layers")}),s),e.createElement("div",{className:"flex bp3-cell",style:yf.roles},a))}}const wf={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class Cf extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.organizations&&this.props.organizations.length)for(let n of this.props.organizations)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));return e.createElement("div",{className:"layout horizontal wrap",style:wf.filters},e.createElement(ho,{style:wf.input,placeholder:"Firewall ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:wf.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement(ho,{style:wf.role,placeholder:"Network Role",value:this.props.filter.network_role,onChange:e=>{let t={...this.props.filter};e?t.network_role=e:delete t.network_role,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:wf.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},t)))}}const Ef={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class Sf extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:hf.page,pageCount:hf.pageCount,pages:hf.pages,count:hf.count})},this.state={page:hf.page,pageCount:hf.pageCount,pages:hf.pages,count:hf.count}}componentDidMount(){hf.addChangeListener(this.onChange)}componentWillUnmount(){hf.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{pf(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{pf(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:Ef.button,disabled:0===t,type:"button",onClick:()=>{pf(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:Ef.button,disabled:t===n-1,type:"button",onClick:()=>{pf(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{pf(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const kf={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class zf extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=hf.firewalls,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,firewalls:e,filter:hf.filter,organizations:gr.organizations,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/firewall").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete firewalls"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={firewalls:hf.firewalls,filter:hf.filter,organizations:gr.organizations,selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){hf.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),uf(),bd()}componentWillUnmount(){hf.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[];this.state.firewalls.forEach((n=>{t.push(e.createElement(_f,{key:n.id,firewall:n,organizations:this.state.organizations,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.firewalls;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(n+="bp3-active");let a=[];for(let e of Object.keys(this.state.selected)){let t=hf.firewall(e);t?a.push(t.name||e):a.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:kf.header},e.createElement("h2",{style:kf.heading},"Firewalls"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:kf.buttons},e.createElement("button",{className:n,style:kf.button,type:"button",onClick:()=>{null===this.state.filter?mf({}):mf(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:kf.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:kf.button,confirmMsg:"Permanently delete the selected firewalls",confirmInput:!0,items:a,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete}),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:kf.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0});let e="";this.state.organizations.length&&(e=this.state.organizations[0].id),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/firewall").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create firewall"),void a(e)):void n())))}))}({organization:e,ingress:[{source_ips:["0.0.0.0/0","::/0"],protocol:"icmp"},{source_ips:["0.0.0.0/0","::/0"],protocol:"tcp",port:"22"}],comment:"22/tcp - SSH connections"}).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement(Cf,{filter:this.state.filter,onFilter:e=>{mf(e)},organizations:this.state.organizations}),e.createElement("div",{style:kf.itemsBox},e.createElement("div",{style:kf.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:kf.placeholder},e.createElement("td",{colSpan:5,style:kf.placeholder})))),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-key",title:"No firewalls",description:"Add a new firewall to get started."}),e.createElement(Sf,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const Mf={card:{position:"relative",padding:"48px 10px 0 10px",width:"100%"},button:{height:"30px"},buttons:{cursor:"pointer",position:"absolute",top:0,left:0,right:0,padding:"4px",height:"39px",backgroundColor:"rgba(0, 0, 0, 0.13)"},item:{margin:"9px 5px 0 5px",height:"20px"},itemsLabel:{display:"block"},itemsAdd:{margin:"8px 0 15px 0"},group:{flex:1,minWidth:"280px",margin:"0 10px"},save:{paddingBottom:"10px"},label:{width:"100%",maxWidth:"280px"},status:{margin:"6px 0 0 1px"},icon:{marginRight:"3px"},inputGroup:{width:"100%"},protocol:{flex:"0 1 auto"},port:{flex:"1"},select:{margin:"7px 0px 0px 6px",paddingTop:"3px"},role:{margin:"9px 5px 0 5px",height:"20px"},rules:{marginBottom:"15px"}};class xf extends e.Component{constructor(e,t){super(e,t),this.onAddRole=()=>{let e;if(!this.state.addRole)return;e=this.state.changed?{...this.state.authority}:{...this.props.authority};let t=[...e.roles||[]];-1===t.indexOf(this.state.addRole)&&t.push(this.state.addRole),t.sort(),e.roles=t,this.setState({...this.state,changed:!0,message:"",addRole:"",authority:e})},this.onRemoveRole=e=>{let t;t=this.state.changed?{...this.state.authority}:{...this.props.authority};let n=[...t.roles||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.roles=n,this.setState({...this.state,changed:!0,message:"",addRole:"",authority:t}))},this.onAddNetworkRole=()=>{let e;if(!this.state.addNetworkRole)return;e=this.state.changed?{...this.state.authority}:{...this.props.authority};let t=[...e.network_roles||[]];-1===t.indexOf(this.state.addNetworkRole)&&t.push(this.state.addNetworkRole),t.sort(),e.network_roles=t,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",authority:e})},this.onRemoveNetworkRole=e=>{let t;t=this.state.changed?{...this.state.authority}:{...this.props.authority};let n=[...t.network_roles||[]],a=n.indexOf(e);-1!==a&&(n.splice(a,1),t.network_roles=n,this.setState({...this.state,changed:!0,message:"",addNetworkRole:"",authority:t}))},this.onSave=()=>{this.setState({...this.state,disabled:!0});let e={...this.state.authority};this.props.organizations.length&&!e.organization&&(e.organization=this.props.organizations[0].id),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/authority/"+e.id).send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to save authority"),void a(e)):void n())))}))}(e).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1}),setTimeout((()=>{this.state.changed||this.setState({...this.state,authority:null,changed:!1})}),1e3),setTimeout((()=>{this.state.changed||this.setState({...this.state,message:""})}),3e3)})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/authority/"+e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete authority"),void a(e)):void n())))}))}(this.props.authority.id).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={disabled:!1,changed:!1,message:"",addRole:null,addNetworkRole:null,authority:null}}set(e,t){let n;n=this.state.changed?{...this.state.authority}:{...this.props.authority},n[e]=t,this.setState({...this.state,changed:!0,authority:n})}render(){let t=this.state.authority||this.props.authority,n=!!this.props.organizations.length,a=[];if(this.props.organizations.length)for(let t of this.props.organizations)a.push(e.createElement("option",{key:t.id,value:t.id},t.name));n||a.push(e.createElement("option",{key:"null",value:""},"No Organizations"));let s=[];for(let n of t.roles||[])s.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Mf.role,key:n},n,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveRole(n)}})));let i=[];for(let n of t.network_roles||[])i.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:Mf.role,key:n},n,e.createElement("button",{className:"bp3-tag-remove",disabled:this.state.disabled,onMouseUp:()=>{this.onRemoveNetworkRole(n)}})));return e.createElement("td",{className:"bp3-cell",colSpan:5,style:Mf.card},e.createElement("div",{className:"layout horizontal wrap"},e.createElement("div",{style:Mf.group},e.createElement("div",{className:"layout horizontal tab-close",style:Mf.buttons,onClick:e=>{-1!==e.target.className.indexOf("tab-close")&&this.props.onClose()}},e.createElement("div",null,e.createElement("label",{className:"bp3-control bp3-checkbox",style:Mf.select},e.createElement("input",{type:"checkbox",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator"}))),e.createElement("div",{className:"flex tab-close"}),e.createElement(Rr,{className:"bp3-minimal bp3-intent-danger bp3-icon-trash",style:Mf.button,safe:!0,progressClassName:"bp3-intent-danger",dialogClassName:"bp3-intent-danger bp3-icon-delete",dialogLabel:"Delete Authority",confirmMsg:"Permanently delete this authority",confirmInput:!0,items:[t.name],disabled:this.state.disabled,onConfirm:this.onDelete})),e.createElement(vl,{label:"Name",help:"Name of authority",type:"text",placeholder:"Enter name",value:t.name,onChange:e=>{this.set("name",e)}}),e.createElement(rh,{label:"Comment",help:"Authority comment.",placeholder:"Authority comment",rows:3,value:t.comment,onChange:e=>{this.set("comment",e)}}),e.createElement(Hl,{label:"Type",help:"Authority type. SSH keys will be saved to ~/.ssh/authorized_keys. SSH certificates will be saved to the SSH server configuration.",value:t.type,onChange:e=>{this.set("type",e)}},e.createElement("option",{value:"ssh_key"},"SSH Key"),e.createElement("option",{value:"ssh_certificate"},"SSH Certificate")),e.createElement(rh,{hidden:"ssh_key"!==t.type,label:"SSH Key",help:"SSH authorized public key in PEM format.",placeholder:"Public key",rows:6,value:t.key,onChange:e=>{this.set("key",e)}}),e.createElement(rh,{hidden:"ssh_certificate"!==t.type,label:"SSH Certificate",help:"SSH certificate authority in PEM format.",placeholder:"Certificate authority",rows:6,value:t.certificate,onChange:e=>{this.set("certificate",e)}}),e.createElement("label",{className:"bp3-label",hidden:"ssh_certificate"!==t.type},"Roles",e.createElement(hl,{title:"Roles",content:"Roles that will be matched with authority principles. Roles are case-sensitive."}),e.createElement("div",null,s)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",hidden:"ssh_certificate"!==t.type,label:"Add",type:"text",placeholder:"Add role",value:this.state.addRole,onChange:e=>{this.setState({...this.state,addRole:e})},onSubmit:this.onAddRole})),e.createElement("div",{style:Mf.group},e.createElement(Bo,{fields:[{label:"ID",value:this.props.authority.id||"Unknown"}]}),e.createElement(Hl,{disabled:this.state.disabled||!n,hidden:$i,label:"Organization",help:"Organization for authority, both the organaization and role must match. Select node authority to match node network roles.",value:t.organization,onChange:e=>{this.set("organization",e)}},a),e.createElement("label",{className:"bp3-label"},"Network Roles",e.createElement(hl,{title:"Network Roles",content:"Network roles that will be matched with authorities. Network roles are case-sensitive."}),e.createElement("div",null,i)),e.createElement(Ll,{disabled:this.state.disabled,buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add role",value:this.state.addNetworkRole,onChange:e=>{this.setState({...this.state,addNetworkRole:e})},onSubmit:this.onAddNetworkRole}))),e.createElement(ml,{style:Mf.save,hidden:!this.state.authority&&!this.state.message,message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,light:!0,onCancel:()=>{this.setState({...this.state,changed:!1,authority:null})},onSave:this.onSave}))}}const Af={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none",cursor:"pointer"},cardOpen:{display:"table-row",width:"100%",padding:0,boxShadow:"none",position:"relative"},select:{margin:"2px 0 0 0",paddingTop:"3px",minHeight:"18px"},name:{verticalAlign:"top",display:"table-cell",padding:"8px"},nameSpan:{margin:"1px 5px 0 0"},item:{verticalAlign:"top",display:"table-cell",padding:"9px",whiteSpace:"nowrap"},icon:{marginRight:"3px"},bars:{verticalAlign:"top",display:"table-cell",padding:"8px",width:"30px"},bar:{height:"6px",marginBottom:"1px"},barLast:{height:"6px"},roles:{verticalAlign:"top",display:"table-cell",padding:"0 8px 8px 8px"},tag:{margin:"8px 5px 0 5px",height:"20px"}};class Tf extends e.Component{render(){let t=this.props.authority;if(this.props.open)return e.createElement("div",{className:"bp3-card bp3-row",style:Af.cardOpen},e.createElement(xf,{organizations:this.props.organizations,authority:this.props.authority,selected:this.props.selected,onSelect:this.props.onSelect,onClose:()=>{this.props.onOpen()}}));let n={...Af.card},a=[];for(let n of t.network_roles||[])a.push(e.createElement("div",{className:"bp3-tag bp3-intent-primary",style:Af.tag,key:n},n));let s="";if(t.organization){let e=gr.organization(t.organization);s=e?e.name:t.organization}else s="No Organization";return e.createElement("div",{className:"bp3-card bp3-row",style:n,onClick:e=>{-1===e.target.className.indexOf("open-ignore")&&this.props.onOpen()}},e.createElement("div",{className:"bp3-cell",style:Af.name},e.createElement("div",{className:"layout horizontal"},e.createElement("label",{className:"bp3-control bp3-checkbox open-ignore",style:Af.select},e.createElement("input",{type:"checkbox",className:"open-ignore",checked:this.props.selected,onChange:e=>{},onClick:e=>{this.props.onSelect(e.shiftKey)}}),e.createElement("span",{className:"bp3-control-indicator open-ignore"})),e.createElement("div",{style:Af.nameSpan},t.name))),e.createElement("div",{className:"bp3-cell",style:Af.item},e.createElement("span",{style:Af.icon,className:"bp3-icon-standard bp3-text-muted bp3-icon-people"}),s),e.createElement("div",{className:"flex bp3-cell",style:Af.roles},a))}}const Lf={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class Pf extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){if(null===this.props.filter)return e.createElement("div",null);let t=[e.createElement("option",{key:"key",value:"any"},"Any")];if(this.props.organizations&&this.props.organizations.length)for(let n of this.props.organizations)t.push(e.createElement("option",{key:n.id,value:n.id},n.name));return e.createElement("div",{className:"layout horizontal wrap",style:Lf.filters},e.createElement(ho,{style:Lf.input,placeholder:"Authority ID",value:this.props.filter.id,onChange:e=>{let t={...this.props.filter};e?t.id=e:delete t.id,this.props.onFilter(t)}}),e.createElement(ho,{style:Lf.input,placeholder:"Name",value:this.props.filter.name,onChange:e=>{let t={...this.props.filter};e?t.name=e:delete t.name,this.props.onFilter(t)}}),e.createElement(ho,{style:Lf.role,placeholder:"Role",value:this.props.filter.role,onChange:e=>{let t={...this.props.filter};e?t.role=e:delete t.role,this.props.onFilter(t)}}),e.createElement(ho,{style:Lf.role,placeholder:"Network Role",value:this.props.filter.network_role,onChange:e=>{let t={...this.props.filter};e?t.network_role=e:delete t.network_role,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:Lf.type,hidden:$i},e.createElement("select",{value:this.props.filter.organization||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.organization:t.organization=n,this.props.onFilter(t)}},t)))}}const Hf={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class Nf extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:Gd.page,pageCount:Gd.pageCount,pages:Gd.pages,count:Gd.count})},this.state={page:Gd.page,pageCount:Gd.pageCount,pages:Gd.pages,count:Gd.count}}componentDidMount(){Gd.addChangeListener(this.onChange)}componentWillUnmount(){Gd.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{Jd(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{Jd(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:Hf.button,disabled:0===t,type:"button",onClick:()=>{Jd(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:Hf.button,disabled:t===n-1,type:"button",onClick:()=>{Jd(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{Jd(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const Of={items:{width:"100%",marginTop:"-5px",display:"table",borderSpacing:"0 5px"},itemsBox:{width:"100%",overflowY:"auto"},placeholder:{opacity:0,width:"100%"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class Vf extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{let e=Gd.authorities,t={},n=this.state.selected,a={},s=this.state.opened;e.forEach((e=>{n[e.id]&&(t[e.id]=!0),s[e.id]&&(a[e.id]=!0)})),this.setState({...this.state,authorities:e,filter:Gd.filter,organizations:gr.organizations,selected:t,opened:a})},this.onDelete=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.delete("/authority").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to delete authorities"),void a(e)):void n())))}))}(Object.keys(this.state.selected)).then((()=>{this.setState({...this.state,selected:{},disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))},this.state={authorities:Gd.authorities,filter:Gd.filter,organizations:gr.organizations,selected:{},opened:{},newOpened:!1,lastSelected:null,disabled:!1}}get selected(){return!!Object.keys(this.state.selected).length}get opened(){return!!Object.keys(this.state.opened).length}componentDidMount(){Gd.addChangeListener(this.onChange),gr.addChangeListener(this.onChange),qd(),bd()}componentWillUnmount(){Gd.removeChangeListener(this.onChange),gr.removeChangeListener(this.onChange)}render(){let t=[];this.state.authorities.forEach((n=>{t.push(e.createElement(Tf,{key:n.id,authority:n,organizations:this.state.organizations,selected:!!this.state.selected[n.id],open:!!this.state.opened[n.id],onSelect:e=>{let t={...this.state.selected};if(e){let e,a,s=this.state.authorities;for(let t=0;ta&&(a=[e,e=a][0]);for(let n=e;n<=a;n++)t[s[n].id]=!0;return void this.setState({...this.state,lastSelected:n.id,selected:t})}}t[n.id]?delete t[n.id]:t[n.id]=!0,this.setState({...this.state,lastSelected:n.id,selected:t})},onOpen:()=>{let e={...this.state.opened};e[n.id]?delete e[n.id]:e[n.id]=!0,this.setState({...this.state,opened:e})}}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";this.state.filter&&(n+="bp3-active");let a=[];for(let e of Object.keys(this.state.selected)){let t=Gd.authority(e);t?a.push(t.name||e):a.push(e)}return e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:Of.header},e.createElement("h2",{style:Of.heading},"Authorities"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:Of.buttons},e.createElement("button",{className:n,style:Of.button,type:"button",onClick:()=>{null===this.state.filter?$d({}):$d(null)}},"Filters"),e.createElement("button",{className:"bp3-button bp3-intent-warning bp3-icon-chevron-up",style:Of.button,disabled:!this.opened,type:"button",onClick:()=>{this.setState({...this.state,opened:{}})}},"Collapse All"),e.createElement(Rr,{label:"Delete Selected",className:"bp3-intent-danger bp3-icon-delete",progressClassName:"bp3-intent-danger",safe:!0,style:Of.button,confirmMsg:"Permanently delete the selected authorities",confirmInput:!0,items:a,disabled:!this.selected||this.state.disabled,onConfirm:this.onDelete}),e.createElement("button",{className:"bp3-button bp3-intent-success bp3-icon-add",style:Of.button,disabled:this.state.disabled,type:"button",onClick:()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.post("/authority").send(e).set("Accept","application/json").set("Csrf-Token",Wi).set("Organization",gr.current).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to create authority"),void a(e)):void n())))}))}({name:"New Authority"}).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))}},"New")))),e.createElement(Pf,{filter:this.state.filter,onFilter:e=>{$d(e)},organizations:this.state.organizations}),e.createElement("div",{style:Of.itemsBox},e.createElement("div",{style:Of.items},t,e.createElement("tr",{className:"bp3-card bp3-row",style:Of.placeholder},e.createElement("td",{colSpan:5,style:Of.placeholder})))),e.createElement(To,{hidden:!!t.length,iconClass:"bp3-icon-office",title:"No authorities",description:"Add a new authority to get started."}),e.createElement(Nf,{onPage:()=>{this.setState({...this.state,selected:{},lastSelected:null})}}))}}const Df="log.sync",If="log.traverse",Rf="log.filter";const Bf=new class extends hr{constructor(){super(...arguments),this._logs=Object.freeze([]),this._filter=null,this._token=lr.register(this._callback.bind(this))}_reset(){this._logs=Object.freeze([]),this._page=void 0,this._pageCount=void 0,this._filter=null,this._count=void 0,this.emitChange()}get logs(){return this._logs}get logsM(){let e=[];return this._logs.forEach((t=>{e.push({...t})})),e}get page(){return this._page||0}get pageCount(){return this._pageCount||50}get pages(){return Math.ceil(this.count/this.pageCount)}get filter(){return this._filter}get count(){return this._count||0}emitChange(){this.emitDefer(ur)}addChangeListener(e){this.on(ur,e)}removeChangeListener(e){this.removeListener(ur,e)}_traverse(e){this._page=Math.min(this.pages,e)}_filterCallback(e){(null!==this._filter&&null===e||this._filter==={}&&null!==e||e&&this._filter&&e.level!==this._filter.level)&&this._traverse(0),this._filter=e,this.emitChange()}_sync(e,t){for(let t=0;t{vn.get("/log").query({...Bf.filter,page:Bf.page,page_count:Bf.pageCount}).set("Accept","application/json").set("Csrf-Token",Wi).end(((s,i)=>{if(t.done(),i&&401===i.status)return window.location.href="/login",void n();if(e===Ff){if(s)return Ui(i,"Failed to load logs"),void a(s);lr.dispatch({type:Df,data:{logs:i.body.logs,count:i.body.count}}),n()}else n()}))}))}function Kf(e){return lr.dispatch({type:If,data:{page:e}}),Xf()}function Uf(e){return lr.dispatch({type:Rf,data:{filter:e}}),Xf()}kr.register((e=>{if("log.change"===e.type)$i||-1===window.location.hash.indexOf("/logs")||Xf()}));const Gf={card:{display:"table-row",width:"100%",padding:0,boxShadow:"none"},timestamp:{verticalAlign:"top",display:"table-cell",padding:"6px"},level:{verticalAlign:"top",display:"table-cell",padding:"6px"},message:{verticalAlign:"top",display:"table-cell",padding:"6px"},fields:{verticalAlign:"top",display:"table-cell",padding:"6px"},buttons:{verticalAlign:"top",display:"table-cell",padding:"0",width:"30px"},key:{fontWeight:"bold"},value:{},dialog:{height:"500px",width:"90%",maxWidth:"700px"},dialogBody:{height:"100%"},textarea:{resize:"none",fontSize:"12px",fontFamily:'"Lucida Console", Monaco, monospace',marginBottom:0}};class jf extends e.Component{constructor(e,t){super(e,t),this.state={stack:!1}}render(){let t=this.props.log,n="bp3-cell ";switch(t.level){case"debug":n+="bp3-text-intent-success";break;case"info":n+="bp3-text-intent-primary";break;case"warning":n+="bp3-text-intent-warning";break;case"error":case"fatal":case"panic":n+="bp3-text-intent-danger"}let a=[];for(let n in t.fields){if(!t.fields.hasOwnProperty(n))continue;let s=t.fields[n];a.push(e.createElement("div",{key:n},e.createElement("span",{style:Gf.key},n,": "),e.createElement("span",{style:Gf.value},JSON.stringify(s))))}return e.createElement("div",{className:"bp3-card bp3-row",style:Gf.card},e.createElement("div",{className:n,style:Gf.timestamp},Hr(t.timestamp)||"Unknown"),e.createElement("div",{className:n,style:Gf.level},t.level),e.createElement("div",{className:n,style:Gf.message},t.message),e.createElement("div",{className:"bp3-cell",style:Gf.fields},a),e.createElement("div",{className:"bp3-cell",style:Gf.buttons},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-document-open",hidden:!t.stack,onClick:()=>{this.setState({...this.state,stack:!0})}})),e.createElement(ra,{title:"Stack Trace",style:Gf.dialog,isOpen:this.state.stack,usePortal:!0,portalContainer:document.body,onClose:()=>{this.setState({...this.state,stack:!1})}},e.createElement("textarea",{className:"bp3-dialog-body bp3-input",style:Gf.textarea,autoCapitalize:"off",spellCheck:!1,readOnly:!0,value:t.stack||""})))}}const Wf={filters:{margin:"-15px 0 5px 0"},input:{width:"200px",margin:"5px"},role:{width:"150px",margin:"5px"},type:{margin:"5px"},check:{margin:"12px 5px 8px 5px"}};class Qf extends e.Component{constructor(e,t){super(e,t),this.state={menu:!1}}render(){return null===this.props.filter?e.createElement("div",null):e.createElement("div",{className:"layout horizontal wrap",style:Wf.filters},e.createElement(ho,{style:Wf.input,placeholder:"Message",value:this.props.filter.message,onChange:e=>{let t={...this.props.filter};e?t.message=e:delete t.message,this.props.onFilter(t)}}),e.createElement("div",{className:"bp3-select",style:Wf.type},e.createElement("select",{value:this.props.filter.level||"any",onChange:e=>{let t={...this.props.filter},n=e.target.value;"any"===n?delete t.level:t.level=n,this.props.onFilter(t)}},e.createElement("option",{value:"any"},"Any"),e.createElement("option",{value:"debug"},"Debug"),e.createElement("option",{value:"info"},"Info"),e.createElement("option",{value:"warning"},"Warning"),e.createElement("option",{value:"error"},"Error"),e.createElement("option",{value:"fatal"},"Fatal"),e.createElement("option",{value:"panic"},"Panic"))))}}const Yf={button:{userSelect:"none",margin:"0 5px 0 0"},buttonLast:{userSelect:"none",margin:"0 0 0 0"},link:{cursor:"pointer",userSelect:"none",margin:"7px 5px 0 0"},current:{opacity:.5}};class Zf extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,page:Bf.page,pageCount:Bf.pageCount,pages:Bf.pages,count:Bf.count})},this.state={page:Bf.page,pageCount:Bf.pageCount,pages:Bf.pages,count:Bf.count}}componentDidMount(){Bf.addChangeListener(this.onChange)}componentWillUnmount(){Bf.removeChangeListener(this.onChange)}render(){let t=this.state.page,n=this.state.pages;if(n<=1)return e.createElement("div",null);let a=[],s=Math.max(0,t-7),i=Math.min(n,s+15);for(let n=s;n{Kf(n),this.props.onPage&&this.props.onPage()}},n+1));return e.createElement("div",{className:"layout horizontal center-justified"},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-backward",hidden:n<5,disabled:0===t,type:"button",onClick:()=>{Kf(0),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-left",style:Yf.button,disabled:0===t,type:"button",onClick:()=>{Kf(Math.max(0,this.state.page-1)),this.props.onPage&&this.props.onPage()}}),a,e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-right",style:Yf.button,disabled:t===n-1,type:"button",onClick:()=>{Kf(Math.min(this.state.pages-1,this.state.page+1)),this.props.onPage&&this.props.onPage()}}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-chevron-forward",hidden:n<5,disabled:t===n-1,type:"button",onClick:()=>{Kf(this.state.pages-1),this.props.onPage&&this.props.onPage()}}))}}const qf={logs:{width:"100%",marginTop:"-3px",display:"table",borderSpacing:"0 3px"},logsBox:{width:"100%",overflowY:"auto"},header:{marginTop:"-19px"},heading:{margin:"19px 0 0 0"},button:{margin:"8px 0 0 8px"},buttons:{marginTop:"8px"}};class Jf extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,logs:Bf.logs,filter:Bf.filter})},this.state={logs:Bf.logs,filter:Bf.filter}}componentDidMount(){Bf.addChangeListener(this.onChange),Xf()}componentWillUnmount(){Bf.removeChangeListener(this.onChange)}render(){let t=[];this.state.logs.forEach((n=>{t.push(e.createElement(jf,{key:n.id,log:n}))}));let n="bp3-button bp3-intent-primary bp3-icon-filter ";return this.state.filter&&(n+="bp3-active"),e.createElement(vo,null,e.createElement(bo,null,e.createElement("div",{className:"layout horizontal wrap",style:qf.header},e.createElement("h2",{style:qf.heading},"Logs"),e.createElement("div",{className:"flex"}),e.createElement("div",{style:qf.buttons},e.createElement("button",{className:n,style:qf.button,type:"button",onClick:()=>{null===this.state.filter?Uf({}):Uf(null)}},"Filters")))),e.createElement(Qf,{filter:this.state.filter,onFilter:e=>{Uf(e)}}),e.createElement("div",{style:qf.logsBox},e.createElement("div",{style:qf.logs},t)),e.createElement(Zf,null))}}const $f={label:{fontSize:"16px",margin:"0 0 7px 0"},card:{marginBottom:"5px"},role:{margin:"9px 5px 0 5px",height:"20px"}};class ev extends e.Component{constructor(e,t){super(e,t),this.state={addRole:""}}clone(){return{...this.props.provider}}azure(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Directory ID",help:"Azure active directory ID",type:"text",placeholder:"Azure directory ID",value:t.tenant,onChange:e=>{let t=this.clone();t.tenant=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Application ID",help:"Azure application ID",type:"text",placeholder:"Azure application ID",value:t.client_id,onChange:e=>{let t=this.clone();t.client_id=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Application Secret",help:"Azure application secret",type:"text",placeholder:"Azure application secret",value:t.client_secret,onChange:e=>{let t=this.clone();t.client_secret=e,this.props.onChange(t)}}))}authzero(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Auth0 Sub-Domain",help:"Subdomain of Auth0 application. Enter subdomain portion only such as 'pritunl' for pritunl.auth0.com",type:"text",placeholder:"Auth0 sub-domain",value:t.domain,onChange:e=>{let t=this.clone();t.domain=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Client ID",help:"Auth0 application client ID",type:"text",placeholder:"Auth0 client ID",value:t.client_id,onChange:e=>{let t=this.clone();t.client_id=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Client Secret",help:"Auth0 application client secret",type:"text",placeholder:"Auth0 client secret",value:t.client_secret,onChange:e=>{let t=this.clone();t.client_secret=e,this.props.onChange(t)}}))}google(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Domain",help:"Domain segment of email address to match",type:"text",placeholder:"Google domain to match",value:t.domain,onChange:e=>{let t=this.clone();t.domain=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Google Admin Email",help:"Optional, the email address of an administrator user in the Google G Suite to delegate API access to. This user will be used to get the groups of Google users. Only needed when providing the Google JSON private key.",type:"text",placeholder:"Google admin email",value:t.google_email,onChange:e=>{let t=this.clone();t.google_email=e,this.props.onChange(t)}}),e.createElement(rh,{label:"Google JSON Private Key",help:"Optional, private key for service account in JSON format. This will copy the Google users groups to Pritunl Cloud. Also requires Google admin email.",placeholder:"Google JSON private key",rows:6,value:t.google_key,onChange:e=>{let t=this.clone();t.google_key=e,this.props.onChange(t)}}))}onelogin(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Issuer URL",help:"Single sign-on URL found in OneLogin app settings",type:"text",placeholder:"OneLogin issuer URL",value:t.issuer_url,onChange:e=>{let t=this.clone();t.issuer_url=e,this.props.onChange(t)}}),e.createElement(vl,{label:"SAML 2.0 Endpoint (HTTP)",help:"SAML 2.0 endpoint found in OneLogin app settings",type:"text",placeholder:"OneLogin SAML endpoint",value:t.saml_url,onChange:e=>{let t=this.clone();t.saml_url=e,this.props.onChange(t)}}),e.createElement(rh,{label:"X.509 Certificate",help:"X.509 certificate found in OneLogin app settings",placeholder:"OneLogin X.509 certificate",rows:6,value:t.saml_cert,onChange:e=>{let t=this.clone();t.saml_cert=e,this.props.onChange(t)}}))}okta(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Identity Provider Single Sign-On URL",help:"Single sign-on URL found in Okta app settings",type:"text",placeholder:"Okta single sign-on URL",value:t.saml_url,onChange:e=>{let t=this.clone();t.saml_url=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Identity Provider Issuer URL",help:"Issuer URL found in Okta app settings",type:"text",placeholder:"Okta issuer URL",value:t.issuer_url,onChange:e=>{let t=this.clone();t.issuer_url=e,this.props.onChange(t)}}),e.createElement(rh,{label:"X.509 Certificate",help:"X.509 certificate found in Okta app settings",placeholder:"Okta X.509 certificate",rows:6,value:t.saml_cert,onChange:e=>{let t=this.clone();t.saml_cert=e,this.props.onChange(t)}}))}jumpcloud(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Identity Provider Single Sign-On URL",help:"Single sign-on URL found in JumpCloud app settings",type:"text",placeholder:"JumpCloud single sign-on URL",value:t.saml_url,onChange:e=>{let t=this.clone();t.saml_url=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Identity Provider Issuer URL",help:"Issuer URL found in JumpCloud app settings",type:"text",placeholder:"JumpCloud issuer URL",value:t.issuer_url,onChange:e=>{let t=this.clone();t.issuer_url=e,this.props.onChange(t)}}),e.createElement(rh,{label:"X.509 Certificate",help:"X.509 certificate found in JumpCloud app settings",placeholder:"JumpCloud X.509 certificate",rows:6,value:t.saml_cert,onChange:e=>{let t=this.clone();t.saml_cert=e,this.props.onChange(t)}}),e.createElement(vl,{label:"JumpCloud App ID",help:"Optional, ID of JumpCloud Pritunl app. This can be found in the URL of the app settings page. Required to verify user is attached to JumpCloud application",type:"text",placeholder:"JumpCloud app ID",value:t.jumpcloud_app_id,onChange:e=>{let t=this.clone();t.jumpcloud_app_id=e,this.props.onChange(t)}}),e.createElement(vl,{label:"JumpCloud API Key",help:"JumpCloud API key for user account status verfication",type:"text",placeholder:"JumpCloud client secret",value:t.jumpcloud_secret,onChange:e=>{let t=this.clone();t.jumpcloud_secret=e,this.props.onChange(t)}}))}render(){let t,n=this.props.provider,a="";switch(n.type){case"azure":a="Azure",t=this.azure();break;case"authzero":a="Auth0",t=this.authzero();break;case"google":a="Google",t=this.google();break;case"onelogin":a="OneLogin",t=this.onelogin();break;case"okta":a="Okta",t=this.okta();break;case"jumpcloud":a="JumpCloud",t=this.jumpcloud()}let s=[];for(let t of n.default_roles)s.push(e.createElement("div",{className:"bp3-tag bp3-tag-removable bp3-intent-primary",style:$f.role,key:t},t,e.createElement("button",{className:"bp3-tag-remove",onMouseUp:()=>{let e=[...this.props.provider.default_roles],n=e.indexOf(t);if(-1===n)return;e.splice(n,1);let a=this.clone();a.default_roles=e,this.props.onChange(a)}})));return e.createElement("div",{className:"bp3-card",style:$f.card},e.createElement("h6",{style:$f.label},a),e.createElement(Bo,{fields:[{label:"ID",value:n.id||"None"}]}),e.createElement(vl,{label:"Label",help:"Provider label that will be shown to users on the login page",type:"text",placeholder:"Provider label",value:n.label,onChange:e=>{let t=this.clone();t.label=e,this.props.onChange(t)}}),e.createElement("label",{className:"bp3-label",hidden:!n.auto_create},"Default Roles",e.createElement(hl,{title:"Default Roles",content:"When the user has authenticated for the first time these roles will be given to the user. These roles may also be used to update the users roles depending on the role management option."}),e.createElement("div",null,s)),e.createElement(Ll,{buttonClass:"bp3-intent-success bp3-icon-add",label:"Add",type:"text",placeholder:"Add default role",hidden:!n.auto_create,value:this.state.addRole,onChange:e=>{this.setState({...this.state,addRole:e})},onSubmit:()=>{let e=[...this.props.provider.default_roles];if(!this.state.addRole)return;-1===e.indexOf(this.state.addRole)&&e.push(this.state.addRole),e.sort();let t=this.clone();t.default_roles=e,this.props.onChange(t),this.setState({...this.state,addRole:""})}}),e.createElement(ul,{label:"Create user on authentication",help:"Create the user on first authentication. If this is disabled all users must be manually created before they are able to authenticate.",checked:n.auto_create,onToggle:()=>{let e=this.clone();e.auto_create=!e.auto_create,e.auto_create||"set_on_insert"!==e.role_management||(e.role_management="merge"),this.props.onChange(e)}}),e.createElement(Hl,{label:"Role Management",help:"When the user authenticates for the first time a user will be created and the users roles will be set to the roles configured above. This is referenced as set on insert. It may be desired to update the roles on subsequent authentications. For this the merge mode can be used which will take the users current roles and merge them with the roles configured above using all the roles from both sets. Overwrite mode will replace the users roles on every authentication with the roles configured above. It is important to consider that if a users roles are modified those modifications will be lost when the overwrite mode is used.",value:n.role_management,onChange:e=>{let t=this.clone();t.role_management=e,this.props.onChange(t)}},e.createElement("option",{value:"set_on_insert",hidden:!n.auto_create},"Set on insert"),e.createElement("option",{value:"merge"},"Merge"),e.createElement("option",{value:"overwrite"},"Overwrite")),t,e.createElement("button",{className:"bp3-button bp3-intent-danger",onClick:()=>{this.props.onRemove()}},"Remove"))}}const tv={label:{fontSize:"16px",margin:"0 0 7px 0"},card:{marginBottom:"5px"},role:{margin:"9px 5px 0 5px",height:"20px"}};class nv extends e.Component{clone(){return{...this.props.provider}}duo(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Duo API Hostname",help:"Duo API hostname found in Duo admin console.",type:"text",placeholder:"Duo API hostname",value:t.duo_hostname,onChange:e=>{let t=this.clone();t.duo_hostname=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Duo Integration Key",help:"Duo integration key found in Duo admin console.",type:"text",placeholder:"Duo integration key",value:t.duo_key,onChange:e=>{let t=this.clone();t.duo_key=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Duo Secret Key",help:"Duo secret key found in Duo admin console.",type:"text",placeholder:"Duo secret key",value:t.duo_secret,onChange:e=>{let t=this.clone();t.duo_secret=e,this.props.onChange(t)}}),e.createElement(ul,{label:"Push authentication",help:"Allow push authentication.",checked:t.push_factor,onToggle:()=>{let e=this.clone();e.push_factor=!e.push_factor,this.props.onChange(e)}}),e.createElement(ul,{label:"Phone authentication",help:"Allow phone authentication.",checked:t.phone_factor,onToggle:()=>{let e=this.clone();e.phone_factor=!e.phone_factor,this.props.onChange(e)}}),e.createElement(ul,{label:"Passcode authentication",help:"Allow passcode authentication.",checked:t.passcode_factor,onToggle:()=>{let e=this.clone();e.passcode_factor=!e.passcode_factor,this.props.onChange(e)}}),e.createElement(ul,{label:"SMS authentication",help:"Allow SMS authentication.",checked:t.sms_factor,onToggle:()=>{let e=this.clone();e.sms_factor=!e.sms_factor,this.props.onChange(e)}}))}onelogin(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"OneLogin API Client ID",help:"OneLogin API client ID found in OneLogin admin console.",type:"text",placeholder:"OneLogin API client ID",value:t.one_login_id,onChange:e=>{let t=this.clone();t.one_login_id=e,this.props.onChange(t)}}),e.createElement(vl,{label:"OneLogin API Client Secret",help:"OneLogin API client secret found in OneLogin admin console.",type:"text",placeholder:"OneLogin API client secret",value:t.one_login_secret,onChange:e=>{let t=this.clone();t.one_login_secret=e,this.props.onChange(t)}}),e.createElement(Hl,{label:"OneLogin API Region",help:"OneLogin region for API requests.",value:t.one_login_region,onChange:e=>{let t=this.clone();t.one_login_region=e,this.props.onChange(t)}},e.createElement("option",{value:"us"},"United States"),e.createElement("option",{value:"eu"},"Europe")),e.createElement(ul,{label:"Push authentication",help:"Allow push authentication.",checked:t.push_factor,onToggle:()=>{let e=this.clone();e.push_factor=!e.push_factor,this.props.onChange(e)}}),e.createElement(ul,{label:"Passcode authentication",help:"Allow passcode authentication.",checked:t.passcode_factor,onToggle:()=>{let e=this.clone();e.passcode_factor=!e.passcode_factor,this.props.onChange(e)}}))}okta(){let t=this.props.provider;return e.createElement("div",null,e.createElement(vl,{label:"Okta Domain",help:"Okta domain used to login to Okta such as 'pritunl.okta.com'.",type:"text",placeholder:"Okta domain",value:t.okta_domain,onChange:e=>{let t=this.clone();t.okta_domain=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Okta API Token",help:"Okta API token found in Okta admin console.",type:"text",placeholder:"Okta API token",value:t.okta_token,onChange:e=>{let t=this.clone();t.okta_token=e,this.props.onChange(t)}}),e.createElement(ul,{label:"Push authentication",help:"Allow push authentication.",checked:t.push_factor,onToggle:()=>{let e=this.clone();e.push_factor=!e.push_factor,this.props.onChange(e)}}),e.createElement(ul,{label:"Passcode authentication",help:"Allow passcode authentication.",checked:t.passcode_factor,onToggle:()=>{let e=this.clone();e.passcode_factor=!e.passcode_factor,this.props.onChange(e)}}))}render(){let t,n=this.props.provider,a="";switch(n.type){case"duo":a="Duo",t=this.duo();break;case"one_login":a="OneLogin",t=this.onelogin();break;case"okta":a="Okta",t=this.okta()}return e.createElement("div",{className:"bp3-card",style:tv.card},e.createElement("h6",{style:tv.label},a),e.createElement(Bo,{fields:[{label:"ID",value:n.id||"None"}]}),e.createElement(vl,{label:"Name",help:"Two-factor provider name.",type:"text",placeholder:"Two-factor provider name",value:n.name,onChange:e=>{let t=this.clone();t.name=e,this.props.onChange(t)}}),e.createElement(vl,{label:"Label",help:"Two-factor provider label that will be shown to users on the login page.",type:"text",placeholder:"Two-factor provider label",value:n.label,onChange:e=>{let t=this.clone();t.label=e,this.props.onChange(t)}}),t,e.createElement("button",{className:"bp3-button bp3-intent-danger",onClick:()=>{this.props.onRemove()}},"Remove"))}}const av={providers:{paddingBottom:"6px",marginBottom:"5px",borderBottomStyle:"solid"},providersLabel:{margin:0},secondaryProviders:{paddingBottom:"6px",marginTop:"5px",marginBottom:"5px",borderBottomStyle:"solid"}};class sv extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,changed:!1,settings:rd.settingsM})},this.onSave=()=>{this.setState({...this.state,disabled:!0}),function(e){let t=(new Nr).loading();return new Promise(((n,a)=>{vn.put("/settings").send(e).set("Accept","application/json").set("Csrf-Token",Wi).end(((e,s)=>(t.done(),s&&401===s.status?(window.location.href="/login",void n()):e?(Ui(s,"Failed to commit settings"),void a(e)):(lr.dispatch({type:id,data:s.body}),void n()))))}))}(this.state.settings).then((()=>{this.setState({...this.state,message:"Your changes have been saved",changed:!1,disabled:!1})})).catch((()=>{this.setState({...this.state,message:"",disabled:!1})}))},this.set=(e,t)=>{let n={...this.state.settings};n[e]=t,this.setState({...this.state,changed:!0,message:"",settings:n})},this.state={changed:!1,disabled:!1,message:"",provider:"google",secondaryProvider:"duo",settings:rd.settingsM}}componentDidMount(){rd.addChangeListener(this.onChange),hd()}componentWillUnmount(){rd.removeChangeListener(this.onChange)}render(){let t=this.state.settings;if(!t)return e.createElement("div",null);let n=!!fr.subscription&&fr.subscription.active,a=[];for(let n=0;n{let t=[...this.state.settings.auth_providers];t[n]=e,this.set("auth_providers",t)},onRemove:()=>{let e=[...this.state.settings.auth_providers];e.splice(n,1),this.set("auth_providers",e)}}));let s=[];for(let n=0;n{let t=[...this.state.settings.auth_secondary_providers];t[n]=e,this.set("auth_secondary_providers",t)},onRemove:()=>{let e=[...this.state.settings.auth_secondary_providers];e.splice(n,1),this.set("auth_secondary_providers",e)}}));return e.createElement(vo,null,e.createElement(bo,{label:"Settings"}),e.createElement(Al,null,e.createElement(xl,{hidden:n},e.createElement(To,{hidden:!1,iconClass:"bp3-icon-credit-card",title:"Subscription Required",description:"Subscription required for single sign-on."})),e.createElement(xl,{hidden:!n},e.createElement("div",{className:"bp3-border",style:av.providers},e.createElement("h5",{style:av.providersLabel},"Authentication Providers")),a,e.createElement(Xh,{label:"Add Provider",value:this.state.provider,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,provider:e})},onSubmit:()=>{let e=[...t.auth_providers,{type:this.state.provider,default_roles:[],auto_create:!0,role_management:"set_on_insert"}];this.set("auth_providers",e)}},e.createElement("option",{value:"authzero"},"Auth0"),e.createElement("option",{value:"azure"},"Azure"),e.createElement("option",{value:"google"},"Google"),e.createElement("option",{value:"onelogin"},"OneLogin"),e.createElement("option",{value:"okta"},"Okta"),e.createElement("option",{value:"jumpcloud"},"JumpCloud"))),e.createElement(xl,null,e.createElement("div",{className:"bp3-border",style:av.secondaryProviders},e.createElement("h5",{style:av.providersLabel},"Two-Factor Providers")),s,e.createElement(Xh,{label:"Add Secondary Provider",value:this.state.secondaryProvider,buttonClass:"bp3-intent-success",onChange:e=>{this.setState({...this.state,secondaryProvider:e})},onSubmit:()=>{let e=[...t.auth_secondary_providers,{type:this.state.secondaryProvider}];this.set("auth_secondary_providers",e)}},e.createElement("option",{value:"duo"},"Duo"),e.createElement("option",{value:"one_login"},"OneLogin"),e.createElement("option",{value:"okta"},"Okta")),e.createElement(vl,{label:"Admin Session Expire Minutes",help:"Number of inactive minutes before a admin session expires",type:"text",placeholder:"Session expire",value:this.state.settings.auth_admin_expire,onChange:e=>{this.set("auth_admin_expire",parseInt(e,10))}}),e.createElement(vl,{label:"Admin Session Max Duration Minutes",help:"Number of minutes from start of a admin session until expiration",type:"text",placeholder:"Session max duration",value:this.state.settings.auth_admin_max_duration,onChange:e=>{this.set("auth_admin_max_duration",parseInt(e,10))}}),e.createElement(vl,{label:"User Session Expire Minutes",help:"Number of inactive minutes before a user session expires",type:"text",placeholder:"Session expire",value:this.state.settings.auth_user_expire,onChange:e=>{this.set("auth_user_expire",parseInt(e,10))}}),e.createElement(vl,{label:"User Session Max Duration Minutes",help:"Number of minutes from start of a user session until expiration",type:"text",placeholder:"Session max duration",value:this.state.settings.auth_user_max_duration,onChange:e=>{this.set("auth_user_max_duration",parseInt(e,10))}}))),e.createElement(ml,{message:this.state.message,changed:this.state.changed,disabled:this.state.disabled,onCancel:()=>{this.setState({...this.state,changed:!1,message:"Your changes have been discarded",settings:rd.settingsM})},onSave:this.onSave}))}}const iv={select:{marginRight:"11px"}};class rv extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,organizations:gr.organizations,current:gr.current})},this.state={organizations:gr.organizations,current:null}}componentDidMount(){gr.addChangeListener(this.onChange)}componentWillUnmount(){gr.removeChangeListener(this.onChange)}render(){let t=[];return this.state.organizations.forEach((n=>{t.push(e.createElement("option",{key:n.id,value:n.id},n.name))})),e.createElement("div",{style:iv.select},e.createElement("div",{className:"bp3-select",hidden:this.props.hidden},e.createElement("select",{value:this.state.current||"",onChange:e=>{var t;t=e.target.value,lr.dispatch({type:pr,data:{current:t}}),lr.dispatch({type:mr,data:{current:t}})}},t)))}}const ov={card:{minWidth:"310px",maxWidth:"380px",width:"calc(100% - 20px)",margin:"60px auto"},nav:{overflowX:"auto",overflowY:"auto",userSelect:"none",height:"auto"},navTitle:{flexWrap:"wrap",height:"auto"},navGroup:{flexWrap:"wrap",height:"auto",padding:"10px 0"},link:{padding:"0 7px",color:"inherit"},sub:{color:"inherit"},heading:{marginRight:"11px",marginBottom:"2px",fontSize:"18px",fontWeight:"bold",width:"100px"}};class lv extends e.Component{constructor(e,t){super(e,t),this.onChange=()=>{this.setState({...this.state,subscription:fr.subscription,current:gr.current})},this.state={subscription:fr.subscription,current:gr.current,disabled:!1}}componentDidMount(){$i?(gr.addChangeListener(this.onChange),bd()):(fr.addChangeListener(this.onChange),Vr(!1))}componentWillUnmount(){$i?gr.removeChangeListener(this.onChange):fr.removeChangeListener(this.onChange)}render(){return!$i&&!this.state.subscription||$i&&void 0===this.state.current?e.createElement("div",null):$i&&!this.state.current?e.createElement("div",null,e.createElement("div",{className:"bp3-callout bp3-intent-danger bp3-icon-error",style:ov.card},e.createElement("h4",{className:"bp3-callout-title"},"No Organization"),"Account does not have access to any organizations",e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-log-out",onClick:()=>{window.location.href="/logout"}},"Logout"))):e.createElement(on,null,e.createElement("div",null,e.createElement("nav",{className:"bp3-navbar layout horizontal",style:ov.nav},e.createElement("div",{className:"bp3-navbar-group bp3-align-left flex",style:ov.navTitle},e.createElement("img",{className:"logo-light bp3-navbar-heading",style:ov.heading,src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAg0AAACkCAYAAAAUlB2bAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4AIWFwYKesQRbAAAIABJREFUeNrtnXl828WZ/z/PfCUfceychKtQjgABR3KCKZACQXJCINCkiWXRAs1ylqW7bem9v8K2a7pdWrqlLce2LEspxwKl8hGupoTYFg5XoCG2bEMS6ALhCJA4wU58St95fn/ICQ4NsWTrO5Ks5/16CQiRvjPzzDPPfOb4zhAEQRAEQchYjvJdVlCS11Wi+tUk21IlxLEBrXVXUdHErnWrHug2mReS6hCyHPL4gycr0p9jZg9IzQDzZGZMIkIJgDwAAwC6GOhSQBcTbWGt21npte2NK/8mJhQEIVOYMz9wnG3hCwScCYIHjM8OxbFPQwN4F6AOJv2sitETrc21G0Q0CMIwShcGj7Ri+hsgWgHwwWNoAa+CcUdRv/qf558P9YllBUFIB94FVWex5p8Q4EvB4/7KwL+1NdX+WUSDkPN4fIF/JsJNAIpS2BBeZ+IvRRrrXhYLC4JgVDBUBH4KxnUp75MZd5xwkPp6KBSyU/VIJdUlZFXj8ge+T4TbUykY4m0LM8HUULZg+fFiZUEQjMU0X+BaMK53ZBBPuGbTNv3zVD5SRIOQNcyZHzgOwE8dTGIybOt2sbQgCCY44YylxSD8u6OJEL4zd0HwJBENQs6hLXwdB94QNGaY+JyyiuCpYm1BEJymIN99CYBih5NRttbfEtEg5BRH+S4rAHCpkcTY/qZYXBAEx0ON5n8wlNSK0xZfUiKiQcgZiqnnNACTjDRk0BeCwaAlVhcEwSnmzQsWgqjcUHIFfX29nxfRIOSQJOfTDaY2aVOnXSZGFwTBKXry7TI4vNy6TwglEtEg5A4K/BmT6RGro8TqgiA4FmMUDjWaHqUmPZdUnZANMGGayfQ0eHomlPso32UFU+ye4li+LoatpjBxPjENsNLR/EHetn5t3fsAWDxEELILDZpu8qAk1iolMVREg5AturzIZN9IRCWmS+hdtKKIY33ng/UCMJ1MhFnArmLbBZA9FGYYABikgaiL4PUHBgC8DuAFBjeSu+iRyOr7e8RfBCHDI5rGBJPHKxLxBBENQg5NNbAbZmW521RSpy2+pKSvr/9HHO29moASgJI55iUfQCmAUgJdiWjvbq+v6q5By/7pxob6TnEcQchQ0QB2sdGgRimJabKnQciWFuY2mxwZSc87P3h0f3//ehC+FxcMY2YiiL+Vp9WrZb7gmeI4gpChKHKbTVCnZNOliAYhe2SDyeYFOP7Kpc/nc8HSNQzMdODxBzHpp+YsqPycuI4gZB7MZLb/5dTENBENQrYQMytROOp0Ep1q+goAJzuYRIHW9HBpMJgn7iMIgogGIXcgRI2mp5Wj6fl8Phcx/6uBkhxtbdMXiQMJgiCiQcgl1dBvNDWlB5x8/kc09TQAxxgSXEvEfwRBENEg5A6atxtNj9UORx8PVWGwNLKvQRAEEQ1C7sCED42mB2dFioY+2mBxPjNz8eJ88SJBEEQ0CDkCvWxUNNixNkdLw2TyxElV0JM3Q3xIEAQRDUJOEFX2MwBsI/IEeL29+ZG3HRUlhGKjkku5isSLBEEQ0SDkBEOnGz5iqIu9z4AwMXtYlUrNEbKCIIhoEITscFam2wwkM2CrwTudT4bNngZHSmYaBEEQ0SDkDi3hmjBAf3G4M7+5veHRD0z04iZtx4yJ4kGCIIhoEHIKrQYvY+AVhzryR+3p1g3j0W5k8AIuQRBENAhCRtDe8OgHFttnAPgfpO5o6S4AP5jK2wMdodCgWFkQBGH/yNXYQtbREl75EYCr556ztDoWc3+JGH4QTgZweIKPsAl4QxNeII01yJtQE1l9f49YVhAEQUSDME7Z8NSj7wH49dAHpy2+pKQ32j+dNE9mtooVc7FWKCRt71JEu2KKdhFhd5+7993XV60aEAsKgiCIaBBylHWrHugG0C2WEARBcAbZ0yAIgiAIgogGQRAEQRBENAiCIAiCIKJBEARBEAQRDYIgCIIgiGgQBEEQBEFEgyAIgiAIgogGQRAEQRBENAiCIAiCkEKSPhGyNBjMwzZMJR2b4lKufNulu12a7dhgQXfbwuO7UF2txawOUV2tPGs2TyIVnawUJrEV61XK3p3nKt49dBqiI5T6goe4lF7GjPkAygEcCqAYwCCAHoBtgD4A8A6Ad4i4lTVe6kZJy5vhe/ql4oRk8C5aPoNsTCbQJNumSQSezEqRgo5pTbug1Qd5ediyfk2oKxvLV15+tdsu/vDwmGWVWLYq0YqLAUxU0DEGdzG7upiiHxXlF21zsl0nmtf+6TuLla0nWzFVErO0JsJu9OfvzOubuHv9+jujpvIxMPn9qYhaU5WCxS7Vi/78nX3FO3vlSHiz0IH+MhgMWps7eQEzLwNwGoDjAUw8wE8GCdjCwJsEtGmip8hV2DzWy4BKFwaPdMX0fBBOZuAYEI4B43AAecPy08vx2wp3KqBDE0cI1OpWqjkbg8vsimXHWlDng+ksDZQScOQItgcDW4mxkRRetEk3TLd3NoXD4VHfBFnmD5zLhK+DcR5Gd+R4PwPNCniSbDzW0lz7mhMdDEdpoQKdooFSIhwExiQAkwCUAHADsBE/Xno3wFsBaiPgFSYORxrrXk5lfk5bfElJf39/FQPzAZwAYEo8XbwFpi0Av8nAW0S4aag9mWrq1zPQocDTNNNBpHAQgacxMB2MAjAXgSgPhBIwrI8FIaIgbAdjK0DPEFFDa2Po3VTmzOMLzCKiSgafQ0DZkM1GhIGtRPQsMz9lsf2noYvMMg6fz+faQVPPZ+B8gM4i4Lghv0yEt5npryD+i85TNR1PhnY4lc+5FZWftUHng3E2gFIAMwEUjPCz3QA2MdCqiMN6sODxtmce3Dlmn/AHywm6ggifZ6Z5AB98gK93ErBJAxsB3gRlrZ1mb3tpLLHPiDj2V10H8H8YS5D5+Ui47vOOiYYyf1UlE/8cjOPGmEYvgP9yc94v1ocf2p6wAy8InhSz9QoifAnA0WNIf5CYntaKH3VF1cMb1oa2ZbIjeSoq55OmahB8I4m6BHgfRDf35vfclowaL/MHzmXghiGhmDqXBZ4G8b+1NdY1j1lULVh+jtLquwDOwdiW2TYDfE83l/x6LLMi5eVXu6OTdlwP5u8MzcKMV2wQ1UPrmyPhuhfGFDR9y2cTrF8x8cIU+Ho/CP/Ng/k3pKLTSpVSK/MHLmfQvwN8WAqe1wfCnYX5BT9O5QxE2fzAXLboRoAXYexL1v0AHrBc0R8PXSiXeOw78+Ip5B5YAeBKAN4x5qMLQJgJT0zIL3g43TM24140eP2BXwD4fkrzC2zV0Is7mupbD+jAvuCZDP0TEPwOmK2fgQc19K0j5SMdAcbjC9xIhH9JQQD9pPVftGLWF0YSTLMrlh2rtPVrEJY4PL11ZxcXXzuaTnrm4sX5hQMT7iLGV1KcqdcU8+UtTXXPJj0T5gtOtGCvBtE85BAM3J3XPe2a0UxRl/kqv8RE9yE+W5jKinxPMV3QEg61pNM2wWDQ2rzdvpdBlzjw+L/BVudEmkNvjH2QEvg6MX4DwEpxHj9Uir/Q0lD3UmIzMdP+CUB1orNMSdLD4D9BWf/T1hB6XkTD2FB/35ir/jHVgmGoozjUgmqaW1H52U8JvId4/VWPMOm1DgkGACgg4AoLqsXrr3qkbMHy4zPFgTz+yu8T4f+lXjAAAJ1qW/rhT3t2+ZIlEzz+yp8ottqdFgxDnc3VxbRrVfmSJROS/W1h/4T7Ui4Y4pk6ToOenOOvPCPZn7pI35xrgmGoTV8xWNJ5x6hGtkT3p14wAAAfpkk3eecHj06nbTZ18rcdEgwAcCxc+pHSYHBM9pvjr7yAGLc6IBgAYIbWamX5wuCkA3acC6rO2qGmRQDc4pBgAIAiAl1OWj/n9QfWlFUET4WQGtFQvmTJBCa+0cH0ptia/vD3HWbVFy2y2wBeanCctJS1avdWBH7jOfPiKemshHLfRdMJVO1whPd7/VUr9jezE92d106gH2Hk9ctUdji+2G73nUkp84rlFQRc6GC2ijToYe+iFUWJ/mDuOUsPY+CKXA0gBFxRtqAyKZGvLfp3JL6mPxomQ+nfp8smpb7gRDBf57Dy9ri269GL5+pqpUG/dGaQ8rGAi8b01/f3NzMXL84v81fdBM1hME40WD0LmPULXn+gNt3CclyIhtiu/BUApjreefkqT/+4Iwh8jcB1AE1PQ/ndYFxL7oFXPBVVi9NVCYOIXgmg0IBQ+uHwIOH1Ba5l0mGMbc/IGOIeXTLHV+VL+Pus/tFAtg5HtOebiX45Fs1bgdFtEh03sKbvJdyhLgweSeDzDKgZv8cfLE+HPSzSVzg4ah7WfvDV0f7W09weADDLQD1c9UlhMmvB8mkT+iesZvAPkJ7X/glAJSzd7vUFrnVWOI1z0cDElxkJMoTLAKDMH/gOGL9F+s+LOISYnyjzB351lO+yAuMeTHy5oaRmzVlQecoewQByZC0zKTTx1QnNxiwMTiJgmZmIQl9Kou4uljCCc2ctWD4toYBj21825nOsq9Jkj0sNpXP67Iplx47Kx51Y4ts/R81eEPDsFSu+wKw8rdYh/nZRupkAwm+8vsATpb7gIdKMkxQNpb7gRMTfwTeQKJ3uqahazMAvMsgWxMC3S9Su57y+ys+YSnT2gqUHI/5qnplO2qbPeysCS0C4OSNGqcAFiSj9mK1PhyNr4PvNU1kiQWRovXa2hBFYbrYqEhNZdJY5MQ6faUMMLXXOMTdkdiXd+QaDQQtgY522sjE3PlBZPpsITwM4NqO8l7DYIr3OMz/okaachGhQFjxwdp1xeFAuJeaH0z3K/ZTMzQXRc3N8QSMNnzjvZMPTGueB8WCm2J6AEs/CwIjLI5r4c0bzpfiYkb5j2/ZsyKmqQxXEJyfYvuaYa8o4CaannvP6PUZ9guMdcjK8+sHgYQAmm2vjNLPMHygFqUYAMzLUg4+EpZ/x+pafJ405QdEAzSYr04XMfpf9CE36GY8/cL7jDcqs3YH4evLEjHJCTTNH/A6T0elDi3nE2SZNdKSEkL3irzTBrx5kUpDO8S2bZNSXWU03a/fk44dyWQeZzCOTPhLASpN1P1p/AanHPP5KWXJMaKYBPE3MsQ9FBNR7/FVfdHbgj5y3O2tdMmIHbTjgMPOIopZ0Sg7sGS+qYcT6OeGMpcUA8k1mK6a52KzfOLyR/JNmZxpFejzZsHN8heOnS2YDLgLdW1ZRuVwa9QiigclsY84S8ghc66TyZFCBmJlGfMWR2MTbJcPqRdHI6REVSd3t8WOMKPwmuovSEGPURLN24HzD6SUdP4iV23QlZJk7u5jpj3P8lRdIyz5AZRLYJebYL5ajypO1O9cNPHRnyEgdtFE7JSJStGEhk9kTDRhxGaAfMeMxxnK5jM40kGK3YcMnnx6TWzx25AGjBoXK5gfmiik+RTRoJhENB1aeDww/XyJ1bV6J3RUncAmPWVFLCZybQUpEwzBGFA0WbOO+nsgyU0r9RhvfYJy0ANCUgRvQM5NCtlCX6OvEOScaFLPsAh/BgUD0eKqPnmbFOX+wCMWst0ce+RMb7WwSmGZmZllaGt4+RsB2WcZjjPHlAiKzZaRRTP2zxJwkOCpPq4fjr6kK+4gGISGmMavH5/iWTRZTpIwdkebQm1kpdkATpPr2MigmEMYpCzZ18o/EDCIaRjt0OU6TdZcYImX2XAeAszTzLBW4l34xgTB+4xRfL/sbRDSMhYDXV3WVmCEFbZHwVPbmnnqkBveYAtvFCMI4xsUW7i4vvzrnN5GKaBh1kORbZs9ffqIYYmyawUVcl739JO2SKtw7EvtAjCCMc+ZESzq/JaJBGC0TlEV3Qm5IGwvrNjTWvZXFPaV0lHssAbwmVhBygOtLzw1OzWUDiGgY21jzTI+/8iKxw6h7mjuyvAQdUol720Kb2EDIASa5ovoHIhqE0YdK0M2nLb6kRCyRNB92o/jhrG48rqh0lB9bo1lsIOTEWIfxzbKK4OEiGoTRckjfwMB3xAxJi63b3wzfk9U77jc89eh7AF6W2sS7bWeXbhAzCDlCIWuds3sbRDSkRnp+o9QXnCiGSJgPXRbdOi7ED/ODOe/+xHegulqLWws5NOq5snzJkpw8p0VEQ2qYqkh/VcyQYHsj/t76NaGu8VAWV3H0dwD+L2cFA7A1T1m3iVcLOcaU6K68oIgGYQzCE9+Wd3gT6mbua22su3+8lGb9Y4/1kuKrkJuHG/UqVheOFwEoCEkG/a+JaBDGwhF2yfZF46QsOwHUgehmYv4eg/8F4OuIcTsYqwBsG+VzH3F3Tx93h2K1NtQ1aaWXAtiRQ/7+MojPag2HnpGmL+Qop3nnB4/OtUJnww2LDGATgHeY8L5idAE8maEOBfgoAMdkUEYvAvBE1s4BAKsJ9IsTplM4FArZB9LYZfMDc6BwBRNWYOQbDvsJ+Fnr2Z6fjte17/aG+qfmnhWcZVt8HQgXAnzYp5juA4DfYeA4Aky+dRMBMEjAZAZPBmgSkr8h8Q0Aa8B8dyRc94L0GULOY+klAG7NpSJnsmiIENNvXXDXrg8/9KlH1JYtWH48s7UUzJcBKE1vp0tf9C5aURRZfX+2HS/8BkNd3tYUenpP7zJSUVubazcA+EapL/hDi7gSpBeD6WQAnwEwAcBOAl5l5tUAft8arnsHTbXjujFtWBvaBuDbqK7+bnlD5OB+F8+wGDa7VK+Oqd6Bwt07X1+1agAAvP7ASwBOMZU3Iq5ubayrH/7/vItWFFncNQk6f3IMmATmyYq5WNPHN4oqoIuht8PF70RW138ovYTgEH3E9IwmvUYpvMQ2b3Pb1DnIBf0oGJiitJoO1kcx4ANQAeCEDMm3iIYMYAcRf6u1se5/kcBFRq0N9ZsB/BLV1b/yPt3+FUDfDND0NOV9IgZ7FgOoySIfqC0sKLhi3aoHukfz445waDeA+4Y+AgBUV+v1wFbEP5mryuPitgfAe1JpQrriPRP/ekJ+4a0HiEE7Ed9s/CKAPwHA7IqqzyvN/wrC4jTnf/5piy8pGW38zEYybU9DxLbU3KGNcsndIFhdrSNNNfdZhFNAeDVtJSCqyKL6f3Aqd345lxxeEISM4f6BwehRbY11P002BrU31jwXCdeer5VeBHA6L0vL6+sf+FwuVVomiYaOQaUrOtaEtozlIRsa694aJH0WgHStuc7PhopnIBw527MiHA7HJHYJgmCQGBjfijTV/sOmZx8d06Vv7Q31T9mWVQ5CGg8X06eKaDDPblK6cmNDfWcqHraxob7TzlMXAHgzDWU5qdx30fQMr/deWLhSDuQRBME4hG9GwrW3pGy0uSa0ZZD0OYhvmDc/AGMlMw3mjU7XDO1NSBkdT4Z2APgygEHTTWKQBjNdeT7UtqY2Zw8kEgQhTXqBcXuksfZ3qX7uxob6Tq1wIYAB42UiPiWX6jATRMOf28I1Dzjx4EhT7ToAt6ShYRyX0ZXO9L8SvgRBMMxbPYW933Pq4e0NtREw/pCGcn1m3rxgoYgGYypN3eDk8weVvokBoxv9mOjYTK70/MJ8uWRJEASzsR74yZ5Xjp3CdqmfIQ2zy31u/RkRDUZ6VzS1NoZedDKJoX0Sd5mdaeCZmVrhDHTL2xKCIBjuV9+bwp2Ov5bdsSa0hZmMH7AXc+ujRDSY4RFDvfgjZtsHjshctU+7JYAJgmB2sKKfNPamluJG4x2pbX1WRIOJxDX+bCKdaXrHc4gfEGIKuSZbEARh77hNrTaVlouUcdHApKeKaHCegZbm2tdNJDSkcDcbdCERDYIgCHtVAxk7R2GSvW0zAG22eGqCiAbn+RDJnvo4Nt436EJFEiUEQRCGhlFRt7F7S4YGiR8ZFQ0MeXvCAF2G0zPpRHkSJgRBEAAAsbZnHjTaiYPQaTQ9ZplpcNzGwDTDSR5ksGw9EARhXyVNA2k4spzcRpNjGTDshx6YnVUGAKMbvllxgYgGx4UgZgSDQctggocabiSCIAwfbvZN7EtDoDG7QU2ZG5wIQk6JBgDWxu2YYyKhUl9wIhizDAqiXeJagrAvfcU7e41rBmaz98AwZkhNCyIaHEtcX2BEnZA+FzC5UYU/EtcShH0ZOg3QNpys6ZP6jpGaFkQ0OCbKEYwPzB3nIsPjm7+JawnCfjE9C2fsqnrPmRdPAXCKVLEgosE5Znt9lQEnEyirCJ4KoNKsGOLXxbUEYX96Gm8bTtE7a8FyI5uuydW/AIAllSyIaHCygyW6obz8amd2OFdXK2b7ZpiZzfg4eLDMNAjCfts70xbTMS6P1YVmGr76mtSwIKLB8YEHTooW7/iFE88uC7ffANCZxo1q8SviWoKwv/bOW4wnyvhhaTDo6KuQnorK+QBXSA0LmdvbU0peC1UZURjia73+QEqXKby+qi8z8fVpKM3uyfaODeKhQmYN8Q2fV/DpvJGGNI+wtutrnHr4vHnBQmK6RZxMSA5t9OwKYhSPH9EQXz54wOurrErJDIM/cAWI74XhZYn4oAbPGbvNTRASDk+ZcWIdM9IlqH8Znw1IfezqKdB3AWZeHxfGkY5nZfR+DAaNK9EAAPkg+qOnIvDV0T6gNBjM8/oC/8nA75Guo5yJ10pzEBJQyYMm01OKDsmEcluw/wrzpwMCgJuYHp4zP3Bcyp5YXa28vsAvAFwsHi0k3/lqw4NLHneiAQAsYtxZVhGo9/qDJyQTgz0VVUHXdt0BwvfS3Bn8WZqDkIDq7zec5AmZUO6W8MqPALyWpuQP0RbWl/mrxvw21WmLLykpa26rTXe8EbI4BhBFDSc5IRV7e1wZaUzGMkAv8foCzSCsJKX/0mVP2vJm+J69gdZz5sVTkNfvIaYvAFgK5hM4/VnfFGmse1mag5CAl/cbblML4poWGdBMsA7A8WlKu5jBNR5/5T2arRs7wqGkXo+euXhx/oSBCVf09fdfB/MHRwnjKwbETK+gu7fhJAAt40407Jl1AMEPwM9aoYR2wesP7ET8IpIZwEA+mDIrx0R/lIYgJIjpmYYjPL7AgrZw7Zr0txOsAmNFWlsq6HKL9D94K6rqGfizC7pxQ2PdW/v78rx5wcJdE2JnWtpayP18EYAjxH2FFAj5XjLchWnS54xn0bA/pgx9MtIHwPSQNAUhsW6Ld5gWvaRwa7nvovnrww9tT2fRlbZXabKiANL9RocF5ioCqmwQvP7K7SDaBo3tIAyAMA2M6T3QByut8jgjJmmE8YIi1Z0Gn/rOnPmBlS3NtaNeInRJ1aVMMvwlEg5tEkMIiY0y6L00vNpzYpQG13n9VTdwNO+xtmce3JmOsreEV37k9QeaASzIMCU3HYzpe2eMRSMITo76mbvJ/GT5IdpCq9cf+BMTnoXGNgxdI25Z3BW1rZ09KHpn+FYAEQ1OxWNSN4kVhIRHGUzvMaWlVzoG4HvJPaC9/sA7AHYAPAhQ91BH2UcKnWD6kFm/pK3Y2vaGRz9IvWhCPVGmiQZBMBgDlOpm1ulIuhDApcS4dPiWCq0JFmmUYFev1x+oVWz/uCW88k0RDY6MGvFSWzj0tFhCSFxk6q1pOEZkn5gF4Mj4Z1g+CGAeGmYTQWm39lYE/gzN/xEJ172QqsTzXOp/o7a+CUCReIOQkzEghm0ZelPJBAArNFlV3orAdyONtb/7ZOAQxgqhWowgJIO2+bUsyaoC4wsget7rD/w2GAymJMytXxPqAiAbh4WcpVsVbc3wLBaC8dsyX+ArIhpSqRaB1W1NtXI2g5AUJx7s2gygL8uy/bVN2/TPU6ZGWN0uniDkKkP7BnZmej6ZcLN30YoiEQ2pYVAp/Q0xg5AsoVDIZkZ71mWc8G2vb/nsVDyqJRxqYSAs3iDkMO9mQR5nINoXENGQmgh6c2tD/WaxgzAq76GxvS+dJiwilTKhrEj9C+Q9BSF3yY7+g7BERMPYae/miT8RMwijhqkxK7MNLEd1dUpiR2tj6EUQnhBnEHIyBHCWiAZwmYiGsdGrbX3hgd5lFYSRsPNpNQA7C7N+0Ny1HbNS9TBNuD5L7SAIY+2Ms+NsH8axe/Y1iGgY3Qjx2vbm+lfFEMJY6HgytIPi9zBkHdq2Pal6VntDbQSMX4tHCDnXlViULXcVKWX3nCSiYXT8PhKuuUvMIKRGf3IoKzNOdHgqH9db2PuvIIgQF3KKE6eqDgydyJjxsYrVFBENyfPkVO68RswgpEy+a30PgN7sEztUksrnvb5q1YAGXQVAi1cIuUIoFLIBZMVsAzMXi2hIjg7F9pfD4XBMTCGkipbwyo8A1GZdxjUmpfqR7Y01z4HwM/EKIZcg0JqsyChjooiGxNlMpM4dCvCCkNq2aKv/RJZtBGTSk5x4bmS+58cA5LA0R3spGv+vuHL2zFgx6Seyw6QiGhJlE5GqaG0MvTtOWlNWzpQwme1UGWTMTm3NoTYG7s2ynseZjqe6WnM0/ysEvC6hJyFHTbpdWNCGYwBH02AXs0t+TKMuY6SxbgOAdzLd1dRQTBTRcGA2Wq7oOBIMAIBoVuaaDQceMpueIvVjAD1ZIxnAjr1u3PbMgzttWy8FsE1CUOrbhUlBPJReNA0OuiuL4ioDdH8WOFuPiIYD0+zmvLM2PPXoe+OsXFkpGkwHOmhl1E6tjaF3Cfhm1ogGIkeDcntz/as29DkAdkgoOmDnOJi8QuVBs1lMS8zZZbhBjKmMpOx7kOEno+qhtzxENOyfh7q5+Nz14Ye2j8Oy7c7GTBNps0FAsfFRf2tT7d0A7s+G+mANx2/o62iqbwXzBcY7gLH4KdNThlNM3k+jZHZvFqFrvMc5Yu4eU9tvqN9MhEeyoe9Im2hgpvqMHIUTfT/SVHuxqdMeyXgnTtkphEgZnapWmtMyNW6z+icCnsuCEa6RNdhIuO4FIrUQwPtZ4KXrXba+1HAkTbo9szLr28zoNN+/mF3a0ikoI2l1Q0bPNpDamV7RoO3rQZxJhyRtUorPiDTW/NKos4H+Ztjyb2elaGDeYjZBKy37WDrCod3FbLslAAAM0ElEQVTsnrAIQHMmV4eyETGVVmtj6EWL+HQgg28FJWyw89Si9Wvr3meg21y6lHR7PuEga6vJkTgBfzNfHdhoOME3xvqIlnCoBcAdmRqBBwcHNqdVNJBSHGmsu5qYfppmdaUB/q174uDJLQ11L5lPnduM2p0zuzP6VI+FetZgcr09hbtfSldZI6vv7yksKFgCwuMZWh07Wio8RjuCDY11bxUWFJwB0KMZaI91g6TP6XgytAMAE2CsTWvSTyf7m6EDhYwdX85MTWkI6+tNJmaxnZLZQZvVDzL0ZNS3Nj376K60ioY9/tQarvkRgaqQhulHBsJk45RIU90/r3/ssbScytcWrt0IwmuGkhu0rehTyEJmTUcLw/l19CFpteb1VasG0toLrXqgO9JYuxSMbyHzNq/+BdXVOi02aar5IgFXGh3NH7hDrHdPHKzY2FDfOWyUu9qUeCvudT0zyt+aEl+7dT6tMi68w/UdMPYaI69N1Rk+HeHQbmheBODNDGvzr+z5j4zYCNnaVFOn2D6RgP8CYCJYr2PQsramWn9rc+2GDIg8fzCU0B/bGx79IBtFQygUsolwtxHJoPRvMmWCJRKuvQXxqfkXMqUuiOje9MaL2ru1pTwA/SWtrZbx8zbf7KpPDjgY6mGYOA6b6Lbnnw/1jeaniu37YOL4cqL/HpqBMV8/MBMvwLg9tYKn7h0rpk4FqDGDQnA4o0QDED9Ot7Wp9uvuGB8N0M8ASvWrjn0AHgRweqSp9vS2ppqM2anqnhi9BYDTew1ibFu/RBZjK3XnUD06yV9bG+qaMqnckca6lyNne85g4B8N+MlIEfLF1saatM9WdawJbYk01SwGaCHM3xTaqcBL2sK1P9zfjEukKbQJgNMXkW0bJPu2scRbAE7vKetyR/XN6fKRqNK3Oj3bwMArU7FjZaqfu2FtaJu7e+p5AF2P9J/fYsNWNRknGvawfm3d1khTzXWRs2cfoYnOIMJNiG8KG43h3mDgbgYtc08cnB5pqr0k0lSbcVcRr3/ssV4QL4ODr5YR8/9raw61IYvpWBPawoRr4dwemB6ycXVGFr66Wrc11d7p7p52LECXgpCOuuxh27oKGbTDO9JU0xBpqp3HoGUAGhwe4UcZdJub82a1NNUd8OhfraLXAnBq824vMy4eviQyutHKhOvg3AxWjIm+un5t3dZ0+cbGhvpOpbhyNG+YJCgZtrPCRU7dR7R+/Z3RSFPNjWCexaDbkKZXjwn8x0hz6I2P/zxEma/yu0xkbCTKjBPbwrUJ73ANBoPWpu2YqVXsSGXTkQw1XSmewhoWEQqZ8BEYXQR0EnhTfkFh27pVD2TEumeieOYHPWTp3wE4I4WP/YiJvtPWWPMHjBM8/sqLCXQ7gCkpfOz/gfmSSLjuhWyxQ9n8wFxWuBiELwE4wuHQ8QGTvrCtsS6jN9J6FgaOUTG6nIkvBnBMqsQSgBpS+sbWhvrNCddPRfBwZn0PgIUpLGKLZny1PVz711Q8rNQXnGhB/ycIV6dwEPmWVvqr7Q31T2WKT5BN/wXweSnswZ622bqqIxwydtx5+cLgpFiMv8zEVQB8AFzOCwa87uK8ecPPLMoa0ZBDkNcfqCTCV5hxHoCCUdb2a9C41428/x6Ph1TNPSt4kHbxNQy+bAydA4PQAua7ivqtP4x2fTgTmD1/+YmWS53N4LPB9DkAR6eoE/g/gH5v59EdaVqbHlNnARsLVbzTnsvAUUkE2h1grAOorrAw/09jGYCULaj0s6arAJwLYFryTopuRWjUTPfMmk6PD739kFK8/uAJYL4GxEtH2Z4GAKxl5gf6CvseSvdG4v0xx195hiZcBqalAGaMZmaBgCeh8Pt0L2F6zrx4inINngHFZ7LGqSCUjq5Mn0o/GPcgT/9bZHX9h58QEiIaMpXTFl9S0jfQewpDnQTm2QQ6BEARgMkgWGAMMNCtgC4GPmJgqwI6iO0XW8Ir38wVO82ZHzjOtvhzisgL5s8w1KEATwJggZAPRtc+diLeoli9EmN6riMcen882qR8yZIJ0R73LNbqRFI4lJgP04SDwJgBII+A4qH2PxmErqFbAWMM2k7x4Bhh4NnI2Z6X0vGmhBOUBoN5aps+hoiPZ1LTAC6CpiKleAqAjzTQqZg6GdQRaQptRqqXYaqr1dy1HbNizKXEfBQxlTBxCYOLFWgig/sYqksxupi4G4R3bNavHMQ7O5yaAt+/AP3iES7L8mrCccTqUIAnY9isHoP7iKkbhG2aeYtloaOw12rPJtFd6gvOVIrnKq2PZKIjARQSMHlvGYm7iGkXE70Hrd8EWW2Rs0tfy+S2MGvB8ml5Ws0E+GBidShDHwLCDCI6bKjdz+B9BxJuxG+u3AXw+wBtBbiDCH+NaeupjnBo96fMPohoEARBEARhZOTuCUEQBEEQRDQIgiAIgiCiQRAEQRAEEQ2CIAiCIIhoEARBEARBRIMgCIIgCCIaBEEQBEEQRDQIgiAIgiCiQRAEQRAEEQ2CIAiCIIhoEARBEARBRIMgCIIgCCIaBEEQBEEQ0SAIgiAIgiCiQRAEQRAEEQ2CIAiCIIhoEARBEARBRIMgCIIgCCIaBEEQBEEQ0SAIgiAIgogGQRAEQRAEEQ2CIAiCICQtGljBNpkwKzsq5hcEQRCEbBQNmox24qzcIhoEQRAEIRtFAwhGO/GCAZlpEARBEITsFA1MPSYT7resXWJ+QRAEQchG0QD+wKRm6AiHdov5BUEQBCELRQORettYqoQ3xPSCIAiCkKWiIdIU2gyQmdkGRlhMLwiZzdyKSngXrRBDCIKwF9c+XTn4cQBXOp2oVrpeTC8ImUmpLwiLNGwGEO1FWUUlWhvrxDBCcn4UDCLvfSCWr5E3wOi3LHSEQ2KYcSQawIxfEuFyOHvoU0d7Q/0aMX3mMce3DFpZo/49AWhtrDWe7/Lyq7F+yWFAdbVUYgpQSgM8PC7QuChXWUUQgP548AJCW2PN6J/nqwIUDxt1MSLDxJWnohIEBdIMDQIRx+1Kw1tM/J8MgIjQ2phYp+rxV0KBwAxoK4r2hkeTzr/XXwUaVtGtTWNvu3MrKqG1AhMD2zVsF0A2EHURLGh4/AEQA0QAsY2W8EppcNkWH4b/oS1cuxGAo7XI4BuxT0gSMoWoyx2vmVF+TFZqWUUQ3opKeCsCiJZ0ovSZDqlAJ4LCuCqXDWbs/RBjTEKTifd9HvYV3MQKYAYT4oIBwwUD9jYc3vNv1vD6AijzBxIQ6EPdPQFKu0e1jPRxyqlpu15fADZTXDAcYGABiqenyYLHXykNLtvjg83qnwG86VB6D7Y11T0oZhfGioYGmER+OiHsYwqf7NrGAxsa6+K9+7CSeZojo3qWZ37w7/5forMEI6gBMABvRRXmzQsm/rtYL4LBYNps6/UHPiGIEu2A5CaDrBcNHeHQ+2A+C6DGFKZjM/Crqdx5qZg8i6D4aCzRD8bJNHauE2kOwWYVHx0rQltT7fhx6U9EPNKj81ly6U/MOoz8HGYCcXx0T3sEL9P+O1tm9BTY8Pl8iU4bYON2nSbBULm/7MSLZSvY0xU4mg97aOblYxlKcHVPlQaXZbj2GzTCde8AWFjmDyzSwBUELAQwmtp9B4zHiXB7pKlW5o+zUDW0hmvEDDnIeN2wpqIW7OEdPnF8T8z6O8f03Dw1kmhgtIU/XXydcMZSFOS5PzGrQ9ihpiej8eH1VyLSVGc8Tnzyj20j7G2auXgxigYmjtnuQoaIhj1e3tpU+ySAJ1FdrbxPdxxH4FLNfChAE5XiKcxcTCAXGINMtIsZXUpxFzG/DdYdLeGVb4qJBUHIFDasDcHrr9pntDtY0pnUM8oqgmDW+3SZ69eMTWRteja+kdHjq/p4/8OeIXt1dRJ7Lwieikq0GXrbpXxhEFFbD58gSWhm6vVVq8QZx6Fo+Jjqah0BNiH+EYRRM3v+F2GpPGjE1zQ+3hhFQIzQ1jy64KsGAc+ZF+/37ybaUTz//IGfO29eELsLNIgYpBU0MRQIxLGkd3iXBoNwbdfxjWZEUGDw0NY1RRYm2dsQDof3+1uvrxJMFmjvNrV4JLYIoJiFDWtHZ58TzlgKt9sNi+LvDxAxoBUAG5ai+Hr/MIbbMhH7eX2VIKJ4ve7tvhTAGu7iKNY/9ljCefUuWg7EFFjH18cUMUBAbKqFjpADMyBJrlBo1vv8RCN1y3Jt4RqU+QMY/k6G9+k2JLXzggmlvqCR2aKBwRiUNewKIwdXKGcvCMCyCRz3YGCoXR1oBudA/grFAFsgBlhpgBU0AUX5+Vi36oG/aweDvHuvuBuJOb5lsGMT4v7hih6wLoLBIF7bbsMm2rvnRjEBSiW/T6a6GrObW6A0gZUFYg0igLWCBqN4QI3Ylkfi/wMTXEuhghJs0QAAAABJRU5ErkJggg==",alt:"Pritunl Cloud"}),e.createElement("img",{className:"logo-dark bp3-navbar-heading",style:ov.heading,src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArAAAADXCAYAAADiKmJ9AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4AIWFwUd0jrHaAAAIABJREFUeNrt3Xn4HlV9/vH3JwtJCIRASICw77uAIAKyKrJopYq1UmzVFqGiiIBQqfyoiBtQN0CqKFpFtOKGSgWUfd9lRwEVEiABkpCEkH25f3/MCf0mJvBdnnnmzMz9uq7nCkp4njOfOXPmnu1MYGZmZmatJGkoMDZ9hqTPasCM9FdmA5MjYmZO7Q6vOrOsB5Z1gB2B7YCNgXHpsxowbLm//jIwC3gOmAw8ATwEPBoRC1xNM7PW71M2Bg4CdgV2ALZM+5TemAtMSPuV+4FrgbsjYokra2ZI2lPS1yT9UZ0xR9JvJH1Y0uqusJlZq/YpoyR9TNJD6rwXJH1J0qautFl7B5mDJd2rcs2U9AVJI1xxM7PG71fek0Jm2RZKOlfSSFfdrD0DzFBJ31F3PSFpa1ffzKyR+5VBki5U990taW2vAbN2DDK/UjUmpfuhzMysWfuWL6g6t0sa4rVg1uxB5mOq1lVeC2Zmjdqv7Jgu6Vfp1LKX07MQmFU3yAwDJtL7J0DLsn9E3Og1YmbWiH3LN4APV9yMKcDGETG3rB8Y5FVtVpl/yCC8AnzCq8LMrBHhdSRwZAZNGQu8r8wfcIA1q86HM2nH2/1Al5lZIxwOjMqkLR91gDVr3lHy2sDumTRnUBr0zMys3vbPqC07SSrtKqMDrFk13kRe96Af4FViZtaIfUsuAtjHAdasWXbJbdCT5Ic6zcxqKk1dtVVmzXq9A6xZs6yTWXtWBdb0ajEzq621yW92qbEOsGbNMjbDNvntKWZm3q900piyvthvSjCrxuhMA+zjORdN0prA9sC2wMbAumnQXhUYAQxPf3U2sAB4GXiGYr7dp4C7ImKCu5+ZNdCoDNtU2pU9B1izagxzm3odWncC/hE4ENiJAV4ikzQJuBb4AXBtRCxxdzSzBlilTW3yLQRm1RjiNr1m0NxT0m3A/cDJwM505v6u8cA/Ab8DnpT0fkkeC82s7oa2ab/iQdvMA01WbZIUks4EbgX2LPnnNgK+D9wqaby7pZnVWI4nRkrbrzjAmnmgWSqXy09nAKfT3adp9wDukrStu6aZeb/iAGtmK7bEbfprkl4PfKqin18f+KWkUe6eZlZD0aY2OcCaVWOh27RCn6PaswhbAV909zQzy5sDrJkDbBZtkrQncGgGdTjK98OamTnAmtlfW5BhmxZV/PsnZlKHYcB73EXNzBxgzWxZL2XYptlV/bCkocDbM6rFPu6iZmYOsGa2rKkZtumFCn97O4q3aeViZ3dRMzMHWDNb1hSH6mWsn1ktNk5nhc3MzAHWzJI/ZNae5yNidoW/v3Zm9RiSYag2MzMHWLNK3ZxZe26q+PfXznAdjXE3NTNzgDWzJCKeBCZk1KQbKv794RmupjXdU83MHGDNbFkXZdKOucClFbchx1cgruEuambmAGtmy7oQmJdBO34YEdMqbkOOD0yt4i5qZuYAa2Y9RMQU4IcVN2MJcF4G5cgxwHoWAjMzB1gzW4FTqXZKra9FxEM55PkM143PwJqZOcCa2V+ltoipFK8trWIKqyuB07wWPD6amXmANrO+htgbgbcAf+zSTy4GzgXeGRHzvAbMzMwB1sz6E2LvpHh96ccp7yUH84BLgDdExAkRscCVNzOzOhriEphlE2LnA+dJOh/YATgA2AvYBtiavs+V+izFWd0HgeuBmyJipittZmYOsGbW6SAr4KH0eWWGAElrA2Mp3lo1jOIho5EUtwS8lP7aixQPhU2NiLmuppmZOcCaWZXBdiow1ZUwM7O28z2wZmZmZuYAa2ZmZmbmAGtmZmZm5gBrZmZmZg6wZmZmZmYOsGZmZmZmDrBmZmZm5gBrZmZmZuYAa2ZmZmbmAGtmZmZmDrBmZmZmZg6wZmZmZmY9DXEJrGkkbQrsC2wKrA2MBeYAC4CFwMvAS8AzwCTgWeCJiFjk6pmZmTUwwEraAtgG2AAYD6wCrE5xNncmsDiFg0XANGAi8CTwTEQsrCjQrAJsnMLMSGC11O4hqa0z059TImKSu8UytRsObJfW93rAusCItL7XSH9tevpzBvA8MBV4HPhLt9a5pN2ADwB/C2zYj6+YK+l+4G7gduCaiJia0XoYAozr8Vla++HA/BTQ5/Toy09Vtb2toO2rAmsBqwKTIuLlBm4nawKDgVHL/aul62ZWLgdIaTzcBtgB2CL1p/FpHF8ljZGkds8HZgOTgQnpcz/wx4hQC8a/jdL4t20aA8elA+LBwGgg0l+d1WOf93yq12PAg8CTEbEkw2Ubk5Zrw7RMY4GhaWxZenV2HjA3HfQ/D7wA/Ckd8C+ooM3DUr/dKu2PxqX90dA07s1K/XUOMCVlj8cjYo735i0MsJJWA94JvBvYD1izn7+1WNKTwPXANcC1ETGthA6+NvAmijNwuwCbpYFncC//++lp0HkwDdRXR8TTLQqsI4GDgUNSDbfobe1WYKGkh4AbgSuA6zo5kEsamkLrx9OgNhAjgD3T53hgiaR7gN8Cl0XEfV1eD1sDbwX2BrZPA/YqffiKBZIeAx5Z2o+B+7oROtJO5j3A24B90vbX899P6xGGJgBPpR1pbnaVdFTasa+dPmOW+3NUH8aWF9NO9S7gBuC3EfFsl/rTWODItE72TQc+A/GipFuAHwO/jIi5DRn/BqcavQs4CFi/A187TdLvgF+lsWRBRcu2XtqXH5j2kesM4OsWS3ok9eMr035ycQltjjQm/01q9y79OPEmSRPTSZWHUwa5ISJmOQI2N8isIulTkqaoHIsk/ULSLh1o6waSTpX0gKQlHW7nEkn3SjpD0usbvL7XkfQVSdNVnqclfSIFnIH2zWMkPanu+b2kI9OAWtY6WFXSRyU9WNIy/FnSv0lavaT2D5L0cUnPyXpjoaQfSdq1xD61rqTvSJpX4nLMkPTpdKa9ruNfSDpK0lMlr/PJkk5JB9/dWradJF2W+ltZnpV08kDH9h5tHifp9BLH+IWSbkn79V0atB//2wzHuYe6XYRNUmjrhkWSTutnOw+SdI2kxV0OMh/s1IaaSaf/R0kvdrGGj0vacQDr/I8Vbox3StqmhHVwaBcD+fOSjijhAOgmZ9J+u1zSBh1eJ+8s+YB0eRMl7VXD8W+NtB/ppvslbVzycg2SdHbax3bLY5K2HUCbx0k6V9LcLq+PeyUdK2kNB9gaB1hJ60v6SwULeUFvz25J2l/SzRWvlOclnZnuI6pzhz+lhLPWvfGSpNf1oZ0bpzP2OZgl6e86uA6O7fJB2FJndaj9w9OBnQ18TNmqQ+vkvV0OLkvNlfSuGo1/wyTdVdH6npjusS3rjPKPKlquaZI262N7h0g6KY2tVZot6buStnSArWeAvarCBT3hNdo2StKFma2c6ZI+WcczspIOqCi8LvUnSSN6EY5OTwNLThZJOrJD62BxhctxWgeW4Uxnz475swZ4KV7ShpJmVhwCdqjJGPiZitf3NSrhtqR0UFylW/vQ1u3VvSu+vbUgZY31HWDzDbCDlr+MSfEAT1W+uLLLD5L2Bh4Ajsmsz4wGzgIekvTOmmXYc/m/p2irsDlw6qtsjLtTPEx3JsUT7DkZDHxfA79/6utUOx/zZyW9YQAD5prAiVinbAYM9KDiFP56NoRuWhW4WCXeL96hnf3oDPruW4D9O7xcI4BPV7xce0l6ay/OEp8A3APk9nzJ0JQ1npB0Tt1vLWiq5Xecx1fcnuErCjTpktTVwCYZ13JL4DJJV6p42jP3I7X9gB0zaMpJKxocJJ0M3JLqmqshwHdVPLncn3WwD8UUPVUK4NwBhI0PUkxLZ51znPr5oF0KL/+YwTLsQvHUeM6OoZg6rGpHd/j7jmJgMwx0ysdepZ+OAn4DfJWBz4hRphHpgPBBSW/20JRpgFUxv+tBGbTp71VMhbW0XR8FfpZ5J+/pEOA+SW/PvJ0fzaQdq1FMhdXzqPx84D/TUXDudh7AdnN0JsuwZ1qO/ni3h9GOG0Ux5VV/vJf+T3WYezDr5AH84FcLWF12eM993gCXK4BPZLJcb13RgVi67/cW4NAabZMbAdekB8xGeIjKLMBSzHuXw6tlh1PMw4ekD1H9Jdb+WAe4XNI3cuzsKiYyzylgv63HP58NHFez9f3+fqyDIWmby8U7+rEMo1P4tQzWR3JYRstwsLo4XVQf7cJy8xNXaBidu3VvO/K5UjmcYu74nmPG64E7yOPqX18FxVXq+/ryALJ1J8Dum1G7dkv3vH69xrUN4MPAbZI2zKxtu5HXPaVvSoPbCRSXa+rmkH5cgt+JvC69H9TPfjQIK8N+6UCzLwcUsXRbysSo1M9ztH9m7dm7Q9/zlsyWa8flwuvVFG/QqrOtgVslvQPLJsC+Macjd+CydGRadzsDtyuvlyDskVmNVpN0OPClmq7j0RSXmPoit/kyN+/Hf7MrVto2Qd/fTrYJxas1c7JdpvXdPbP2dGpM3inH9Z8eyL2W4pXSTdk+L5N0HFZtgE2XedbOqF1bZdaegVo/HbEdmUl7xmdYo0vo/ytrszrT0IewkZN1+jEV3KYeQku1fR//fo5ntrbJtLbrZNaeTo3JuR3ArCVpc+CqdKDfJIOB89N9sb4SVVWApXjXd7gcpRoOXCLpIxm0ZVyG9an7jfF93SHmdoAW/ViGDbxZl6qvZ2DHZrgMuV4uzm0MHNOhELR2hnX+Kfk8WFiG44Fv5j5tXBMNWXqU5FJ0LSR8XdLQiDi3yqNir4qO6+u8mzleYejrfdHre7WXat0GbNe5XknL7Wzg4NSmFwf4PbnNV7pbS7bVo4HZeE7srlp6xLeKS9HVEPs1SZ+qsA3DvBoqD7AjM1yGvp4FH+3VXqq+nhHPcRzPNcDmWKthDV2utjhB0pkuQ/cD7FCXous+L+l0D96NMb+Pfz/Hba6vAXaUV3upxjSgT+U6f3eOY+CQTL7D+u90Sae4DA6wbXBmRU8xepDrvGkOsFZx+MuxT+V6sJzjGDg0k++wgTmrBi8ycoC1jvhaBZ3dAbbz+nrvWq0DbHoRg/tRuYY1YLvO9XalHGvVibA/2JtNFrnqB+ntptaFAOun56ozGPiJpDdWsN6tcyb38e8vyXAZ+nLGz+G1fEMbsF3nGqhy3Od5XG6ONSnexrm6S+ENpulWpZgUeWOXopYWAw+0bDxwgC3fApfArLa2Ab7lMjjAtsF6wC/7MZm8Ve+RiJjdsmX2pcryzXcJzGrtCEnvcxkcYNtgZ+Bsl6F27m7hMvvsYPnmuQRmtXeupHVcBgfYNjhe0mEuQ61c3bYFjoi5wCKv+lJNcQnMam8McK7L4ADbimwAXCRpvEtRC/OAK1q67LO9+kv1nEtg1gjvlfQul8EBtg3GAt91GWrhioiY1dJln+XV7wBrZr1ynqQRLoMDbBscLOnvXIbs/bTFyz7Bq79Uj7gEZo2xAfARl8EBti2+Immky5CtF4Bftnj5H3YXKNVDLoFZo/y7JL/B0AG2FTYEPukyZOuCiGjzk+IOsOWZBvzJZTBrlDHASS6DA2xb/JukLV2G7MwHLmx5De50NyjN7yJisctg1jgnSVrbZXCAbYNhwGkuQ3Z+EBHPt7wG9wB/dlcoxWUugVkjrQ4c4zI4wLbFkX7NbFbmAp9texEiQsCP3R06bhLtvrfarOn+VZLfZugA2wpDgRNchmycHRETXQaguI1irsvQUZ+LiIUug1ljbQQc6jI4wLbFMb5vJgv3Al90GQoR8TRwpivRMbfge6vN2uBYl8ABti1WdYev3HPA30fEApdiGecA33MZBuxR4F0RscSlMGu8Q3xr4MAMcQlq5QOSPpfuPWy7F4FbgYkU74yfkw7IRlNMVbIpsBXFpZpOmAocEhF/cemXFRFLJB0FvAwc54r02RLgYuCEiJjpcpi1wiDgcOCrLoUD7IosTDvVSMGm7jYH3gDc1dL+Ogv4FvAz4O7eTDMkaSPgzcD7gf1TX+ir+4DDI+IpDxkrD7HAxyT9CjgP2NZVeU3PUZy5vigiPJuDWfsc5gDrAAswA/hf4HrgfuCJ5d9RL2l9YEtgD+CAFGzqVoN/aGGAnU1xmfr8iJjex2A1MYWE76X5dD+SwuxavfjPnwHOBr4ZEYs8XPSq3tcA20naLQ3OmwLrpn+9IK3LeWl7fTZ9JgAfAI7KbHHOSGPKmukAeDSwRi/+eVQ6cF76INY8iisG01JovRO4PR2EuV+Zrdhc4DHgKYq3Hi4EBKwCjKW4urY1sFqNl3FvSWtFxIte3e0MsI9QPFTz89d6K1JELN1h3gCcJWmdtNM8EajLA1LvlXRyiyY5vwP4p4gY8FuJIuIJ4ERJpwBvAvYBdgDWp5ibbwHFrQL3AzcC13gy+X7X+h6KeWJ7RdLfZLgYUyLiXq9Ns665n+IK25XAg691gJemotoWOJjicvxeNcxghwI/9KpvV4B9Gfg34ML+PvSQJqL/gqTzgM9R3L+X+9xs6wF7p4DVdGcBp3f6LFX6vhtbUkMzs9xdDpwVEbf1cSxfTPFK64eBL0t6HXAqcAT9u12sCu9wgO2fus5C8Edgl4j4Riee2I2IlyPiBOBAigeCcndAC/rmpyPi332J1cyssSYAb42Iw/oaXleyL38wIo4E9kw5oQ72djdoT4C9G9izE5eUV9D5bwB2B57MvAb7NrxffjIiPLeomVlz/RrYKd033+l9+Z3ArsClNajD+pLGuzs0P8D+ATg0ImaU9QPpSfP9gaczrsMeklZpaJ/8WUSc403TzKyxvkUxs0tp08ZFxByKh54vqEE93uAu0ewAO5diEvlpZf9QenL9MIonpnM0Atitgf1xFnC8N0szs8b6AXBsNx6QTXOmHw/8jwOsA2yVPhERD3frxyLifuBjGddjrwb2x29GxGRvlmZmjXQ38KFuvm0u/dbRFFdwHWAdYLvu1xHxjW7/aET8N8XTkTnauoH98TveJM3MGmkucEQVr+KOiNnAhyjmkc3Rdu4ezQywC4CTKvz9E4H5GdZli4b1xaci4jFvkmZmjXR2la/iTrMc/DzT2oxv8HMtrQ6w36/yNYvpt7/nAFu6B7w5mpk10kvk8crUszLOYuu7mzQvwJ6bQRu+Qn6XHtaXNKJBffE5b45mZo30nYh4qepGpDfrPZhpjTZxN2lWgL0vIh7JoNM/TvH+8pwExXvmm2KuN0czs0b6UUZt+WWmNdrI3aRZAfbXbsurWrNBfVHeHM3MGmcycG9G7bk20zpt6K7SrAB7s9vyqlZzFzYzs4zdluZjzcXvgcUZ1sn784YF2Ifdllc10l3YzMwyltU9pxHxMvBshnVa1V2lOQF2TkQ8n1GnnwHMyKxGPmIzM7OcPZlhmyY6wDrAluklt8kB1szMam1Khm2anmGbRrirNCfA5niPyqLM2uMHn8zMLGdz3KZe8RnYBgXYHO/vXD2z9sx2FzazZGGGbRqcW4MkBfV5jXoTLMqwTQsybNNwd5XmBNjRkrIJjOmlAWMyq9HL7sJmluQ4l3KOO+URFPNom5kDbGm2yqwtudXLAdbMlsrxsujq6YxnTka7q5g5wJZtr4zasm+G9XGANbOlcj0Dm9uVq03cVcwcYMt2aEZteXuG9ZnuLmxmyZxM27V5Zu3Z1l3FzAG2bAdKGlt1IySNBw7MrDZLyHN+PTNzgO1p18zas6e7ipkDbNmGAh/JoB0nkt/TtM9ExDx3YTNLJmfarr1zaUi6H/et7ipmDrDdcJykNSsc8DYAjs2wLn929zWzHiZm2q5DJQ3NpC27Axu5q5g5wHbD2sAZFf7+ueQ5J60DrJm9IiJmA1MzbNpo4LBM2nKce4qZA2xXBx1Jb+v2j0o6Cjg805o85u5rZsuZkGm7Pl51AyRtAbzXXcSsq0q7/bIuAXYQcLGkrl36kbQHcH7GNbnV24VZqeo42X2uAXYfSVXP5PIViucqzKx7Stvm6vQ6vTHATySV/r5gSdsBl1O8sSVHc4B7vV2YlWpEDdv8RMZtO7eqtytK+mfgHe7S1nDKsE2rOMAW3ghcJqm01xNK2g24keLe21zdERELvK2alWpkDdt8T8Zt2xy4sNtv5kpj+vnuztYCizNsU2l5bVANV9BBwPWS1i1hoHsfcEPm4RXgZm+n1jDzM2zTOAfYjvsH4OwuhtftgStqejBi1leLMmzTGEml3Ac7qKYraQ/g95I6cklI0nqS/ge4pCYD3XXeTs0BtnRb1q2IEfEUMCXzZp4i6YKydmo9xvX90sH+WG9e5gBbmcHAWg6wy1oP+LWkqyTtNYDgehbFE/1H1GS5JwG3eDu1hpmbYZt27Pbl7g65uwZt/AhwbRkP5koaIuk/gGuANb1pmQNs5TZ2gF2xg4FbJT0s6dOS9pE0aiUD2zBJO0s6XtJvgaeBTwKr12h5fxIRS7ydWsPkeAZ2XeD1NazlnTVp537AI5L+oxMPd0kKSYcBDwKfAYZ4szIH2CzsUsaXNmkD3z59zkiD2fPAdGA2xU3EawDjGxDaf+xt1Boo19civ5/6zfhxRQpwdbBaausnJF0M/BS4NSJ6/TCKpM2AdwEfArbxpmQtNifTdh0AfNsBtvfWSZ8m+Qtwl7dRa6BZmbbrXyWdHxF/qlEt7wWeBdavUZtHUbwl6zhghqR7gAcoXo87Oe2Y51PcErAaxSXJbShmptnEm48ZAC9l2q7DJW0aEU86wLbX9yNCLoM10ORM2zUM+J2kt3R68C1LREjS5cCHa9oXRgMHpo+Z1T/ALh1HPxgRHXsJkwNsfcwB/stlsIaalHHbNqW4V/MC4FLgvr5c4q7Ir2scYM2sWQEWYAvgFkkPALdRPIM0nWLu2hnp78yluOoyISJmOsA2x7cjYqrLYA01OfP2jQBOTp+XJE0GXqS4x57054I0GE8FpqU/HwXujIjZXW7vdWlnNspdy6wdImK+pPkUZzxztVP6vJrFkq4GvhoRv3OArbdFwFddBmvwwDtH0nTqMe3RqD4Gw3mSrgD+MyLu6OKO7BKK6arMrD2mUTywXmeDgUOAQyT9HPhYRPzVSY5BXte1cGlETHAZrOGebehyDQcOB26XdEN/563uhwvI893oZlaeyQ1bnncDd0na2gG2fhYAZ7oM1gIPt2AZ9wNuknR82T8UEY8Ct7pbmTnA1twGwM8kDXeArZcvRcTjLoO1wAMtWc7BwNckvacLv/VNdyuzVnmuocu1A3C0A2x9PAt80WWwlniwRcsawNcllX3P78/Ie4YHM+usJm/vJ/Z8vbcDbN5OiYiXXQZriftbtrzjKHmqq4iYD3zeXcusNf7S4GXblOLlJQ6wmbsevzbWWiQiJtHcy18rc0zPMwol+TbwZ/cws1Zo+i2HBznA5m068EG/dcta6OqWLe8mwPYlHxgsBD7jrmXWCo81fPn2coDN24cjYqLLYC10ZQuX+S1d+I0f0p6H5MxaKyJepHiJSlPt4ACbrwsj4icug7XUbyneZtUmO5X9AxGxBDgJzwtr1gYPNXjZxksa6QCbn0fTTsaszWcP7m7ZYu/QpdpeB1zkXmbWeHc1eTdBMS+sA2xGpgHvjIg5LoW13I9atrwbdPG3Tgaedhczc4CtsdUdYPMxDzgsIp5wKcy4GGjTgdw4SYO78UMR8RIlT91lZg6wJVvNATYPAo6KiNtcCjOIiJlAm+4DH0w6o9Cl+l4BfM89zayxY+gzNHs+WJ+BzcSpEfEjl8FsGRe2bHmHdfn3jgXudTcza6wmz+jih7gycE5EnOMymC0rIu4AfucAW1p95wHvBqa4tzWK3KbatqnTrmjwsvkWgoqdHRGfdBlesdjLW7lFmbXnFGCJ+0NpIXYC8L4Wbnu5WlLHflTDcQVgYQvqdAPNfZZgsQNsteH1VJch+wGlbcubVZsi4kHgBy3pD/MrqvHVgMeiPCzwuOI2dXDbngP8oqHbyssOsNU4zeHVAdaDeq/9P2CGA2ypIfZLwBc9BDnAtmhcWdCSOv13Q7eV2Q6w3d9g/jkivuBSOMB6R9PrcPUM8KEW9IXZFdf5U8CXPQzVfvvLMZjleAvB9JaMv9fTzNkIHGC76EXg4Ij4nkvx6h2yRWZ5HfQ6XP0c+K8G94Xn0qteq3YK8N0WbHtLyPNtb3MbGsxyvIIyNcM2zSxh7FRDD0yzv4Xg+YYU+g/A7hFxg4+IX1Xbnoae6nXQJ5+gua+YnZzJgYKAY2juZcelzgQuz6xN89NLJpo2rojiBE5uXsiwTdNK+t7vABMbtg1nfwb27ZkeTfbFJcCeEfHnzNqV46sk2xZgp7hNfQpX84CDgHsa2Bf+mFGdF0fEv1Dce9zEqYa+B3yWEs52ZRI8czvxMzMicrxd6k9tGX8jYj7wuSYe9OccYB9OIbaOl5anA++NiH9KbxXyxlvPNpXp8QzPSMzKuWARMQN4K82bgP+BDGv9eeAIitdcN8X3Kd56uCTD8aZTrxG/33271weNuU3R90iJ330RzZlXe9rSXJX1PbARcTuwN/U6/X0N8LqIyPlVmI9k1p6JGZ6lLtstmbXnhnQJmczHhBnAwRRzHDbFPZnW+ifAAWRyi8MAfQf4lx73Gj+UWfuu69D33JrZcl2fad+eAzyWUZMWAneUuLwC/pVmzOjyysFe9g9xRcT9wBuAmzNv6oR0xuKg9OR0zq4ir/tgr6NlUmCf6HXQr9pNAw4EPkP9X3TwEnB7xrW+A9gRuLSm9RXwaeDong/KRcTT5PV09jUdPDmR0wFHzq8zzemM5O0pVJe5LT8FHEJ6AKrG7q5NgE2FfwHYD/gA5d3o3F+z045024i4tCZnsaaR1xnAi2inizNpx6y6BZR0r+YZwLvI84GM3roi03sElxkvIuII4O/J8+HDlVkAfDAizlzJuHxZJu28nw6dfUshPZeH8G6JiLsy7h85TfL/7S5ty3cC7yS/e8D74s5aBdhUeEXExelswEVUOPF3MgX4ArB5RJwREXNr1glymVrj7oi4lXb6Fnm8+vG76dJ87UTEr4EKeloTAAAH80lEQVStgfOo5ytRz69RrX/K/52Nzf1A/RngzWmfsdJ+Tx5n8D/f4RMfF2WyXF/MvD/fBDyYQVOmAD/t4nJfS3FV++EajpeLgN/WLsD2KP7kiDga2BQ4i+5P0fEAcBSwUUScFhG1nO4rIv6XPO4jPKel4XXpZcxfZTAgnFfzOs6IiI8DuwM31qjpN0XEbTWr9XPpbOxuPXckmbkK2OW1Dowj4lGqPwv3YKfbEBFPAj+veLluJ+/bB5Y6OYOw/59ppoBubsdPAHtSnMiq00uEro6IZa8CSXqz8jOsN0sjaaikgyRdKOm5EtqxRNKdkk6T9LomBShJG0iaWOE6/hktl9bB9ArXwecaWNPXS7pY0iLla56k7RpQ6/0k3ZxJTSdLOkbSoD60fyNJUytq78uSti9pvawjaVKFy7VDjfrwGRX22ZslDa54+beRdHnKOrl7y4oWoLYBdgXLsoWkIyV9TdK1kp5IO4veelbSlZLOSt+zXsMD1E6Snq9g/f5G0moYkt4o6cUK1sH/SBra4Lpum8aBSZmNbQslvadhtd4x1XpaBfWcLenM/o4nkvaSNKXLbZ4iaY+S18mWkp7s8nLNlLRvDfvvCRUc8F4nafWMarCNpG+m7SlHv1hZwxsTYF9l5ayXwtqukg6UdIikw9IZhJ0lbZpTZ+pyx11H0o+7dAQ2S9InJQ1xdF1mHWwu6eouniE5pS9nqmpe28FpjLuopKs0ffGspLc1uNbDJB0h6TJJM0qu5QuSviBpfAfavYmkX3Rh/S9JVwfW7dL6GCXpgnTQVLZfStqwxn13V0k3dKFO0yUdX/WZ11epw0hJ70mZYFYmefAeSWu1NsBarzruzpK+nY6iO22CpNO7NXDXtP6RDq5+JWlBSZdYP9uJHX7N67ydpI9IujQFym54VNKJktZoUZ0HS9oj3X51fYfGleclXZJOPgwroc27SvpGCsed9JSkL0vasqJ1sYGkz0t6rMPLNSmdtXtdg/rtvpK+1eFbuxZJulXSsXW68ihpSLpCeFI6QHmqyznwJUmfWVnNYmmABa7NrHbDu31js73SaVeheIHEG4EdgO2AbYDhvfyKWRRvmnoEuA+4JiIedmX7duaEYq7TfSie/N4BWKcPXzE/rYNHgd+n7fu+nnNh2iu1XgvYPvXz7YHNgHXTZxzQn9ss5lLMV3gLcFVE3OxKF1fCKGaN2BrYChgPjEyfNYDVgSHAHIo5cicBT1E87PR74NFuTFUoKdJ2txewbfqMB8amT6zgP1tM8UT5CxSzIDyaxsDbIuLxjNbBZmm5dkx9fsPUz8cBKzorqB7LNYniLVYPU0xn9FAdpo7s7wFYjz6wC7BRqtX6wKhX2e6fS5+Jqd8+BNxc15leVlCX1VMe2A7YBNggbRsbpT/XGsDXL0z7rd8DlwNXRsRK5611gLW+bMxrAKOB1YBV059QzIW7gOIVus+VPSFzyw8slu5oVl3ugEIUb1mZDUzO9BXGda37uNTX16CYuWUksMpyf21Bqv1M4IWIeMmVa/x42DPEzGhKkJM0ukdAn9HUgNqBOg1JB1wA873fe6UuQ4ExKciOSZ+hPQ5Oh7HsNKhTenyejIgFvf0tB1gzMzMzq5VBLoGZmZmZOcCamZmZmTnAmpmZmZk5wJqZmZmZA6yZmZmZmQOsmZmZmZkDrJmZmZk5wJqZmZmZOcCamZmZmTnAmpmZmZkDrJmZmZmZA6yZmZmZmQOsmZmZmTnAmpmZmZk5wJqZmZmZOcCamZmZmQOsmZmZmZkDrJmZmZmZA6yZmZmZOcCamZmZmTnAmpmZmZk5wJqZmZmZA6yZmZmZmQOsmZmZmZkDrJmZmZk5wJqZmZmZOcCamZmZmTnAmpmZmVnDAqwybJu8eszMzMxsZQF2cYZtW+TVY2ZmZmYrC7ALM2vX4ohY4tVjZmZmZnUJsAu9aszMzMysTgF2gVeNmZmZmb1agJ2RWbte9KoxMzMzs1cLsC9k1q6pXjVmZmZmttIAGxFzgZcyatfzXjVmZmZmttIAm9yfUbvu8KoxMzMzs9cKsDdk1K7rvWrMrM4kLfMxM7NyAuwVmbRpEnCXV42Z1Tm89ub/MzOz/hmy9B8i4k5JtwF7Vdym/4oIzwNrXQsAEeHimlW8HXd6O+zr7/RnfBlIm1f0e52qQbdqXGX9zAYt97+/VHF75gPf9mqxtu/gfenZrLvbWw7bah23907Uz6wTAfZXVPsA1TkR8YJXi3lHata+/p/jd3V7G67LGNDJ8crjnvVHrKAjbQXcBozpclvuAPaLCL+Fy7o6yOVyGauKy37mdZnTdlzFJfSqxpUy61B2/+t0zbxdWH8MWkFHehzYH5jYxXbcBBzi8GpmjTgz4B1y62szkJDnM5Jm/QiwaYB5GNge+DLwcom/PwU4EXhzRMz06rD+7hAH8jHrVr+08oNbp8JfJ8aMJobY12qXx1zr2hjbi846CjgCOITizOyaA/zNqcC1wG+An0bEPK8GG8jA2ZQB0ZedzUG1+5fPB7rd9SbQDSSg9qceZY4lnVx3kjy+WXkBdgUdbmNgG2AzYBywNrAaMHK5vzqb4uztFOAF4C/AHyLiaZfdHPAcYM3bcxMCbH9DXV/OsPYnGHY7wHqcsuwDrJkD3orblPuDF739zbJ+r6xadWv9L1+rbvxuN/pEN/vAQENfN4Nkp0Ljyr6rr7cIdCJQNzHAVjWG1SW0N7k+/x9pqL1OaJJRvwAAAABJRU5ErkJggg==",alt:"Pritunl Cloud"}),e.createElement(rv,{hidden:!$i})),e.createElement("div",{className:"bp3-navbar-group bp3-align-right",style:ov.navGroup},e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-people",style:ov.link,hidden:$i,to:"/users"},"Users"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-layers",style:ov.link,hidden:$i,to:"/nodes"},"Nodes"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-filter",style:ov.link,hidden:$i,to:"/policies"},"Policies"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-endorsed",style:ov.link,to:"/certificates"},"Certificates"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-people",style:ov.link,hidden:$i,to:"/organizations"},"Organizations"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-cloud",style:ov.link,hidden:$i,to:"/datacenters"},"Datacenters"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-layout-circle",style:ov.link,hidden:$i,to:"/zones"},"Zones"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-ip-address",style:ov.link,hidden:$i,to:"/blocks"},"IP Blocks"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-layout-auto",style:ov.link,to:"/vpcs"},"VPCs"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-map-marker",style:ov.link,hidden:$i,to:"/domains"},"Domains"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-random",style:ov.link,to:"/balancers"},"Load Balancers"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-database",style:ov.link,hidden:$i,to:"/storages"},"Storages"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-compressed",style:ov.link,to:"/images"},"Images"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-floppy-disk",style:ov.link,to:"/disks"},"Disks"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-dashboard",style:ov.link,to:"/instances"},"Instances"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-key",style:ov.link,to:"/firewalls"},"Firewalls"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-office",style:ov.link,to:"/authorities"},"Authorities"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-notifications",style:ov.link,to:"/alerts"},"Alerts"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-history",style:ov.link,hidden:$i,to:"/logs"},"Logs"),e.createElement(pn,{className:"bp3-button bp3-minimal bp3-icon-settings",style:ov.link,hidden:$i,to:"/settings"},"Settings"),e.createElement(pn,{to:"/subscription",style:ov.sub,hidden:$i},e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-credit-card",style:ov.link,onClick:()=>{Vr(!0)}},"Subscription")),e.createElement(en,{render:t=>e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-refresh",disabled:this.state.disabled,onClick:()=>{let e=t.location.pathname;this.setState({...this.state,disabled:!0}),"/users"===e?qr().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):e.startsWith("/user/")?(Zr(Qr.user?Qr.user.id:null).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})),xo().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})),ro().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))):"/nodes"===e?(xh().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})),Ph().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})),Hh().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})),Nh().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})),Oh().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))):"/policies"===e?(hd(),cd().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})}))):"/certificates"===e?Ph().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/organizations"===e?bd().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/datacenters"===e?Hh().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/zones"===e?Nh().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/blocks"===e?Oh().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/vpcs"===e?ku().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/domains"===e?Yu().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/balancers"===e?mp().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/storages"===e?Pd().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/images"===e?Fp().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/disks"===e?rm().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/instances"===e?ym().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/firewalls"===e?uf().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/authorities"===e?qd().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/alerts"===e?Qd().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/logs"===e?Xf().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/settings"===e?hd().then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):"/subscription"===e?Vr(!0).then((()=>{this.setState({...this.state,disabled:!1})})).catch((()=>{this.setState({...this.state,disabled:!1})})):this.setState({...this.state,disabled:!1})}},"Refresh")}),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-log-out",onClick:()=>{window.location.href="/logout"}},"Logout"),e.createElement("button",{className:"bp3-button bp3-minimal bp3-icon-moon",onClick:()=>{"light"===Yi?qi():Zi(),new Promise(((e,t)=>{vn.put("/theme").send({theme:Yi}).set("Accept","application/json").set("Csrf-Token",Wi).end(((n,a)=>a&&401===a.status?(window.location.href="/login",void e()):n?(Ui(a,"Failed to save theme"),void t(n)):void e()))}))}}))),e.createElement(Cr,{intent:"primary"}),e.createElement(en,{path:"/",exact:!0,render:()=>$i?e.createElement(Fu,null):e.createElement(Co,null)}),e.createElement(en,{path:"/reload",render:()=>e.createElement(Zt,{to:"/"})}),e.createElement(en,{path:"/users",render:()=>e.createElement(Co,null)}),e.createElement(en,{exact:!0,path:"/user",render:()=>e.createElement(lh,null)}),e.createElement(en,{path:"/user/:userId",render:t=>e.createElement(lh,{userId:t.match.params.userId})}),e.createElement(en,{path:"/nodes",render:()=>e.createElement(nd,null)}),e.createElement(en,{path:"/policies",render:()=>e.createElement(vd,null)}),e.createElement(en,{path:"/certificates",render:()=>e.createElement(Sd,null)}),e.createElement(en,{path:"/organizations",render:()=>e.createElement(xd,null)}),e.createElement(en,{path:"/datacenters",render:()=>e.createElement(Dd,null)}),e.createElement(en,{path:"/zones",render:()=>e.createElement(pu,null)}),e.createElement(en,{path:"/blocks",render:()=>e.createElement(gu,null)}),e.createElement(en,{path:"/vpcs",render:()=>e.createElement(Fu,null)}),e.createElement(en,{path:"/domains",render:()=>e.createElement(lp,null)}),e.createElement(en,{path:"/balancers",render:()=>e.createElement(Tp,null)}),e.createElement(en,{path:"/storages",render:()=>e.createElement(Np,null)}),e.createElement(en,{path:"/images",render:()=>e.createElement(em,null)}),e.createElement(en,{path:"/disks",render:()=>e.createElement(Bm,null)}),e.createElement(en,{path:"/instances",render:()=>e.createElement(rf,null)}),e.createElement(en,{path:"/firewalls",render:()=>e.createElement(zf,null)}),e.createElement(en,{path:"/authorities",render:()=>e.createElement(Vf,null)}),e.createElement(en,{path:"/alerts",render:()=>e.createElement(cu,null)}),e.createElement(en,{path:"/logs",render:()=>e.createElement(Jf,null)}),e.createElement(en,{path:"/settings",render:()=>e.createElement(sv,null)}),e.createElement(en,{path:"/subscription",render:()=>e.createElement(Fr,null)})))}}let cv=!1;function hv(){let e="",t=window.location;"https:"===t.protocol?e+="wss":e+="ws",e+="://"+t.host+"/event?csrf_token="+Wi;let n=new WebSocket(e);n.addEventListener("close",(()=>{setTimeout((()=>{hv()}),500)})),n.addEventListener("message",(e=>{console.log(JSON.parse(e.data).data),kr.dispatch(JSON.parse(e.data).data)}))}function dv(){cv||(cv=!0,hv())}new Promise(((e,t)=>{vn.get("/csrf").set("Accept","application/json").end(((n,a)=>{if(a&&401===a.status)return window.location.href="/login",void e();n?t(n):(Wi=a.body.token,ji(!!a.body.oracle_license),"light"===a.body.theme?Zi():qi(),e())}))})).then((()=>{$e(),Bi||(Ri?Bi=Ri.create({position:f},document.getElementById("toaster")):console.error("Failed to load toaster")),dv(),t.render(e.createElement("div",null,e.createElement(lv,null)),document.getElementById("app"))}))})()})(); //# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/www/dist/static/app.750268.js.map b/www/dist/static/app.750268.js.map new file mode 100644 index 00000000..9cc83cda --- /dev/null +++ b/www/dist/static/app.750268.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.js","mappings":"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AER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,IAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,KAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,SAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,IAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,IAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,IAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,SAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,KAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,KAER,MAAQ,K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","sources":["webpack://pritunl-cloud/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/configureDom4.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/node_modules/react-transition-group/CSSTransition.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/node_modules/react-transition-group/ReplaceTransition.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/node_modules/react-transition-group/Transition.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/node_modules/react-transition-group/TransitionGroup.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/node_modules/react-transition-group/index.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/node_modules/react-transition-group/utils/ChildMapping.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/node_modules/react-transition-group/utils/PropTypes.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Caption.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/DateUtils.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Day.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/DayPicker.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Helpers.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/LocaleUtils.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/ModifiersUtils.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Month.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Navbar.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Weekday.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/Weekdays.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/classNames.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/index.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/node_modules/react-day-picker/src/keys.js","webpack://pritunl-cloud/./node_modules/@hypnosphi/create-react-context/lib/implementation.js","webpack://pritunl-cloud/./node_modules/@hypnosphi/create-react-context/lib/index.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/base64.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/decoders/copyrect.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/decoders/hextile.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/decoders/raw.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/decoders/rre.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/decoders/tight.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/decoders/tightpng.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/deflator.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/des.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/display.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/encodings.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/inflator.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/domkeytable.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/fixedkeys.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/gesturehandler.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/keyboard.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/keysym.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/keysymdef.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/util.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/vkeys.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/input/xtscancodes.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/rfb.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/browser.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/cursor.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/element.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/events.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/eventtarget.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/int.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/logging.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/util/strings.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/utils/common.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/adler32.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/crc32.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/deflate.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/inffast.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/inflate.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/inftrees.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/messages.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/trees.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/vendor/pako/lib/zlib/zstream.js","webpack://pritunl-cloud/./node_modules/@novnc/novnc/lib/websock.js","webpack://pritunl-cloud/./node_modules/call-bind/callBound.js","webpack://pritunl-cloud/./node_modules/call-bind/index.js","webpack://pritunl-cloud/./node_modules/classnames/index.js","webpack://pritunl-cloud/./node_modules/component-emitter/index.js","webpack://pritunl-cloud/./node_modules/deep-equal/index.js","webpack://pritunl-cloud/./node_modules/define-properties/index.js","webpack://pritunl-cloud/./node_modules/dom-helpers/class/addClass.js","webpack://pritunl-cloud/./node_modules/dom-helpers/class/hasClass.js","webpack://pritunl-cloud/./node_modules/dom-helpers/class/removeClass.js","webpack://pritunl-cloud/./node_modules/dom4/build/dom4.max.js","webpack://pritunl-cloud/./node_modules/events/events.js","webpack://pritunl-cloud/./node_modules/fast-safe-stringify/index.js","webpack://pritunl-cloud/./node_modules/fbjs/lib/invariant.js","webpack://pritunl-cloud/./node_modules/flux/index.js","webpack://pritunl-cloud/./node_modules/flux/lib/Dispatcher.js","webpack://pritunl-cloud/./node_modules/function-bind/implementation.js","webpack://pritunl-cloud/./node_modules/function-bind/index.js","webpack://pritunl-cloud/./node_modules/get-intrinsic/index.js","webpack://pritunl-cloud/./node_modules/gud/index.js","webpack://pritunl-cloud/./node_modules/has-symbols/index.js","webpack://pritunl-cloud/./node_modules/has-symbols/shams.js","webpack://pritunl-cloud/./node_modules/has-tostringtag/shams.js","webpack://pritunl-cloud/./node_modules/has/src/index.js","webpack://pritunl-cloud/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://pritunl-cloud/./node_modules/is-arguments/index.js","webpack://pritunl-cloud/./node_modules/is-date-object/index.js","webpack://pritunl-cloud/./node_modules/is-regex/index.js","webpack://pritunl-cloud/./node_modules/isarray/index.js","webpack://pritunl-cloud/./node_modules/mobile-detect/mobile-detect.js","webpack://pritunl-cloud/./node_modules/object-assign/index.js","webpack://pritunl-cloud/./node_modules/object-inspect/index.js","webpack://pritunl-cloud/./node_modules/object-is/implementation.js","webpack://pritunl-cloud/./node_modules/object-is/index.js","webpack://pritunl-cloud/./node_modules/object-is/polyfill.js","webpack://pritunl-cloud/./node_modules/object-is/shim.js","webpack://pritunl-cloud/./node_modules/object-keys/implementation.js","webpack://pritunl-cloud/./node_modules/object-keys/index.js","webpack://pritunl-cloud/./node_modules/object-keys/isArguments.js","webpack://pritunl-cloud/./node_modules/path-to-regexp/index.js","webpack://pritunl-cloud/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://pritunl-cloud/./node_modules/prop-types/index.js","webpack://pritunl-cloud/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://pritunl-cloud/./node_modules/qs/lib/formats.js","webpack://pritunl-cloud/./node_modules/qs/lib/index.js","webpack://pritunl-cloud/./node_modules/qs/lib/parse.js","webpack://pritunl-cloud/./node_modules/qs/lib/stringify.js","webpack://pritunl-cloud/./node_modules/qs/lib/utils.js","webpack://pritunl-cloud/./node_modules/react-dom/cjs/react-dom.production.min.js","webpack://pritunl-cloud/./node_modules/react-dom/index.js","webpack://pritunl-cloud/./node_modules/react-is/cjs/react-is.production.min.js","webpack://pritunl-cloud/./node_modules/react-is/index.js","webpack://pritunl-cloud/./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://pritunl-cloud/./node_modules/react-stripe-checkout/dist/main.js","webpack://pritunl-cloud/./node_modules/react/cjs/react.production.min.js","webpack://pritunl-cloud/./node_modules/react/index.js","webpack://pritunl-cloud/./node_modules/regexp.prototype.flags/implementation.js","webpack://pritunl-cloud/./node_modules/regexp.prototype.flags/index.js","webpack://pritunl-cloud/./node_modules/regexp.prototype.flags/polyfill.js","webpack://pritunl-cloud/./node_modules/regexp.prototype.flags/shim.js","webpack://pritunl-cloud/./node_modules/scheduler/cjs/scheduler.production.min.js","webpack://pritunl-cloud/./node_modules/scheduler/index.js","webpack://pritunl-cloud/./node_modules/side-channel/index.js","webpack://pritunl-cloud/./node_modules/superagent/src/agent-base.js","webpack://pritunl-cloud/./node_modules/superagent/src/client.js","webpack://pritunl-cloud/./node_modules/superagent/src/is-object.js","webpack://pritunl-cloud/./node_modules/superagent/src/request-base.js","webpack://pritunl-cloud/./node_modules/superagent/src/response-base.js","webpack://pritunl-cloud/./node_modules/superagent/src/utils.js","webpack://pritunl-cloud/./node_modules/warning/warning.js","webpack://pritunl-cloud/webpack/bootstrap","webpack://pritunl-cloud/webpack/runtime/amd define","webpack://pritunl-cloud/webpack/runtime/compat get default export","webpack://pritunl-cloud/webpack/runtime/define property getters","webpack://pritunl-cloud/webpack/runtime/global","webpack://pritunl-cloud/webpack/runtime/hasOwnProperty shorthand","webpack://pritunl-cloud/webpack/runtime/make namespace object","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/alignment.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/elevation.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/intent.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/position.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/classes.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/interactionMode.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/accessibility/focusStyleManager.ts","webpack://pritunl-cloud/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://pritunl-cloud/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://pritunl-cloud/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://pritunl-cloud/./node_modules/resolve-pathname/esm/resolve-pathname.js","webpack://pritunl-cloud/./node_modules/value-equal/esm/value-equal.js","webpack://pritunl-cloud/./node_modules/tiny-invariant/dist/tiny-invariant.esm.js","webpack://pritunl-cloud/./node_modules/history/esm/history.js","webpack://pritunl-cloud/./node_modules/mini-create-react-context/dist/esm/index.js","webpack://pritunl-cloud/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://pritunl-cloud/./node_modules/react-router/modules/createNameContext.js","webpack://pritunl-cloud/./node_modules/react-router/modules/HistoryContext.js","webpack://pritunl-cloud/./node_modules/react-router/modules/RouterContext.js","webpack://pritunl-cloud/./node_modules/react-router/modules/Router.js","webpack://pritunl-cloud/./node_modules/react-router/modules/MemoryRouter.js","webpack://pritunl-cloud/./node_modules/react-router/modules/Lifecycle.js","webpack://pritunl-cloud/./node_modules/react-router/modules/generatePath.js","webpack://pritunl-cloud/./node_modules/react-router/modules/Redirect.js","webpack://pritunl-cloud/./node_modules/react-router/modules/matchPath.js","webpack://pritunl-cloud/./node_modules/react-router/modules/Route.js","webpack://pritunl-cloud/./node_modules/react-router/modules/StaticRouter.js","webpack://pritunl-cloud/./node_modules/react-router/modules/Switch.js","webpack://pritunl-cloud/./node_modules/react-router/modules/hooks.js","webpack://pritunl-cloud/./node_modules/react-router-dom/modules/BrowserRouter.js","webpack://pritunl-cloud/./node_modules/react-router-dom/modules/HashRouter.js","webpack://pritunl-cloud/./node_modules/react-router-dom/modules/utils/locationUtils.js","webpack://pritunl-cloud/./node_modules/react-router-dom/modules/Link.js","webpack://pritunl-cloud/./node_modules/react-router-dom/modules/NavLink.js","webpack://pritunl-cloud/./node_modules/tslib/tslib.es6.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/props.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/refs.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/keys.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/utils/jsUtils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/errors.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/abstractPureComponent2.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/utils/reactUtils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/icons/src/generated/iconSvgPaths.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/icon/icon.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/spinner/spinner.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/button/abstractButton.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/button/buttons.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/html/html.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/utils/functionUtils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/portal/portal.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/overlay/overlay.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/forms/numericInput.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/dialog/dialog.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/divider/divider.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/button/buttonGroup.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/forms/controlGroup.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/forms/asyncControllableInput.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/forms/inputGroup.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/forms/numericInputUtils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/html-select/htmlSelect.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/menu/menuDivider.tsx","webpack://pritunl-cloud/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://pritunl-cloud/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://pritunl-cloud/./node_modules/react-popper/lib/esm/Manager.js","webpack://pritunl-cloud/./node_modules/react-popper/lib/esm/utils.js","webpack://pritunl-cloud/./node_modules/react-popper/lib/esm/Reference.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isBrowser.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/debounce.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isFunction.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getStyleComputedProperty.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getParentNode.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getScrollParent.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getReferenceNode.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isIE.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getOffsetParent.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getRoot.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/findCommonOffsetParent.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isOffsetContainer.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getScroll.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/includeScroll.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getBordersSize.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getWindowSizes.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getClientRect.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getBoundingClientRect.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getOffsetRectRelativeToArbitraryNode.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isFixed.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getFixedPositionOffsetParent.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getBoundaries.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/computeAutoPlacement.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getReferenceOffsets.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getOuterSizes.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getOppositePlacement.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getPopperOffsets.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/find.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/runModifiers.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/findIndex.js","webpack://pritunl-cloud/./node_modules/popper.js/src/methods/update.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isModifierEnabled.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getSupportedPropertyName.js","webpack://pritunl-cloud/./node_modules/popper.js/src/methods/destroy.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getWindow.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/setupEventListeners.js","webpack://pritunl-cloud/./node_modules/popper.js/src/methods/enableEventListeners.js","webpack://pritunl-cloud/./node_modules/popper.js/src/methods/disableEventListeners.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/removeEventListeners.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isNumeric.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/setStyles.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/computeStyle.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/isModifierRequired.js","webpack://pritunl-cloud/./node_modules/popper.js/src/methods/placements.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/clockwise.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/flip.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/offset.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/index.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/shift.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/preventOverflow.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/keepTogether.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/arrow.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getOppositeVariation.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/inner.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/hide.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/getRoundedOffsets.js","webpack://pritunl-cloud/./node_modules/popper.js/src/modifiers/applyStyle.js","webpack://pritunl-cloud/./node_modules/popper.js/src/utils/setAttributes.js","webpack://pritunl-cloud/./node_modules/popper.js/src/methods/defaults.js","webpack://pritunl-cloud/./node_modules/popper.js/src/index.js","webpack://pritunl-cloud/./node_modules/react-popper/lib/esm/Popper.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/common/utils/domUtils.ts","webpack://pritunl-cloud/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/resize-sensor/resizeSensor.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/tooltip/tooltip.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/popover/popperUtils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/popover/popoverArrow.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/popover/popoverMigrationUtils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/popover/popover.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/text/text.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/menu/menuItem.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/menu/menu.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/toast/toast.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/core/src/components/toast/toaster.tsx","webpack://pritunl-cloud/./app/Alert.ts","webpack://pritunl-cloud/./app/License.ts","webpack://pritunl-cloud/./app/Csrf.ts","webpack://pritunl-cloud/./app/Theme.ts","webpack://pritunl-cloud/./app/Constants.ts","webpack://pritunl-cloud/./app/dispatcher/Dispatcher.ts","webpack://pritunl-cloud/./app/EventEmitter.ts","webpack://pritunl-cloud/./app/types/SubscriptionTypes.ts","webpack://pritunl-cloud/./app/types/GlobalTypes.ts","webpack://pritunl-cloud/./app/stores/SubscriptionStore.ts","webpack://pritunl-cloud/./app/types/OrganizationTypes.ts","webpack://pritunl-cloud/./app/stores/OrganizationsStore.ts","webpack://pritunl-cloud/./app/types/LoadingTypes.ts","webpack://pritunl-cloud/./app/stores/LoadingStore.ts","webpack://pritunl-cloud/./app/components/LoadingBar.tsx","webpack://pritunl-cloud/./app/dispatcher/EventDispatcher.ts","webpack://pritunl-cloud/./app/utils/MiscUtils.ts","webpack://pritunl-cloud/./app/Loader.ts","webpack://pritunl-cloud/./app/actions/SubscriptionActions.ts","webpack://pritunl-cloud/./app/components/ConfirmButton.tsx","webpack://pritunl-cloud/./app/components/Subscription.tsx","webpack://pritunl-cloud/./app/types/UserTypes.ts","webpack://pritunl-cloud/./app/stores/UsersStore.ts","webpack://pritunl-cloud/./app/stores/UserStore.ts","webpack://pritunl-cloud/./app/actions/UserActions.ts","webpack://pritunl-cloud/./app/types/AuditTypes.ts","webpack://pritunl-cloud/./app/stores/AuditsStore.ts","webpack://pritunl-cloud/./app/actions/AuditActions.ts","webpack://pritunl-cloud/./app/components/User.tsx","webpack://pritunl-cloud/./app/components/SearchInput.tsx","webpack://pritunl-cloud/./app/components/SwitchNull.tsx","webpack://pritunl-cloud/./app/components/UsersFilter.tsx","webpack://pritunl-cloud/./app/components/Page.tsx","webpack://pritunl-cloud/./app/components/PageHeader.tsx","webpack://pritunl-cloud/./app/components/UsersPage.tsx","webpack://pritunl-cloud/./app/components/Users.tsx","webpack://pritunl-cloud/./app/types/SessionTypes.ts","webpack://pritunl-cloud/./app/stores/SessionsStore.ts","webpack://pritunl-cloud/./app/actions/SessionActions.ts","webpack://pritunl-cloud/./app/components/NonState.tsx","webpack://pritunl-cloud/./app/utils/AgentUtils.ts","webpack://pritunl-cloud/./app/components/CopyButton.tsx","webpack://pritunl-cloud/./app/components/PageInfo.tsx","webpack://pritunl-cloud/./app/components/Session.tsx","webpack://pritunl-cloud/./app/components/Sessions.tsx","webpack://pritunl-cloud/./node_modules/@github/webauthn-json/src/webauthn-json/base64url.ts","webpack://pritunl-cloud/./node_modules/@github/webauthn-json/src/webauthn-json/convert.ts","webpack://pritunl-cloud/./node_modules/@github/webauthn-json/src/webauthn-json/basic/schema.ts","webpack://pritunl-cloud/./node_modules/@github/webauthn-json/src/webauthn-json/basic/api.ts","webpack://pritunl-cloud/./app/types/DeviceTypes.ts","webpack://pritunl-cloud/./app/stores/DevicesStore.ts","webpack://pritunl-cloud/./app/actions/DeviceActions.ts","webpack://pritunl-cloud/./app/components/Help.tsx","webpack://pritunl-cloud/./app/components/PageSwitch.tsx","webpack://pritunl-cloud/./app/components/PageSave.tsx","webpack://pritunl-cloud/./app/components/PageInput.tsx","webpack://pritunl-cloud/./app/components/Device.tsx","webpack://pritunl-cloud/./app/components/Devices.tsx","webpack://pritunl-cloud/./app/components/Audit.tsx","webpack://pritunl-cloud/./app/components/AuditsPage.tsx","webpack://pritunl-cloud/./app/components/Audits.tsx","webpack://pritunl-cloud/./app/components/PagePanel.tsx","webpack://pritunl-cloud/./app/components/PageSplit.tsx","webpack://pritunl-cloud/./app/components/PageInputButton.tsx","webpack://pritunl-cloud/./app/components/PageSelect.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/common/classes.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/common/dateUtils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/common/errors.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/common/utils.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/datePickerCaption.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/common/months.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/datePickerCore.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/datePickerNavbar.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/common/timeUnit.ts","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/shortcuts.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/timePicker.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/datePicker.tsx","webpack://pritunl-cloud/./node_modules/@blueprintjs/datetime/src/dateTimePicker.tsx","webpack://pritunl-cloud/./app/components/PageDateTime.tsx","webpack://pritunl-cloud/./app/components/PageNew.tsx","webpack://pritunl-cloud/./app/components/PageTextArea.tsx","webpack://pritunl-cloud/./app/components/UserDetailed.tsx","webpack://pritunl-cloud/./app/types/NodeTypes.ts","webpack://pritunl-cloud/./app/stores/NodesStore.ts","webpack://pritunl-cloud/./app/types/CertificateTypes.ts","webpack://pritunl-cloud/./app/stores/CertificatesStore.ts","webpack://pritunl-cloud/./app/types/DatacenterTypes.ts","webpack://pritunl-cloud/./app/stores/DatacentersStore.ts","webpack://pritunl-cloud/./app/types/ZoneTypes.ts","webpack://pritunl-cloud/./app/stores/ZonesStore.ts","webpack://pritunl-cloud/./app/types/BlockTypes.ts","webpack://pritunl-cloud/./app/stores/BlocksStore.ts","webpack://pritunl-cloud/./app/actions/NodeActions.ts","webpack://pritunl-cloud/./app/actions/CertificateActions.ts","webpack://pritunl-cloud/./app/actions/DatacenterActions.ts","webpack://pritunl-cloud/./app/actions/ZoneActions.ts","webpack://pritunl-cloud/./app/actions/BlockActions.ts","webpack://pritunl-cloud/./app/components/NodeDeploy.tsx","webpack://pritunl-cloud/./app/components/PageInputSwitch.tsx","webpack://pritunl-cloud/./app/components/PageSelectButton.tsx","webpack://pritunl-cloud/./app/components/PageNumInput.tsx","webpack://pritunl-cloud/./app/components/NodeBlock.tsx","webpack://pritunl-cloud/./app/components/NodeDetailed.tsx","webpack://pritunl-cloud/./app/components/Node.tsx","webpack://pritunl-cloud/./app/components/NodesFilter.tsx","webpack://pritunl-cloud/./app/components/NodesPage.tsx","webpack://pritunl-cloud/./app/components/Nodes.tsx","webpack://pritunl-cloud/./app/types/PolicyTypes.ts","webpack://pritunl-cloud/./app/stores/PoliciesStore.ts","webpack://pritunl-cloud/./app/types/SettingsTypes.ts","webpack://pritunl-cloud/./app/stores/SettingsStore.ts","webpack://pritunl-cloud/./app/actions/PolicyActions.ts","webpack://pritunl-cloud/./app/actions/SettingsActions.ts","webpack://pritunl-cloud/./app/components/PolicyRule.tsx","webpack://pritunl-cloud/./app/components/Policy.tsx","webpack://pritunl-cloud/./app/components/Policies.tsx","webpack://pritunl-cloud/./app/actions/OrganizationActions.ts","webpack://pritunl-cloud/./app/components/CertificateDomain.tsx","webpack://pritunl-cloud/./app/components/Certificate.tsx","webpack://pritunl-cloud/./app/components/Certificates.tsx","webpack://pritunl-cloud/./app/components/Organization.tsx","webpack://pritunl-cloud/./app/components/Organizations.tsx","webpack://pritunl-cloud/./app/types/StorageTypes.ts","webpack://pritunl-cloud/./app/stores/StoragesStore.ts","webpack://pritunl-cloud/./app/actions/StorageActions.ts","webpack://pritunl-cloud/./app/components/Datacenter.tsx","webpack://pritunl-cloud/./app/components/Datacenters.tsx","webpack://pritunl-cloud/./app/types/AlertTypes.ts","webpack://pritunl-cloud/./app/stores/AlertsStore.ts","webpack://pritunl-cloud/./app/types/AuthorityTypes.ts","webpack://pritunl-cloud/./app/stores/AuthoritiesStore.ts","webpack://pritunl-cloud/./app/actions/AlertActions.ts","webpack://pritunl-cloud/./app/actions/AuthorityActions.ts","webpack://pritunl-cloud/./app/components/AlertDetailed.tsx","webpack://pritunl-cloud/./app/components/Alert.tsx","webpack://pritunl-cloud/./app/components/AlertsFilter.tsx","webpack://pritunl-cloud/./app/components/AlertsPage.tsx","webpack://pritunl-cloud/./app/components/Alerts.tsx","webpack://pritunl-cloud/./app/components/Zone.tsx","webpack://pritunl-cloud/./app/components/Zones.tsx","webpack://pritunl-cloud/./app/components/Block.tsx","webpack://pritunl-cloud/./app/components/Blocks.tsx","webpack://pritunl-cloud/./app/types/VpcTypes.ts","webpack://pritunl-cloud/./app/stores/VpcsStore.ts","webpack://pritunl-cloud/./app/actions/VpcActions.ts","webpack://pritunl-cloud/./app/components/VpcRoute.tsx","webpack://pritunl-cloud/./app/components/VpcSubnet.tsx","webpack://pritunl-cloud/./app/components/VpcDetailed.tsx","webpack://pritunl-cloud/./app/components/Vpc.tsx","webpack://pritunl-cloud/./app/components/VpcsFilter.tsx","webpack://pritunl-cloud/./app/components/VpcsPage.tsx","webpack://pritunl-cloud/./app/components/Vpcs.tsx","webpack://pritunl-cloud/./app/types/DomainTypes.ts","webpack://pritunl-cloud/./app/stores/DomainsStore.ts","webpack://pritunl-cloud/./app/actions/DomainActions.ts","webpack://pritunl-cloud/./app/components/DomainDetailed.tsx","webpack://pritunl-cloud/./app/components/Domain.tsx","webpack://pritunl-cloud/./app/components/DomainsFilter.tsx","webpack://pritunl-cloud/./app/components/DomainsPage.tsx","webpack://pritunl-cloud/./app/components/Domains.tsx","webpack://pritunl-cloud/./app/types/BalancerTypes.ts","webpack://pritunl-cloud/./app/stores/BalancersStore.ts","webpack://pritunl-cloud/./app/actions/BalancerActions.ts","webpack://pritunl-cloud/./app/components/BalancerDomain.tsx","webpack://pritunl-cloud/./app/components/BalancerBackend.tsx","webpack://pritunl-cloud/./app/components/BalancerDetailed.tsx","webpack://pritunl-cloud/./app/components/Balancer.tsx","webpack://pritunl-cloud/./app/components/BalancersPage.tsx","webpack://pritunl-cloud/./app/components/BalancersFilter.tsx","webpack://pritunl-cloud/./app/components/Balancers.tsx","webpack://pritunl-cloud/./app/components/Storage.tsx","webpack://pritunl-cloud/./app/components/Storages.tsx","webpack://pritunl-cloud/./app/types/ImageTypes.ts","webpack://pritunl-cloud/./app/stores/ImagesStore.ts","webpack://pritunl-cloud/./app/actions/ImageActions.ts","webpack://pritunl-cloud/./app/components/ImageDetailed.tsx","webpack://pritunl-cloud/./app/components/Image.tsx","webpack://pritunl-cloud/./app/components/ImagesFilter.tsx","webpack://pritunl-cloud/./app/components/ImagesPage.tsx","webpack://pritunl-cloud/./app/components/Images.tsx","webpack://pritunl-cloud/./app/types/DiskTypes.ts","webpack://pritunl-cloud/./app/stores/DisksStore.ts","webpack://pritunl-cloud/./app/actions/DiskActions.ts","webpack://pritunl-cloud/./app/components/PageSelectButtonConfirm.tsx","webpack://pritunl-cloud/./app/types/InstanceTypes.ts","webpack://pritunl-cloud/./app/stores/InstancesStore.ts","webpack://pritunl-cloud/./app/actions/InstanceActions.ts","webpack://pritunl-cloud/./app/stores/InstancesNodeStore.ts","webpack://pritunl-cloud/./app/components/DiskDetailed.tsx","webpack://pritunl-cloud/./app/components/Disk.tsx","webpack://pritunl-cloud/./app/components/DisksFilter.tsx","webpack://pritunl-cloud/./app/components/DisksPage.tsx","webpack://pritunl-cloud/./app/stores/ImagesDatacenterStore.ts","webpack://pritunl-cloud/./app/stores/NodesZoneStore.ts","webpack://pritunl-cloud/./app/components/PageCreate.tsx","webpack://pritunl-cloud/./app/components/DiskNew.tsx","webpack://pritunl-cloud/./app/components/Disks.tsx","webpack://pritunl-cloud/./app/stores/DomainsNameStore.ts","webpack://pritunl-cloud/./app/stores/VpcsNameStore.ts","webpack://pritunl-cloud/./app/components/InstanceIscsiDevice.tsx","webpack://pritunl-cloud/./app/components/InstanceDetailed.tsx","webpack://pritunl-cloud/./app/components/Instance.tsx","webpack://pritunl-cloud/./app/components/InstanceLicense.tsx","webpack://pritunl-cloud/./app/components/InstanceNew.tsx","webpack://pritunl-cloud/./app/components/InstancesFilter.tsx","webpack://pritunl-cloud/./app/components/InstancesPage.tsx","webpack://pritunl-cloud/./app/components/Instances.tsx","webpack://pritunl-cloud/./app/types/FirewallTypes.ts","webpack://pritunl-cloud/./app/stores/FirewallsStore.ts","webpack://pritunl-cloud/./app/actions/FirewallActions.ts","webpack://pritunl-cloud/./app/components/FirewallRule.tsx","webpack://pritunl-cloud/./app/components/FirewallDetailed.tsx","webpack://pritunl-cloud/./app/components/Firewall.tsx","webpack://pritunl-cloud/./app/components/FirewallsFilter.tsx","webpack://pritunl-cloud/./app/components/FirewallsPage.tsx","webpack://pritunl-cloud/./app/components/Firewalls.tsx","webpack://pritunl-cloud/./app/components/AuthorityDetailed.tsx","webpack://pritunl-cloud/./app/components/Authority.tsx","webpack://pritunl-cloud/./app/components/AuthoritiesFilter.tsx","webpack://pritunl-cloud/./app/components/AuthoritiesPage.tsx","webpack://pritunl-cloud/./app/components/Authorities.tsx","webpack://pritunl-cloud/./app/types/LogTypes.ts","webpack://pritunl-cloud/./app/stores/LogsStore.ts","webpack://pritunl-cloud/./app/actions/LogActions.ts","webpack://pritunl-cloud/./app/components/Log.tsx","webpack://pritunl-cloud/./app/components/LogsFilter.tsx","webpack://pritunl-cloud/./app/components/LogsPage.tsx","webpack://pritunl-cloud/./app/components/Logs.tsx","webpack://pritunl-cloud/./app/components/SettingsProvider.tsx","webpack://pritunl-cloud/./app/components/SettingsSecondaryProvider.tsx","webpack://pritunl-cloud/./app/components/Settings.tsx","webpack://pritunl-cloud/./app/components/OrganizationSelect.tsx","webpack://pritunl-cloud/./app/components/Main.tsx","webpack://pritunl-cloud/./app/Event.ts","webpack://pritunl-cloud/./app/App.tsx"],"sourcesContent":["function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*\n * Copyright 2019 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nif (typeof require !== \"undefined\" && typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n // we're in browser\n require(\"dom4\"); // only import actual dom4 if we're in the browser (not server-compatible)\n // we'll still need dom4 types for the TypeScript to compile, these are included in package.json\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\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\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n *
    \n * {\"I'll receive my-node-* classes\"}\n *
    \n *
    \n * \n *
    \n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
    I appear first
    \n *
    I replace the above
    \n *
    \n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
    \n * I'm a fade Transition!\n *
    \n * )}\n *
    \n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
    \n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
    \n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\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\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
    ` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
    ` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport LocaleUtils from './LocaleUtils';\n\nimport { ENTER } from './keys';\n\nexport default class Caption extends Component {\n static propTypes = {\n date: PropTypes.instanceOf(Date),\n months: PropTypes.arrayOf(PropTypes.string),\n locale: PropTypes.string,\n localeUtils: PropTypes.object,\n onClick: PropTypes.func,\n classNames: PropTypes.shape({\n caption: PropTypes.string.isRequired,\n }).isRequired,\n };\n\n static defaultProps = {\n localeUtils: LocaleUtils,\n };\n\n constructor(props) {\n super(props);\n this.handleKeyUp = this.handleKeyUp.bind(this);\n }\n\n shouldComponentUpdate(nextProps) {\n return (\n nextProps.locale !== this.props.locale ||\n nextProps.classNames !== this.props.classNames ||\n nextProps.date.getMonth() !== this.props.date.getMonth() ||\n nextProps.date.getFullYear() !== this.props.date.getFullYear()\n );\n }\n\n handleKeyUp(e) {\n if (e.keyCode === ENTER) {\n this.props.onClick(e);\n }\n }\n\n render() {\n const {\n classNames,\n date,\n months,\n locale,\n localeUtils,\n onClick,\n } = this.props;\n return (\n
    \n
    \n {months\n ? `${months[date.getMonth()]} ${date.getFullYear()}`\n : localeUtils.formatMonthTitle(date, locale)}\n
    \n
    \n );\n }\n}\n","/**\n * Clone a date object.\n *\n * @export\n * @param {Date} d The date to clone\n * @return {Date} The cloned date\n */\nexport function clone(d) {\n return new Date(d.getTime());\n}\n\n/**\n * Return `true` if the passed value is a valid JavaScript Date object.\n *\n * @export\n * @param {any} value\n * @returns {Boolean}\n */\nexport function isDate(value) {\n return value instanceof Date && !isNaN(value.valueOf());\n}\n\n/**\n * Return `d` as a new date with `n` months added.\n *\n * @export\n * @param {Date} d\n * @param {number} n\n */\nexport function addMonths(d, n) {\n const newDate = clone(d);\n newDate.setMonth(d.getMonth() + n);\n return newDate;\n}\n\n/**\n * Return `true` if two dates are the same day, ignoring the time.\n *\n * @export\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isSameDay(d1, d2) {\n if (!d1 || !d2) {\n return false;\n }\n return (\n d1.getDate() === d2.getDate() &&\n d1.getMonth() === d2.getMonth() &&\n d1.getFullYear() === d2.getFullYear()\n );\n}\n\n/**\n * Return `true` if two dates fall in the same month.\n *\n * @export\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isSameMonth(d1, d2) {\n if (!d1 || !d2) {\n return false;\n }\n return (\n d1.getMonth() === d2.getMonth() && d1.getFullYear() === d2.getFullYear()\n );\n}\n\n/**\n * Returns `true` if the first day is before the second day.\n *\n * @export\n * @param {Date} d1\n * @param {Date} d2\n * @returns {Boolean}\n */\nexport function isDayBefore(d1, d2) {\n const day1 = clone(d1).setHours(0, 0, 0, 0);\n const day2 = clone(d2).setHours(0, 0, 0, 0);\n return day1 < day2;\n}\n\n/**\n * Returns `true` if the first day is after the second day.\n *\n * @export\n * @param {Date} d1\n * @param {Date} d2\n * @returns {Boolean}\n */\nexport function isDayAfter(d1, d2) {\n const day1 = clone(d1).setHours(0, 0, 0, 0);\n const day2 = clone(d2).setHours(0, 0, 0, 0);\n return day1 > day2;\n}\n\n/**\n * Return `true` if a day is in the past, e.g. yesterday or any day\n * before yesterday.\n *\n * @export\n * @param {Date} d\n * @return {Boolean}\n */\nexport function isPastDay(d) {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return isDayBefore(d, today);\n}\n\n/**\n * Return `true` if a day is in the future, e.g. tomorrow or any day\n * after tomorrow.\n *\n * @export\n * @param {Date} d\n * @return {Boolean}\n */\nexport function isFutureDay(d) {\n const tomorrow = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);\n tomorrow.setHours(0, 0, 0, 0);\n return d >= tomorrow;\n}\n\n/**\n * Return `true` if day `d` is between days `d1` and `d2`,\n * without including them.\n *\n * @export\n * @param {Date} d\n * @param {Date} d1\n * @param {Date} d2\n * @return {Boolean}\n */\nexport function isDayBetween(d, d1, d2) {\n const date = clone(d);\n date.setHours(0, 0, 0, 0);\n return (\n (isDayAfter(date, d1) && isDayBefore(date, d2)) ||\n (isDayAfter(date, d2) && isDayBefore(date, d1))\n );\n}\n\n/**\n * Add a day to a range and return a new range. A range is an object with\n * `from` and `to` days.\n *\n * @export\n * @param {Date} day\n * @param {Object} range\n * @return {Object} Returns a new range object\n */\nexport function addDayToRange(day, range = { from: null, to: null }) {\n let { from, to } = range;\n if (!from) {\n from = day;\n } else if (from && to && isSameDay(from, to) && isSameDay(day, from)) {\n from = null;\n to = null;\n } else if (to && isDayBefore(day, from)) {\n from = day;\n } else if (to && isSameDay(day, to)) {\n from = day;\n to = day;\n } else {\n to = day;\n if (isDayBefore(to, from)) {\n to = from;\n from = day;\n }\n }\n\n return { from, to };\n}\n\n/**\n * Return `true` if a day is included in a range of days.\n *\n * @export\n * @param {Date} day\n * @param {Object} range\n * @return {Boolean}\n */\nexport function isDayInRange(day, range) {\n const { from, to } = range;\n return (\n (from && isSameDay(day, from)) ||\n (to && isSameDay(day, to)) ||\n (from && to && isDayBetween(day, from, to))\n );\n}\n\n/**\n * Return the year's week number (as per ISO, i.e. with the week starting from monday)\n * for the given day.\n *\n * @export\n * @param {Date} day\n * @returns {Number}\n */\nexport function getWeekNumber(day) {\n const date = clone(day);\n date.setHours(0, 0, 0);\n date.setDate(date.getDate() + 4 - (date.getDay() || 7));\n return Math.ceil(\n ((date - new Date(date.getFullYear(), 0, 1)) / 8.64e7 + 1) / 7\n );\n}\n\nexport default {\n addDayToRange,\n addMonths,\n clone,\n getWeekNumber,\n isDate,\n isDayAfter,\n isDayBefore,\n isDayBetween,\n isDayInRange,\n isFutureDay,\n isPastDay,\n isSameDay,\n isSameMonth,\n};\n","/* eslint-disable jsx-a11y/no-static-element-interactions, react/forbid-prop-types */\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { isSameDay } from './DateUtils';\nimport { hasOwnProp } from './Helpers';\n\nimport defaultClassNames from './classNames';\n\nfunction handleEvent(handler, day, modifiers) {\n if (!handler) {\n return undefined;\n }\n return e => {\n e.persist();\n handler(day, modifiers, e);\n };\n}\n\nexport default class Day extends Component {\n static propTypes = {\n classNames: PropTypes.shape({\n day: PropTypes.string.isRequired,\n }).isRequired,\n\n day: PropTypes.instanceOf(Date).isRequired,\n children: PropTypes.node.isRequired,\n\n ariaDisabled: PropTypes.bool,\n ariaLabel: PropTypes.string,\n ariaSelected: PropTypes.bool,\n empty: PropTypes.bool,\n modifiers: PropTypes.object,\n modifiersStyles: PropTypes.object,\n onClick: PropTypes.func,\n onKeyDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchStart: PropTypes.func,\n onFocus: PropTypes.func,\n tabIndex: PropTypes.number,\n };\n\n static defaultProps = {\n tabIndex: -1,\n };\n\n static defaultProps = {\n modifiers: {},\n modifiersStyles: {},\n empty: false,\n };\n\n shouldComponentUpdate(nextProps) {\n const propNames = Object.keys(this.props);\n const nextPropNames = Object.keys(nextProps);\n if (propNames.length !== nextPropNames.length) {\n return true;\n }\n return propNames.some(name => {\n if (\n name === 'modifiers' ||\n name === 'modifiersStyles' ||\n name === 'classNames'\n ) {\n const prop = this.props[name];\n const nextProp = nextProps[name];\n const modifiers = Object.keys(prop);\n const nextModifiers = Object.keys(nextProp);\n if (modifiers.length !== nextModifiers.length) {\n return true;\n }\n return modifiers.some(\n mod => !hasOwnProp(nextProp, mod) || prop[mod] !== nextProp[mod]\n );\n }\n if (name === 'day') {\n return !isSameDay(this.props[name], nextProps[name]);\n }\n return (\n !hasOwnProp(nextProps, name) || this.props[name] !== nextProps[name]\n );\n });\n }\n\n render() {\n const {\n classNames,\n modifiersStyles,\n day,\n tabIndex,\n empty,\n modifiers,\n onMouseEnter,\n onMouseLeave,\n onMouseUp,\n onMouseDown,\n onClick,\n onKeyDown,\n onTouchStart,\n onTouchEnd,\n onFocus,\n ariaLabel,\n ariaDisabled,\n ariaSelected,\n children,\n } = this.props;\n\n let className = classNames.day;\n if (classNames !== defaultClassNames) {\n // When using CSS modules prefix the modifier as required by the BEM syntax\n className += ` ${Object.keys(modifiers).join(' ')}`;\n } else {\n className += Object.keys(modifiers)\n .map(modifier => ` ${className}--${modifier}`)\n .join('');\n }\n\n let style;\n if (modifiersStyles) {\n Object.keys(modifiers)\n .filter(modifier => !!modifiersStyles[modifier])\n .forEach(modifier => {\n style = { ...style, ...modifiersStyles[modifier] };\n });\n }\n\n if (empty) {\n return
    ;\n }\n return (\n \n {children}\n
    \n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Caption from './Caption';\nimport Navbar from './Navbar';\nimport Month from './Month';\nimport Weekday from './Weekday';\n\nimport * as Helpers from './Helpers';\nimport * as DateUtils from './DateUtils';\nimport * as LocaleUtils from './LocaleUtils';\nimport * as ModifiersUtils from './ModifiersUtils';\nimport classNames from './classNames';\n\nimport { ENTER, SPACE, LEFT, UP, DOWN, RIGHT } from './keys';\n\nexport class DayPicker extends Component {\n dayPicker = null;\n\n static propTypes = {\n // Rendering months\n initialMonth: PropTypes.instanceOf(Date),\n month: PropTypes.instanceOf(Date),\n numberOfMonths: PropTypes.number,\n fromMonth: PropTypes.instanceOf(Date),\n toMonth: PropTypes.instanceOf(Date),\n canChangeMonth: PropTypes.bool,\n reverseMonths: PropTypes.bool,\n pagedNavigation: PropTypes.bool,\n todayButton: PropTypes.string,\n showWeekNumbers: PropTypes.bool,\n showWeekDays: PropTypes.bool,\n\n // Modifiers\n selectedDays: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.array,\n ]),\n disabledDays: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.array,\n ]),\n\n modifiers: PropTypes.object,\n modifiersStyles: PropTypes.object,\n\n // Localization\n dir: PropTypes.string,\n firstDayOfWeek: PropTypes.oneOf([0, 1, 2, 3, 4, 5, 6]),\n labels: PropTypes.shape({\n nextMonth: PropTypes.string.isRequired,\n previousMonth: PropTypes.string.isRequired,\n }),\n locale: PropTypes.string,\n localeUtils: PropTypes.shape({\n formatMonthTitle: PropTypes.func,\n formatWeekdayShort: PropTypes.func,\n formatWeekdayLong: PropTypes.func,\n getFirstDayOfWeek: PropTypes.func,\n }),\n months: PropTypes.arrayOf(PropTypes.string),\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n\n // Customization\n showOutsideDays: PropTypes.bool,\n enableOutsideDaysClick: PropTypes.bool,\n fixedWeeks: PropTypes.bool,\n\n // CSS and HTML\n classNames: PropTypes.shape({\n body: PropTypes.string,\n container: PropTypes.string,\n day: PropTypes.string.isRequired,\n disabled: PropTypes.string.isRequired,\n footer: PropTypes.string,\n interactionDisabled: PropTypes.string,\n months: PropTypes.string,\n month: PropTypes.string,\n navBar: PropTypes.string,\n outside: PropTypes.string.isRequired,\n selected: PropTypes.string.isRequired,\n today: PropTypes.string.isRequired,\n todayButton: PropTypes.string,\n week: PropTypes.string,\n wrapper: PropTypes.string,\n }),\n className: PropTypes.string,\n containerProps: PropTypes.object,\n tabIndex: PropTypes.number,\n\n // Custom elements\n renderDay: PropTypes.func,\n renderWeek: PropTypes.func,\n weekdayElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n navbarElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n captionElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(Component),\n ]),\n\n // Events\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onKeyDown: PropTypes.func,\n onDayClick: PropTypes.func,\n onDayKeyDown: PropTypes.func,\n onDayMouseEnter: PropTypes.func,\n onDayMouseLeave: PropTypes.func,\n onDayMouseDown: PropTypes.func,\n onDayMouseUp: PropTypes.func,\n onDayTouchStart: PropTypes.func,\n onDayTouchEnd: PropTypes.func,\n onDayFocus: PropTypes.func,\n onMonthChange: PropTypes.func,\n onCaptionClick: PropTypes.func,\n onWeekClick: PropTypes.func,\n onTodayButtonClick: PropTypes.func,\n };\n\n static defaultProps = {\n classNames,\n tabIndex: 0,\n numberOfMonths: 1,\n labels: {\n previousMonth: 'Previous Month',\n nextMonth: 'Next Month',\n },\n locale: 'en',\n localeUtils: LocaleUtils,\n showOutsideDays: false,\n enableOutsideDaysClick: true,\n fixedWeeks: false,\n canChangeMonth: true,\n reverseMonths: false,\n pagedNavigation: false,\n showWeekNumbers: false,\n showWeekDays: true,\n renderDay: day => day.getDate(),\n renderWeek: weekNumber => weekNumber,\n weekdayElement: ,\n navbarElement: ,\n captionElement: ,\n };\n\n constructor(props) {\n super(props);\n\n const currentMonth = this.getCurrentMonthFromProps(props);\n this.state = { currentMonth };\n }\n\n componentDidUpdate(prevProps) {\n // Changing the `month` props means changing the current displayed month\n if (\n prevProps.month !== this.props.month &&\n !DateUtils.isSameMonth(prevProps.month, this.props.month)\n ) {\n const currentMonth = this.getCurrentMonthFromProps(this.props);\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ currentMonth });\n }\n }\n\n static VERSION = '7.4.8';\n\n /**\n * Return the month to be shown in the calendar based on the component props.\n *\n * @param {Object} props\n * @returns Date\n * @memberof DayPicker\n * @private\n */\n getCurrentMonthFromProps(props) {\n const initialMonth = Helpers.startOfMonth(\n props.month || props.initialMonth || new Date()\n );\n let currentMonth = initialMonth;\n\n if (props.pagedNavigation && props.numberOfMonths > 1 && props.fromMonth) {\n const fromMonth = Helpers.startOfMonth(props.fromMonth);\n const diffInMonths = Helpers.getMonthsDiff(fromMonth, currentMonth);\n currentMonth = DateUtils.addMonths(\n fromMonth,\n Math.floor(diffInMonths / props.numberOfMonths) * props.numberOfMonths\n );\n } else if (\n props.toMonth &&\n props.numberOfMonths > 1 &&\n Helpers.getMonthsDiff(currentMonth, props.toMonth) <= 0\n ) {\n currentMonth = DateUtils.addMonths(\n Helpers.startOfMonth(props.toMonth),\n 1 - this.props.numberOfMonths\n );\n }\n return currentMonth;\n }\n\n getNextNavigableMonth() {\n return DateUtils.addMonths(\n this.state.currentMonth,\n this.props.numberOfMonths\n );\n }\n\n getPreviousNavigableMonth() {\n return DateUtils.addMonths(this.state.currentMonth, -1);\n }\n\n allowPreviousMonth() {\n const previousMonth = DateUtils.addMonths(this.state.currentMonth, -1);\n return this.allowMonth(previousMonth);\n }\n\n allowNextMonth() {\n const nextMonth = DateUtils.addMonths(\n this.state.currentMonth,\n this.props.numberOfMonths\n );\n return this.allowMonth(nextMonth);\n }\n\n allowMonth(d) {\n const { fromMonth, toMonth, canChangeMonth } = this.props;\n if (\n !canChangeMonth ||\n (fromMonth && Helpers.getMonthsDiff(fromMonth, d) < 0) ||\n (toMonth && Helpers.getMonthsDiff(toMonth, d) > 0)\n ) {\n return false;\n }\n return true;\n }\n\n allowYearChange() {\n return this.props.canChangeMonth;\n }\n\n showMonth(d, callback) {\n if (!this.allowMonth(d)) {\n return;\n }\n this.setState({ currentMonth: Helpers.startOfMonth(d) }, () => {\n if (callback) {\n callback();\n }\n if (this.props.onMonthChange) {\n this.props.onMonthChange(this.state.currentMonth);\n }\n });\n }\n\n showNextMonth = callback => {\n if (!this.allowNextMonth()) {\n return;\n }\n const deltaMonths = this.props.pagedNavigation\n ? this.props.numberOfMonths\n : 1;\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, deltaMonths);\n this.showMonth(nextMonth, callback);\n };\n\n showPreviousMonth = callback => {\n if (!this.allowPreviousMonth()) {\n return;\n }\n const deltaMonths = this.props.pagedNavigation\n ? this.props.numberOfMonths\n : 1;\n const previousMonth = DateUtils.addMonths(\n this.state.currentMonth,\n -deltaMonths\n );\n this.showMonth(previousMonth, callback);\n };\n\n showNextYear() {\n if (!this.allowYearChange()) {\n return;\n }\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, 12);\n this.showMonth(nextMonth);\n }\n\n showPreviousYear() {\n if (!this.allowYearChange()) {\n return;\n }\n const nextMonth = DateUtils.addMonths(this.state.currentMonth, -12);\n this.showMonth(nextMonth);\n }\n\n focus() {\n this.wrapper.focus();\n }\n\n focusFirstDayOfMonth() {\n Helpers.getDayNodes(this.dayPicker, this.props.classNames)[0].focus();\n }\n\n focusLastDayOfMonth() {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n dayNodes[dayNodes.length - 1].focus();\n }\n\n focusPreviousDay(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n if (dayNodeIndex === -1) return;\n if (dayNodeIndex === 0) {\n this.showPreviousMonth(() => this.focusLastDayOfMonth());\n } else {\n dayNodes[dayNodeIndex - 1].focus();\n }\n }\n\n focusNextDay(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n if (dayNodeIndex === -1) return;\n if (dayNodeIndex === dayNodes.length - 1) {\n this.showNextMonth(() => this.focusFirstDayOfMonth());\n } else {\n dayNodes[dayNodeIndex + 1].focus();\n }\n }\n\n focusNextWeek(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n const isInLastWeekOfMonth = dayNodeIndex > dayNodes.length - 8;\n\n if (isInLastWeekOfMonth) {\n this.showNextMonth(() => {\n const daysAfterIndex = dayNodes.length - dayNodeIndex;\n const nextMonthDayNodeIndex = 7 - daysAfterIndex;\n Helpers.getDayNodes(this.dayPicker, this.props.classNames)[\n nextMonthDayNodeIndex\n ].focus();\n });\n } else {\n dayNodes[dayNodeIndex + 7].focus();\n }\n }\n\n focusPreviousWeek(dayNode) {\n const dayNodes = Helpers.getDayNodes(this.dayPicker, this.props.classNames);\n const dayNodeIndex = Helpers.nodeListToArray(dayNodes).indexOf(dayNode);\n const isInFirstWeekOfMonth = dayNodeIndex <= 6;\n\n if (isInFirstWeekOfMonth) {\n this.showPreviousMonth(() => {\n const previousMonthDayNodes = Helpers.getDayNodes(\n this.dayPicker,\n this.props.classNames\n );\n const startOfLastWeekOfMonth = previousMonthDayNodes.length - 7;\n const previousMonthDayNodeIndex = startOfLastWeekOfMonth + dayNodeIndex;\n previousMonthDayNodes[previousMonthDayNodeIndex].focus();\n });\n } else {\n dayNodes[dayNodeIndex - 7].focus();\n }\n }\n\n // Event handlers\n\n handleKeyDown = e => {\n e.persist();\n\n switch (e.keyCode) {\n case LEFT:\n if (this.props.dir === 'rtl') {\n this.showNextMonth();\n } else {\n this.showPreviousMonth();\n }\n Helpers.cancelEvent(e);\n break;\n case RIGHT:\n if (this.props.dir === 'rtl') {\n this.showPreviousMonth();\n } else {\n this.showNextMonth();\n }\n Helpers.cancelEvent(e);\n break;\n case UP:\n this.showPreviousYear();\n Helpers.cancelEvent(e);\n break;\n case DOWN:\n this.showNextYear();\n Helpers.cancelEvent(e);\n break;\n default:\n break;\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n handleDayKeyDown = (day, modifiers, e) => {\n e.persist();\n\n switch (e.keyCode) {\n case LEFT:\n Helpers.cancelEvent(e);\n if (this.props.dir === 'rtl') {\n this.focusNextDay(e.target);\n } else {\n this.focusPreviousDay(e.target);\n }\n break;\n case RIGHT:\n Helpers.cancelEvent(e);\n if (this.props.dir === 'rtl') {\n this.focusPreviousDay(e.target);\n } else {\n this.focusNextDay(e.target);\n }\n break;\n case UP:\n Helpers.cancelEvent(e);\n this.focusPreviousWeek(e.target);\n break;\n case DOWN:\n Helpers.cancelEvent(e);\n this.focusNextWeek(e.target);\n break;\n case ENTER:\n case SPACE:\n Helpers.cancelEvent(e);\n if (this.props.onDayClick) {\n this.handleDayClick(day, modifiers, e);\n }\n break;\n default:\n break;\n }\n if (this.props.onDayKeyDown) {\n this.props.onDayKeyDown(day, modifiers, e);\n }\n };\n\n handleDayClick = (day, modifiers, e) => {\n e.persist();\n\n if (\n modifiers[this.props.classNames.outside] &&\n this.props.enableOutsideDaysClick\n ) {\n this.handleOutsideDayClick(day);\n }\n if (this.props.onDayClick) {\n this.props.onDayClick(day, modifiers, e);\n }\n };\n\n handleOutsideDayClick(day) {\n const { currentMonth } = this.state;\n const { numberOfMonths } = this.props;\n const diffInMonths = Helpers.getMonthsDiff(currentMonth, day);\n if (diffInMonths > 0 && diffInMonths >= numberOfMonths) {\n this.showNextMonth();\n } else if (diffInMonths < 0) {\n this.showPreviousMonth();\n }\n }\n\n handleTodayButtonClick = e => {\n const today = new Date();\n const month = new Date(today.getFullYear(), today.getMonth());\n this.showMonth(month);\n e.target.blur();\n if (this.props.onTodayButtonClick) {\n e.persist();\n this.props.onTodayButtonClick(\n new Date(today.getFullYear(), today.getMonth(), today.getDate()),\n ModifiersUtils.getModifiersForDay(today, this.props.modifiers),\n e\n );\n }\n };\n\n renderNavbar() {\n const {\n labels,\n locale,\n localeUtils,\n canChangeMonth,\n navbarElement,\n ...attributes\n } = this.props;\n\n if (!canChangeMonth) return null;\n\n const props = {\n month: this.state.currentMonth,\n classNames: this.props.classNames,\n className: this.props.classNames.navBar,\n nextMonth: this.getNextNavigableMonth(),\n previousMonth: this.getPreviousNavigableMonth(),\n showPreviousButton: this.allowPreviousMonth(),\n showNextButton: this.allowNextMonth(),\n onNextClick: this.showNextMonth,\n onPreviousClick: this.showPreviousMonth,\n dir: attributes.dir,\n labels,\n locale,\n localeUtils,\n };\n return React.isValidElement(navbarElement)\n ? React.cloneElement(navbarElement, props)\n : React.createElement(navbarElement, props);\n }\n\n renderMonths() {\n const months = [];\n const firstDayOfWeek = Helpers.getFirstDayOfWeekFromProps(this.props);\n for (let i = 0; i < this.props.numberOfMonths; i += 1) {\n const month = DateUtils.addMonths(this.state.currentMonth, i);\n months.push(\n \n );\n }\n\n if (this.props.reverseMonths) {\n months.reverse();\n }\n return months;\n }\n\n renderFooter() {\n if (this.props.todayButton) {\n return (\n
    \n {this.renderTodayButton()}\n
    \n );\n }\n return null;\n }\n\n renderTodayButton() {\n return (\n \n {this.props.todayButton}\n \n );\n }\n\n render() {\n let className = this.props.classNames.container;\n\n if (!this.props.onDayClick) {\n className = `${className} ${this.props.classNames.interactionDisabled}`;\n }\n if (this.props.className) {\n className = `${className} ${this.props.className}`;\n }\n return (\n (this.dayPicker = el)}\n lang={this.props.locale}\n >\n (this.wrapper = el)}\n tabIndex={\n this.props.canChangeMonth &&\n typeof this.props.tabIndex !== 'undefined'\n ? this.props.tabIndex\n : -1\n }\n onKeyDown={this.handleKeyDown}\n onFocus={this.props.onFocus}\n onBlur={this.props.onBlur}\n >\n {this.renderNavbar()}\n
    \n {this.renderMonths()}\n
    \n {this.renderFooter()}\n
    \n
    \n );\n }\n}\n\nDayPicker.DateUtils = DateUtils;\nDayPicker.LocaleUtils = LocaleUtils;\nDayPicker.ModifiersUtils = ModifiersUtils;\n\nexport { DateUtils, LocaleUtils, ModifiersUtils };\n\nexport default DayPicker;\n","import { clone } from './DateUtils';\nimport { getFirstDayOfWeek } from './LocaleUtils';\nimport defaultClassNames from './classNames';\n\nexport function cancelEvent(e) {\n e.preventDefault();\n e.stopPropagation();\n}\n\nexport function getFirstDayOfMonth(d) {\n return new Date(d.getFullYear(), d.getMonth(), 1, 12);\n}\n\nexport function getDaysInMonth(d) {\n const resultDate = getFirstDayOfMonth(d);\n\n resultDate.setMonth(resultDate.getMonth() + 1);\n resultDate.setDate(resultDate.getDate() - 1);\n\n return resultDate.getDate();\n}\n\nexport function getModifiersFromProps(props) {\n const modifiers = { ...props.modifiers };\n if (props.selectedDays) {\n modifiers[props.classNames.selected] = props.selectedDays;\n }\n if (props.disabledDays) {\n modifiers[props.classNames.disabled] = props.disabledDays;\n }\n return modifiers;\n}\n\nexport function getFirstDayOfWeekFromProps(props) {\n const { firstDayOfWeek, locale = 'en', localeUtils = {} } = props;\n if (!isNaN(firstDayOfWeek)) {\n return firstDayOfWeek;\n }\n if (localeUtils.getFirstDayOfWeek) {\n return localeUtils.getFirstDayOfWeek(locale);\n }\n return 0;\n}\n\nexport function isRangeOfDates(value) {\n return !!(value && value.from && value.to);\n}\n\nexport function getMonthsDiff(d1, d2) {\n return (\n d2.getMonth() - d1.getMonth() + 12 * (d2.getFullYear() - d1.getFullYear())\n );\n}\n\nexport function getWeekArray(\n d,\n firstDayOfWeek = getFirstDayOfWeek(),\n fixedWeeks\n) {\n const daysInMonth = getDaysInMonth(d);\n const dayArray = [];\n\n let week = [];\n const weekArray = [];\n\n for (let i = 1; i <= daysInMonth; i += 1) {\n dayArray.push(new Date(d.getFullYear(), d.getMonth(), i, 12));\n }\n\n dayArray.forEach(day => {\n if (week.length > 0 && day.getDay() === firstDayOfWeek) {\n weekArray.push(week);\n week = [];\n }\n week.push(day);\n if (dayArray.indexOf(day) === dayArray.length - 1) {\n weekArray.push(week);\n }\n });\n\n // unshift days to start the first week\n const firstWeek = weekArray[0];\n for (let i = 7 - firstWeek.length; i > 0; i -= 1) {\n const outsideDate = clone(firstWeek[0]);\n outsideDate.setDate(firstWeek[0].getDate() - 1);\n firstWeek.unshift(outsideDate);\n }\n\n // push days until the end of the last week\n const lastWeek = weekArray[weekArray.length - 1];\n for (let i = lastWeek.length; i < 7; i += 1) {\n const outsideDate = clone(lastWeek[lastWeek.length - 1]);\n outsideDate.setDate(lastWeek[lastWeek.length - 1].getDate() + 1);\n lastWeek.push(outsideDate);\n }\n\n // add extra weeks to reach 6 weeks\n if (fixedWeeks && weekArray.length < 6) {\n let lastExtraWeek;\n\n for (let i = weekArray.length; i < 6; i += 1) {\n lastExtraWeek = weekArray[weekArray.length - 1];\n const lastDay = lastExtraWeek[lastExtraWeek.length - 1];\n const extraWeek = [];\n\n for (let j = 0; j < 7; j += 1) {\n const outsideDate = clone(lastDay);\n outsideDate.setDate(lastDay.getDate() + j + 1);\n extraWeek.push(outsideDate);\n }\n\n weekArray.push(extraWeek);\n }\n }\n\n return weekArray;\n}\n\nexport function startOfMonth(d) {\n const newDate = clone(d);\n newDate.setDate(1);\n newDate.setHours(12, 0, 0, 0); // always set noon to avoid time zone issues\n return newDate;\n}\n\nexport function getDayNodes(node, classNames) {\n let outsideClassName;\n if (classNames === defaultClassNames) {\n // When using CSS modules prefix the modifier as required by the BEM syntax\n outsideClassName = `${classNames.day}--${classNames.outside}`;\n } else {\n outsideClassName = `${classNames.outside}`;\n }\n const dayQuery = classNames.day.replace(/ /g, '.');\n const outsideDayQuery = outsideClassName.replace(/ /g, '.');\n const selector = `.${dayQuery}:not(.${outsideDayQuery})`;\n return node.querySelectorAll(selector);\n}\n\nexport function nodeListToArray(nodeList) {\n return Array.prototype.slice.call(nodeList, 0);\n}\n\nexport function hasOwnProp(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n","const WEEKDAYS_LONG = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n];\n\nconst WEEKDAYS_SHORT = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nexport function formatDay(day) {\n return day.toDateString();\n}\n\nexport function formatMonthTitle(d) {\n return `${MONTHS[d.getMonth()]} ${d.getFullYear()}`;\n}\n\nexport function formatWeekdayShort(i) {\n return WEEKDAYS_SHORT[i];\n}\n\nexport function formatWeekdayLong(i) {\n return WEEKDAYS_LONG[i];\n}\n\nexport function getFirstDayOfWeek() {\n return 0;\n}\n\nexport function getMonths() {\n return MONTHS;\n}\n\nexport default {\n formatDay,\n formatMonthTitle,\n formatWeekdayShort,\n formatWeekdayLong,\n getFirstDayOfWeek,\n getMonths,\n};\n","import { isDayAfter, isDayBefore, isDayInRange, isSameDay } from './DateUtils';\nimport { isRangeOfDates } from './Helpers';\n\n/**\n * Return `true` if a date matches the specified modifier.\n *\n * @export\n * @param {Date} day\n * @param {Any} modifier\n * @return {Boolean}\n */\nexport function dayMatchesModifier(day, modifier) {\n if (!modifier) {\n return false;\n }\n const arr = Array.isArray(modifier) ? modifier : [modifier];\n return arr.some(mod => {\n if (!mod) {\n return false;\n }\n if (mod instanceof Date) {\n return isSameDay(day, mod);\n }\n if (isRangeOfDates(mod)) {\n return isDayInRange(day, mod);\n }\n if (mod.after && mod.before && isDayAfter(mod.before, mod.after)) {\n return isDayAfter(day, mod.after) && isDayBefore(day, mod.before);\n }\n if (\n mod.after &&\n mod.before &&\n (isDayAfter(mod.after, mod.before) || isSameDay(mod.after, mod.before))\n ) {\n return isDayAfter(day, mod.after) || isDayBefore(day, mod.before);\n }\n if (mod.after) {\n return isDayAfter(day, mod.after);\n }\n if (mod.before) {\n return isDayBefore(day, mod.before);\n }\n if (mod.daysOfWeek) {\n return mod.daysOfWeek.some(dayOfWeek => day.getDay() === dayOfWeek);\n }\n if (typeof mod === 'function') {\n return mod(day);\n }\n return false;\n });\n}\n\n/**\n * Return the modifiers matching the given day for the given\n * object of modifiers.\n *\n * @export\n * @param {Date} day\n * @param {Object} [modifiersObj={}]\n * @return {Array}\n */\nexport function getModifiersForDay(day, modifiersObj = {}) {\n return Object.keys(modifiersObj).reduce((modifiers, modifierName) => {\n const value = modifiersObj[modifierName];\n if (dayMatchesModifier(day, value)) {\n modifiers.push(modifierName);\n }\n return modifiers;\n }, []);\n}\n\nexport default { dayMatchesModifier, getModifiersForDay };\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Weekdays from './Weekdays';\nimport Day from './Day';\nimport { ENTER } from './keys';\n\nimport * as ModifiersUtils from './ModifiersUtils';\nimport * as Helpers from './Helpers';\nimport * as DateUtils from './DateUtils';\n\nexport default class Month extends Component {\n static propTypes = {\n classNames: PropTypes.shape({\n body: PropTypes.string.isRequired,\n month: PropTypes.string.isRequired,\n outside: PropTypes.string.isRequired,\n today: PropTypes.string.isRequired,\n week: PropTypes.string.isRequired,\n weekNumber: PropTypes.string.isRequired,\n disabled: PropTypes.string.isRequired,\n selected: PropTypes.string.isRequired,\n }).isRequired,\n tabIndex: PropTypes.number,\n\n month: PropTypes.instanceOf(Date).isRequired,\n months: PropTypes.arrayOf(PropTypes.string),\n\n modifiersStyles: PropTypes.object,\n\n showWeekDays: PropTypes.bool,\n showOutsideDays: PropTypes.bool,\n\n renderDay: PropTypes.func.isRequired,\n renderWeek: PropTypes.func.isRequired,\n\n captionElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(React.Component),\n ]).isRequired,\n weekdayElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(React.Component),\n ]),\n\n fixedWeeks: PropTypes.bool,\n showWeekNumbers: PropTypes.bool,\n\n locale: PropTypes.string.isRequired,\n localeUtils: PropTypes.object.isRequired,\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n firstDayOfWeek: PropTypes.number.isRequired,\n\n onCaptionClick: PropTypes.func,\n onDayClick: PropTypes.func,\n onDayFocus: PropTypes.func,\n onDayKeyDown: PropTypes.func,\n onDayMouseEnter: PropTypes.func,\n onDayMouseLeave: PropTypes.func,\n onDayMouseDown: PropTypes.func,\n onDayMouseUp: PropTypes.func,\n onDayTouchEnd: PropTypes.func,\n onDayTouchStart: PropTypes.func,\n onWeekClick: PropTypes.func,\n };\n\n renderDay = day => {\n const monthNumber = this.props.month.getMonth();\n const propModifiers = Helpers.getModifiersFromProps(this.props);\n const dayModifiers = ModifiersUtils.getModifiersForDay(day, propModifiers);\n if (\n DateUtils.isSameDay(day, new Date()) &&\n !Object.prototype.hasOwnProperty.call(\n propModifiers,\n this.props.classNames.today\n )\n ) {\n dayModifiers.push(this.props.classNames.today);\n }\n if (day.getMonth() !== monthNumber) {\n dayModifiers.push(this.props.classNames.outside);\n }\n\n const isOutside = day.getMonth() !== monthNumber;\n let tabIndex = -1;\n // Focus on the first day of the month\n if (this.props.onDayClick && !isOutside && day.getDate() === 1) {\n tabIndex = this.props.tabIndex; // eslint-disable-line prefer-destructuring\n }\n const key = `${day.getFullYear()}${day.getMonth()}${day.getDate()}`;\n const modifiers = {};\n dayModifiers.forEach(modifier => {\n modifiers[modifier] = true;\n });\n\n return (\n -1\n }\n ariaSelected={dayModifiers.indexOf(this.props.classNames.selected) > -1}\n onClick={this.props.onDayClick}\n onFocus={this.props.onDayFocus}\n onKeyDown={this.props.onDayKeyDown}\n onMouseEnter={this.props.onDayMouseEnter}\n onMouseLeave={this.props.onDayMouseLeave}\n onMouseDown={this.props.onDayMouseDown}\n onMouseUp={this.props.onDayMouseUp}\n onTouchEnd={this.props.onDayTouchEnd}\n onTouchStart={this.props.onDayTouchStart}\n >\n {this.props.renderDay(day, modifiers)}\n \n );\n };\n\n render() {\n const {\n classNames,\n\n month,\n months,\n\n fixedWeeks,\n captionElement,\n weekdayElement,\n\n locale,\n localeUtils,\n weekdaysLong,\n weekdaysShort,\n firstDayOfWeek,\n\n onCaptionClick,\n\n showWeekNumbers,\n showWeekDays,\n onWeekClick,\n } = this.props;\n\n const captionProps = {\n date: month,\n classNames,\n months,\n localeUtils,\n locale,\n onClick: onCaptionClick ? e => onCaptionClick(month, e) : undefined,\n };\n const caption = React.isValidElement(captionElement)\n ? React.cloneElement(captionElement, captionProps)\n : React.createElement(captionElement, captionProps);\n\n const weeks = Helpers.getWeekArray(month, firstDayOfWeek, fixedWeeks);\n return (\n
    \n {caption}\n {showWeekDays && (\n \n )}\n
    \n {weeks.map(week => {\n let weekNumber;\n if (showWeekNumbers) {\n weekNumber = DateUtils.getWeekNumber(week[6]);\n }\n return (\n \n {showWeekNumbers && (\n onWeekClick(weekNumber, week, e)\n : undefined\n }\n onKeyUp={\n onWeekClick\n ? e =>\n e.keyCode === ENTER &&\n onWeekClick(weekNumber, week, e)\n : undefined\n }\n >\n {this.props.renderWeek(weekNumber, week, month)}\n
    \n )}\n {week.map(this.renderDay)}\n
    \n );\n })}\n
    \n
    \n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport defaultClassNames from './classNames';\nimport { SPACE, ENTER } from './keys';\n\nexport default class Navbar extends Component {\n static propTypes = {\n classNames: PropTypes.shape({\n navBar: PropTypes.string.isRequired,\n navButtonPrev: PropTypes.string.isRequired,\n navButtonNext: PropTypes.string.isRequired,\n navButtonInteractionDisabled: PropTypes.string.isRequired,\n }),\n className: PropTypes.string,\n showPreviousButton: PropTypes.bool,\n showNextButton: PropTypes.bool,\n onPreviousClick: PropTypes.func,\n onNextClick: PropTypes.func,\n dir: PropTypes.string,\n labels: PropTypes.shape({\n previousMonth: PropTypes.string.isRequired,\n nextMonth: PropTypes.string.isRequired,\n }),\n };\n\n static defaultProps = {\n classNames: defaultClassNames,\n dir: 'ltr',\n labels: {\n previousMonth: 'Previous Month',\n nextMonth: 'Next Month',\n },\n showPreviousButton: true,\n showNextButton: true,\n };\n\n shouldComponentUpdate(nextProps) {\n return (\n nextProps.labels !== this.props.labels ||\n nextProps.dir !== this.props.dir ||\n this.props.showPreviousButton !== nextProps.showPreviousButton ||\n this.props.showNextButton !== nextProps.showNextButton\n );\n }\n\n handleNextClick = () => {\n if (this.props.onNextClick) {\n this.props.onNextClick();\n }\n };\n\n handlePreviousClick = () => {\n if (this.props.onPreviousClick) {\n this.props.onPreviousClick();\n }\n };\n\n handleNextKeyDown = e => {\n if (e.keyCode !== ENTER && e.keyCode !== SPACE) {\n return;\n }\n e.preventDefault();\n this.handleNextClick();\n };\n\n handlePreviousKeyDown = e => {\n if (e.keyCode !== ENTER && e.keyCode !== SPACE) {\n return;\n }\n e.preventDefault();\n this.handlePreviousClick();\n };\n\n render() {\n const {\n classNames,\n className,\n showPreviousButton,\n showNextButton,\n labels,\n dir,\n } = this.props;\n\n let previousClickHandler;\n let nextClickHandler;\n let previousKeyDownHandler;\n let nextKeyDownHandler;\n let shouldShowPrevious;\n let shouldShowNext;\n\n if (dir === 'rtl') {\n previousClickHandler = this.handleNextClick;\n nextClickHandler = this.handlePreviousClick;\n previousKeyDownHandler = this.handleNextKeyDown;\n nextKeyDownHandler = this.handlePreviousKeyDown;\n shouldShowNext = showPreviousButton;\n shouldShowPrevious = showNextButton;\n } else {\n previousClickHandler = this.handlePreviousClick;\n nextClickHandler = this.handleNextClick;\n previousKeyDownHandler = this.handlePreviousKeyDown;\n nextKeyDownHandler = this.handleNextKeyDown;\n shouldShowNext = showNextButton;\n shouldShowPrevious = showPreviousButton;\n }\n\n const previousClassName = shouldShowPrevious\n ? classNames.navButtonPrev\n : `${classNames.navButtonPrev} ${classNames.navButtonInteractionDisabled}`;\n\n const nextClassName = shouldShowNext\n ? classNames.navButtonNext\n : `${classNames.navButtonNext} ${classNames.navButtonInteractionDisabled}`;\n\n const previousButton = (\n \n );\n\n const nextButton = (\n \n );\n\n return (\n
    \n {dir === 'rtl'\n ? [nextButton, previousButton]\n : [previousButton, nextButton]}\n
    \n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class Weekday extends Component {\n static propTypes = {\n weekday: PropTypes.number,\n className: PropTypes.string,\n locale: PropTypes.string,\n localeUtils: PropTypes.object,\n\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n };\n\n shouldComponentUpdate(nextProps) {\n return this.props !== nextProps;\n }\n\n render() {\n const {\n weekday,\n className,\n weekdaysLong,\n weekdaysShort,\n localeUtils,\n locale,\n } = this.props;\n let title;\n if (weekdaysLong) {\n title = weekdaysLong[weekday];\n } else {\n title = localeUtils.formatWeekdayLong(weekday, locale);\n }\n let content;\n if (weekdaysShort) {\n content = weekdaysShort[weekday];\n } else {\n content = localeUtils.formatWeekdayShort(weekday, locale);\n }\n\n return (\n
    \n {content}\n
    \n );\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class Weekdays extends Component {\n static propTypes = {\n classNames: PropTypes.shape({\n weekday: PropTypes.string.isRequired,\n weekdays: PropTypes.string.isRequired,\n weekdaysRow: PropTypes.string.isRequired,\n }).isRequired,\n\n firstDayOfWeek: PropTypes.number.isRequired,\n weekdaysLong: PropTypes.arrayOf(PropTypes.string),\n weekdaysShort: PropTypes.arrayOf(PropTypes.string),\n showWeekNumbers: PropTypes.bool,\n locale: PropTypes.string.isRequired,\n localeUtils: PropTypes.object.isRequired,\n weekdayElement: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.func,\n PropTypes.instanceOf(React.Component),\n ]),\n };\n\n shouldComponentUpdate(nextProps) {\n return this.props !== nextProps;\n }\n\n render() {\n const {\n classNames,\n firstDayOfWeek,\n showWeekNumbers,\n weekdaysLong,\n weekdaysShort,\n locale,\n localeUtils,\n weekdayElement,\n } = this.props;\n const days = [];\n for (let i = 0; i < 7; i += 1) {\n const weekday = (i + firstDayOfWeek) % 7;\n const elementProps = {\n key: i,\n className: classNames.weekday,\n weekday,\n weekdaysLong,\n weekdaysShort,\n localeUtils,\n locale,\n };\n const element = React.isValidElement(weekdayElement)\n ? React.cloneElement(weekdayElement, elementProps)\n : React.createElement(weekdayElement, elementProps);\n days.push(element);\n }\n\n return (\n
    \n
    \n {showWeekNumbers &&
    }\n {days}\n
    \n
    \n );\n }\n}\n","// Proxy object to map classnames when css modules are not used\n\nexport default {\n container: 'DayPicker',\n wrapper: 'DayPicker-wrapper',\n interactionDisabled: 'DayPicker--interactionDisabled',\n months: 'DayPicker-Months',\n month: 'DayPicker-Month',\n\n navBar: 'DayPicker-NavBar',\n navButtonPrev: 'DayPicker-NavButton DayPicker-NavButton--prev',\n navButtonNext: 'DayPicker-NavButton DayPicker-NavButton--next',\n navButtonInteractionDisabled: 'DayPicker-NavButton--interactionDisabled',\n\n caption: 'DayPicker-Caption',\n weekdays: 'DayPicker-Weekdays',\n weekdaysRow: 'DayPicker-WeekdaysRow',\n weekday: 'DayPicker-Weekday',\n body: 'DayPicker-Body',\n week: 'DayPicker-Week',\n weekNumber: 'DayPicker-WeekNumber',\n day: 'DayPicker-Day',\n footer: 'DayPicker-Footer',\n todayButton: 'DayPicker-TodayButton',\n\n // default modifiers\n today: 'today',\n selected: 'selected',\n disabled: 'disabled',\n outside: 'outside',\n};\n","export { default } from './DayPicker';\nexport { default as DateUtils } from './DateUtils';\nexport { default as LocaleUtils } from './LocaleUtils';\nexport { default as ModifiersUtils } from './ModifiersUtils';\n","export const LEFT = 37;\nexport const UP = 38;\nexport const RIGHT = 39;\nexport const DOWN = 40;\nexport const ENTER = 13;\nexport const SPACE = 32;\nexport const ESC = 27;\nexport const TAB = 9;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({ value: _this2.getValue() });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n var observedBits = this.props.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n\n\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar Log = _interopRequireWildcard(require(\"./util/logging.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n// From: http://hg.mozilla.org/mozilla-central/raw-file/ec10630b1a54/js/src/devtools/jint/sunspider/string-base64.js\nvar _default = {\n /* Convert data (an array of integers) to a Base64 string. */\n toBase64Table: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='.split(''),\n base64Pad: '=',\n encode: function encode(data) {\n \"use strict\";\n\n var result = '';\n var length = data.length;\n var lengthpad = length % 3; // Convert every three bytes to 4 ascii characters.\n\n for (var i = 0; i < length - 2; i += 3) {\n result += this.toBase64Table[data[i] >> 2];\n result += this.toBase64Table[((data[i] & 0x03) << 4) + (data[i + 1] >> 4)];\n result += this.toBase64Table[((data[i + 1] & 0x0f) << 2) + (data[i + 2] >> 6)];\n result += this.toBase64Table[data[i + 2] & 0x3f];\n } // Convert the remaining 1 or 2 bytes, pad out to 4 characters.\n\n\n var j = length - lengthpad;\n\n if (lengthpad === 2) {\n result += this.toBase64Table[data[j] >> 2];\n result += this.toBase64Table[((data[j] & 0x03) << 4) + (data[j + 1] >> 4)];\n result += this.toBase64Table[(data[j + 1] & 0x0f) << 2];\n result += this.toBase64Table[64];\n } else if (lengthpad === 1) {\n result += this.toBase64Table[data[j] >> 2];\n result += this.toBase64Table[(data[j] & 0x03) << 4];\n result += this.toBase64Table[64];\n result += this.toBase64Table[64];\n }\n\n return result;\n },\n\n /* Convert Base64 data to a string */\n\n /* eslint-disable comma-spacing */\n toBinaryTable: [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, 0, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1],\n\n /* eslint-enable comma-spacing */\n decode: function decode(data) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var dataLength = data.indexOf('=') - offset;\n\n if (dataLength < 0) {\n dataLength = data.length - offset;\n }\n /* Every four characters is 3 resulting numbers */\n\n\n var resultLength = (dataLength >> 2) * 3 + Math.floor(dataLength % 4 / 1.5);\n var result = new Array(resultLength); // Convert one by one.\n\n var leftbits = 0; // number of bits decoded, but yet to be appended\n\n var leftdata = 0; // bits decoded, but yet to be appended\n\n for (var idx = 0, i = offset; i < data.length; i++) {\n var c = this.toBinaryTable[data.charCodeAt(i) & 0x7f];\n var padding = data.charAt(i) === this.base64Pad; // Skip illegal characters and whitespace\n\n if (c === -1) {\n Log.Error(\"Illegal character code \" + data.charCodeAt(i) + \" at position \" + i);\n continue;\n } // Collect data into leftdata, update bitcount\n\n\n leftdata = leftdata << 6 | c;\n leftbits += 6; // If we have 8 or more bits, append 8 bits to the result\n\n if (leftbits >= 8) {\n leftbits -= 8; // Append if not padding.\n\n if (!padding) {\n result[idx++] = leftdata >> leftbits & 0xff;\n }\n\n leftdata &= (1 << leftbits) - 1;\n }\n } // If there are any bits left, the base64 string was corrupted\n\n\n if (leftbits) {\n var err = new Error('Corrupted base64 string');\n err.name = 'Base64-Error';\n throw err;\n }\n\n return result;\n }\n};\n/* End of Base64 namespace */\n\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\nvar CopyRectDecoder = /*#__PURE__*/function () {\n function CopyRectDecoder() {\n _classCallCheck(this, CopyRectDecoder);\n }\n\n _createClass(CopyRectDecoder, [{\n key: \"decodeRect\",\n value: function decodeRect(x, y, width, height, sock, display, depth) {\n if (sock.rQwait(\"COPYRECT\", 4)) {\n return false;\n }\n\n var deltaX = sock.rQshift16();\n var deltaY = sock.rQshift16();\n\n if (width === 0 || height === 0) {\n return true;\n }\n\n display.copyImage(deltaX, deltaY, x, y, width, height);\n return true;\n }\n }]);\n\n return CopyRectDecoder;\n}();\n\nexports[\"default\"] = CopyRectDecoder;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar Log = _interopRequireWildcard(require(\"../util/logging.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar HextileDecoder = /*#__PURE__*/function () {\n function HextileDecoder() {\n _classCallCheck(this, HextileDecoder);\n\n this._tiles = 0;\n this._lastsubencoding = 0;\n this._tileBuffer = new Uint8Array(16 * 16 * 4);\n }\n\n _createClass(HextileDecoder, [{\n key: \"decodeRect\",\n value: function decodeRect(x, y, width, height, sock, display, depth) {\n if (this._tiles === 0) {\n this._tilesX = Math.ceil(width / 16);\n this._tilesY = Math.ceil(height / 16);\n this._totalTiles = this._tilesX * this._tilesY;\n this._tiles = this._totalTiles;\n }\n\n while (this._tiles > 0) {\n var bytes = 1;\n\n if (sock.rQwait(\"HEXTILE\", bytes)) {\n return false;\n }\n\n var rQ = sock.rQ;\n var rQi = sock.rQi;\n var subencoding = rQ[rQi]; // Peek\n\n if (subencoding > 30) {\n // Raw\n throw new Error(\"Illegal hextile subencoding (subencoding: \" + subencoding + \")\");\n }\n\n var currTile = this._totalTiles - this._tiles;\n var tileX = currTile % this._tilesX;\n var tileY = Math.floor(currTile / this._tilesX);\n var tx = x + tileX * 16;\n var ty = y + tileY * 16;\n var tw = Math.min(16, x + width - tx);\n var th = Math.min(16, y + height - ty); // Figure out how much we are expecting\n\n if (subencoding & 0x01) {\n // Raw\n bytes += tw * th * 4;\n } else {\n if (subencoding & 0x02) {\n // Background\n bytes += 4;\n }\n\n if (subencoding & 0x04) {\n // Foreground\n bytes += 4;\n }\n\n if (subencoding & 0x08) {\n // AnySubrects\n bytes++; // Since we aren't shifting it off\n\n if (sock.rQwait(\"HEXTILE\", bytes)) {\n return false;\n }\n\n var subrects = rQ[rQi + bytes - 1]; // Peek\n\n if (subencoding & 0x10) {\n // SubrectsColoured\n bytes += subrects * (4 + 2);\n } else {\n bytes += subrects * 2;\n }\n }\n }\n\n if (sock.rQwait(\"HEXTILE\", bytes)) {\n return false;\n } // We know the encoding and have a whole tile\n\n\n rQi++;\n\n if (subencoding === 0) {\n if (this._lastsubencoding & 0x01) {\n // Weird: ignore blanks are RAW\n Log.Debug(\" Ignoring blank after RAW\");\n } else {\n display.fillRect(tx, ty, tw, th, this._background);\n }\n } else if (subencoding & 0x01) {\n // Raw\n var pixels = tw * th; // Max sure the image is fully opaque\n\n for (var i = 0; i < pixels; i++) {\n rQ[rQi + i * 4 + 3] = 255;\n }\n\n display.blitImage(tx, ty, tw, th, rQ, rQi);\n rQi += bytes - 1;\n } else {\n if (subencoding & 0x02) {\n // Background\n this._background = [rQ[rQi], rQ[rQi + 1], rQ[rQi + 2], rQ[rQi + 3]];\n rQi += 4;\n }\n\n if (subencoding & 0x04) {\n // Foreground\n this._foreground = [rQ[rQi], rQ[rQi + 1], rQ[rQi + 2], rQ[rQi + 3]];\n rQi += 4;\n }\n\n this._startTile(tx, ty, tw, th, this._background);\n\n if (subencoding & 0x08) {\n // AnySubrects\n var _subrects = rQ[rQi];\n rQi++;\n\n for (var s = 0; s < _subrects; s++) {\n var color = void 0;\n\n if (subencoding & 0x10) {\n // SubrectsColoured\n color = [rQ[rQi], rQ[rQi + 1], rQ[rQi + 2], rQ[rQi + 3]];\n rQi += 4;\n } else {\n color = this._foreground;\n }\n\n var xy = rQ[rQi];\n rQi++;\n var sx = xy >> 4;\n var sy = xy & 0x0f;\n var wh = rQ[rQi];\n rQi++;\n var sw = (wh >> 4) + 1;\n var sh = (wh & 0x0f) + 1;\n\n this._subTile(sx, sy, sw, sh, color);\n }\n }\n\n this._finishTile(display);\n }\n\n sock.rQi = rQi;\n this._lastsubencoding = subencoding;\n this._tiles--;\n }\n\n return true;\n } // start updating a tile\n\n }, {\n key: \"_startTile\",\n value: function _startTile(x, y, width, height, color) {\n this._tileX = x;\n this._tileY = y;\n this._tileW = width;\n this._tileH = height;\n var red = color[0];\n var green = color[1];\n var blue = color[2];\n var data = this._tileBuffer;\n\n for (var i = 0; i < width * height * 4; i += 4) {\n data[i] = red;\n data[i + 1] = green;\n data[i + 2] = blue;\n data[i + 3] = 255;\n }\n } // update sub-rectangle of the current tile\n\n }, {\n key: \"_subTile\",\n value: function _subTile(x, y, w, h, color) {\n var red = color[0];\n var green = color[1];\n var blue = color[2];\n var xend = x + w;\n var yend = y + h;\n var data = this._tileBuffer;\n var width = this._tileW;\n\n for (var j = y; j < yend; j++) {\n for (var i = x; i < xend; i++) {\n var p = (i + j * width) * 4;\n data[p] = red;\n data[p + 1] = green;\n data[p + 2] = blue;\n data[p + 3] = 255;\n }\n }\n } // draw the current tile to the screen\n\n }, {\n key: \"_finishTile\",\n value: function _finishTile(display) {\n display.blitImage(this._tileX, this._tileY, this._tileW, this._tileH, this._tileBuffer, 0);\n }\n }]);\n\n return HextileDecoder;\n}();\n\nexports[\"default\"] = HextileDecoder;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\nvar RawDecoder = /*#__PURE__*/function () {\n function RawDecoder() {\n _classCallCheck(this, RawDecoder);\n\n this._lines = 0;\n }\n\n _createClass(RawDecoder, [{\n key: \"decodeRect\",\n value: function decodeRect(x, y, width, height, sock, display, depth) {\n if (width === 0 || height === 0) {\n return true;\n }\n\n if (this._lines === 0) {\n this._lines = height;\n }\n\n var pixelSize = depth == 8 ? 1 : 4;\n var bytesPerLine = width * pixelSize;\n\n if (sock.rQwait(\"RAW\", bytesPerLine)) {\n return false;\n }\n\n var curY = y + (height - this._lines);\n var currHeight = Math.min(this._lines, Math.floor(sock.rQlen / bytesPerLine));\n var pixels = width * currHeight;\n var data = sock.rQ;\n var index = sock.rQi; // Convert data if needed\n\n if (depth == 8) {\n var newdata = new Uint8Array(pixels * 4);\n\n for (var i = 0; i < pixels; i++) {\n newdata[i * 4 + 0] = (data[index + i] >> 0 & 0x3) * 255 / 3;\n newdata[i * 4 + 1] = (data[index + i] >> 2 & 0x3) * 255 / 3;\n newdata[i * 4 + 2] = (data[index + i] >> 4 & 0x3) * 255 / 3;\n newdata[i * 4 + 3] = 255;\n }\n\n data = newdata;\n index = 0;\n } // Max sure the image is fully opaque\n\n\n for (var _i = 0; _i < pixels; _i++) {\n data[_i * 4 + 3] = 255;\n }\n\n display.blitImage(x, curY, width, currHeight, data, index);\n sock.rQskipBytes(currHeight * bytesPerLine);\n this._lines -= currHeight;\n\n if (this._lines > 0) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return RawDecoder;\n}();\n\nexports[\"default\"] = RawDecoder;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\nvar RREDecoder = /*#__PURE__*/function () {\n function RREDecoder() {\n _classCallCheck(this, RREDecoder);\n\n this._subrects = 0;\n }\n\n _createClass(RREDecoder, [{\n key: \"decodeRect\",\n value: function decodeRect(x, y, width, height, sock, display, depth) {\n if (this._subrects === 0) {\n if (sock.rQwait(\"RRE\", 4 + 4)) {\n return false;\n }\n\n this._subrects = sock.rQshift32();\n var color = sock.rQshiftBytes(4); // Background\n\n display.fillRect(x, y, width, height, color);\n }\n\n while (this._subrects > 0) {\n if (sock.rQwait(\"RRE\", 4 + 8)) {\n return false;\n }\n\n var _color = sock.rQshiftBytes(4);\n\n var sx = sock.rQshift16();\n var sy = sock.rQshift16();\n var swidth = sock.rQshift16();\n var sheight = sock.rQshift16();\n display.fillRect(x + sx, y + sy, swidth, sheight, _color);\n this._subrects--;\n }\n\n return true;\n }\n }]);\n\n return RREDecoder;\n}();\n\nexports[\"default\"] = RREDecoder;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar Log = _interopRequireWildcard(require(\"../util/logging.js\"));\n\nvar _inflator = _interopRequireDefault(require(\"../inflator.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar TightDecoder = /*#__PURE__*/function () {\n function TightDecoder() {\n _classCallCheck(this, TightDecoder);\n\n this._ctl = null;\n this._filter = null;\n this._numColors = 0;\n this._palette = new Uint8Array(1024); // 256 * 4 (max palette size * max bytes-per-pixel)\n\n this._len = 0;\n this._zlibs = [];\n\n for (var i = 0; i < 4; i++) {\n this._zlibs[i] = new _inflator[\"default\"]();\n }\n }\n\n _createClass(TightDecoder, [{\n key: \"decodeRect\",\n value: function decodeRect(x, y, width, height, sock, display, depth) {\n if (this._ctl === null) {\n if (sock.rQwait(\"TIGHT compression-control\", 1)) {\n return false;\n }\n\n this._ctl = sock.rQshift8(); // Reset streams if the server requests it\n\n for (var i = 0; i < 4; i++) {\n if (this._ctl >> i & 1) {\n this._zlibs[i].reset();\n\n Log.Info(\"Reset zlib stream \" + i);\n }\n } // Figure out filter\n\n\n this._ctl = this._ctl >> 4;\n }\n\n var ret;\n\n if (this._ctl === 0x08) {\n ret = this._fillRect(x, y, width, height, sock, display, depth);\n } else if (this._ctl === 0x09) {\n ret = this._jpegRect(x, y, width, height, sock, display, depth);\n } else if (this._ctl === 0x0A) {\n ret = this._pngRect(x, y, width, height, sock, display, depth);\n } else if ((this._ctl & 0x08) == 0) {\n ret = this._basicRect(this._ctl, x, y, width, height, sock, display, depth);\n } else {\n throw new Error(\"Illegal tight compression received (ctl: \" + this._ctl + \")\");\n }\n\n if (ret) {\n this._ctl = null;\n }\n\n return ret;\n }\n }, {\n key: \"_fillRect\",\n value: function _fillRect(x, y, width, height, sock, display, depth) {\n if (sock.rQwait(\"TIGHT\", 3)) {\n return false;\n }\n\n var rQi = sock.rQi;\n var rQ = sock.rQ;\n display.fillRect(x, y, width, height, [rQ[rQi], rQ[rQi + 1], rQ[rQi + 2]], false);\n sock.rQskipBytes(3);\n return true;\n }\n }, {\n key: \"_jpegRect\",\n value: function _jpegRect(x, y, width, height, sock, display, depth) {\n var data = this._readData(sock);\n\n if (data === null) {\n return false;\n }\n\n display.imageRect(x, y, width, height, \"image/jpeg\", data);\n return true;\n }\n }, {\n key: \"_pngRect\",\n value: function _pngRect(x, y, width, height, sock, display, depth) {\n throw new Error(\"PNG received in standard Tight rect\");\n }\n }, {\n key: \"_basicRect\",\n value: function _basicRect(ctl, x, y, width, height, sock, display, depth) {\n if (this._filter === null) {\n if (ctl & 0x4) {\n if (sock.rQwait(\"TIGHT\", 1)) {\n return false;\n }\n\n this._filter = sock.rQshift8();\n } else {\n // Implicit CopyFilter\n this._filter = 0;\n }\n }\n\n var streamId = ctl & 0x3;\n var ret;\n\n switch (this._filter) {\n case 0:\n // CopyFilter\n ret = this._copyFilter(streamId, x, y, width, height, sock, display, depth);\n break;\n\n case 1:\n // PaletteFilter\n ret = this._paletteFilter(streamId, x, y, width, height, sock, display, depth);\n break;\n\n case 2:\n // GradientFilter\n ret = this._gradientFilter(streamId, x, y, width, height, sock, display, depth);\n break;\n\n default:\n throw new Error(\"Illegal tight filter received (ctl: \" + this._filter + \")\");\n }\n\n if (ret) {\n this._filter = null;\n }\n\n return ret;\n }\n }, {\n key: \"_copyFilter\",\n value: function _copyFilter(streamId, x, y, width, height, sock, display, depth) {\n var uncompressedSize = width * height * 3;\n var data;\n\n if (uncompressedSize === 0) {\n return true;\n }\n\n if (uncompressedSize < 12) {\n if (sock.rQwait(\"TIGHT\", uncompressedSize)) {\n return false;\n }\n\n data = sock.rQshiftBytes(uncompressedSize);\n } else {\n data = this._readData(sock);\n\n if (data === null) {\n return false;\n }\n\n this._zlibs[streamId].setInput(data);\n\n data = this._zlibs[streamId].inflate(uncompressedSize);\n\n this._zlibs[streamId].setInput(null);\n }\n\n var rgbx = new Uint8Array(width * height * 4);\n\n for (var i = 0, j = 0; i < width * height * 4; i += 4, j += 3) {\n rgbx[i] = data[j];\n rgbx[i + 1] = data[j + 1];\n rgbx[i + 2] = data[j + 2];\n rgbx[i + 3] = 255; // Alpha\n }\n\n display.blitImage(x, y, width, height, rgbx, 0, false);\n return true;\n }\n }, {\n key: \"_paletteFilter\",\n value: function _paletteFilter(streamId, x, y, width, height, sock, display, depth) {\n if (this._numColors === 0) {\n if (sock.rQwait(\"TIGHT palette\", 1)) {\n return false;\n }\n\n var numColors = sock.rQpeek8() + 1;\n var paletteSize = numColors * 3;\n\n if (sock.rQwait(\"TIGHT palette\", 1 + paletteSize)) {\n return false;\n }\n\n this._numColors = numColors;\n sock.rQskipBytes(1);\n sock.rQshiftTo(this._palette, paletteSize);\n }\n\n var bpp = this._numColors <= 2 ? 1 : 8;\n var rowSize = Math.floor((width * bpp + 7) / 8);\n var uncompressedSize = rowSize * height;\n var data;\n\n if (uncompressedSize === 0) {\n return true;\n }\n\n if (uncompressedSize < 12) {\n if (sock.rQwait(\"TIGHT\", uncompressedSize)) {\n return false;\n }\n\n data = sock.rQshiftBytes(uncompressedSize);\n } else {\n data = this._readData(sock);\n\n if (data === null) {\n return false;\n }\n\n this._zlibs[streamId].setInput(data);\n\n data = this._zlibs[streamId].inflate(uncompressedSize);\n\n this._zlibs[streamId].setInput(null);\n } // Convert indexed (palette based) image data to RGB\n\n\n if (this._numColors == 2) {\n this._monoRect(x, y, width, height, data, this._palette, display);\n } else {\n this._paletteRect(x, y, width, height, data, this._palette, display);\n }\n\n this._numColors = 0;\n return true;\n }\n }, {\n key: \"_monoRect\",\n value: function _monoRect(x, y, width, height, data, palette, display) {\n // Convert indexed (palette based) image data to RGB\n // TODO: reduce number of calculations inside loop\n var dest = this._getScratchBuffer(width * height * 4);\n\n var w = Math.floor((width + 7) / 8);\n var w1 = Math.floor(width / 8);\n\n for (var _y = 0; _y < height; _y++) {\n var dp = void 0,\n sp = void 0,\n _x = void 0;\n\n for (_x = 0; _x < w1; _x++) {\n for (var b = 7; b >= 0; b--) {\n dp = (_y * width + _x * 8 + 7 - b) * 4;\n sp = (data[_y * w + _x] >> b & 1) * 3;\n dest[dp] = palette[sp];\n dest[dp + 1] = palette[sp + 1];\n dest[dp + 2] = palette[sp + 2];\n dest[dp + 3] = 255;\n }\n }\n\n for (var _b = 7; _b >= 8 - width % 8; _b--) {\n dp = (_y * width + _x * 8 + 7 - _b) * 4;\n sp = (data[_y * w + _x] >> _b & 1) * 3;\n dest[dp] = palette[sp];\n dest[dp + 1] = palette[sp + 1];\n dest[dp + 2] = palette[sp + 2];\n dest[dp + 3] = 255;\n }\n }\n\n display.blitImage(x, y, width, height, dest, 0, false);\n }\n }, {\n key: \"_paletteRect\",\n value: function _paletteRect(x, y, width, height, data, palette, display) {\n // Convert indexed (palette based) image data to RGB\n var dest = this._getScratchBuffer(width * height * 4);\n\n var total = width * height * 4;\n\n for (var i = 0, j = 0; i < total; i += 4, j++) {\n var sp = data[j] * 3;\n dest[i] = palette[sp];\n dest[i + 1] = palette[sp + 1];\n dest[i + 2] = palette[sp + 2];\n dest[i + 3] = 255;\n }\n\n display.blitImage(x, y, width, height, dest, 0, false);\n }\n }, {\n key: \"_gradientFilter\",\n value: function _gradientFilter(streamId, x, y, width, height, sock, display, depth) {\n throw new Error(\"Gradient filter not implemented\");\n }\n }, {\n key: \"_readData\",\n value: function _readData(sock) {\n if (this._len === 0) {\n if (sock.rQwait(\"TIGHT\", 3)) {\n return null;\n }\n\n var _byte;\n\n _byte = sock.rQshift8();\n this._len = _byte & 0x7f;\n\n if (_byte & 0x80) {\n _byte = sock.rQshift8();\n this._len |= (_byte & 0x7f) << 7;\n\n if (_byte & 0x80) {\n _byte = sock.rQshift8();\n this._len |= _byte << 14;\n }\n }\n }\n\n if (sock.rQwait(\"TIGHT\", this._len)) {\n return null;\n }\n\n var data = sock.rQshiftBytes(this._len);\n this._len = 0;\n return data;\n }\n }, {\n key: \"_getScratchBuffer\",\n value: function _getScratchBuffer(size) {\n if (!this._scratchBuffer || this._scratchBuffer.length < size) {\n this._scratchBuffer = new Uint8Array(size);\n }\n\n return this._scratchBuffer;\n }\n }]);\n\n return TightDecoder;\n}();\n\nexports[\"default\"] = TightDecoder;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _tight = _interopRequireDefault(require(\"./tight.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar TightPNGDecoder = /*#__PURE__*/function (_TightDecoder) {\n _inherits(TightPNGDecoder, _TightDecoder);\n\n var _super = _createSuper(TightPNGDecoder);\n\n function TightPNGDecoder() {\n _classCallCheck(this, TightPNGDecoder);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(TightPNGDecoder, [{\n key: \"_pngRect\",\n value: function _pngRect(x, y, width, height, sock, display, depth) {\n var data = this._readData(sock);\n\n if (data === null) {\n return false;\n }\n\n display.imageRect(x, y, width, height, \"image/png\", data);\n return true;\n }\n }, {\n key: \"_basicRect\",\n value: function _basicRect(ctl, x, y, width, height, sock, display, depth) {\n throw new Error(\"BasicCompression received in TightPNG rect\");\n }\n }]);\n\n return TightPNGDecoder;\n}(_tight[\"default\"]);\n\nexports[\"default\"] = TightPNGDecoder;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _deflate2 = require(\"../lib/vendor/pako/lib/zlib/deflate.js\");\n\nvar _zstream = _interopRequireDefault(require(\"../lib/vendor/pako/lib/zlib/zstream.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Deflator = /*#__PURE__*/function () {\n function Deflator() {\n _classCallCheck(this, Deflator);\n\n this.strm = new _zstream[\"default\"]();\n this.chunkSize = 1024 * 10 * 10;\n this.outputBuffer = new Uint8Array(this.chunkSize);\n this.windowBits = 5;\n (0, _deflate2.deflateInit)(this.strm, this.windowBits);\n }\n\n _createClass(Deflator, [{\n key: \"deflate\",\n value: function deflate(inData) {\n /* eslint-disable camelcase */\n this.strm.input = inData;\n this.strm.avail_in = this.strm.input.length;\n this.strm.next_in = 0;\n this.strm.output = this.outputBuffer;\n this.strm.avail_out = this.chunkSize;\n this.strm.next_out = 0;\n /* eslint-enable camelcase */\n\n var lastRet = (0, _deflate2.deflate)(this.strm, _deflate2.Z_FULL_FLUSH);\n var outData = new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);\n\n if (lastRet < 0) {\n throw new Error(\"zlib deflate failed\");\n }\n\n if (this.strm.avail_in > 0) {\n // Read chunks until done\n var chunks = [outData];\n var totalLen = outData.length;\n\n do {\n /* eslint-disable camelcase */\n this.strm.output = new Uint8Array(this.chunkSize);\n this.strm.next_out = 0;\n this.strm.avail_out = this.chunkSize;\n /* eslint-enable camelcase */\n\n lastRet = (0, _deflate2.deflate)(this.strm, _deflate2.Z_FULL_FLUSH);\n\n if (lastRet < 0) {\n throw new Error(\"zlib deflate failed\");\n }\n\n var chunk = new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);\n totalLen += chunk.length;\n chunks.push(chunk);\n } while (this.strm.avail_in > 0); // Combine chunks into a single data\n\n\n var newData = new Uint8Array(totalLen);\n var offset = 0;\n\n for (var i = 0; i < chunks.length; i++) {\n newData.set(chunks[i], offset);\n offset += chunks[i].length;\n }\n\n outData = newData;\n }\n /* eslint-disable camelcase */\n\n\n this.strm.input = null;\n this.strm.avail_in = 0;\n this.strm.next_in = 0;\n /* eslint-enable camelcase */\n\n return outData;\n }\n }]);\n\n return Deflator;\n}();\n\nexports[\"default\"] = Deflator;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * Ported from Flashlight VNC ActionScript implementation:\n * http://www.wizhelp.com/flashlight-vnc/\n *\n * Full attribution follows:\n *\n * -------------------------------------------------------------------------\n *\n * This DES class has been extracted from package Acme.Crypto for use in VNC.\n * The unnecessary odd parity code has been removed.\n *\n * These changes are:\n * Copyright (C) 1999 AT&T Laboratories Cambridge. All Rights Reserved.\n *\n * This software is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n *\n\n * DesCipher - the DES encryption method\n *\n * The meat of this code is by Dave Zimmerman , and is:\n *\n * Copyright (c) 1996 Widget Workshop, Inc. All Rights Reserved.\n *\n * Permission to use, copy, modify, and distribute this software\n * and its documentation for NON-COMMERCIAL or COMMERCIAL purposes and\n * without fee is hereby granted, provided that this copyright notice is kept\n * intact.\n *\n * WIDGET WORKSHOP MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY\n * OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED\n * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. WIDGET WORKSHOP SHALL NOT BE LIABLE\n * FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR\n * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.\n *\n * THIS SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE OR RESALE AS ON-LINE\n * CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE\n * PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT\n * NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT LIFE\n * SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE\n * SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE\n * PHYSICAL OR ENVIRONMENTAL DAMAGE (\"HIGH RISK ACTIVITIES\"). WIDGET WORKSHOP\n * SPECIFICALLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR\n * HIGH RISK ACTIVITIES.\n *\n *\n * The rest is:\n *\n * Copyright (C) 1996 by Jef Poskanzer . All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n *\n * Visit the ACME Labs Java page for up-to-date versions of this and other\n * fine Java utilities: http://www.acme.com/java/\n */\n\n/* eslint-disable comma-spacing */\n// Tables, permutations, S-boxes, etc.\nvar PC2 = [13, 16, 10, 23, 0, 4, 2, 27, 14, 5, 20, 9, 22, 18, 11, 3, 25, 7, 15, 6, 26, 19, 12, 1, 40, 51, 30, 36, 46, 54, 29, 39, 50, 44, 32, 47, 43, 48, 38, 55, 33, 52, 45, 41, 49, 35, 28, 31],\n totrot = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\nvar z = 0x0;\nvar a, b, c, d, e, f;\na = 1 << 16;\nb = 1 << 24;\nc = a | b;\nd = 1 << 2;\ne = 1 << 10;\nf = d | e;\nvar SP1 = [c | e, z | z, a | z, c | f, c | d, a | f, z | d, a | z, z | e, c | e, c | f, z | e, b | f, c | d, b | z, z | d, z | f, b | e, b | e, a | e, a | e, c | z, c | z, b | f, a | d, b | d, b | d, a | d, z | z, z | f, a | f, b | z, a | z, c | f, z | d, c | z, c | e, b | z, b | z, z | e, c | d, a | z, a | e, b | d, z | e, z | d, b | f, a | f, c | f, a | d, c | z, b | f, b | d, z | f, a | f, c | e, z | f, b | e, b | e, z | z, a | d, a | e, z | z, c | d];\na = 1 << 20;\nb = 1 << 31;\nc = a | b;\nd = 1 << 5;\ne = 1 << 15;\nf = d | e;\nvar SP2 = [c | f, b | e, z | e, a | f, a | z, z | d, c | d, b | f, b | d, c | f, c | e, b | z, b | e, a | z, z | d, c | d, a | e, a | d, b | f, z | z, b | z, z | e, a | f, c | z, a | d, b | d, z | z, a | e, z | f, c | e, c | z, z | f, z | z, a | f, c | d, a | z, b | f, c | z, c | e, z | e, c | z, b | e, z | d, c | f, a | f, z | d, z | e, b | z, z | f, c | e, a | z, b | d, a | d, b | f, b | d, a | d, a | e, z | z, b | e, z | f, b | z, c | d, c | f, a | e];\na = 1 << 17;\nb = 1 << 27;\nc = a | b;\nd = 1 << 3;\ne = 1 << 9;\nf = d | e;\nvar SP3 = [z | f, c | e, z | z, c | d, b | e, z | z, a | f, b | e, a | d, b | d, b | d, a | z, c | f, a | d, c | z, z | f, b | z, z | d, c | e, z | e, a | e, c | z, c | d, a | f, b | f, a | e, a | z, b | f, z | d, c | f, z | e, b | z, c | e, b | z, a | d, z | f, a | z, c | e, b | e, z | z, z | e, a | d, c | f, b | e, b | d, z | e, z | z, c | d, b | f, a | z, b | z, c | f, z | d, a | f, a | e, b | d, c | z, b | f, z | f, c | z, a | f, z | d, c | d, a | e];\na = 1 << 13;\nb = 1 << 23;\nc = a | b;\nd = 1 << 0;\ne = 1 << 7;\nf = d | e;\nvar SP4 = [c | d, a | f, a | f, z | e, c | e, b | f, b | d, a | d, z | z, c | z, c | z, c | f, z | f, z | z, b | e, b | d, z | d, a | z, b | z, c | d, z | e, b | z, a | d, a | e, b | f, z | d, a | e, b | e, a | z, c | e, c | f, z | f, b | e, b | d, c | z, c | f, z | f, z | z, z | z, c | z, a | e, b | e, b | f, z | d, c | d, a | f, a | f, z | e, c | f, z | f, z | d, a | z, b | d, a | d, c | e, b | f, a | d, a | e, b | z, c | d, z | e, b | z, a | z, c | e];\na = 1 << 25;\nb = 1 << 30;\nc = a | b;\nd = 1 << 8;\ne = 1 << 19;\nf = d | e;\nvar SP5 = [z | d, a | f, a | e, c | d, z | e, z | d, b | z, a | e, b | f, z | e, a | d, b | f, c | d, c | e, z | f, b | z, a | z, b | e, b | e, z | z, b | d, c | f, c | f, a | d, c | e, b | d, z | z, c | z, a | f, a | z, c | z, z | f, z | e, c | d, z | d, a | z, b | z, a | e, c | d, b | f, a | d, b | z, c | e, a | f, b | f, z | d, a | z, c | e, c | f, z | f, c | z, c | f, a | e, z | z, b | e, c | z, z | f, a | d, b | d, z | e, z | z, b | e, a | f, b | d];\na = 1 << 22;\nb = 1 << 29;\nc = a | b;\nd = 1 << 4;\ne = 1 << 14;\nf = d | e;\nvar SP6 = [b | d, c | z, z | e, c | f, c | z, z | d, c | f, a | z, b | e, a | f, a | z, b | d, a | d, b | e, b | z, z | f, z | z, a | d, b | f, z | e, a | e, b | f, z | d, c | d, c | d, z | z, a | f, c | e, z | f, a | e, c | e, b | z, b | e, z | d, c | d, a | e, c | f, a | z, z | f, b | d, a | z, b | e, b | z, z | f, b | d, c | f, a | e, c | z, a | f, c | e, z | z, c | d, z | d, z | e, c | z, a | f, z | e, a | d, b | f, z | z, c | e, b | z, a | d, b | f];\na = 1 << 21;\nb = 1 << 26;\nc = a | b;\nd = 1 << 1;\ne = 1 << 11;\nf = d | e;\nvar SP7 = [a | z, c | d, b | f, z | z, z | e, b | f, a | f, c | e, c | f, a | z, z | z, b | d, z | d, b | z, c | d, z | f, b | e, a | f, a | d, b | e, b | d, c | z, c | e, a | d, c | z, z | e, z | f, c | f, a | e, z | d, b | z, a | e, b | z, a | e, a | z, b | f, b | f, c | d, c | d, z | d, a | d, b | z, b | e, a | z, c | e, z | f, a | f, c | e, z | f, b | d, c | f, c | z, a | e, z | z, z | d, c | f, z | z, a | f, c | z, z | e, b | d, b | e, z | e, a | d];\na = 1 << 18;\nb = 1 << 28;\nc = a | b;\nd = 1 << 6;\ne = 1 << 12;\nf = d | e;\nvar SP8 = [b | f, z | e, a | z, c | f, b | z, b | f, z | d, b | z, a | d, c | z, c | f, a | e, c | e, a | f, z | e, z | d, c | z, b | d, b | e, z | f, a | e, a | d, c | d, c | e, z | f, z | z, z | z, c | d, b | d, b | e, a | f, a | z, a | f, a | z, c | e, z | e, z | d, c | d, z | e, a | f, b | e, z | d, b | d, c | z, c | d, b | z, a | z, b | f, z | z, c | f, a | d, b | d, c | z, b | e, b | f, z | z, c | f, a | e, a | e, z | f, z | f, a | d, b | z, c | e];\n/* eslint-enable comma-spacing */\n\nvar DES = /*#__PURE__*/function () {\n function DES(password) {\n _classCallCheck(this, DES);\n\n this.keys = []; // Set the key.\n\n var pc1m = [],\n pcr = [],\n kn = [];\n\n for (var j = 0, l = 56; j < 56; ++j, l -= 8) {\n l += l < -5 ? 65 : l < -3 ? 31 : l < -1 ? 63 : l === 27 ? 35 : 0; // PC1\n\n var m = l & 0x7;\n pc1m[j] = (password[l >>> 3] & 1 << m) !== 0 ? 1 : 0;\n }\n\n for (var i = 0; i < 16; ++i) {\n var _m = i << 1;\n\n var n = _m + 1;\n kn[_m] = kn[n] = 0;\n\n for (var o = 28; o < 59; o += 28) {\n for (var _j = o - 28; _j < o; ++_j) {\n var _l = _j + totrot[i];\n\n pcr[_j] = _l < o ? pc1m[_l] : pc1m[_l - 28];\n }\n }\n\n for (var _j2 = 0; _j2 < 24; ++_j2) {\n if (pcr[PC2[_j2]] !== 0) {\n kn[_m] |= 1 << 23 - _j2;\n }\n\n if (pcr[PC2[_j2 + 24]] !== 0) {\n kn[n] |= 1 << 23 - _j2;\n }\n }\n } // cookey\n\n\n for (var _i = 0, rawi = 0, KnLi = 0; _i < 16; ++_i) {\n var raw0 = kn[rawi++];\n var raw1 = kn[rawi++];\n this.keys[KnLi] = (raw0 & 0x00fc0000) << 6;\n this.keys[KnLi] |= (raw0 & 0x00000fc0) << 10;\n this.keys[KnLi] |= (raw1 & 0x00fc0000) >>> 10;\n this.keys[KnLi] |= (raw1 & 0x00000fc0) >>> 6;\n ++KnLi;\n this.keys[KnLi] = (raw0 & 0x0003f000) << 12;\n this.keys[KnLi] |= (raw0 & 0x0000003f) << 16;\n this.keys[KnLi] |= (raw1 & 0x0003f000) >>> 4;\n this.keys[KnLi] |= raw1 & 0x0000003f;\n ++KnLi;\n }\n } // Encrypt 8 bytes of text\n\n\n _createClass(DES, [{\n key: \"enc8\",\n value: function enc8(text) {\n var b = text.slice();\n var i = 0,\n l,\n r,\n x; // left, right, accumulator\n // Squash 8 bytes to 2 ints\n\n l = b[i++] << 24 | b[i++] << 16 | b[i++] << 8 | b[i++];\n r = b[i++] << 24 | b[i++] << 16 | b[i++] << 8 | b[i++];\n x = (l >>> 4 ^ r) & 0x0f0f0f0f;\n r ^= x;\n l ^= x << 4;\n x = (l >>> 16 ^ r) & 0x0000ffff;\n r ^= x;\n l ^= x << 16;\n x = (r >>> 2 ^ l) & 0x33333333;\n l ^= x;\n r ^= x << 2;\n x = (r >>> 8 ^ l) & 0x00ff00ff;\n l ^= x;\n r ^= x << 8;\n r = r << 1 | r >>> 31 & 1;\n x = (l ^ r) & 0xaaaaaaaa;\n l ^= x;\n r ^= x;\n l = l << 1 | l >>> 31 & 1;\n\n for (var _i2 = 0, keysi = 0; _i2 < 8; ++_i2) {\n x = r << 28 | r >>> 4;\n x ^= this.keys[keysi++];\n var fval = SP7[x & 0x3f];\n fval |= SP5[x >>> 8 & 0x3f];\n fval |= SP3[x >>> 16 & 0x3f];\n fval |= SP1[x >>> 24 & 0x3f];\n x = r ^ this.keys[keysi++];\n fval |= SP8[x & 0x3f];\n fval |= SP6[x >>> 8 & 0x3f];\n fval |= SP4[x >>> 16 & 0x3f];\n fval |= SP2[x >>> 24 & 0x3f];\n l ^= fval;\n x = l << 28 | l >>> 4;\n x ^= this.keys[keysi++];\n fval = SP7[x & 0x3f];\n fval |= SP5[x >>> 8 & 0x3f];\n fval |= SP3[x >>> 16 & 0x3f];\n fval |= SP1[x >>> 24 & 0x3f];\n x = l ^ this.keys[keysi++];\n fval |= SP8[x & 0x0000003f];\n fval |= SP6[x >>> 8 & 0x3f];\n fval |= SP4[x >>> 16 & 0x3f];\n fval |= SP2[x >>> 24 & 0x3f];\n r ^= fval;\n }\n\n r = r << 31 | r >>> 1;\n x = (l ^ r) & 0xaaaaaaaa;\n l ^= x;\n r ^= x;\n l = l << 31 | l >>> 1;\n x = (l >>> 8 ^ r) & 0x00ff00ff;\n r ^= x;\n l ^= x << 8;\n x = (l >>> 2 ^ r) & 0x33333333;\n r ^= x;\n l ^= x << 2;\n x = (r >>> 16 ^ l) & 0x0000ffff;\n l ^= x;\n r ^= x << 16;\n x = (r >>> 4 ^ l) & 0x0f0f0f0f;\n l ^= x;\n r ^= x << 4; // Spread ints to bytes\n\n x = [r, l];\n\n for (i = 0; i < 8; i++) {\n b[i] = (x[i >>> 2] >>> 8 * (3 - i % 4)) % 256;\n\n if (b[i] < 0) {\n b[i] += 256;\n } // unsigned\n\n }\n\n return b;\n } // Encrypt 16 bytes of text using passwd as key\n\n }, {\n key: \"encrypt\",\n value: function encrypt(t) {\n return this.enc8(t.slice(0, 8)).concat(this.enc8(t.slice(8, 16)));\n }\n }]);\n\n return DES;\n}();\n\nexports[\"default\"] = DES;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar Log = _interopRequireWildcard(require(\"./util/logging.js\"));\n\nvar _base = _interopRequireDefault(require(\"./base64.js\"));\n\nvar _int = require(\"./util/int.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Display = /*#__PURE__*/function () {\n function Display(target) {\n _classCallCheck(this, Display);\n\n this._drawCtx = null;\n this._renderQ = []; // queue drawing actions for in-oder rendering\n\n this._flushing = false; // the full frame buffer (logical canvas) size\n\n this._fbWidth = 0;\n this._fbHeight = 0;\n this._prevDrawStyle = \"\";\n Log.Debug(\">> Display.constructor\"); // The visible canvas\n\n this._target = target;\n\n if (!this._target) {\n throw new Error(\"Target must be set\");\n }\n\n if (typeof this._target === 'string') {\n throw new Error('target must be a DOM element');\n }\n\n if (!this._target.getContext) {\n throw new Error(\"no getContext method\");\n }\n\n this._targetCtx = this._target.getContext('2d'); // the visible canvas viewport (i.e. what actually gets seen)\n\n this._viewportLoc = {\n 'x': 0,\n 'y': 0,\n 'w': this._target.width,\n 'h': this._target.height\n }; // The hidden canvas, where we do the actual rendering\n\n this._backbuffer = document.createElement('canvas');\n this._drawCtx = this._backbuffer.getContext('2d');\n this._damageBounds = {\n left: 0,\n top: 0,\n right: this._backbuffer.width,\n bottom: this._backbuffer.height\n };\n Log.Debug(\"User Agent: \" + navigator.userAgent);\n Log.Debug(\"<< Display.constructor\"); // ===== PROPERTIES =====\n\n this._scale = 1.0;\n this._clipViewport = false; // ===== EVENT HANDLERS =====\n\n this.onflush = function () {}; // A flush request has finished\n\n } // ===== PROPERTIES =====\n\n\n _createClass(Display, [{\n key: \"scale\",\n get: function get() {\n return this._scale;\n },\n set: function set(scale) {\n this._rescale(scale);\n }\n }, {\n key: \"clipViewport\",\n get: function get() {\n return this._clipViewport;\n },\n set: function set(viewport) {\n this._clipViewport = viewport; // May need to readjust the viewport dimensions\n\n var vp = this._viewportLoc;\n this.viewportChangeSize(vp.w, vp.h);\n this.viewportChangePos(0, 0);\n }\n }, {\n key: \"width\",\n get: function get() {\n return this._fbWidth;\n }\n }, {\n key: \"height\",\n get: function get() {\n return this._fbHeight;\n } // ===== PUBLIC METHODS =====\n\n }, {\n key: \"viewportChangePos\",\n value: function viewportChangePos(deltaX, deltaY) {\n var vp = this._viewportLoc;\n deltaX = Math.floor(deltaX);\n deltaY = Math.floor(deltaY);\n\n if (!this._clipViewport) {\n deltaX = -vp.w; // clamped later of out of bounds\n\n deltaY = -vp.h;\n }\n\n var vx2 = vp.x + vp.w - 1;\n var vy2 = vp.y + vp.h - 1; // Position change\n\n if (deltaX < 0 && vp.x + deltaX < 0) {\n deltaX = -vp.x;\n }\n\n if (vx2 + deltaX >= this._fbWidth) {\n deltaX -= vx2 + deltaX - this._fbWidth + 1;\n }\n\n if (vp.y + deltaY < 0) {\n deltaY = -vp.y;\n }\n\n if (vy2 + deltaY >= this._fbHeight) {\n deltaY -= vy2 + deltaY - this._fbHeight + 1;\n }\n\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n Log.Debug(\"viewportChange deltaX: \" + deltaX + \", deltaY: \" + deltaY);\n vp.x += deltaX;\n vp.y += deltaY;\n\n this._damage(vp.x, vp.y, vp.w, vp.h);\n\n this.flip();\n }\n }, {\n key: \"viewportChangeSize\",\n value: function viewportChangeSize(width, height) {\n if (!this._clipViewport || typeof width === \"undefined\" || typeof height === \"undefined\") {\n Log.Debug(\"Setting viewport to full display region\");\n width = this._fbWidth;\n height = this._fbHeight;\n }\n\n width = Math.floor(width);\n height = Math.floor(height);\n\n if (width > this._fbWidth) {\n width = this._fbWidth;\n }\n\n if (height > this._fbHeight) {\n height = this._fbHeight;\n }\n\n var vp = this._viewportLoc;\n\n if (vp.w !== width || vp.h !== height) {\n vp.w = width;\n vp.h = height;\n var canvas = this._target;\n canvas.width = width;\n canvas.height = height; // The position might need to be updated if we've grown\n\n this.viewportChangePos(0, 0);\n\n this._damage(vp.x, vp.y, vp.w, vp.h);\n\n this.flip(); // Update the visible size of the target canvas\n\n this._rescale(this._scale);\n }\n }\n }, {\n key: \"absX\",\n value: function absX(x) {\n if (this._scale === 0) {\n return 0;\n }\n\n return (0, _int.toSigned32bit)(x / this._scale + this._viewportLoc.x);\n }\n }, {\n key: \"absY\",\n value: function absY(y) {\n if (this._scale === 0) {\n return 0;\n }\n\n return (0, _int.toSigned32bit)(y / this._scale + this._viewportLoc.y);\n }\n }, {\n key: \"resize\",\n value: function resize(width, height) {\n this._prevDrawStyle = \"\";\n this._fbWidth = width;\n this._fbHeight = height;\n var canvas = this._backbuffer;\n\n if (canvas.width !== width || canvas.height !== height) {\n // We have to save the canvas data since changing the size will clear it\n var saveImg = null;\n\n if (canvas.width > 0 && canvas.height > 0) {\n saveImg = this._drawCtx.getImageData(0, 0, canvas.width, canvas.height);\n }\n\n if (canvas.width !== width) {\n canvas.width = width;\n }\n\n if (canvas.height !== height) {\n canvas.height = height;\n }\n\n if (saveImg) {\n this._drawCtx.putImageData(saveImg, 0, 0);\n }\n } // Readjust the viewport as it may be incorrectly sized\n // and positioned\n\n\n var vp = this._viewportLoc;\n this.viewportChangeSize(vp.w, vp.h);\n this.viewportChangePos(0, 0);\n } // Track what parts of the visible canvas that need updating\n\n }, {\n key: \"_damage\",\n value: function _damage(x, y, w, h) {\n if (x < this._damageBounds.left) {\n this._damageBounds.left = x;\n }\n\n if (y < this._damageBounds.top) {\n this._damageBounds.top = y;\n }\n\n if (x + w > this._damageBounds.right) {\n this._damageBounds.right = x + w;\n }\n\n if (y + h > this._damageBounds.bottom) {\n this._damageBounds.bottom = y + h;\n }\n } // Update the visible canvas with the contents of the\n // rendering canvas\n\n }, {\n key: \"flip\",\n value: function flip(fromQueue) {\n if (this._renderQ.length !== 0 && !fromQueue) {\n this._renderQPush({\n 'type': 'flip'\n });\n } else {\n var x = this._damageBounds.left;\n var y = this._damageBounds.top;\n var w = this._damageBounds.right - x;\n var h = this._damageBounds.bottom - y;\n var vx = x - this._viewportLoc.x;\n var vy = y - this._viewportLoc.y;\n\n if (vx < 0) {\n w += vx;\n x -= vx;\n vx = 0;\n }\n\n if (vy < 0) {\n h += vy;\n y -= vy;\n vy = 0;\n }\n\n if (vx + w > this._viewportLoc.w) {\n w = this._viewportLoc.w - vx;\n }\n\n if (vy + h > this._viewportLoc.h) {\n h = this._viewportLoc.h - vy;\n }\n\n if (w > 0 && h > 0) {\n // FIXME: We may need to disable image smoothing here\n // as well (see copyImage()), but we haven't\n // noticed any problem yet.\n this._targetCtx.drawImage(this._backbuffer, x, y, w, h, vx, vy, w, h);\n }\n\n this._damageBounds.left = this._damageBounds.top = 65535;\n this._damageBounds.right = this._damageBounds.bottom = 0;\n }\n }\n }, {\n key: \"pending\",\n value: function pending() {\n return this._renderQ.length > 0;\n }\n }, {\n key: \"flush\",\n value: function flush() {\n if (this._renderQ.length === 0) {\n this.onflush();\n } else {\n this._flushing = true;\n }\n }\n }, {\n key: \"fillRect\",\n value: function fillRect(x, y, width, height, color, fromQueue) {\n if (this._renderQ.length !== 0 && !fromQueue) {\n this._renderQPush({\n 'type': 'fill',\n 'x': x,\n 'y': y,\n 'width': width,\n 'height': height,\n 'color': color\n });\n } else {\n this._setFillColor(color);\n\n this._drawCtx.fillRect(x, y, width, height);\n\n this._damage(x, y, width, height);\n }\n }\n }, {\n key: \"copyImage\",\n value: function copyImage(oldX, oldY, newX, newY, w, h, fromQueue) {\n if (this._renderQ.length !== 0 && !fromQueue) {\n this._renderQPush({\n 'type': 'copy',\n 'oldX': oldX,\n 'oldY': oldY,\n 'x': newX,\n 'y': newY,\n 'width': w,\n 'height': h\n });\n } else {\n // Due to this bug among others [1] we need to disable the image-smoothing to\n // avoid getting a blur effect when copying data.\n //\n // 1. https://bugzilla.mozilla.org/show_bug.cgi?id=1194719\n //\n // We need to set these every time since all properties are reset\n // when the the size is changed\n this._drawCtx.mozImageSmoothingEnabled = false;\n this._drawCtx.webkitImageSmoothingEnabled = false;\n this._drawCtx.msImageSmoothingEnabled = false;\n this._drawCtx.imageSmoothingEnabled = false;\n\n this._drawCtx.drawImage(this._backbuffer, oldX, oldY, w, h, newX, newY, w, h);\n\n this._damage(newX, newY, w, h);\n }\n }\n }, {\n key: \"imageRect\",\n value: function imageRect(x, y, width, height, mime, arr) {\n /* The internal logic cannot handle empty images, so bail early */\n if (width === 0 || height === 0) {\n return;\n }\n\n var img = new Image();\n img.src = \"data: \" + mime + \";base64,\" + _base[\"default\"].encode(arr);\n\n this._renderQPush({\n 'type': 'img',\n 'img': img,\n 'x': x,\n 'y': y,\n 'width': width,\n 'height': height\n });\n }\n }, {\n key: \"blitImage\",\n value: function blitImage(x, y, width, height, arr, offset, fromQueue) {\n if (this._renderQ.length !== 0 && !fromQueue) {\n // NB(directxman12): it's technically more performant here to use preallocated arrays,\n // but it's a lot of extra work for not a lot of payoff -- if we're using the render queue,\n // this probably isn't getting called *nearly* as much\n var newArr = new Uint8Array(width * height * 4);\n newArr.set(new Uint8Array(arr.buffer, 0, newArr.length));\n\n this._renderQPush({\n 'type': 'blit',\n 'data': newArr,\n 'x': x,\n 'y': y,\n 'width': width,\n 'height': height\n });\n } else {\n // NB(directxman12): arr must be an Type Array view\n var data = new Uint8ClampedArray(arr.buffer, arr.byteOffset + offset, width * height * 4);\n var img = new ImageData(data, width, height);\n\n this._drawCtx.putImageData(img, x, y);\n\n this._damage(x, y, width, height);\n }\n }\n }, {\n key: \"drawImage\",\n value: function drawImage(img, x, y) {\n this._drawCtx.drawImage(img, x, y);\n\n this._damage(x, y, img.width, img.height);\n }\n }, {\n key: \"autoscale\",\n value: function autoscale(containerWidth, containerHeight) {\n var scaleRatio;\n\n if (containerWidth === 0 || containerHeight === 0) {\n scaleRatio = 0;\n } else {\n var vp = this._viewportLoc;\n var targetAspectRatio = containerWidth / containerHeight;\n var fbAspectRatio = vp.w / vp.h;\n\n if (fbAspectRatio >= targetAspectRatio) {\n scaleRatio = containerWidth / vp.w;\n } else {\n scaleRatio = containerHeight / vp.h;\n }\n }\n\n this._rescale(scaleRatio);\n } // ===== PRIVATE METHODS =====\n\n }, {\n key: \"_rescale\",\n value: function _rescale(factor) {\n this._scale = factor;\n var vp = this._viewportLoc; // NB(directxman12): If you set the width directly, or set the\n // style width to a number, the canvas is cleared.\n // However, if you set the style width to a string\n // ('NNNpx'), the canvas is scaled without clearing.\n\n var width = factor * vp.w + 'px';\n var height = factor * vp.h + 'px';\n\n if (this._target.style.width !== width || this._target.style.height !== height) {\n this._target.style.width = width;\n this._target.style.height = height;\n }\n }\n }, {\n key: \"_setFillColor\",\n value: function _setFillColor(color) {\n var newStyle = 'rgb(' + color[0] + ',' + color[1] + ',' + color[2] + ')';\n\n if (newStyle !== this._prevDrawStyle) {\n this._drawCtx.fillStyle = newStyle;\n this._prevDrawStyle = newStyle;\n }\n }\n }, {\n key: \"_renderQPush\",\n value: function _renderQPush(action) {\n this._renderQ.push(action);\n\n if (this._renderQ.length === 1) {\n // If this can be rendered immediately it will be, otherwise\n // the scanner will wait for the relevant event\n this._scanRenderQ();\n }\n }\n }, {\n key: \"_resumeRenderQ\",\n value: function _resumeRenderQ() {\n // \"this\" is the object that is ready, not the\n // display object\n this.removeEventListener('load', this._noVNCDisplay._resumeRenderQ);\n\n this._noVNCDisplay._scanRenderQ();\n }\n }, {\n key: \"_scanRenderQ\",\n value: function _scanRenderQ() {\n var ready = true;\n\n while (ready && this._renderQ.length > 0) {\n var a = this._renderQ[0];\n\n switch (a.type) {\n case 'flip':\n this.flip(true);\n break;\n\n case 'copy':\n this.copyImage(a.oldX, a.oldY, a.x, a.y, a.width, a.height, true);\n break;\n\n case 'fill':\n this.fillRect(a.x, a.y, a.width, a.height, a.color, true);\n break;\n\n case 'blit':\n this.blitImage(a.x, a.y, a.width, a.height, a.data, 0, true);\n break;\n\n case 'img':\n if (a.img.complete) {\n if (a.img.width !== a.width || a.img.height !== a.height) {\n Log.Error(\"Decoded image has incorrect dimensions. Got \" + a.img.width + \"x\" + a.img.height + \". Expected \" + a.width + \"x\" + a.height + \".\");\n return;\n }\n\n this.drawImage(a.img, a.x, a.y);\n } else {\n a.img._noVNCDisplay = this;\n a.img.addEventListener('load', this._resumeRenderQ); // We need to wait for this image to 'load'\n // to keep things in-order\n\n ready = false;\n }\n\n break;\n }\n\n if (ready) {\n this._renderQ.shift();\n }\n }\n\n if (this._renderQ.length === 0 && this._flushing) {\n this._flushing = false;\n this.onflush();\n }\n }\n }]);\n\n return Display;\n}();\n\nexports[\"default\"] = Display;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.encodingName = encodingName;\nexports.encodings = void 0;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\nvar encodings = {\n encodingRaw: 0,\n encodingCopyRect: 1,\n encodingRRE: 2,\n encodingHextile: 5,\n encodingTight: 7,\n encodingTightPNG: -260,\n pseudoEncodingQualityLevel9: -23,\n pseudoEncodingQualityLevel0: -32,\n pseudoEncodingDesktopSize: -223,\n pseudoEncodingLastRect: -224,\n pseudoEncodingCursor: -239,\n pseudoEncodingQEMUExtendedKeyEvent: -258,\n pseudoEncodingDesktopName: -307,\n pseudoEncodingExtendedDesktopSize: -308,\n pseudoEncodingXvp: -309,\n pseudoEncodingFence: -312,\n pseudoEncodingContinuousUpdates: -313,\n pseudoEncodingCompressLevel9: -247,\n pseudoEncodingCompressLevel0: -256,\n pseudoEncodingVMwareCursor: 0x574d5664,\n pseudoEncodingExtendedClipboard: 0xc0a1e5ce\n};\nexports.encodings = encodings;\n\nfunction encodingName(num) {\n switch (num) {\n case encodings.encodingRaw:\n return \"Raw\";\n\n case encodings.encodingCopyRect:\n return \"CopyRect\";\n\n case encodings.encodingRRE:\n return \"RRE\";\n\n case encodings.encodingHextile:\n return \"Hextile\";\n\n case encodings.encodingTight:\n return \"Tight\";\n\n case encodings.encodingTightPNG:\n return \"TightPNG\";\n\n default:\n return \"[unknown encoding \" + num + \"]\";\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _inflate2 = require(\"../lib/vendor/pako/lib/zlib/inflate.js\");\n\nvar _zstream = _interopRequireDefault(require(\"../lib/vendor/pako/lib/zlib/zstream.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar Inflate = /*#__PURE__*/function () {\n function Inflate() {\n _classCallCheck(this, Inflate);\n\n this.strm = new _zstream[\"default\"]();\n this.chunkSize = 1024 * 10 * 10;\n this.strm.output = new Uint8Array(this.chunkSize);\n this.windowBits = 5;\n (0, _inflate2.inflateInit)(this.strm, this.windowBits);\n }\n\n _createClass(Inflate, [{\n key: \"setInput\",\n value: function setInput(data) {\n if (!data) {\n //FIXME: flush remaining data.\n\n /* eslint-disable camelcase */\n this.strm.input = null;\n this.strm.avail_in = 0;\n this.strm.next_in = 0;\n } else {\n this.strm.input = data;\n this.strm.avail_in = this.strm.input.length;\n this.strm.next_in = 0;\n /* eslint-enable camelcase */\n }\n }\n }, {\n key: \"inflate\",\n value: function inflate(expected) {\n // resize our output buffer if it's too small\n // (we could just use multiple chunks, but that would cause an extra\n // allocation each time to flatten the chunks)\n if (expected > this.chunkSize) {\n this.chunkSize = expected;\n this.strm.output = new Uint8Array(this.chunkSize);\n }\n /* eslint-disable camelcase */\n\n\n this.strm.next_out = 0;\n this.strm.avail_out = expected;\n /* eslint-enable camelcase */\n\n var ret = (0, _inflate2.inflate)(this.strm, 0); // Flush argument not used.\n\n if (ret < 0) {\n throw new Error(\"zlib inflate failed\");\n }\n\n if (this.strm.next_out != expected) {\n throw new Error(\"Incomplete zlib block\");\n }\n\n return new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n (0, _inflate2.inflateReset)(this.strm);\n }\n }]);\n\n return Inflate;\n}();\n\nexports[\"default\"] = Inflate;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _keysym = _interopRequireDefault(require(\"./keysym.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2018 The noVNC Authors\n * Licensed under MPL 2.0 or any later version (see LICENSE.txt)\n */\n\n/*\n * Mapping between HTML key values and VNC/X11 keysyms for \"special\"\n * keys that cannot be handled via their Unicode codepoint.\n *\n * See https://www.w3.org/TR/uievents-key/ for possible values.\n */\nvar DOMKeyTable = {};\n\nfunction addStandard(key, standard) {\n if (standard === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (key in DOMKeyTable) throw new Error(\"Duplicate entry for key \\\"\" + key + \"\\\"\");\n DOMKeyTable[key] = [standard, standard, standard, standard];\n}\n\nfunction addLeftRight(key, left, right) {\n if (left === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (right === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (key in DOMKeyTable) throw new Error(\"Duplicate entry for key \\\"\" + key + \"\\\"\");\n DOMKeyTable[key] = [left, left, right, left];\n}\n\nfunction addNumpad(key, standard, numpad) {\n if (standard === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (numpad === undefined) throw new Error(\"Undefined keysym for key \\\"\" + key + \"\\\"\");\n if (key in DOMKeyTable) throw new Error(\"Duplicate entry for key \\\"\" + key + \"\\\"\");\n DOMKeyTable[key] = [standard, standard, standard, numpad];\n} // 3.2. Modifier Keys\n\n\naddLeftRight(\"Alt\", _keysym[\"default\"].XK_Alt_L, _keysym[\"default\"].XK_Alt_R);\naddStandard(\"AltGraph\", _keysym[\"default\"].XK_ISO_Level3_Shift);\naddStandard(\"CapsLock\", _keysym[\"default\"].XK_Caps_Lock);\naddLeftRight(\"Control\", _keysym[\"default\"].XK_Control_L, _keysym[\"default\"].XK_Control_R); // - Fn\n// - FnLock\n\naddLeftRight(\"Meta\", _keysym[\"default\"].XK_Super_L, _keysym[\"default\"].XK_Super_R);\naddStandard(\"NumLock\", _keysym[\"default\"].XK_Num_Lock);\naddStandard(\"ScrollLock\", _keysym[\"default\"].XK_Scroll_Lock);\naddLeftRight(\"Shift\", _keysym[\"default\"].XK_Shift_L, _keysym[\"default\"].XK_Shift_R); // - Symbol\n// - SymbolLock\n// - Hyper\n// - Super\n// 3.3. Whitespace Keys\n\naddNumpad(\"Enter\", _keysym[\"default\"].XK_Return, _keysym[\"default\"].XK_KP_Enter);\naddStandard(\"Tab\", _keysym[\"default\"].XK_Tab);\naddNumpad(\" \", _keysym[\"default\"].XK_space, _keysym[\"default\"].XK_KP_Space); // 3.4. Navigation Keys\n\naddNumpad(\"ArrowDown\", _keysym[\"default\"].XK_Down, _keysym[\"default\"].XK_KP_Down);\naddNumpad(\"ArrowLeft\", _keysym[\"default\"].XK_Left, _keysym[\"default\"].XK_KP_Left);\naddNumpad(\"ArrowRight\", _keysym[\"default\"].XK_Right, _keysym[\"default\"].XK_KP_Right);\naddNumpad(\"ArrowUp\", _keysym[\"default\"].XK_Up, _keysym[\"default\"].XK_KP_Up);\naddNumpad(\"End\", _keysym[\"default\"].XK_End, _keysym[\"default\"].XK_KP_End);\naddNumpad(\"Home\", _keysym[\"default\"].XK_Home, _keysym[\"default\"].XK_KP_Home);\naddNumpad(\"PageDown\", _keysym[\"default\"].XK_Next, _keysym[\"default\"].XK_KP_Next);\naddNumpad(\"PageUp\", _keysym[\"default\"].XK_Prior, _keysym[\"default\"].XK_KP_Prior); // 3.5. Editing Keys\n\naddStandard(\"Backspace\", _keysym[\"default\"].XK_BackSpace); // Browsers send \"Clear\" for the numpad 5 without NumLock because\n// Windows uses VK_Clear for that key. But Unix expects KP_Begin for\n// that scenario.\n\naddNumpad(\"Clear\", _keysym[\"default\"].XK_Clear, _keysym[\"default\"].XK_KP_Begin);\naddStandard(\"Copy\", _keysym[\"default\"].XF86XK_Copy); // - CrSel\n\naddStandard(\"Cut\", _keysym[\"default\"].XF86XK_Cut);\naddNumpad(\"Delete\", _keysym[\"default\"].XK_Delete, _keysym[\"default\"].XK_KP_Delete); // - EraseEof\n// - ExSel\n\naddNumpad(\"Insert\", _keysym[\"default\"].XK_Insert, _keysym[\"default\"].XK_KP_Insert);\naddStandard(\"Paste\", _keysym[\"default\"].XF86XK_Paste);\naddStandard(\"Redo\", _keysym[\"default\"].XK_Redo);\naddStandard(\"Undo\", _keysym[\"default\"].XK_Undo); // 3.6. UI Keys\n// - Accept\n// - Again (could just be XK_Redo)\n// - Attn\n\naddStandard(\"Cancel\", _keysym[\"default\"].XK_Cancel);\naddStandard(\"ContextMenu\", _keysym[\"default\"].XK_Menu);\naddStandard(\"Escape\", _keysym[\"default\"].XK_Escape);\naddStandard(\"Execute\", _keysym[\"default\"].XK_Execute);\naddStandard(\"Find\", _keysym[\"default\"].XK_Find);\naddStandard(\"Help\", _keysym[\"default\"].XK_Help);\naddStandard(\"Pause\", _keysym[\"default\"].XK_Pause); // - Play\n// - Props\n\naddStandard(\"Select\", _keysym[\"default\"].XK_Select);\naddStandard(\"ZoomIn\", _keysym[\"default\"].XF86XK_ZoomIn);\naddStandard(\"ZoomOut\", _keysym[\"default\"].XF86XK_ZoomOut); // 3.7. Device Keys\n\naddStandard(\"BrightnessDown\", _keysym[\"default\"].XF86XK_MonBrightnessDown);\naddStandard(\"BrightnessUp\", _keysym[\"default\"].XF86XK_MonBrightnessUp);\naddStandard(\"Eject\", _keysym[\"default\"].XF86XK_Eject);\naddStandard(\"LogOff\", _keysym[\"default\"].XF86XK_LogOff);\naddStandard(\"Power\", _keysym[\"default\"].XF86XK_PowerOff);\naddStandard(\"PowerOff\", _keysym[\"default\"].XF86XK_PowerDown);\naddStandard(\"PrintScreen\", _keysym[\"default\"].XK_Print);\naddStandard(\"Hibernate\", _keysym[\"default\"].XF86XK_Hibernate);\naddStandard(\"Standby\", _keysym[\"default\"].XF86XK_Standby);\naddStandard(\"WakeUp\", _keysym[\"default\"].XF86XK_WakeUp); // 3.8. IME and Composition Keys\n\naddStandard(\"AllCandidates\", _keysym[\"default\"].XK_MultipleCandidate);\naddStandard(\"Alphanumeric\", _keysym[\"default\"].XK_Eisu_toggle);\naddStandard(\"CodeInput\", _keysym[\"default\"].XK_Codeinput);\naddStandard(\"Compose\", _keysym[\"default\"].XK_Multi_key);\naddStandard(\"Convert\", _keysym[\"default\"].XK_Henkan); // - Dead\n// - FinalMode\n\naddStandard(\"GroupFirst\", _keysym[\"default\"].XK_ISO_First_Group);\naddStandard(\"GroupLast\", _keysym[\"default\"].XK_ISO_Last_Group);\naddStandard(\"GroupNext\", _keysym[\"default\"].XK_ISO_Next_Group);\naddStandard(\"GroupPrevious\", _keysym[\"default\"].XK_ISO_Prev_Group); // - ModeChange (XK_Mode_switch is often used for AltGr)\n// - NextCandidate\n\naddStandard(\"NonConvert\", _keysym[\"default\"].XK_Muhenkan);\naddStandard(\"PreviousCandidate\", _keysym[\"default\"].XK_PreviousCandidate); // - Process\n\naddStandard(\"SingleCandidate\", _keysym[\"default\"].XK_SingleCandidate);\naddStandard(\"HangulMode\", _keysym[\"default\"].XK_Hangul);\naddStandard(\"HanjaMode\", _keysym[\"default\"].XK_Hangul_Hanja);\naddStandard(\"JunjaMode\", _keysym[\"default\"].XK_Hangul_Jeonja);\naddStandard(\"Eisu\", _keysym[\"default\"].XK_Eisu_toggle);\naddStandard(\"Hankaku\", _keysym[\"default\"].XK_Hankaku);\naddStandard(\"Hiragana\", _keysym[\"default\"].XK_Hiragana);\naddStandard(\"HiraganaKatakana\", _keysym[\"default\"].XK_Hiragana_Katakana);\naddStandard(\"KanaMode\", _keysym[\"default\"].XK_Kana_Shift); // could also be _Kana_Lock\n\naddStandard(\"KanjiMode\", _keysym[\"default\"].XK_Kanji);\naddStandard(\"Katakana\", _keysym[\"default\"].XK_Katakana);\naddStandard(\"Romaji\", _keysym[\"default\"].XK_Romaji);\naddStandard(\"Zenkaku\", _keysym[\"default\"].XK_Zenkaku);\naddStandard(\"ZenkakuHankaku\", _keysym[\"default\"].XK_Zenkaku_Hankaku); // 3.9. General-Purpose Function Keys\n\naddStandard(\"F1\", _keysym[\"default\"].XK_F1);\naddStandard(\"F2\", _keysym[\"default\"].XK_F2);\naddStandard(\"F3\", _keysym[\"default\"].XK_F3);\naddStandard(\"F4\", _keysym[\"default\"].XK_F4);\naddStandard(\"F5\", _keysym[\"default\"].XK_F5);\naddStandard(\"F6\", _keysym[\"default\"].XK_F6);\naddStandard(\"F7\", _keysym[\"default\"].XK_F7);\naddStandard(\"F8\", _keysym[\"default\"].XK_F8);\naddStandard(\"F9\", _keysym[\"default\"].XK_F9);\naddStandard(\"F10\", _keysym[\"default\"].XK_F10);\naddStandard(\"F11\", _keysym[\"default\"].XK_F11);\naddStandard(\"F12\", _keysym[\"default\"].XK_F12);\naddStandard(\"F13\", _keysym[\"default\"].XK_F13);\naddStandard(\"F14\", _keysym[\"default\"].XK_F14);\naddStandard(\"F15\", _keysym[\"default\"].XK_F15);\naddStandard(\"F16\", _keysym[\"default\"].XK_F16);\naddStandard(\"F17\", _keysym[\"default\"].XK_F17);\naddStandard(\"F18\", _keysym[\"default\"].XK_F18);\naddStandard(\"F19\", _keysym[\"default\"].XK_F19);\naddStandard(\"F20\", _keysym[\"default\"].XK_F20);\naddStandard(\"F21\", _keysym[\"default\"].XK_F21);\naddStandard(\"F22\", _keysym[\"default\"].XK_F22);\naddStandard(\"F23\", _keysym[\"default\"].XK_F23);\naddStandard(\"F24\", _keysym[\"default\"].XK_F24);\naddStandard(\"F25\", _keysym[\"default\"].XK_F25);\naddStandard(\"F26\", _keysym[\"default\"].XK_F26);\naddStandard(\"F27\", _keysym[\"default\"].XK_F27);\naddStandard(\"F28\", _keysym[\"default\"].XK_F28);\naddStandard(\"F29\", _keysym[\"default\"].XK_F29);\naddStandard(\"F30\", _keysym[\"default\"].XK_F30);\naddStandard(\"F31\", _keysym[\"default\"].XK_F31);\naddStandard(\"F32\", _keysym[\"default\"].XK_F32);\naddStandard(\"F33\", _keysym[\"default\"].XK_F33);\naddStandard(\"F34\", _keysym[\"default\"].XK_F34);\naddStandard(\"F35\", _keysym[\"default\"].XK_F35); // - Soft1...\n// 3.10. Multimedia Keys\n// - ChannelDown\n// - ChannelUp\n\naddStandard(\"Close\", _keysym[\"default\"].XF86XK_Close);\naddStandard(\"MailForward\", _keysym[\"default\"].XF86XK_MailForward);\naddStandard(\"MailReply\", _keysym[\"default\"].XF86XK_Reply);\naddStandard(\"MailSend\", _keysym[\"default\"].XF86XK_Send); // - MediaClose\n\naddStandard(\"MediaFastForward\", _keysym[\"default\"].XF86XK_AudioForward);\naddStandard(\"MediaPause\", _keysym[\"default\"].XF86XK_AudioPause);\naddStandard(\"MediaPlay\", _keysym[\"default\"].XF86XK_AudioPlay); // - MediaPlayPause\n\naddStandard(\"MediaRecord\", _keysym[\"default\"].XF86XK_AudioRecord);\naddStandard(\"MediaRewind\", _keysym[\"default\"].XF86XK_AudioRewind);\naddStandard(\"MediaStop\", _keysym[\"default\"].XF86XK_AudioStop);\naddStandard(\"MediaTrackNext\", _keysym[\"default\"].XF86XK_AudioNext);\naddStandard(\"MediaTrackPrevious\", _keysym[\"default\"].XF86XK_AudioPrev);\naddStandard(\"New\", _keysym[\"default\"].XF86XK_New);\naddStandard(\"Open\", _keysym[\"default\"].XF86XK_Open);\naddStandard(\"Print\", _keysym[\"default\"].XK_Print);\naddStandard(\"Save\", _keysym[\"default\"].XF86XK_Save);\naddStandard(\"SpellCheck\", _keysym[\"default\"].XF86XK_Spell); // 3.11. Multimedia Numpad Keys\n// - Key11\n// - Key12\n// 3.12. Audio Keys\n// - AudioBalanceLeft\n// - AudioBalanceRight\n// - AudioBassBoostDown\n// - AudioBassBoostToggle\n// - AudioBassBoostUp\n// - AudioFaderFront\n// - AudioFaderRear\n// - AudioSurroundModeNext\n// - AudioTrebleDown\n// - AudioTrebleUp\n\naddStandard(\"AudioVolumeDown\", _keysym[\"default\"].XF86XK_AudioLowerVolume);\naddStandard(\"AudioVolumeUp\", _keysym[\"default\"].XF86XK_AudioRaiseVolume);\naddStandard(\"AudioVolumeMute\", _keysym[\"default\"].XF86XK_AudioMute); // - MicrophoneToggle\n// - MicrophoneVolumeDown\n// - MicrophoneVolumeUp\n\naddStandard(\"MicrophoneVolumeMute\", _keysym[\"default\"].XF86XK_AudioMicMute); // 3.13. Speech Keys\n// - SpeechCorrectionList\n// - SpeechInputToggle\n// 3.14. Application Keys\n\naddStandard(\"LaunchApplication1\", _keysym[\"default\"].XF86XK_MyComputer);\naddStandard(\"LaunchApplication2\", _keysym[\"default\"].XF86XK_Calculator);\naddStandard(\"LaunchCalendar\", _keysym[\"default\"].XF86XK_Calendar); // - LaunchContacts\n\naddStandard(\"LaunchMail\", _keysym[\"default\"].XF86XK_Mail);\naddStandard(\"LaunchMediaPlayer\", _keysym[\"default\"].XF86XK_AudioMedia);\naddStandard(\"LaunchMusicPlayer\", _keysym[\"default\"].XF86XK_Music);\naddStandard(\"LaunchPhone\", _keysym[\"default\"].XF86XK_Phone);\naddStandard(\"LaunchScreenSaver\", _keysym[\"default\"].XF86XK_ScreenSaver);\naddStandard(\"LaunchSpreadsheet\", _keysym[\"default\"].XF86XK_Excel);\naddStandard(\"LaunchWebBrowser\", _keysym[\"default\"].XF86XK_WWW);\naddStandard(\"LaunchWebCam\", _keysym[\"default\"].XF86XK_WebCam);\naddStandard(\"LaunchWordProcessor\", _keysym[\"default\"].XF86XK_Word); // 3.15. Browser Keys\n\naddStandard(\"BrowserBack\", _keysym[\"default\"].XF86XK_Back);\naddStandard(\"BrowserFavorites\", _keysym[\"default\"].XF86XK_Favorites);\naddStandard(\"BrowserForward\", _keysym[\"default\"].XF86XK_Forward);\naddStandard(\"BrowserHome\", _keysym[\"default\"].XF86XK_HomePage);\naddStandard(\"BrowserRefresh\", _keysym[\"default\"].XF86XK_Refresh);\naddStandard(\"BrowserSearch\", _keysym[\"default\"].XF86XK_Search);\naddStandard(\"BrowserStop\", _keysym[\"default\"].XF86XK_Stop); // 3.16. Mobile Phone Keys\n// - A whole bunch...\n// 3.17. TV Keys\n// - A whole bunch...\n// 3.18. Media Controller Keys\n// - A whole bunch...\n\naddStandard(\"Dimmer\", _keysym[\"default\"].XF86XK_BrightnessAdjust);\naddStandard(\"MediaAudioTrack\", _keysym[\"default\"].XF86XK_AudioCycleTrack);\naddStandard(\"RandomToggle\", _keysym[\"default\"].XF86XK_AudioRandomPlay);\naddStandard(\"SplitScreenToggle\", _keysym[\"default\"].XF86XK_SplitScreen);\naddStandard(\"Subtitle\", _keysym[\"default\"].XF86XK_Subtitle);\naddStandard(\"VideoModeNext\", _keysym[\"default\"].XF86XK_Next_VMode); // Extra: Numpad\n\naddNumpad(\"=\", _keysym[\"default\"].XK_equal, _keysym[\"default\"].XK_KP_Equal);\naddNumpad(\"+\", _keysym[\"default\"].XK_plus, _keysym[\"default\"].XK_KP_Add);\naddNumpad(\"-\", _keysym[\"default\"].XK_minus, _keysym[\"default\"].XK_KP_Subtract);\naddNumpad(\"*\", _keysym[\"default\"].XK_asterisk, _keysym[\"default\"].XK_KP_Multiply);\naddNumpad(\"/\", _keysym[\"default\"].XK_slash, _keysym[\"default\"].XK_KP_Divide);\naddNumpad(\".\", _keysym[\"default\"].XK_period, _keysym[\"default\"].XK_KP_Decimal);\naddNumpad(\",\", _keysym[\"default\"].XK_comma, _keysym[\"default\"].XK_KP_Separator);\naddNumpad(\"0\", _keysym[\"default\"].XK_0, _keysym[\"default\"].XK_KP_0);\naddNumpad(\"1\", _keysym[\"default\"].XK_1, _keysym[\"default\"].XK_KP_1);\naddNumpad(\"2\", _keysym[\"default\"].XK_2, _keysym[\"default\"].XK_KP_2);\naddNumpad(\"3\", _keysym[\"default\"].XK_3, _keysym[\"default\"].XK_KP_3);\naddNumpad(\"4\", _keysym[\"default\"].XK_4, _keysym[\"default\"].XK_KP_4);\naddNumpad(\"5\", _keysym[\"default\"].XK_5, _keysym[\"default\"].XK_KP_5);\naddNumpad(\"6\", _keysym[\"default\"].XK_6, _keysym[\"default\"].XK_KP_6);\naddNumpad(\"7\", _keysym[\"default\"].XK_7, _keysym[\"default\"].XK_KP_7);\naddNumpad(\"8\", _keysym[\"default\"].XK_8, _keysym[\"default\"].XK_KP_8);\naddNumpad(\"9\", _keysym[\"default\"].XK_9, _keysym[\"default\"].XK_KP_9);\nvar _default = DOMKeyTable;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2018 The noVNC Authors\n * Licensed under MPL 2.0 or any later version (see LICENSE.txt)\n */\n\n/*\n * Fallback mapping between HTML key codes (physical keys) and\n * HTML key values. This only works for keys that don't vary\n * between layouts. We also omit those who manage fine by mapping the\n * Unicode representation.\n *\n * See https://www.w3.org/TR/uievents-code/ for possible codes.\n * See https://www.w3.org/TR/uievents-key/ for possible values.\n */\n\n/* eslint-disable key-spacing */\nvar _default = {\n // 3.1.1.1. Writing System Keys\n 'Backspace': 'Backspace',\n // 3.1.1.2. Functional Keys\n 'AltLeft': 'Alt',\n 'AltRight': 'Alt',\n // This could also be 'AltGraph'\n 'CapsLock': 'CapsLock',\n 'ContextMenu': 'ContextMenu',\n 'ControlLeft': 'Control',\n 'ControlRight': 'Control',\n 'Enter': 'Enter',\n 'MetaLeft': 'Meta',\n 'MetaRight': 'Meta',\n 'ShiftLeft': 'Shift',\n 'ShiftRight': 'Shift',\n 'Tab': 'Tab',\n // FIXME: Japanese/Korean keys\n // 3.1.2. Control Pad Section\n 'Delete': 'Delete',\n 'End': 'End',\n 'Help': 'Help',\n 'Home': 'Home',\n 'Insert': 'Insert',\n 'PageDown': 'PageDown',\n 'PageUp': 'PageUp',\n // 3.1.3. Arrow Pad Section\n 'ArrowDown': 'ArrowDown',\n 'ArrowLeft': 'ArrowLeft',\n 'ArrowRight': 'ArrowRight',\n 'ArrowUp': 'ArrowUp',\n // 3.1.4. Numpad Section\n 'NumLock': 'NumLock',\n 'NumpadBackspace': 'Backspace',\n 'NumpadClear': 'Clear',\n // 3.1.5. Function Section\n 'Escape': 'Escape',\n 'F1': 'F1',\n 'F2': 'F2',\n 'F3': 'F3',\n 'F4': 'F4',\n 'F5': 'F5',\n 'F6': 'F6',\n 'F7': 'F7',\n 'F8': 'F8',\n 'F9': 'F9',\n 'F10': 'F10',\n 'F11': 'F11',\n 'F12': 'F12',\n 'F13': 'F13',\n 'F14': 'F14',\n 'F15': 'F15',\n 'F16': 'F16',\n 'F17': 'F17',\n 'F18': 'F18',\n 'F19': 'F19',\n 'F20': 'F20',\n 'F21': 'F21',\n 'F22': 'F22',\n 'F23': 'F23',\n 'F24': 'F24',\n 'F25': 'F25',\n 'F26': 'F26',\n 'F27': 'F27',\n 'F28': 'F28',\n 'F29': 'F29',\n 'F30': 'F30',\n 'F31': 'F31',\n 'F32': 'F32',\n 'F33': 'F33',\n 'F34': 'F34',\n 'F35': 'F35',\n 'PrintScreen': 'PrintScreen',\n 'ScrollLock': 'ScrollLock',\n 'Pause': 'Pause',\n // 3.1.6. Media Keys\n 'BrowserBack': 'BrowserBack',\n 'BrowserFavorites': 'BrowserFavorites',\n 'BrowserForward': 'BrowserForward',\n 'BrowserHome': 'BrowserHome',\n 'BrowserRefresh': 'BrowserRefresh',\n 'BrowserSearch': 'BrowserSearch',\n 'BrowserStop': 'BrowserStop',\n 'Eject': 'Eject',\n 'LaunchApp1': 'LaunchMyComputer',\n 'LaunchApp2': 'LaunchCalendar',\n 'LaunchMail': 'LaunchMail',\n 'MediaPlayPause': 'MediaPlay',\n 'MediaStop': 'MediaStop',\n 'MediaTrackNext': 'MediaTrackNext',\n 'MediaTrackPrevious': 'MediaTrackPrevious',\n 'Power': 'Power',\n 'Sleep': 'Sleep',\n 'AudioVolumeDown': 'AudioVolumeDown',\n 'AudioVolumeMute': 'AudioVolumeMute',\n 'AudioVolumeUp': 'AudioVolumeUp',\n 'WakeUp': 'WakeUp'\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2020 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n */\nvar GH_NOGESTURE = 0;\nvar GH_ONETAP = 1;\nvar GH_TWOTAP = 2;\nvar GH_THREETAP = 4;\nvar GH_DRAG = 8;\nvar GH_LONGPRESS = 16;\nvar GH_TWODRAG = 32;\nvar GH_PINCH = 64;\nvar GH_INITSTATE = 127;\nvar GH_MOVE_THRESHOLD = 50;\nvar GH_ANGLE_THRESHOLD = 90; // Degrees\n// Timeout when waiting for gestures (ms)\n\nvar GH_MULTITOUCH_TIMEOUT = 250; // Maximum time between press and release for a tap (ms)\n\nvar GH_TAP_TIMEOUT = 1000; // Timeout when waiting for longpress (ms)\n\nvar GH_LONGPRESS_TIMEOUT = 1000; // Timeout when waiting to decide between PINCH and TWODRAG (ms)\n\nvar GH_TWOTOUCH_TIMEOUT = 50;\n\nvar GestureHandler = /*#__PURE__*/function () {\n function GestureHandler() {\n _classCallCheck(this, GestureHandler);\n\n this._target = null;\n this._state = GH_INITSTATE;\n this._tracked = [];\n this._ignored = [];\n this._waitingRelease = false;\n this._releaseStart = 0.0;\n this._longpressTimeoutId = null;\n this._twoTouchTimeoutId = null;\n this._boundEventHandler = this._eventHandler.bind(this);\n }\n\n _createClass(GestureHandler, [{\n key: \"attach\",\n value: function attach(target) {\n this.detach();\n this._target = target;\n\n this._target.addEventListener('touchstart', this._boundEventHandler);\n\n this._target.addEventListener('touchmove', this._boundEventHandler);\n\n this._target.addEventListener('touchend', this._boundEventHandler);\n\n this._target.addEventListener('touchcancel', this._boundEventHandler);\n }\n }, {\n key: \"detach\",\n value: function detach() {\n if (!this._target) {\n return;\n }\n\n this._stopLongpressTimeout();\n\n this._stopTwoTouchTimeout();\n\n this._target.removeEventListener('touchstart', this._boundEventHandler);\n\n this._target.removeEventListener('touchmove', this._boundEventHandler);\n\n this._target.removeEventListener('touchend', this._boundEventHandler);\n\n this._target.removeEventListener('touchcancel', this._boundEventHandler);\n\n this._target = null;\n }\n }, {\n key: \"_eventHandler\",\n value: function _eventHandler(e) {\n var fn;\n e.stopPropagation();\n e.preventDefault();\n\n switch (e.type) {\n case 'touchstart':\n fn = this._touchStart;\n break;\n\n case 'touchmove':\n fn = this._touchMove;\n break;\n\n case 'touchend':\n case 'touchcancel':\n fn = this._touchEnd;\n break;\n }\n\n for (var i = 0; i < e.changedTouches.length; i++) {\n var touch = e.changedTouches[i];\n fn.call(this, touch.identifier, touch.clientX, touch.clientY);\n }\n }\n }, {\n key: \"_touchStart\",\n value: function _touchStart(id, x, y) {\n // Ignore any new touches if there is already an active gesture,\n // or we're in a cleanup state\n if (this._hasDetectedGesture() || this._state === GH_NOGESTURE) {\n this._ignored.push(id);\n\n return;\n } // Did it take too long between touches that we should no longer\n // consider this a single gesture?\n\n\n if (this._tracked.length > 0 && Date.now() - this._tracked[0].started > GH_MULTITOUCH_TIMEOUT) {\n this._state = GH_NOGESTURE;\n\n this._ignored.push(id);\n\n return;\n } // If we're waiting for fingers to release then we should no longer\n // recognize new touches\n\n\n if (this._waitingRelease) {\n this._state = GH_NOGESTURE;\n\n this._ignored.push(id);\n\n return;\n }\n\n this._tracked.push({\n id: id,\n started: Date.now(),\n active: true,\n firstX: x,\n firstY: y,\n lastX: x,\n lastY: y,\n angle: 0\n });\n\n switch (this._tracked.length) {\n case 1:\n this._startLongpressTimeout();\n\n break;\n\n case 2:\n this._state &= ~(GH_ONETAP | GH_DRAG | GH_LONGPRESS);\n\n this._stopLongpressTimeout();\n\n break;\n\n case 3:\n this._state &= ~(GH_TWOTAP | GH_TWODRAG | GH_PINCH);\n break;\n\n default:\n this._state = GH_NOGESTURE;\n }\n }\n }, {\n key: \"_touchMove\",\n value: function _touchMove(id, x, y) {\n var touch = this._tracked.find(function (t) {\n return t.id === id;\n }); // If this is an update for a touch we're not tracking, ignore it\n\n\n if (touch === undefined) {\n return;\n } // Update the touches last position with the event coordinates\n\n\n touch.lastX = x;\n touch.lastY = y;\n var deltaX = x - touch.firstX;\n var deltaY = y - touch.firstY; // Update angle when the touch has moved\n\n if (touch.firstX !== touch.lastX || touch.firstY !== touch.lastY) {\n touch.angle = Math.atan2(deltaY, deltaX) * 180 / Math.PI;\n }\n\n if (!this._hasDetectedGesture()) {\n // Ignore moves smaller than the minimum threshold\n if (Math.hypot(deltaX, deltaY) < GH_MOVE_THRESHOLD) {\n return;\n } // Can't be a tap or long press as we've seen movement\n\n\n this._state &= ~(GH_ONETAP | GH_TWOTAP | GH_THREETAP | GH_LONGPRESS);\n\n this._stopLongpressTimeout();\n\n if (this._tracked.length !== 1) {\n this._state &= ~GH_DRAG;\n }\n\n if (this._tracked.length !== 2) {\n this._state &= ~(GH_TWODRAG | GH_PINCH);\n } // We need to figure out which of our different two touch gestures\n // this might be\n\n\n if (this._tracked.length === 2) {\n // The other touch is the one where the id doesn't match\n var prevTouch = this._tracked.find(function (t) {\n return t.id !== id;\n }); // How far the previous touch point has moved since start\n\n\n var prevDeltaMove = Math.hypot(prevTouch.firstX - prevTouch.lastX, prevTouch.firstY - prevTouch.lastY); // We know that the current touch moved far enough,\n // but unless both touches moved further than their\n // threshold we don't want to disqualify any gestures\n\n if (prevDeltaMove > GH_MOVE_THRESHOLD) {\n // The angle difference between the direction of the touch points\n var deltaAngle = Math.abs(touch.angle - prevTouch.angle);\n deltaAngle = Math.abs((deltaAngle + 180) % 360 - 180); // PINCH or TWODRAG can be eliminated depending on the angle\n\n if (deltaAngle > GH_ANGLE_THRESHOLD) {\n this._state &= ~GH_TWODRAG;\n } else {\n this._state &= ~GH_PINCH;\n }\n\n if (this._isTwoTouchTimeoutRunning()) {\n this._stopTwoTouchTimeout();\n }\n } else if (!this._isTwoTouchTimeoutRunning()) {\n // We can't determine the gesture right now, let's\n // wait and see if more events are on their way\n this._startTwoTouchTimeout();\n }\n }\n\n if (!this._hasDetectedGesture()) {\n return;\n }\n\n this._pushEvent('gesturestart');\n }\n\n this._pushEvent('gesturemove');\n }\n }, {\n key: \"_touchEnd\",\n value: function _touchEnd(id, x, y) {\n // Check if this is an ignored touch\n if (this._ignored.indexOf(id) !== -1) {\n // Remove this touch from ignored\n this._ignored.splice(this._ignored.indexOf(id), 1); // And reset the state if there are no more touches\n\n\n if (this._ignored.length === 0 && this._tracked.length === 0) {\n this._state = GH_INITSTATE;\n this._waitingRelease = false;\n }\n\n return;\n } // We got a touchend before the timer triggered,\n // this cannot result in a gesture anymore.\n\n\n if (!this._hasDetectedGesture() && this._isTwoTouchTimeoutRunning()) {\n this._stopTwoTouchTimeout();\n\n this._state = GH_NOGESTURE;\n } // Some gestures don't trigger until a touch is released\n\n\n if (!this._hasDetectedGesture()) {\n // Can't be a gesture that relies on movement\n this._state &= ~(GH_DRAG | GH_TWODRAG | GH_PINCH); // Or something that relies on more time\n\n this._state &= ~GH_LONGPRESS;\n\n this._stopLongpressTimeout();\n\n if (!this._waitingRelease) {\n this._releaseStart = Date.now();\n this._waitingRelease = true; // Can't be a tap that requires more touches than we current have\n\n switch (this._tracked.length) {\n case 1:\n this._state &= ~(GH_TWOTAP | GH_THREETAP);\n break;\n\n case 2:\n this._state &= ~(GH_ONETAP | GH_THREETAP);\n break;\n }\n }\n } // Waiting for all touches to release? (i.e. some tap)\n\n\n if (this._waitingRelease) {\n // Were all touches released at roughly the same time?\n if (Date.now() - this._releaseStart > GH_MULTITOUCH_TIMEOUT) {\n this._state = GH_NOGESTURE;\n } // Did too long time pass between press and release?\n\n\n if (this._tracked.some(function (t) {\n return Date.now() - t.started > GH_TAP_TIMEOUT;\n })) {\n this._state = GH_NOGESTURE;\n }\n\n var touch = this._tracked.find(function (t) {\n return t.id === id;\n });\n\n touch.active = false; // Are we still waiting for more releases?\n\n if (this._hasDetectedGesture()) {\n this._pushEvent('gesturestart');\n } else {\n // Have we reached a dead end?\n if (this._state !== GH_NOGESTURE) {\n return;\n }\n }\n }\n\n if (this._hasDetectedGesture()) {\n this._pushEvent('gestureend');\n } // Ignore any remaining touches until they are ended\n\n\n for (var i = 0; i < this._tracked.length; i++) {\n if (this._tracked[i].active) {\n this._ignored.push(this._tracked[i].id);\n }\n }\n\n this._tracked = [];\n this._state = GH_NOGESTURE; // Remove this touch from ignored if it's in there\n\n if (this._ignored.indexOf(id) !== -1) {\n this._ignored.splice(this._ignored.indexOf(id), 1);\n } // We reset the state if ignored is empty\n\n\n if (this._ignored.length === 0) {\n this._state = GH_INITSTATE;\n this._waitingRelease = false;\n }\n }\n }, {\n key: \"_hasDetectedGesture\",\n value: function _hasDetectedGesture() {\n if (this._state === GH_NOGESTURE) {\n return false;\n } // Check to see if the bitmask value is a power of 2\n // (i.e. only one bit set). If it is, we have a state.\n\n\n if (this._state & this._state - 1) {\n return false;\n } // For taps we also need to have all touches released\n // before we've fully detected the gesture\n\n\n if (this._state & (GH_ONETAP | GH_TWOTAP | GH_THREETAP)) {\n if (this._tracked.some(function (t) {\n return t.active;\n })) {\n return false;\n }\n }\n\n return true;\n }\n }, {\n key: \"_startLongpressTimeout\",\n value: function _startLongpressTimeout() {\n var _this = this;\n\n this._stopLongpressTimeout();\n\n this._longpressTimeoutId = setTimeout(function () {\n return _this._longpressTimeout();\n }, GH_LONGPRESS_TIMEOUT);\n }\n }, {\n key: \"_stopLongpressTimeout\",\n value: function _stopLongpressTimeout() {\n clearTimeout(this._longpressTimeoutId);\n this._longpressTimeoutId = null;\n }\n }, {\n key: \"_longpressTimeout\",\n value: function _longpressTimeout() {\n if (this._hasDetectedGesture()) {\n throw new Error(\"A longpress gesture failed, conflict with a different gesture\");\n }\n\n this._state = GH_LONGPRESS;\n\n this._pushEvent('gesturestart');\n }\n }, {\n key: \"_startTwoTouchTimeout\",\n value: function _startTwoTouchTimeout() {\n var _this2 = this;\n\n this._stopTwoTouchTimeout();\n\n this._twoTouchTimeoutId = setTimeout(function () {\n return _this2._twoTouchTimeout();\n }, GH_TWOTOUCH_TIMEOUT);\n }\n }, {\n key: \"_stopTwoTouchTimeout\",\n value: function _stopTwoTouchTimeout() {\n clearTimeout(this._twoTouchTimeoutId);\n this._twoTouchTimeoutId = null;\n }\n }, {\n key: \"_isTwoTouchTimeoutRunning\",\n value: function _isTwoTouchTimeoutRunning() {\n return this._twoTouchTimeoutId !== null;\n }\n }, {\n key: \"_twoTouchTimeout\",\n value: function _twoTouchTimeout() {\n if (this._tracked.length === 0) {\n throw new Error(\"A pinch or two drag gesture failed, no tracked touches\");\n } // How far each touch point has moved since start\n\n\n var avgM = this._getAverageMovement();\n\n var avgMoveH = Math.abs(avgM.x);\n var avgMoveV = Math.abs(avgM.y); // The difference in the distance between where\n // the touch points started and where they are now\n\n var avgD = this._getAverageDistance();\n\n var deltaTouchDistance = Math.abs(Math.hypot(avgD.first.x, avgD.first.y) - Math.hypot(avgD.last.x, avgD.last.y));\n\n if (avgMoveV < deltaTouchDistance && avgMoveH < deltaTouchDistance) {\n this._state = GH_PINCH;\n } else {\n this._state = GH_TWODRAG;\n }\n\n this._pushEvent('gesturestart');\n\n this._pushEvent('gesturemove');\n }\n }, {\n key: \"_pushEvent\",\n value: function _pushEvent(type) {\n var detail = {\n type: this._stateToGesture(this._state)\n }; // For most gesture events the current (average) position is the\n // most useful\n\n var avg = this._getPosition();\n\n var pos = avg.last; // However we have a slight distance to detect gestures, so for the\n // first gesture event we want to use the first positions we saw\n\n if (type === 'gesturestart') {\n pos = avg.first;\n } // For these gestures, we always want the event coordinates\n // to be where the gesture began, not the current touch location.\n\n\n switch (this._state) {\n case GH_TWODRAG:\n case GH_PINCH:\n pos = avg.first;\n break;\n }\n\n detail['clientX'] = pos.x;\n detail['clientY'] = pos.y; // FIXME: other coordinates?\n // Some gestures also have a magnitude\n\n if (this._state === GH_PINCH) {\n var distance = this._getAverageDistance();\n\n if (type === 'gesturestart') {\n detail['magnitudeX'] = distance.first.x;\n detail['magnitudeY'] = distance.first.y;\n } else {\n detail['magnitudeX'] = distance.last.x;\n detail['magnitudeY'] = distance.last.y;\n }\n } else if (this._state === GH_TWODRAG) {\n if (type === 'gesturestart') {\n detail['magnitudeX'] = 0.0;\n detail['magnitudeY'] = 0.0;\n } else {\n var movement = this._getAverageMovement();\n\n detail['magnitudeX'] = movement.x;\n detail['magnitudeY'] = movement.y;\n }\n }\n\n var gev = new CustomEvent(type, {\n detail: detail\n });\n\n this._target.dispatchEvent(gev);\n }\n }, {\n key: \"_stateToGesture\",\n value: function _stateToGesture(state) {\n switch (state) {\n case GH_ONETAP:\n return 'onetap';\n\n case GH_TWOTAP:\n return 'twotap';\n\n case GH_THREETAP:\n return 'threetap';\n\n case GH_DRAG:\n return 'drag';\n\n case GH_LONGPRESS:\n return 'longpress';\n\n case GH_TWODRAG:\n return 'twodrag';\n\n case GH_PINCH:\n return 'pinch';\n }\n\n throw new Error(\"Unknown gesture state: \" + state);\n }\n }, {\n key: \"_getPosition\",\n value: function _getPosition() {\n if (this._tracked.length === 0) {\n throw new Error(\"Failed to get gesture position, no tracked touches\");\n }\n\n var size = this._tracked.length;\n var fx = 0,\n fy = 0,\n lx = 0,\n ly = 0;\n\n for (var i = 0; i < this._tracked.length; i++) {\n fx += this._tracked[i].firstX;\n fy += this._tracked[i].firstY;\n lx += this._tracked[i].lastX;\n ly += this._tracked[i].lastY;\n }\n\n return {\n first: {\n x: fx / size,\n y: fy / size\n },\n last: {\n x: lx / size,\n y: ly / size\n }\n };\n }\n }, {\n key: \"_getAverageMovement\",\n value: function _getAverageMovement() {\n if (this._tracked.length === 0) {\n throw new Error(\"Failed to get gesture movement, no tracked touches\");\n }\n\n var totalH, totalV;\n totalH = totalV = 0;\n var size = this._tracked.length;\n\n for (var i = 0; i < this._tracked.length; i++) {\n totalH += this._tracked[i].lastX - this._tracked[i].firstX;\n totalV += this._tracked[i].lastY - this._tracked[i].firstY;\n }\n\n return {\n x: totalH / size,\n y: totalV / size\n };\n }\n }, {\n key: \"_getAverageDistance\",\n value: function _getAverageDistance() {\n if (this._tracked.length === 0) {\n throw new Error(\"Failed to get gesture distance, no tracked touches\");\n } // Distance between the first and last tracked touches\n\n\n var first = this._tracked[0];\n var last = this._tracked[this._tracked.length - 1];\n var fdx = Math.abs(last.firstX - first.firstX);\n var fdy = Math.abs(last.firstY - first.firstY);\n var ldx = Math.abs(last.lastX - first.lastX);\n var ldy = Math.abs(last.lastY - first.lastY);\n return {\n first: {\n x: fdx,\n y: fdy\n },\n last: {\n x: ldx,\n y: ldy\n }\n };\n }\n }]);\n\n return GestureHandler;\n}();\n\nexports[\"default\"] = GestureHandler;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar Log = _interopRequireWildcard(require(\"../util/logging.js\"));\n\nvar _events = require(\"../util/events.js\");\n\nvar KeyboardUtil = _interopRequireWildcard(require(\"./util.js\"));\n\nvar _keysym = _interopRequireDefault(require(\"./keysym.js\"));\n\nvar browser = _interopRequireWildcard(require(\"../util/browser.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n//\n// Keyboard event handler\n//\nvar Keyboard = /*#__PURE__*/function () {\n function Keyboard(target) {\n _classCallCheck(this, Keyboard);\n\n this._target = target || null;\n this._keyDownList = {}; // List of depressed keys\n // (even if they are happy)\n\n this._altGrArmed = false; // Windows AltGr detection\n // keep these here so we can refer to them later\n\n this._eventHandlers = {\n 'keyup': this._handleKeyUp.bind(this),\n 'keydown': this._handleKeyDown.bind(this),\n 'blur': this._allKeysUp.bind(this)\n }; // ===== EVENT HANDLERS =====\n\n this.onkeyevent = function () {}; // Handler for key press/release\n\n } // ===== PRIVATE METHODS =====\n\n\n _createClass(Keyboard, [{\n key: \"_sendKeyEvent\",\n value: function _sendKeyEvent(keysym, code, down) {\n if (down) {\n this._keyDownList[code] = keysym;\n } else {\n // Do we really think this key is down?\n if (!(code in this._keyDownList)) {\n return;\n }\n\n delete this._keyDownList[code];\n }\n\n Log.Debug(\"onkeyevent \" + (down ? \"down\" : \"up\") + \", keysym: \" + keysym, \", code: \" + code);\n this.onkeyevent(keysym, code, down);\n }\n }, {\n key: \"_getKeyCode\",\n value: function _getKeyCode(e) {\n var code = KeyboardUtil.getKeycode(e);\n\n if (code !== 'Unidentified') {\n return code;\n } // Unstable, but we don't have anything else to go on\n\n\n if (e.keyCode) {\n // 229 is used for composition events\n if (e.keyCode !== 229) {\n return 'Platform' + e.keyCode;\n }\n } // A precursor to the final DOM3 standard. Unfortunately it\n // is not layout independent, so it is as bad as using keyCode\n\n\n if (e.keyIdentifier) {\n // Non-character key?\n if (e.keyIdentifier.substr(0, 2) !== 'U+') {\n return e.keyIdentifier;\n }\n\n var codepoint = parseInt(e.keyIdentifier.substr(2), 16);\n\n var _char = String.fromCharCode(codepoint).toUpperCase();\n\n return 'Platform' + _char.charCodeAt();\n }\n\n return 'Unidentified';\n }\n }, {\n key: \"_handleKeyDown\",\n value: function _handleKeyDown(e) {\n var code = this._getKeyCode(e);\n\n var keysym = KeyboardUtil.getKeysym(e); // Windows doesn't have a proper AltGr, but handles it using\n // fake Ctrl+Alt. However the remote end might not be Windows,\n // so we need to merge those in to a single AltGr event. We\n // detect this case by seeing the two key events directly after\n // each other with a very short time between them (<50ms).\n\n if (this._altGrArmed) {\n this._altGrArmed = false;\n clearTimeout(this._altGrTimeout);\n\n if (code === \"AltRight\" && e.timeStamp - this._altGrCtrlTime < 50) {\n // FIXME: We fail to detect this if either Ctrl key is\n // first manually pressed as Windows then no\n // longer sends the fake Ctrl down event. It\n // does however happily send real Ctrl events\n // even when AltGr is already down. Some\n // browsers detect this for us though and set the\n // key to \"AltGraph\".\n keysym = _keysym[\"default\"].XK_ISO_Level3_Shift;\n } else {\n this._sendKeyEvent(_keysym[\"default\"].XK_Control_L, \"ControlLeft\", true);\n }\n } // We cannot handle keys we cannot track, but we also need\n // to deal with virtual keyboards which omit key info\n\n\n if (code === 'Unidentified') {\n if (keysym) {\n // If it's a virtual keyboard then it should be\n // sufficient to just send press and release right\n // after each other\n this._sendKeyEvent(keysym, code, true);\n\n this._sendKeyEvent(keysym, code, false);\n }\n\n (0, _events.stopEvent)(e);\n return;\n } // Alt behaves more like AltGraph on macOS, so shuffle the\n // keys around a bit to make things more sane for the remote\n // server. This method is used by RealVNC and TigerVNC (and\n // possibly others).\n\n\n if (browser.isMac() || browser.isIOS()) {\n switch (keysym) {\n case _keysym[\"default\"].XK_Super_L:\n keysym = _keysym[\"default\"].XK_Alt_L;\n break;\n\n case _keysym[\"default\"].XK_Super_R:\n keysym = _keysym[\"default\"].XK_Super_L;\n break;\n\n case _keysym[\"default\"].XK_Alt_L:\n keysym = _keysym[\"default\"].XK_Mode_switch;\n break;\n\n case _keysym[\"default\"].XK_Alt_R:\n keysym = _keysym[\"default\"].XK_ISO_Level3_Shift;\n break;\n }\n } // Is this key already pressed? If so, then we must use the\n // same keysym or we'll confuse the server\n\n\n if (code in this._keyDownList) {\n keysym = this._keyDownList[code];\n } // macOS doesn't send proper key events for modifiers, only\n // state change events. That gets extra confusing for CapsLock\n // which toggles on each press, but not on release. So pretend\n // it was a quick press and release of the button.\n\n\n if ((browser.isMac() || browser.isIOS()) && code === 'CapsLock') {\n this._sendKeyEvent(_keysym[\"default\"].XK_Caps_Lock, 'CapsLock', true);\n\n this._sendKeyEvent(_keysym[\"default\"].XK_Caps_Lock, 'CapsLock', false);\n\n (0, _events.stopEvent)(e);\n return;\n } // Windows doesn't send proper key releases for a bunch of\n // Japanese IM keys so we have to fake the release right away\n\n\n var jpBadKeys = [_keysym[\"default\"].XK_Zenkaku_Hankaku, _keysym[\"default\"].XK_Eisu_toggle, _keysym[\"default\"].XK_Katakana, _keysym[\"default\"].XK_Hiragana, _keysym[\"default\"].XK_Romaji];\n\n if (browser.isWindows() && jpBadKeys.includes(keysym)) {\n this._sendKeyEvent(keysym, code, true);\n\n this._sendKeyEvent(keysym, code, false);\n\n (0, _events.stopEvent)(e);\n return;\n }\n\n (0, _events.stopEvent)(e); // Possible start of AltGr sequence? (see above)\n\n if (code === \"ControlLeft\" && browser.isWindows() && !(\"ControlLeft\" in this._keyDownList)) {\n this._altGrArmed = true;\n this._altGrTimeout = setTimeout(this._handleAltGrTimeout.bind(this), 100);\n this._altGrCtrlTime = e.timeStamp;\n return;\n }\n\n this._sendKeyEvent(keysym, code, true);\n }\n }, {\n key: \"_handleKeyUp\",\n value: function _handleKeyUp(e) {\n (0, _events.stopEvent)(e);\n\n var code = this._getKeyCode(e); // We can't get a release in the middle of an AltGr sequence, so\n // abort that detection\n\n\n if (this._altGrArmed) {\n this._altGrArmed = false;\n clearTimeout(this._altGrTimeout);\n\n this._sendKeyEvent(_keysym[\"default\"].XK_Control_L, \"ControlLeft\", true);\n } // See comment in _handleKeyDown()\n\n\n if ((browser.isMac() || browser.isIOS()) && code === 'CapsLock') {\n this._sendKeyEvent(_keysym[\"default\"].XK_Caps_Lock, 'CapsLock', true);\n\n this._sendKeyEvent(_keysym[\"default\"].XK_Caps_Lock, 'CapsLock', false);\n\n return;\n }\n\n this._sendKeyEvent(this._keyDownList[code], code, false); // Windows has a rather nasty bug where it won't send key\n // release events for a Shift button if the other Shift is still\n // pressed\n\n\n if (browser.isWindows() && (code === 'ShiftLeft' || code === 'ShiftRight')) {\n if ('ShiftRight' in this._keyDownList) {\n this._sendKeyEvent(this._keyDownList['ShiftRight'], 'ShiftRight', false);\n }\n\n if ('ShiftLeft' in this._keyDownList) {\n this._sendKeyEvent(this._keyDownList['ShiftLeft'], 'ShiftLeft', false);\n }\n }\n }\n }, {\n key: \"_handleAltGrTimeout\",\n value: function _handleAltGrTimeout() {\n this._altGrArmed = false;\n clearTimeout(this._altGrTimeout);\n\n this._sendKeyEvent(_keysym[\"default\"].XK_Control_L, \"ControlLeft\", true);\n }\n }, {\n key: \"_allKeysUp\",\n value: function _allKeysUp() {\n Log.Debug(\">> Keyboard.allKeysUp\");\n\n for (var code in this._keyDownList) {\n this._sendKeyEvent(this._keyDownList[code], code, false);\n }\n\n Log.Debug(\"<< Keyboard.allKeysUp\");\n } // ===== PUBLIC METHODS =====\n\n }, {\n key: \"grab\",\n value: function grab() {\n //Log.Debug(\">> Keyboard.grab\");\n this._target.addEventListener('keydown', this._eventHandlers.keydown);\n\n this._target.addEventListener('keyup', this._eventHandlers.keyup); // Release (key up) if window loses focus\n\n\n window.addEventListener('blur', this._eventHandlers.blur); //Log.Debug(\"<< Keyboard.grab\");\n }\n }, {\n key: \"ungrab\",\n value: function ungrab() {\n //Log.Debug(\">> Keyboard.ungrab\");\n this._target.removeEventListener('keydown', this._eventHandlers.keydown);\n\n this._target.removeEventListener('keyup', this._eventHandlers.keyup);\n\n window.removeEventListener('blur', this._eventHandlers.blur); // Release (key up) all keys that are in a down state\n\n this._allKeysUp(); //Log.Debug(\">> Keyboard.ungrab\");\n\n }\n }]);\n\n return Keyboard;\n}();\n\nexports[\"default\"] = Keyboard;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/* eslint-disable key-spacing */\nvar _default = {\n XK_VoidSymbol: 0xffffff,\n\n /* Void symbol */\n XK_BackSpace: 0xff08,\n\n /* Back space, back char */\n XK_Tab: 0xff09,\n XK_Linefeed: 0xff0a,\n\n /* Linefeed, LF */\n XK_Clear: 0xff0b,\n XK_Return: 0xff0d,\n\n /* Return, enter */\n XK_Pause: 0xff13,\n\n /* Pause, hold */\n XK_Scroll_Lock: 0xff14,\n XK_Sys_Req: 0xff15,\n XK_Escape: 0xff1b,\n XK_Delete: 0xffff,\n\n /* Delete, rubout */\n\n /* International & multi-key character composition */\n XK_Multi_key: 0xff20,\n\n /* Multi-key character compose */\n XK_Codeinput: 0xff37,\n XK_SingleCandidate: 0xff3c,\n XK_MultipleCandidate: 0xff3d,\n XK_PreviousCandidate: 0xff3e,\n\n /* Japanese keyboard support */\n XK_Kanji: 0xff21,\n\n /* Kanji, Kanji convert */\n XK_Muhenkan: 0xff22,\n\n /* Cancel Conversion */\n XK_Henkan_Mode: 0xff23,\n\n /* Start/Stop Conversion */\n XK_Henkan: 0xff23,\n\n /* Alias for Henkan_Mode */\n XK_Romaji: 0xff24,\n\n /* to Romaji */\n XK_Hiragana: 0xff25,\n\n /* to Hiragana */\n XK_Katakana: 0xff26,\n\n /* to Katakana */\n XK_Hiragana_Katakana: 0xff27,\n\n /* Hiragana/Katakana toggle */\n XK_Zenkaku: 0xff28,\n\n /* to Zenkaku */\n XK_Hankaku: 0xff29,\n\n /* to Hankaku */\n XK_Zenkaku_Hankaku: 0xff2a,\n\n /* Zenkaku/Hankaku toggle */\n XK_Touroku: 0xff2b,\n\n /* Add to Dictionary */\n XK_Massyo: 0xff2c,\n\n /* Delete from Dictionary */\n XK_Kana_Lock: 0xff2d,\n\n /* Kana Lock */\n XK_Kana_Shift: 0xff2e,\n\n /* Kana Shift */\n XK_Eisu_Shift: 0xff2f,\n\n /* Alphanumeric Shift */\n XK_Eisu_toggle: 0xff30,\n\n /* Alphanumeric toggle */\n XK_Kanji_Bangou: 0xff37,\n\n /* Codeinput */\n XK_Zen_Koho: 0xff3d,\n\n /* Multiple/All Candidate(s) */\n XK_Mae_Koho: 0xff3e,\n\n /* Previous Candidate */\n\n /* Cursor control & motion */\n XK_Home: 0xff50,\n XK_Left: 0xff51,\n\n /* Move left, left arrow */\n XK_Up: 0xff52,\n\n /* Move up, up arrow */\n XK_Right: 0xff53,\n\n /* Move right, right arrow */\n XK_Down: 0xff54,\n\n /* Move down, down arrow */\n XK_Prior: 0xff55,\n\n /* Prior, previous */\n XK_Page_Up: 0xff55,\n XK_Next: 0xff56,\n\n /* Next */\n XK_Page_Down: 0xff56,\n XK_End: 0xff57,\n\n /* EOL */\n XK_Begin: 0xff58,\n\n /* BOL */\n\n /* Misc functions */\n XK_Select: 0xff60,\n\n /* Select, mark */\n XK_Print: 0xff61,\n XK_Execute: 0xff62,\n\n /* Execute, run, do */\n XK_Insert: 0xff63,\n\n /* Insert, insert here */\n XK_Undo: 0xff65,\n XK_Redo: 0xff66,\n\n /* Redo, again */\n XK_Menu: 0xff67,\n XK_Find: 0xff68,\n\n /* Find, search */\n XK_Cancel: 0xff69,\n\n /* Cancel, stop, abort, exit */\n XK_Help: 0xff6a,\n\n /* Help */\n XK_Break: 0xff6b,\n XK_Mode_switch: 0xff7e,\n\n /* Character set switch */\n XK_script_switch: 0xff7e,\n\n /* Alias for mode_switch */\n XK_Num_Lock: 0xff7f,\n\n /* Keypad functions, keypad numbers cleverly chosen to map to ASCII */\n XK_KP_Space: 0xff80,\n\n /* Space */\n XK_KP_Tab: 0xff89,\n XK_KP_Enter: 0xff8d,\n\n /* Enter */\n XK_KP_F1: 0xff91,\n\n /* PF1, KP_A, ... */\n XK_KP_F2: 0xff92,\n XK_KP_F3: 0xff93,\n XK_KP_F4: 0xff94,\n XK_KP_Home: 0xff95,\n XK_KP_Left: 0xff96,\n XK_KP_Up: 0xff97,\n XK_KP_Right: 0xff98,\n XK_KP_Down: 0xff99,\n XK_KP_Prior: 0xff9a,\n XK_KP_Page_Up: 0xff9a,\n XK_KP_Next: 0xff9b,\n XK_KP_Page_Down: 0xff9b,\n XK_KP_End: 0xff9c,\n XK_KP_Begin: 0xff9d,\n XK_KP_Insert: 0xff9e,\n XK_KP_Delete: 0xff9f,\n XK_KP_Equal: 0xffbd,\n\n /* Equals */\n XK_KP_Multiply: 0xffaa,\n XK_KP_Add: 0xffab,\n XK_KP_Separator: 0xffac,\n\n /* Separator, often comma */\n XK_KP_Subtract: 0xffad,\n XK_KP_Decimal: 0xffae,\n XK_KP_Divide: 0xffaf,\n XK_KP_0: 0xffb0,\n XK_KP_1: 0xffb1,\n XK_KP_2: 0xffb2,\n XK_KP_3: 0xffb3,\n XK_KP_4: 0xffb4,\n XK_KP_5: 0xffb5,\n XK_KP_6: 0xffb6,\n XK_KP_7: 0xffb7,\n XK_KP_8: 0xffb8,\n XK_KP_9: 0xffb9,\n\n /*\n * Auxiliary functions; note the duplicate definitions for left and right\n * function keys; Sun keyboards and a few other manufacturers have such\n * function key groups on the left and/or right sides of the keyboard.\n * We've not found a keyboard with more than 35 function keys total.\n */\n XK_F1: 0xffbe,\n XK_F2: 0xffbf,\n XK_F3: 0xffc0,\n XK_F4: 0xffc1,\n XK_F5: 0xffc2,\n XK_F6: 0xffc3,\n XK_F7: 0xffc4,\n XK_F8: 0xffc5,\n XK_F9: 0xffc6,\n XK_F10: 0xffc7,\n XK_F11: 0xffc8,\n XK_L1: 0xffc8,\n XK_F12: 0xffc9,\n XK_L2: 0xffc9,\n XK_F13: 0xffca,\n XK_L3: 0xffca,\n XK_F14: 0xffcb,\n XK_L4: 0xffcb,\n XK_F15: 0xffcc,\n XK_L5: 0xffcc,\n XK_F16: 0xffcd,\n XK_L6: 0xffcd,\n XK_F17: 0xffce,\n XK_L7: 0xffce,\n XK_F18: 0xffcf,\n XK_L8: 0xffcf,\n XK_F19: 0xffd0,\n XK_L9: 0xffd0,\n XK_F20: 0xffd1,\n XK_L10: 0xffd1,\n XK_F21: 0xffd2,\n XK_R1: 0xffd2,\n XK_F22: 0xffd3,\n XK_R2: 0xffd3,\n XK_F23: 0xffd4,\n XK_R3: 0xffd4,\n XK_F24: 0xffd5,\n XK_R4: 0xffd5,\n XK_F25: 0xffd6,\n XK_R5: 0xffd6,\n XK_F26: 0xffd7,\n XK_R6: 0xffd7,\n XK_F27: 0xffd8,\n XK_R7: 0xffd8,\n XK_F28: 0xffd9,\n XK_R8: 0xffd9,\n XK_F29: 0xffda,\n XK_R9: 0xffda,\n XK_F30: 0xffdb,\n XK_R10: 0xffdb,\n XK_F31: 0xffdc,\n XK_R11: 0xffdc,\n XK_F32: 0xffdd,\n XK_R12: 0xffdd,\n XK_F33: 0xffde,\n XK_R13: 0xffde,\n XK_F34: 0xffdf,\n XK_R14: 0xffdf,\n XK_F35: 0xffe0,\n XK_R15: 0xffe0,\n\n /* Modifiers */\n XK_Shift_L: 0xffe1,\n\n /* Left shift */\n XK_Shift_R: 0xffe2,\n\n /* Right shift */\n XK_Control_L: 0xffe3,\n\n /* Left control */\n XK_Control_R: 0xffe4,\n\n /* Right control */\n XK_Caps_Lock: 0xffe5,\n\n /* Caps lock */\n XK_Shift_Lock: 0xffe6,\n\n /* Shift lock */\n XK_Meta_L: 0xffe7,\n\n /* Left meta */\n XK_Meta_R: 0xffe8,\n\n /* Right meta */\n XK_Alt_L: 0xffe9,\n\n /* Left alt */\n XK_Alt_R: 0xffea,\n\n /* Right alt */\n XK_Super_L: 0xffeb,\n\n /* Left super */\n XK_Super_R: 0xffec,\n\n /* Right super */\n XK_Hyper_L: 0xffed,\n\n /* Left hyper */\n XK_Hyper_R: 0xffee,\n\n /* Right hyper */\n\n /*\n * Keyboard (XKB) Extension function and modifier keys\n * (from Appendix C of \"The X Keyboard Extension: Protocol Specification\")\n * Byte 3 = 0xfe\n */\n XK_ISO_Level3_Shift: 0xfe03,\n\n /* AltGr */\n XK_ISO_Next_Group: 0xfe08,\n XK_ISO_Prev_Group: 0xfe0a,\n XK_ISO_First_Group: 0xfe0c,\n XK_ISO_Last_Group: 0xfe0e,\n\n /*\n * Latin 1\n * (ISO/IEC 8859-1: Unicode U+0020..U+00FF)\n * Byte 3: 0\n */\n XK_space: 0x0020,\n\n /* U+0020 SPACE */\n XK_exclam: 0x0021,\n\n /* U+0021 EXCLAMATION MARK */\n XK_quotedbl: 0x0022,\n\n /* U+0022 QUOTATION MARK */\n XK_numbersign: 0x0023,\n\n /* U+0023 NUMBER SIGN */\n XK_dollar: 0x0024,\n\n /* U+0024 DOLLAR SIGN */\n XK_percent: 0x0025,\n\n /* U+0025 PERCENT SIGN */\n XK_ampersand: 0x0026,\n\n /* U+0026 AMPERSAND */\n XK_apostrophe: 0x0027,\n\n /* U+0027 APOSTROPHE */\n XK_quoteright: 0x0027,\n\n /* deprecated */\n XK_parenleft: 0x0028,\n\n /* U+0028 LEFT PARENTHESIS */\n XK_parenright: 0x0029,\n\n /* U+0029 RIGHT PARENTHESIS */\n XK_asterisk: 0x002a,\n\n /* U+002A ASTERISK */\n XK_plus: 0x002b,\n\n /* U+002B PLUS SIGN */\n XK_comma: 0x002c,\n\n /* U+002C COMMA */\n XK_minus: 0x002d,\n\n /* U+002D HYPHEN-MINUS */\n XK_period: 0x002e,\n\n /* U+002E FULL STOP */\n XK_slash: 0x002f,\n\n /* U+002F SOLIDUS */\n XK_0: 0x0030,\n\n /* U+0030 DIGIT ZERO */\n XK_1: 0x0031,\n\n /* U+0031 DIGIT ONE */\n XK_2: 0x0032,\n\n /* U+0032 DIGIT TWO */\n XK_3: 0x0033,\n\n /* U+0033 DIGIT THREE */\n XK_4: 0x0034,\n\n /* U+0034 DIGIT FOUR */\n XK_5: 0x0035,\n\n /* U+0035 DIGIT FIVE */\n XK_6: 0x0036,\n\n /* U+0036 DIGIT SIX */\n XK_7: 0x0037,\n\n /* U+0037 DIGIT SEVEN */\n XK_8: 0x0038,\n\n /* U+0038 DIGIT EIGHT */\n XK_9: 0x0039,\n\n /* U+0039 DIGIT NINE */\n XK_colon: 0x003a,\n\n /* U+003A COLON */\n XK_semicolon: 0x003b,\n\n /* U+003B SEMICOLON */\n XK_less: 0x003c,\n\n /* U+003C LESS-THAN SIGN */\n XK_equal: 0x003d,\n\n /* U+003D EQUALS SIGN */\n XK_greater: 0x003e,\n\n /* U+003E GREATER-THAN SIGN */\n XK_question: 0x003f,\n\n /* U+003F QUESTION MARK */\n XK_at: 0x0040,\n\n /* U+0040 COMMERCIAL AT */\n XK_A: 0x0041,\n\n /* U+0041 LATIN CAPITAL LETTER A */\n XK_B: 0x0042,\n\n /* U+0042 LATIN CAPITAL LETTER B */\n XK_C: 0x0043,\n\n /* U+0043 LATIN CAPITAL LETTER C */\n XK_D: 0x0044,\n\n /* U+0044 LATIN CAPITAL LETTER D */\n XK_E: 0x0045,\n\n /* U+0045 LATIN CAPITAL LETTER E */\n XK_F: 0x0046,\n\n /* U+0046 LATIN CAPITAL LETTER F */\n XK_G: 0x0047,\n\n /* U+0047 LATIN CAPITAL LETTER G */\n XK_H: 0x0048,\n\n /* U+0048 LATIN CAPITAL LETTER H */\n XK_I: 0x0049,\n\n /* U+0049 LATIN CAPITAL LETTER I */\n XK_J: 0x004a,\n\n /* U+004A LATIN CAPITAL LETTER J */\n XK_K: 0x004b,\n\n /* U+004B LATIN CAPITAL LETTER K */\n XK_L: 0x004c,\n\n /* U+004C LATIN CAPITAL LETTER L */\n XK_M: 0x004d,\n\n /* U+004D LATIN CAPITAL LETTER M */\n XK_N: 0x004e,\n\n /* U+004E LATIN CAPITAL LETTER N */\n XK_O: 0x004f,\n\n /* U+004F LATIN CAPITAL LETTER O */\n XK_P: 0x0050,\n\n /* U+0050 LATIN CAPITAL LETTER P */\n XK_Q: 0x0051,\n\n /* U+0051 LATIN CAPITAL LETTER Q */\n XK_R: 0x0052,\n\n /* U+0052 LATIN CAPITAL LETTER R */\n XK_S: 0x0053,\n\n /* U+0053 LATIN CAPITAL LETTER S */\n XK_T: 0x0054,\n\n /* U+0054 LATIN CAPITAL LETTER T */\n XK_U: 0x0055,\n\n /* U+0055 LATIN CAPITAL LETTER U */\n XK_V: 0x0056,\n\n /* U+0056 LATIN CAPITAL LETTER V */\n XK_W: 0x0057,\n\n /* U+0057 LATIN CAPITAL LETTER W */\n XK_X: 0x0058,\n\n /* U+0058 LATIN CAPITAL LETTER X */\n XK_Y: 0x0059,\n\n /* U+0059 LATIN CAPITAL LETTER Y */\n XK_Z: 0x005a,\n\n /* U+005A LATIN CAPITAL LETTER Z */\n XK_bracketleft: 0x005b,\n\n /* U+005B LEFT SQUARE BRACKET */\n XK_backslash: 0x005c,\n\n /* U+005C REVERSE SOLIDUS */\n XK_bracketright: 0x005d,\n\n /* U+005D RIGHT SQUARE BRACKET */\n XK_asciicircum: 0x005e,\n\n /* U+005E CIRCUMFLEX ACCENT */\n XK_underscore: 0x005f,\n\n /* U+005F LOW LINE */\n XK_grave: 0x0060,\n\n /* U+0060 GRAVE ACCENT */\n XK_quoteleft: 0x0060,\n\n /* deprecated */\n XK_a: 0x0061,\n\n /* U+0061 LATIN SMALL LETTER A */\n XK_b: 0x0062,\n\n /* U+0062 LATIN SMALL LETTER B */\n XK_c: 0x0063,\n\n /* U+0063 LATIN SMALL LETTER C */\n XK_d: 0x0064,\n\n /* U+0064 LATIN SMALL LETTER D */\n XK_e: 0x0065,\n\n /* U+0065 LATIN SMALL LETTER E */\n XK_f: 0x0066,\n\n /* U+0066 LATIN SMALL LETTER F */\n XK_g: 0x0067,\n\n /* U+0067 LATIN SMALL LETTER G */\n XK_h: 0x0068,\n\n /* U+0068 LATIN SMALL LETTER H */\n XK_i: 0x0069,\n\n /* U+0069 LATIN SMALL LETTER I */\n XK_j: 0x006a,\n\n /* U+006A LATIN SMALL LETTER J */\n XK_k: 0x006b,\n\n /* U+006B LATIN SMALL LETTER K */\n XK_l: 0x006c,\n\n /* U+006C LATIN SMALL LETTER L */\n XK_m: 0x006d,\n\n /* U+006D LATIN SMALL LETTER M */\n XK_n: 0x006e,\n\n /* U+006E LATIN SMALL LETTER N */\n XK_o: 0x006f,\n\n /* U+006F LATIN SMALL LETTER O */\n XK_p: 0x0070,\n\n /* U+0070 LATIN SMALL LETTER P */\n XK_q: 0x0071,\n\n /* U+0071 LATIN SMALL LETTER Q */\n XK_r: 0x0072,\n\n /* U+0072 LATIN SMALL LETTER R */\n XK_s: 0x0073,\n\n /* U+0073 LATIN SMALL LETTER S */\n XK_t: 0x0074,\n\n /* U+0074 LATIN SMALL LETTER T */\n XK_u: 0x0075,\n\n /* U+0075 LATIN SMALL LETTER U */\n XK_v: 0x0076,\n\n /* U+0076 LATIN SMALL LETTER V */\n XK_w: 0x0077,\n\n /* U+0077 LATIN SMALL LETTER W */\n XK_x: 0x0078,\n\n /* U+0078 LATIN SMALL LETTER X */\n XK_y: 0x0079,\n\n /* U+0079 LATIN SMALL LETTER Y */\n XK_z: 0x007a,\n\n /* U+007A LATIN SMALL LETTER Z */\n XK_braceleft: 0x007b,\n\n /* U+007B LEFT CURLY BRACKET */\n XK_bar: 0x007c,\n\n /* U+007C VERTICAL LINE */\n XK_braceright: 0x007d,\n\n /* U+007D RIGHT CURLY BRACKET */\n XK_asciitilde: 0x007e,\n\n /* U+007E TILDE */\n XK_nobreakspace: 0x00a0,\n\n /* U+00A0 NO-BREAK SPACE */\n XK_exclamdown: 0x00a1,\n\n /* U+00A1 INVERTED EXCLAMATION MARK */\n XK_cent: 0x00a2,\n\n /* U+00A2 CENT SIGN */\n XK_sterling: 0x00a3,\n\n /* U+00A3 POUND SIGN */\n XK_currency: 0x00a4,\n\n /* U+00A4 CURRENCY SIGN */\n XK_yen: 0x00a5,\n\n /* U+00A5 YEN SIGN */\n XK_brokenbar: 0x00a6,\n\n /* U+00A6 BROKEN BAR */\n XK_section: 0x00a7,\n\n /* U+00A7 SECTION SIGN */\n XK_diaeresis: 0x00a8,\n\n /* U+00A8 DIAERESIS */\n XK_copyright: 0x00a9,\n\n /* U+00A9 COPYRIGHT SIGN */\n XK_ordfeminine: 0x00aa,\n\n /* U+00AA FEMININE ORDINAL INDICATOR */\n XK_guillemotleft: 0x00ab,\n\n /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */\n XK_notsign: 0x00ac,\n\n /* U+00AC NOT SIGN */\n XK_hyphen: 0x00ad,\n\n /* U+00AD SOFT HYPHEN */\n XK_registered: 0x00ae,\n\n /* U+00AE REGISTERED SIGN */\n XK_macron: 0x00af,\n\n /* U+00AF MACRON */\n XK_degree: 0x00b0,\n\n /* U+00B0 DEGREE SIGN */\n XK_plusminus: 0x00b1,\n\n /* U+00B1 PLUS-MINUS SIGN */\n XK_twosuperior: 0x00b2,\n\n /* U+00B2 SUPERSCRIPT TWO */\n XK_threesuperior: 0x00b3,\n\n /* U+00B3 SUPERSCRIPT THREE */\n XK_acute: 0x00b4,\n\n /* U+00B4 ACUTE ACCENT */\n XK_mu: 0x00b5,\n\n /* U+00B5 MICRO SIGN */\n XK_paragraph: 0x00b6,\n\n /* U+00B6 PILCROW SIGN */\n XK_periodcentered: 0x00b7,\n\n /* U+00B7 MIDDLE DOT */\n XK_cedilla: 0x00b8,\n\n /* U+00B8 CEDILLA */\n XK_onesuperior: 0x00b9,\n\n /* U+00B9 SUPERSCRIPT ONE */\n XK_masculine: 0x00ba,\n\n /* U+00BA MASCULINE ORDINAL INDICATOR */\n XK_guillemotright: 0x00bb,\n\n /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */\n XK_onequarter: 0x00bc,\n\n /* U+00BC VULGAR FRACTION ONE QUARTER */\n XK_onehalf: 0x00bd,\n\n /* U+00BD VULGAR FRACTION ONE HALF */\n XK_threequarters: 0x00be,\n\n /* U+00BE VULGAR FRACTION THREE QUARTERS */\n XK_questiondown: 0x00bf,\n\n /* U+00BF INVERTED QUESTION MARK */\n XK_Agrave: 0x00c0,\n\n /* U+00C0 LATIN CAPITAL LETTER A WITH GRAVE */\n XK_Aacute: 0x00c1,\n\n /* U+00C1 LATIN CAPITAL LETTER A WITH ACUTE */\n XK_Acircumflex: 0x00c2,\n\n /* U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX */\n XK_Atilde: 0x00c3,\n\n /* U+00C3 LATIN CAPITAL LETTER A WITH TILDE */\n XK_Adiaeresis: 0x00c4,\n\n /* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */\n XK_Aring: 0x00c5,\n\n /* U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE */\n XK_AE: 0x00c6,\n\n /* U+00C6 LATIN CAPITAL LETTER AE */\n XK_Ccedilla: 0x00c7,\n\n /* U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA */\n XK_Egrave: 0x00c8,\n\n /* U+00C8 LATIN CAPITAL LETTER E WITH GRAVE */\n XK_Eacute: 0x00c9,\n\n /* U+00C9 LATIN CAPITAL LETTER E WITH ACUTE */\n XK_Ecircumflex: 0x00ca,\n\n /* U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX */\n XK_Ediaeresis: 0x00cb,\n\n /* U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS */\n XK_Igrave: 0x00cc,\n\n /* U+00CC LATIN CAPITAL LETTER I WITH GRAVE */\n XK_Iacute: 0x00cd,\n\n /* U+00CD LATIN CAPITAL LETTER I WITH ACUTE */\n XK_Icircumflex: 0x00ce,\n\n /* U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX */\n XK_Idiaeresis: 0x00cf,\n\n /* U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS */\n XK_ETH: 0x00d0,\n\n /* U+00D0 LATIN CAPITAL LETTER ETH */\n XK_Eth: 0x00d0,\n\n /* deprecated */\n XK_Ntilde: 0x00d1,\n\n /* U+00D1 LATIN CAPITAL LETTER N WITH TILDE */\n XK_Ograve: 0x00d2,\n\n /* U+00D2 LATIN CAPITAL LETTER O WITH GRAVE */\n XK_Oacute: 0x00d3,\n\n /* U+00D3 LATIN CAPITAL LETTER O WITH ACUTE */\n XK_Ocircumflex: 0x00d4,\n\n /* U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX */\n XK_Otilde: 0x00d5,\n\n /* U+00D5 LATIN CAPITAL LETTER O WITH TILDE */\n XK_Odiaeresis: 0x00d6,\n\n /* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */\n XK_multiply: 0x00d7,\n\n /* U+00D7 MULTIPLICATION SIGN */\n XK_Oslash: 0x00d8,\n\n /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */\n XK_Ooblique: 0x00d8,\n\n /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */\n XK_Ugrave: 0x00d9,\n\n /* U+00D9 LATIN CAPITAL LETTER U WITH GRAVE */\n XK_Uacute: 0x00da,\n\n /* U+00DA LATIN CAPITAL LETTER U WITH ACUTE */\n XK_Ucircumflex: 0x00db,\n\n /* U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX */\n XK_Udiaeresis: 0x00dc,\n\n /* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */\n XK_Yacute: 0x00dd,\n\n /* U+00DD LATIN CAPITAL LETTER Y WITH ACUTE */\n XK_THORN: 0x00de,\n\n /* U+00DE LATIN CAPITAL LETTER THORN */\n XK_Thorn: 0x00de,\n\n /* deprecated */\n XK_ssharp: 0x00df,\n\n /* U+00DF LATIN SMALL LETTER SHARP S */\n XK_agrave: 0x00e0,\n\n /* U+00E0 LATIN SMALL LETTER A WITH GRAVE */\n XK_aacute: 0x00e1,\n\n /* U+00E1 LATIN SMALL LETTER A WITH ACUTE */\n XK_acircumflex: 0x00e2,\n\n /* U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX */\n XK_atilde: 0x00e3,\n\n /* U+00E3 LATIN SMALL LETTER A WITH TILDE */\n XK_adiaeresis: 0x00e4,\n\n /* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */\n XK_aring: 0x00e5,\n\n /* U+00E5 LATIN SMALL LETTER A WITH RING ABOVE */\n XK_ae: 0x00e6,\n\n /* U+00E6 LATIN SMALL LETTER AE */\n XK_ccedilla: 0x00e7,\n\n /* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */\n XK_egrave: 0x00e8,\n\n /* U+00E8 LATIN SMALL LETTER E WITH GRAVE */\n XK_eacute: 0x00e9,\n\n /* U+00E9 LATIN SMALL LETTER E WITH ACUTE */\n XK_ecircumflex: 0x00ea,\n\n /* U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX */\n XK_ediaeresis: 0x00eb,\n\n /* U+00EB LATIN SMALL LETTER E WITH DIAERESIS */\n XK_igrave: 0x00ec,\n\n /* U+00EC LATIN SMALL LETTER I WITH GRAVE */\n XK_iacute: 0x00ed,\n\n /* U+00ED LATIN SMALL LETTER I WITH ACUTE */\n XK_icircumflex: 0x00ee,\n\n /* U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX */\n XK_idiaeresis: 0x00ef,\n\n /* U+00EF LATIN SMALL LETTER I WITH DIAERESIS */\n XK_eth: 0x00f0,\n\n /* U+00F0 LATIN SMALL LETTER ETH */\n XK_ntilde: 0x00f1,\n\n /* U+00F1 LATIN SMALL LETTER N WITH TILDE */\n XK_ograve: 0x00f2,\n\n /* U+00F2 LATIN SMALL LETTER O WITH GRAVE */\n XK_oacute: 0x00f3,\n\n /* U+00F3 LATIN SMALL LETTER O WITH ACUTE */\n XK_ocircumflex: 0x00f4,\n\n /* U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX */\n XK_otilde: 0x00f5,\n\n /* U+00F5 LATIN SMALL LETTER O WITH TILDE */\n XK_odiaeresis: 0x00f6,\n\n /* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */\n XK_division: 0x00f7,\n\n /* U+00F7 DIVISION SIGN */\n XK_oslash: 0x00f8,\n\n /* U+00F8 LATIN SMALL LETTER O WITH STROKE */\n XK_ooblique: 0x00f8,\n\n /* U+00F8 LATIN SMALL LETTER O WITH STROKE */\n XK_ugrave: 0x00f9,\n\n /* U+00F9 LATIN SMALL LETTER U WITH GRAVE */\n XK_uacute: 0x00fa,\n\n /* U+00FA LATIN SMALL LETTER U WITH ACUTE */\n XK_ucircumflex: 0x00fb,\n\n /* U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX */\n XK_udiaeresis: 0x00fc,\n\n /* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */\n XK_yacute: 0x00fd,\n\n /* U+00FD LATIN SMALL LETTER Y WITH ACUTE */\n XK_thorn: 0x00fe,\n\n /* U+00FE LATIN SMALL LETTER THORN */\n XK_ydiaeresis: 0x00ff,\n\n /* U+00FF LATIN SMALL LETTER Y WITH DIAERESIS */\n\n /*\n * Korean\n * Byte 3 = 0x0e\n */\n XK_Hangul: 0xff31,\n\n /* Hangul start/stop(toggle) */\n XK_Hangul_Hanja: 0xff34,\n\n /* Start Hangul->Hanja Conversion */\n XK_Hangul_Jeonja: 0xff38,\n\n /* Jeonja mode */\n\n /*\n * XFree86 vendor specific keysyms.\n *\n * The XFree86 keysym range is 0x10080001 - 0x1008FFFF.\n */\n XF86XK_ModeLock: 0x1008FF01,\n XF86XK_MonBrightnessUp: 0x1008FF02,\n XF86XK_MonBrightnessDown: 0x1008FF03,\n XF86XK_KbdLightOnOff: 0x1008FF04,\n XF86XK_KbdBrightnessUp: 0x1008FF05,\n XF86XK_KbdBrightnessDown: 0x1008FF06,\n XF86XK_Standby: 0x1008FF10,\n XF86XK_AudioLowerVolume: 0x1008FF11,\n XF86XK_AudioMute: 0x1008FF12,\n XF86XK_AudioRaiseVolume: 0x1008FF13,\n XF86XK_AudioPlay: 0x1008FF14,\n XF86XK_AudioStop: 0x1008FF15,\n XF86XK_AudioPrev: 0x1008FF16,\n XF86XK_AudioNext: 0x1008FF17,\n XF86XK_HomePage: 0x1008FF18,\n XF86XK_Mail: 0x1008FF19,\n XF86XK_Start: 0x1008FF1A,\n XF86XK_Search: 0x1008FF1B,\n XF86XK_AudioRecord: 0x1008FF1C,\n XF86XK_Calculator: 0x1008FF1D,\n XF86XK_Memo: 0x1008FF1E,\n XF86XK_ToDoList: 0x1008FF1F,\n XF86XK_Calendar: 0x1008FF20,\n XF86XK_PowerDown: 0x1008FF21,\n XF86XK_ContrastAdjust: 0x1008FF22,\n XF86XK_RockerUp: 0x1008FF23,\n XF86XK_RockerDown: 0x1008FF24,\n XF86XK_RockerEnter: 0x1008FF25,\n XF86XK_Back: 0x1008FF26,\n XF86XK_Forward: 0x1008FF27,\n XF86XK_Stop: 0x1008FF28,\n XF86XK_Refresh: 0x1008FF29,\n XF86XK_PowerOff: 0x1008FF2A,\n XF86XK_WakeUp: 0x1008FF2B,\n XF86XK_Eject: 0x1008FF2C,\n XF86XK_ScreenSaver: 0x1008FF2D,\n XF86XK_WWW: 0x1008FF2E,\n XF86XK_Sleep: 0x1008FF2F,\n XF86XK_Favorites: 0x1008FF30,\n XF86XK_AudioPause: 0x1008FF31,\n XF86XK_AudioMedia: 0x1008FF32,\n XF86XK_MyComputer: 0x1008FF33,\n XF86XK_VendorHome: 0x1008FF34,\n XF86XK_LightBulb: 0x1008FF35,\n XF86XK_Shop: 0x1008FF36,\n XF86XK_History: 0x1008FF37,\n XF86XK_OpenURL: 0x1008FF38,\n XF86XK_AddFavorite: 0x1008FF39,\n XF86XK_HotLinks: 0x1008FF3A,\n XF86XK_BrightnessAdjust: 0x1008FF3B,\n XF86XK_Finance: 0x1008FF3C,\n XF86XK_Community: 0x1008FF3D,\n XF86XK_AudioRewind: 0x1008FF3E,\n XF86XK_BackForward: 0x1008FF3F,\n XF86XK_Launch0: 0x1008FF40,\n XF86XK_Launch1: 0x1008FF41,\n XF86XK_Launch2: 0x1008FF42,\n XF86XK_Launch3: 0x1008FF43,\n XF86XK_Launch4: 0x1008FF44,\n XF86XK_Launch5: 0x1008FF45,\n XF86XK_Launch6: 0x1008FF46,\n XF86XK_Launch7: 0x1008FF47,\n XF86XK_Launch8: 0x1008FF48,\n XF86XK_Launch9: 0x1008FF49,\n XF86XK_LaunchA: 0x1008FF4A,\n XF86XK_LaunchB: 0x1008FF4B,\n XF86XK_LaunchC: 0x1008FF4C,\n XF86XK_LaunchD: 0x1008FF4D,\n XF86XK_LaunchE: 0x1008FF4E,\n XF86XK_LaunchF: 0x1008FF4F,\n XF86XK_ApplicationLeft: 0x1008FF50,\n XF86XK_ApplicationRight: 0x1008FF51,\n XF86XK_Book: 0x1008FF52,\n XF86XK_CD: 0x1008FF53,\n XF86XK_Calculater: 0x1008FF54,\n XF86XK_Clear: 0x1008FF55,\n XF86XK_Close: 0x1008FF56,\n XF86XK_Copy: 0x1008FF57,\n XF86XK_Cut: 0x1008FF58,\n XF86XK_Display: 0x1008FF59,\n XF86XK_DOS: 0x1008FF5A,\n XF86XK_Documents: 0x1008FF5B,\n XF86XK_Excel: 0x1008FF5C,\n XF86XK_Explorer: 0x1008FF5D,\n XF86XK_Game: 0x1008FF5E,\n XF86XK_Go: 0x1008FF5F,\n XF86XK_iTouch: 0x1008FF60,\n XF86XK_LogOff: 0x1008FF61,\n XF86XK_Market: 0x1008FF62,\n XF86XK_Meeting: 0x1008FF63,\n XF86XK_MenuKB: 0x1008FF65,\n XF86XK_MenuPB: 0x1008FF66,\n XF86XK_MySites: 0x1008FF67,\n XF86XK_New: 0x1008FF68,\n XF86XK_News: 0x1008FF69,\n XF86XK_OfficeHome: 0x1008FF6A,\n XF86XK_Open: 0x1008FF6B,\n XF86XK_Option: 0x1008FF6C,\n XF86XK_Paste: 0x1008FF6D,\n XF86XK_Phone: 0x1008FF6E,\n XF86XK_Q: 0x1008FF70,\n XF86XK_Reply: 0x1008FF72,\n XF86XK_Reload: 0x1008FF73,\n XF86XK_RotateWindows: 0x1008FF74,\n XF86XK_RotationPB: 0x1008FF75,\n XF86XK_RotationKB: 0x1008FF76,\n XF86XK_Save: 0x1008FF77,\n XF86XK_ScrollUp: 0x1008FF78,\n XF86XK_ScrollDown: 0x1008FF79,\n XF86XK_ScrollClick: 0x1008FF7A,\n XF86XK_Send: 0x1008FF7B,\n XF86XK_Spell: 0x1008FF7C,\n XF86XK_SplitScreen: 0x1008FF7D,\n XF86XK_Support: 0x1008FF7E,\n XF86XK_TaskPane: 0x1008FF7F,\n XF86XK_Terminal: 0x1008FF80,\n XF86XK_Tools: 0x1008FF81,\n XF86XK_Travel: 0x1008FF82,\n XF86XK_UserPB: 0x1008FF84,\n XF86XK_User1KB: 0x1008FF85,\n XF86XK_User2KB: 0x1008FF86,\n XF86XK_Video: 0x1008FF87,\n XF86XK_WheelButton: 0x1008FF88,\n XF86XK_Word: 0x1008FF89,\n XF86XK_Xfer: 0x1008FF8A,\n XF86XK_ZoomIn: 0x1008FF8B,\n XF86XK_ZoomOut: 0x1008FF8C,\n XF86XK_Away: 0x1008FF8D,\n XF86XK_Messenger: 0x1008FF8E,\n XF86XK_WebCam: 0x1008FF8F,\n XF86XK_MailForward: 0x1008FF90,\n XF86XK_Pictures: 0x1008FF91,\n XF86XK_Music: 0x1008FF92,\n XF86XK_Battery: 0x1008FF93,\n XF86XK_Bluetooth: 0x1008FF94,\n XF86XK_WLAN: 0x1008FF95,\n XF86XK_UWB: 0x1008FF96,\n XF86XK_AudioForward: 0x1008FF97,\n XF86XK_AudioRepeat: 0x1008FF98,\n XF86XK_AudioRandomPlay: 0x1008FF99,\n XF86XK_Subtitle: 0x1008FF9A,\n XF86XK_AudioCycleTrack: 0x1008FF9B,\n XF86XK_CycleAngle: 0x1008FF9C,\n XF86XK_FrameBack: 0x1008FF9D,\n XF86XK_FrameForward: 0x1008FF9E,\n XF86XK_Time: 0x1008FF9F,\n XF86XK_Select: 0x1008FFA0,\n XF86XK_View: 0x1008FFA1,\n XF86XK_TopMenu: 0x1008FFA2,\n XF86XK_Red: 0x1008FFA3,\n XF86XK_Green: 0x1008FFA4,\n XF86XK_Yellow: 0x1008FFA5,\n XF86XK_Blue: 0x1008FFA6,\n XF86XK_Suspend: 0x1008FFA7,\n XF86XK_Hibernate: 0x1008FFA8,\n XF86XK_TouchpadToggle: 0x1008FFA9,\n XF86XK_TouchpadOn: 0x1008FFB0,\n XF86XK_TouchpadOff: 0x1008FFB1,\n XF86XK_AudioMicMute: 0x1008FFB2,\n XF86XK_Switch_VT_1: 0x1008FE01,\n XF86XK_Switch_VT_2: 0x1008FE02,\n XF86XK_Switch_VT_3: 0x1008FE03,\n XF86XK_Switch_VT_4: 0x1008FE04,\n XF86XK_Switch_VT_5: 0x1008FE05,\n XF86XK_Switch_VT_6: 0x1008FE06,\n XF86XK_Switch_VT_7: 0x1008FE07,\n XF86XK_Switch_VT_8: 0x1008FE08,\n XF86XK_Switch_VT_9: 0x1008FE09,\n XF86XK_Switch_VT_10: 0x1008FE0A,\n XF86XK_Switch_VT_11: 0x1008FE0B,\n XF86XK_Switch_VT_12: 0x1008FE0C,\n XF86XK_Ungrab: 0x1008FE20,\n XF86XK_ClearGrab: 0x1008FE21,\n XF86XK_Next_VMode: 0x1008FE22,\n XF86XK_Prev_VMode: 0x1008FE23,\n XF86XK_LogWindowTree: 0x1008FE24,\n XF86XK_LogGrabInfo: 0x1008FE25\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/*\n * Mapping from Unicode codepoints to X11/RFB keysyms\n *\n * This file was automatically generated from keysymdef.h\n * DO NOT EDIT!\n */\n\n/* Functions at the bottom */\nvar codepoints = {\n 0x0100: 0x03c0,\n // XK_Amacron\n 0x0101: 0x03e0,\n // XK_amacron\n 0x0102: 0x01c3,\n // XK_Abreve\n 0x0103: 0x01e3,\n // XK_abreve\n 0x0104: 0x01a1,\n // XK_Aogonek\n 0x0105: 0x01b1,\n // XK_aogonek\n 0x0106: 0x01c6,\n // XK_Cacute\n 0x0107: 0x01e6,\n // XK_cacute\n 0x0108: 0x02c6,\n // XK_Ccircumflex\n 0x0109: 0x02e6,\n // XK_ccircumflex\n 0x010a: 0x02c5,\n // XK_Cabovedot\n 0x010b: 0x02e5,\n // XK_cabovedot\n 0x010c: 0x01c8,\n // XK_Ccaron\n 0x010d: 0x01e8,\n // XK_ccaron\n 0x010e: 0x01cf,\n // XK_Dcaron\n 0x010f: 0x01ef,\n // XK_dcaron\n 0x0110: 0x01d0,\n // XK_Dstroke\n 0x0111: 0x01f0,\n // XK_dstroke\n 0x0112: 0x03aa,\n // XK_Emacron\n 0x0113: 0x03ba,\n // XK_emacron\n 0x0116: 0x03cc,\n // XK_Eabovedot\n 0x0117: 0x03ec,\n // XK_eabovedot\n 0x0118: 0x01ca,\n // XK_Eogonek\n 0x0119: 0x01ea,\n // XK_eogonek\n 0x011a: 0x01cc,\n // XK_Ecaron\n 0x011b: 0x01ec,\n // XK_ecaron\n 0x011c: 0x02d8,\n // XK_Gcircumflex\n 0x011d: 0x02f8,\n // XK_gcircumflex\n 0x011e: 0x02ab,\n // XK_Gbreve\n 0x011f: 0x02bb,\n // XK_gbreve\n 0x0120: 0x02d5,\n // XK_Gabovedot\n 0x0121: 0x02f5,\n // XK_gabovedot\n 0x0122: 0x03ab,\n // XK_Gcedilla\n 0x0123: 0x03bb,\n // XK_gcedilla\n 0x0124: 0x02a6,\n // XK_Hcircumflex\n 0x0125: 0x02b6,\n // XK_hcircumflex\n 0x0126: 0x02a1,\n // XK_Hstroke\n 0x0127: 0x02b1,\n // XK_hstroke\n 0x0128: 0x03a5,\n // XK_Itilde\n 0x0129: 0x03b5,\n // XK_itilde\n 0x012a: 0x03cf,\n // XK_Imacron\n 0x012b: 0x03ef,\n // XK_imacron\n 0x012e: 0x03c7,\n // XK_Iogonek\n 0x012f: 0x03e7,\n // XK_iogonek\n 0x0130: 0x02a9,\n // XK_Iabovedot\n 0x0131: 0x02b9,\n // XK_idotless\n 0x0134: 0x02ac,\n // XK_Jcircumflex\n 0x0135: 0x02bc,\n // XK_jcircumflex\n 0x0136: 0x03d3,\n // XK_Kcedilla\n 0x0137: 0x03f3,\n // XK_kcedilla\n 0x0138: 0x03a2,\n // XK_kra\n 0x0139: 0x01c5,\n // XK_Lacute\n 0x013a: 0x01e5,\n // XK_lacute\n 0x013b: 0x03a6,\n // XK_Lcedilla\n 0x013c: 0x03b6,\n // XK_lcedilla\n 0x013d: 0x01a5,\n // XK_Lcaron\n 0x013e: 0x01b5,\n // XK_lcaron\n 0x0141: 0x01a3,\n // XK_Lstroke\n 0x0142: 0x01b3,\n // XK_lstroke\n 0x0143: 0x01d1,\n // XK_Nacute\n 0x0144: 0x01f1,\n // XK_nacute\n 0x0145: 0x03d1,\n // XK_Ncedilla\n 0x0146: 0x03f1,\n // XK_ncedilla\n 0x0147: 0x01d2,\n // XK_Ncaron\n 0x0148: 0x01f2,\n // XK_ncaron\n 0x014a: 0x03bd,\n // XK_ENG\n 0x014b: 0x03bf,\n // XK_eng\n 0x014c: 0x03d2,\n // XK_Omacron\n 0x014d: 0x03f2,\n // XK_omacron\n 0x0150: 0x01d5,\n // XK_Odoubleacute\n 0x0151: 0x01f5,\n // XK_odoubleacute\n 0x0152: 0x13bc,\n // XK_OE\n 0x0153: 0x13bd,\n // XK_oe\n 0x0154: 0x01c0,\n // XK_Racute\n 0x0155: 0x01e0,\n // XK_racute\n 0x0156: 0x03a3,\n // XK_Rcedilla\n 0x0157: 0x03b3,\n // XK_rcedilla\n 0x0158: 0x01d8,\n // XK_Rcaron\n 0x0159: 0x01f8,\n // XK_rcaron\n 0x015a: 0x01a6,\n // XK_Sacute\n 0x015b: 0x01b6,\n // XK_sacute\n 0x015c: 0x02de,\n // XK_Scircumflex\n 0x015d: 0x02fe,\n // XK_scircumflex\n 0x015e: 0x01aa,\n // XK_Scedilla\n 0x015f: 0x01ba,\n // XK_scedilla\n 0x0160: 0x01a9,\n // XK_Scaron\n 0x0161: 0x01b9,\n // XK_scaron\n 0x0162: 0x01de,\n // XK_Tcedilla\n 0x0163: 0x01fe,\n // XK_tcedilla\n 0x0164: 0x01ab,\n // XK_Tcaron\n 0x0165: 0x01bb,\n // XK_tcaron\n 0x0166: 0x03ac,\n // XK_Tslash\n 0x0167: 0x03bc,\n // XK_tslash\n 0x0168: 0x03dd,\n // XK_Utilde\n 0x0169: 0x03fd,\n // XK_utilde\n 0x016a: 0x03de,\n // XK_Umacron\n 0x016b: 0x03fe,\n // XK_umacron\n 0x016c: 0x02dd,\n // XK_Ubreve\n 0x016d: 0x02fd,\n // XK_ubreve\n 0x016e: 0x01d9,\n // XK_Uring\n 0x016f: 0x01f9,\n // XK_uring\n 0x0170: 0x01db,\n // XK_Udoubleacute\n 0x0171: 0x01fb,\n // XK_udoubleacute\n 0x0172: 0x03d9,\n // XK_Uogonek\n 0x0173: 0x03f9,\n // XK_uogonek\n 0x0178: 0x13be,\n // XK_Ydiaeresis\n 0x0179: 0x01ac,\n // XK_Zacute\n 0x017a: 0x01bc,\n // XK_zacute\n 0x017b: 0x01af,\n // XK_Zabovedot\n 0x017c: 0x01bf,\n // XK_zabovedot\n 0x017d: 0x01ae,\n // XK_Zcaron\n 0x017e: 0x01be,\n // XK_zcaron\n 0x0192: 0x08f6,\n // XK_function\n 0x01d2: 0x10001d1,\n // XK_Ocaron\n 0x02c7: 0x01b7,\n // XK_caron\n 0x02d8: 0x01a2,\n // XK_breve\n 0x02d9: 0x01ff,\n // XK_abovedot\n 0x02db: 0x01b2,\n // XK_ogonek\n 0x02dd: 0x01bd,\n // XK_doubleacute\n 0x0385: 0x07ae,\n // XK_Greek_accentdieresis\n 0x0386: 0x07a1,\n // XK_Greek_ALPHAaccent\n 0x0388: 0x07a2,\n // XK_Greek_EPSILONaccent\n 0x0389: 0x07a3,\n // XK_Greek_ETAaccent\n 0x038a: 0x07a4,\n // XK_Greek_IOTAaccent\n 0x038c: 0x07a7,\n // XK_Greek_OMICRONaccent\n 0x038e: 0x07a8,\n // XK_Greek_UPSILONaccent\n 0x038f: 0x07ab,\n // XK_Greek_OMEGAaccent\n 0x0390: 0x07b6,\n // XK_Greek_iotaaccentdieresis\n 0x0391: 0x07c1,\n // XK_Greek_ALPHA\n 0x0392: 0x07c2,\n // XK_Greek_BETA\n 0x0393: 0x07c3,\n // XK_Greek_GAMMA\n 0x0394: 0x07c4,\n // XK_Greek_DELTA\n 0x0395: 0x07c5,\n // XK_Greek_EPSILON\n 0x0396: 0x07c6,\n // XK_Greek_ZETA\n 0x0397: 0x07c7,\n // XK_Greek_ETA\n 0x0398: 0x07c8,\n // XK_Greek_THETA\n 0x0399: 0x07c9,\n // XK_Greek_IOTA\n 0x039a: 0x07ca,\n // XK_Greek_KAPPA\n 0x039b: 0x07cb,\n // XK_Greek_LAMDA\n 0x039c: 0x07cc,\n // XK_Greek_MU\n 0x039d: 0x07cd,\n // XK_Greek_NU\n 0x039e: 0x07ce,\n // XK_Greek_XI\n 0x039f: 0x07cf,\n // XK_Greek_OMICRON\n 0x03a0: 0x07d0,\n // XK_Greek_PI\n 0x03a1: 0x07d1,\n // XK_Greek_RHO\n 0x03a3: 0x07d2,\n // XK_Greek_SIGMA\n 0x03a4: 0x07d4,\n // XK_Greek_TAU\n 0x03a5: 0x07d5,\n // XK_Greek_UPSILON\n 0x03a6: 0x07d6,\n // XK_Greek_PHI\n 0x03a7: 0x07d7,\n // XK_Greek_CHI\n 0x03a8: 0x07d8,\n // XK_Greek_PSI\n 0x03a9: 0x07d9,\n // XK_Greek_OMEGA\n 0x03aa: 0x07a5,\n // XK_Greek_IOTAdieresis\n 0x03ab: 0x07a9,\n // XK_Greek_UPSILONdieresis\n 0x03ac: 0x07b1,\n // XK_Greek_alphaaccent\n 0x03ad: 0x07b2,\n // XK_Greek_epsilonaccent\n 0x03ae: 0x07b3,\n // XK_Greek_etaaccent\n 0x03af: 0x07b4,\n // XK_Greek_iotaaccent\n 0x03b0: 0x07ba,\n // XK_Greek_upsilonaccentdieresis\n 0x03b1: 0x07e1,\n // XK_Greek_alpha\n 0x03b2: 0x07e2,\n // XK_Greek_beta\n 0x03b3: 0x07e3,\n // XK_Greek_gamma\n 0x03b4: 0x07e4,\n // XK_Greek_delta\n 0x03b5: 0x07e5,\n // XK_Greek_epsilon\n 0x03b6: 0x07e6,\n // XK_Greek_zeta\n 0x03b7: 0x07e7,\n // XK_Greek_eta\n 0x03b8: 0x07e8,\n // XK_Greek_theta\n 0x03b9: 0x07e9,\n // XK_Greek_iota\n 0x03ba: 0x07ea,\n // XK_Greek_kappa\n 0x03bb: 0x07eb,\n // XK_Greek_lamda\n 0x03bc: 0x07ec,\n // XK_Greek_mu\n 0x03bd: 0x07ed,\n // XK_Greek_nu\n 0x03be: 0x07ee,\n // XK_Greek_xi\n 0x03bf: 0x07ef,\n // XK_Greek_omicron\n 0x03c0: 0x07f0,\n // XK_Greek_pi\n 0x03c1: 0x07f1,\n // XK_Greek_rho\n 0x03c2: 0x07f3,\n // XK_Greek_finalsmallsigma\n 0x03c3: 0x07f2,\n // XK_Greek_sigma\n 0x03c4: 0x07f4,\n // XK_Greek_tau\n 0x03c5: 0x07f5,\n // XK_Greek_upsilon\n 0x03c6: 0x07f6,\n // XK_Greek_phi\n 0x03c7: 0x07f7,\n // XK_Greek_chi\n 0x03c8: 0x07f8,\n // XK_Greek_psi\n 0x03c9: 0x07f9,\n // XK_Greek_omega\n 0x03ca: 0x07b5,\n // XK_Greek_iotadieresis\n 0x03cb: 0x07b9,\n // XK_Greek_upsilondieresis\n 0x03cc: 0x07b7,\n // XK_Greek_omicronaccent\n 0x03cd: 0x07b8,\n // XK_Greek_upsilonaccent\n 0x03ce: 0x07bb,\n // XK_Greek_omegaaccent\n 0x0401: 0x06b3,\n // XK_Cyrillic_IO\n 0x0402: 0x06b1,\n // XK_Serbian_DJE\n 0x0403: 0x06b2,\n // XK_Macedonia_GJE\n 0x0404: 0x06b4,\n // XK_Ukrainian_IE\n 0x0405: 0x06b5,\n // XK_Macedonia_DSE\n 0x0406: 0x06b6,\n // XK_Ukrainian_I\n 0x0407: 0x06b7,\n // XK_Ukrainian_YI\n 0x0408: 0x06b8,\n // XK_Cyrillic_JE\n 0x0409: 0x06b9,\n // XK_Cyrillic_LJE\n 0x040a: 0x06ba,\n // XK_Cyrillic_NJE\n 0x040b: 0x06bb,\n // XK_Serbian_TSHE\n 0x040c: 0x06bc,\n // XK_Macedonia_KJE\n 0x040e: 0x06be,\n // XK_Byelorussian_SHORTU\n 0x040f: 0x06bf,\n // XK_Cyrillic_DZHE\n 0x0410: 0x06e1,\n // XK_Cyrillic_A\n 0x0411: 0x06e2,\n // XK_Cyrillic_BE\n 0x0412: 0x06f7,\n // XK_Cyrillic_VE\n 0x0413: 0x06e7,\n // XK_Cyrillic_GHE\n 0x0414: 0x06e4,\n // XK_Cyrillic_DE\n 0x0415: 0x06e5,\n // XK_Cyrillic_IE\n 0x0416: 0x06f6,\n // XK_Cyrillic_ZHE\n 0x0417: 0x06fa,\n // XK_Cyrillic_ZE\n 0x0418: 0x06e9,\n // XK_Cyrillic_I\n 0x0419: 0x06ea,\n // XK_Cyrillic_SHORTI\n 0x041a: 0x06eb,\n // XK_Cyrillic_KA\n 0x041b: 0x06ec,\n // XK_Cyrillic_EL\n 0x041c: 0x06ed,\n // XK_Cyrillic_EM\n 0x041d: 0x06ee,\n // XK_Cyrillic_EN\n 0x041e: 0x06ef,\n // XK_Cyrillic_O\n 0x041f: 0x06f0,\n // XK_Cyrillic_PE\n 0x0420: 0x06f2,\n // XK_Cyrillic_ER\n 0x0421: 0x06f3,\n // XK_Cyrillic_ES\n 0x0422: 0x06f4,\n // XK_Cyrillic_TE\n 0x0423: 0x06f5,\n // XK_Cyrillic_U\n 0x0424: 0x06e6,\n // XK_Cyrillic_EF\n 0x0425: 0x06e8,\n // XK_Cyrillic_HA\n 0x0426: 0x06e3,\n // XK_Cyrillic_TSE\n 0x0427: 0x06fe,\n // XK_Cyrillic_CHE\n 0x0428: 0x06fb,\n // XK_Cyrillic_SHA\n 0x0429: 0x06fd,\n // XK_Cyrillic_SHCHA\n 0x042a: 0x06ff,\n // XK_Cyrillic_HARDSIGN\n 0x042b: 0x06f9,\n // XK_Cyrillic_YERU\n 0x042c: 0x06f8,\n // XK_Cyrillic_SOFTSIGN\n 0x042d: 0x06fc,\n // XK_Cyrillic_E\n 0x042e: 0x06e0,\n // XK_Cyrillic_YU\n 0x042f: 0x06f1,\n // XK_Cyrillic_YA\n 0x0430: 0x06c1,\n // XK_Cyrillic_a\n 0x0431: 0x06c2,\n // XK_Cyrillic_be\n 0x0432: 0x06d7,\n // XK_Cyrillic_ve\n 0x0433: 0x06c7,\n // XK_Cyrillic_ghe\n 0x0434: 0x06c4,\n // XK_Cyrillic_de\n 0x0435: 0x06c5,\n // XK_Cyrillic_ie\n 0x0436: 0x06d6,\n // XK_Cyrillic_zhe\n 0x0437: 0x06da,\n // XK_Cyrillic_ze\n 0x0438: 0x06c9,\n // XK_Cyrillic_i\n 0x0439: 0x06ca,\n // XK_Cyrillic_shorti\n 0x043a: 0x06cb,\n // XK_Cyrillic_ka\n 0x043b: 0x06cc,\n // XK_Cyrillic_el\n 0x043c: 0x06cd,\n // XK_Cyrillic_em\n 0x043d: 0x06ce,\n // XK_Cyrillic_en\n 0x043e: 0x06cf,\n // XK_Cyrillic_o\n 0x043f: 0x06d0,\n // XK_Cyrillic_pe\n 0x0440: 0x06d2,\n // XK_Cyrillic_er\n 0x0441: 0x06d3,\n // XK_Cyrillic_es\n 0x0442: 0x06d4,\n // XK_Cyrillic_te\n 0x0443: 0x06d5,\n // XK_Cyrillic_u\n 0x0444: 0x06c6,\n // XK_Cyrillic_ef\n 0x0445: 0x06c8,\n // XK_Cyrillic_ha\n 0x0446: 0x06c3,\n // XK_Cyrillic_tse\n 0x0447: 0x06de,\n // XK_Cyrillic_che\n 0x0448: 0x06db,\n // XK_Cyrillic_sha\n 0x0449: 0x06dd,\n // XK_Cyrillic_shcha\n 0x044a: 0x06df,\n // XK_Cyrillic_hardsign\n 0x044b: 0x06d9,\n // XK_Cyrillic_yeru\n 0x044c: 0x06d8,\n // XK_Cyrillic_softsign\n 0x044d: 0x06dc,\n // XK_Cyrillic_e\n 0x044e: 0x06c0,\n // XK_Cyrillic_yu\n 0x044f: 0x06d1,\n // XK_Cyrillic_ya\n 0x0451: 0x06a3,\n // XK_Cyrillic_io\n 0x0452: 0x06a1,\n // XK_Serbian_dje\n 0x0453: 0x06a2,\n // XK_Macedonia_gje\n 0x0454: 0x06a4,\n // XK_Ukrainian_ie\n 0x0455: 0x06a5,\n // XK_Macedonia_dse\n 0x0456: 0x06a6,\n // XK_Ukrainian_i\n 0x0457: 0x06a7,\n // XK_Ukrainian_yi\n 0x0458: 0x06a8,\n // XK_Cyrillic_je\n 0x0459: 0x06a9,\n // XK_Cyrillic_lje\n 0x045a: 0x06aa,\n // XK_Cyrillic_nje\n 0x045b: 0x06ab,\n // XK_Serbian_tshe\n 0x045c: 0x06ac,\n // XK_Macedonia_kje\n 0x045e: 0x06ae,\n // XK_Byelorussian_shortu\n 0x045f: 0x06af,\n // XK_Cyrillic_dzhe\n 0x0490: 0x06bd,\n // XK_Ukrainian_GHE_WITH_UPTURN\n 0x0491: 0x06ad,\n // XK_Ukrainian_ghe_with_upturn\n 0x05d0: 0x0ce0,\n // XK_hebrew_aleph\n 0x05d1: 0x0ce1,\n // XK_hebrew_bet\n 0x05d2: 0x0ce2,\n // XK_hebrew_gimel\n 0x05d3: 0x0ce3,\n // XK_hebrew_dalet\n 0x05d4: 0x0ce4,\n // XK_hebrew_he\n 0x05d5: 0x0ce5,\n // XK_hebrew_waw\n 0x05d6: 0x0ce6,\n // XK_hebrew_zain\n 0x05d7: 0x0ce7,\n // XK_hebrew_chet\n 0x05d8: 0x0ce8,\n // XK_hebrew_tet\n 0x05d9: 0x0ce9,\n // XK_hebrew_yod\n 0x05da: 0x0cea,\n // XK_hebrew_finalkaph\n 0x05db: 0x0ceb,\n // XK_hebrew_kaph\n 0x05dc: 0x0cec,\n // XK_hebrew_lamed\n 0x05dd: 0x0ced,\n // XK_hebrew_finalmem\n 0x05de: 0x0cee,\n // XK_hebrew_mem\n 0x05df: 0x0cef,\n // XK_hebrew_finalnun\n 0x05e0: 0x0cf0,\n // XK_hebrew_nun\n 0x05e1: 0x0cf1,\n // XK_hebrew_samech\n 0x05e2: 0x0cf2,\n // XK_hebrew_ayin\n 0x05e3: 0x0cf3,\n // XK_hebrew_finalpe\n 0x05e4: 0x0cf4,\n // XK_hebrew_pe\n 0x05e5: 0x0cf5,\n // XK_hebrew_finalzade\n 0x05e6: 0x0cf6,\n // XK_hebrew_zade\n 0x05e7: 0x0cf7,\n // XK_hebrew_qoph\n 0x05e8: 0x0cf8,\n // XK_hebrew_resh\n 0x05e9: 0x0cf9,\n // XK_hebrew_shin\n 0x05ea: 0x0cfa,\n // XK_hebrew_taw\n 0x060c: 0x05ac,\n // XK_Arabic_comma\n 0x061b: 0x05bb,\n // XK_Arabic_semicolon\n 0x061f: 0x05bf,\n // XK_Arabic_question_mark\n 0x0621: 0x05c1,\n // XK_Arabic_hamza\n 0x0622: 0x05c2,\n // XK_Arabic_maddaonalef\n 0x0623: 0x05c3,\n // XK_Arabic_hamzaonalef\n 0x0624: 0x05c4,\n // XK_Arabic_hamzaonwaw\n 0x0625: 0x05c5,\n // XK_Arabic_hamzaunderalef\n 0x0626: 0x05c6,\n // XK_Arabic_hamzaonyeh\n 0x0627: 0x05c7,\n // XK_Arabic_alef\n 0x0628: 0x05c8,\n // XK_Arabic_beh\n 0x0629: 0x05c9,\n // XK_Arabic_tehmarbuta\n 0x062a: 0x05ca,\n // XK_Arabic_teh\n 0x062b: 0x05cb,\n // XK_Arabic_theh\n 0x062c: 0x05cc,\n // XK_Arabic_jeem\n 0x062d: 0x05cd,\n // XK_Arabic_hah\n 0x062e: 0x05ce,\n // XK_Arabic_khah\n 0x062f: 0x05cf,\n // XK_Arabic_dal\n 0x0630: 0x05d0,\n // XK_Arabic_thal\n 0x0631: 0x05d1,\n // XK_Arabic_ra\n 0x0632: 0x05d2,\n // XK_Arabic_zain\n 0x0633: 0x05d3,\n // XK_Arabic_seen\n 0x0634: 0x05d4,\n // XK_Arabic_sheen\n 0x0635: 0x05d5,\n // XK_Arabic_sad\n 0x0636: 0x05d6,\n // XK_Arabic_dad\n 0x0637: 0x05d7,\n // XK_Arabic_tah\n 0x0638: 0x05d8,\n // XK_Arabic_zah\n 0x0639: 0x05d9,\n // XK_Arabic_ain\n 0x063a: 0x05da,\n // XK_Arabic_ghain\n 0x0640: 0x05e0,\n // XK_Arabic_tatweel\n 0x0641: 0x05e1,\n // XK_Arabic_feh\n 0x0642: 0x05e2,\n // XK_Arabic_qaf\n 0x0643: 0x05e3,\n // XK_Arabic_kaf\n 0x0644: 0x05e4,\n // XK_Arabic_lam\n 0x0645: 0x05e5,\n // XK_Arabic_meem\n 0x0646: 0x05e6,\n // XK_Arabic_noon\n 0x0647: 0x05e7,\n // XK_Arabic_ha\n 0x0648: 0x05e8,\n // XK_Arabic_waw\n 0x0649: 0x05e9,\n // XK_Arabic_alefmaksura\n 0x064a: 0x05ea,\n // XK_Arabic_yeh\n 0x064b: 0x05eb,\n // XK_Arabic_fathatan\n 0x064c: 0x05ec,\n // XK_Arabic_dammatan\n 0x064d: 0x05ed,\n // XK_Arabic_kasratan\n 0x064e: 0x05ee,\n // XK_Arabic_fatha\n 0x064f: 0x05ef,\n // XK_Arabic_damma\n 0x0650: 0x05f0,\n // XK_Arabic_kasra\n 0x0651: 0x05f1,\n // XK_Arabic_shadda\n 0x0652: 0x05f2,\n // XK_Arabic_sukun\n 0x0e01: 0x0da1,\n // XK_Thai_kokai\n 0x0e02: 0x0da2,\n // XK_Thai_khokhai\n 0x0e03: 0x0da3,\n // XK_Thai_khokhuat\n 0x0e04: 0x0da4,\n // XK_Thai_khokhwai\n 0x0e05: 0x0da5,\n // XK_Thai_khokhon\n 0x0e06: 0x0da6,\n // XK_Thai_khorakhang\n 0x0e07: 0x0da7,\n // XK_Thai_ngongu\n 0x0e08: 0x0da8,\n // XK_Thai_chochan\n 0x0e09: 0x0da9,\n // XK_Thai_choching\n 0x0e0a: 0x0daa,\n // XK_Thai_chochang\n 0x0e0b: 0x0dab,\n // XK_Thai_soso\n 0x0e0c: 0x0dac,\n // XK_Thai_chochoe\n 0x0e0d: 0x0dad,\n // XK_Thai_yoying\n 0x0e0e: 0x0dae,\n // XK_Thai_dochada\n 0x0e0f: 0x0daf,\n // XK_Thai_topatak\n 0x0e10: 0x0db0,\n // XK_Thai_thothan\n 0x0e11: 0x0db1,\n // XK_Thai_thonangmontho\n 0x0e12: 0x0db2,\n // XK_Thai_thophuthao\n 0x0e13: 0x0db3,\n // XK_Thai_nonen\n 0x0e14: 0x0db4,\n // XK_Thai_dodek\n 0x0e15: 0x0db5,\n // XK_Thai_totao\n 0x0e16: 0x0db6,\n // XK_Thai_thothung\n 0x0e17: 0x0db7,\n // XK_Thai_thothahan\n 0x0e18: 0x0db8,\n // XK_Thai_thothong\n 0x0e19: 0x0db9,\n // XK_Thai_nonu\n 0x0e1a: 0x0dba,\n // XK_Thai_bobaimai\n 0x0e1b: 0x0dbb,\n // XK_Thai_popla\n 0x0e1c: 0x0dbc,\n // XK_Thai_phophung\n 0x0e1d: 0x0dbd,\n // XK_Thai_fofa\n 0x0e1e: 0x0dbe,\n // XK_Thai_phophan\n 0x0e1f: 0x0dbf,\n // XK_Thai_fofan\n 0x0e20: 0x0dc0,\n // XK_Thai_phosamphao\n 0x0e21: 0x0dc1,\n // XK_Thai_moma\n 0x0e22: 0x0dc2,\n // XK_Thai_yoyak\n 0x0e23: 0x0dc3,\n // XK_Thai_rorua\n 0x0e24: 0x0dc4,\n // XK_Thai_ru\n 0x0e25: 0x0dc5,\n // XK_Thai_loling\n 0x0e26: 0x0dc6,\n // XK_Thai_lu\n 0x0e27: 0x0dc7,\n // XK_Thai_wowaen\n 0x0e28: 0x0dc8,\n // XK_Thai_sosala\n 0x0e29: 0x0dc9,\n // XK_Thai_sorusi\n 0x0e2a: 0x0dca,\n // XK_Thai_sosua\n 0x0e2b: 0x0dcb,\n // XK_Thai_hohip\n 0x0e2c: 0x0dcc,\n // XK_Thai_lochula\n 0x0e2d: 0x0dcd,\n // XK_Thai_oang\n 0x0e2e: 0x0dce,\n // XK_Thai_honokhuk\n 0x0e2f: 0x0dcf,\n // XK_Thai_paiyannoi\n 0x0e30: 0x0dd0,\n // XK_Thai_saraa\n 0x0e31: 0x0dd1,\n // XK_Thai_maihanakat\n 0x0e32: 0x0dd2,\n // XK_Thai_saraaa\n 0x0e33: 0x0dd3,\n // XK_Thai_saraam\n 0x0e34: 0x0dd4,\n // XK_Thai_sarai\n 0x0e35: 0x0dd5,\n // XK_Thai_saraii\n 0x0e36: 0x0dd6,\n // XK_Thai_saraue\n 0x0e37: 0x0dd7,\n // XK_Thai_sarauee\n 0x0e38: 0x0dd8,\n // XK_Thai_sarau\n 0x0e39: 0x0dd9,\n // XK_Thai_sarauu\n 0x0e3a: 0x0dda,\n // XK_Thai_phinthu\n 0x0e3f: 0x0ddf,\n // XK_Thai_baht\n 0x0e40: 0x0de0,\n // XK_Thai_sarae\n 0x0e41: 0x0de1,\n // XK_Thai_saraae\n 0x0e42: 0x0de2,\n // XK_Thai_sarao\n 0x0e43: 0x0de3,\n // XK_Thai_saraaimaimuan\n 0x0e44: 0x0de4,\n // XK_Thai_saraaimaimalai\n 0x0e45: 0x0de5,\n // XK_Thai_lakkhangyao\n 0x0e46: 0x0de6,\n // XK_Thai_maiyamok\n 0x0e47: 0x0de7,\n // XK_Thai_maitaikhu\n 0x0e48: 0x0de8,\n // XK_Thai_maiek\n 0x0e49: 0x0de9,\n // XK_Thai_maitho\n 0x0e4a: 0x0dea,\n // XK_Thai_maitri\n 0x0e4b: 0x0deb,\n // XK_Thai_maichattawa\n 0x0e4c: 0x0dec,\n // XK_Thai_thanthakhat\n 0x0e4d: 0x0ded,\n // XK_Thai_nikhahit\n 0x0e50: 0x0df0,\n // XK_Thai_leksun\n 0x0e51: 0x0df1,\n // XK_Thai_leknung\n 0x0e52: 0x0df2,\n // XK_Thai_leksong\n 0x0e53: 0x0df3,\n // XK_Thai_leksam\n 0x0e54: 0x0df4,\n // XK_Thai_leksi\n 0x0e55: 0x0df5,\n // XK_Thai_lekha\n 0x0e56: 0x0df6,\n // XK_Thai_lekhok\n 0x0e57: 0x0df7,\n // XK_Thai_lekchet\n 0x0e58: 0x0df8,\n // XK_Thai_lekpaet\n 0x0e59: 0x0df9,\n // XK_Thai_lekkao\n 0x2002: 0x0aa2,\n // XK_enspace\n 0x2003: 0x0aa1,\n // XK_emspace\n 0x2004: 0x0aa3,\n // XK_em3space\n 0x2005: 0x0aa4,\n // XK_em4space\n 0x2007: 0x0aa5,\n // XK_digitspace\n 0x2008: 0x0aa6,\n // XK_punctspace\n 0x2009: 0x0aa7,\n // XK_thinspace\n 0x200a: 0x0aa8,\n // XK_hairspace\n 0x2012: 0x0abb,\n // XK_figdash\n 0x2013: 0x0aaa,\n // XK_endash\n 0x2014: 0x0aa9,\n // XK_emdash\n 0x2015: 0x07af,\n // XK_Greek_horizbar\n 0x2017: 0x0cdf,\n // XK_hebrew_doublelowline\n 0x2018: 0x0ad0,\n // XK_leftsinglequotemark\n 0x2019: 0x0ad1,\n // XK_rightsinglequotemark\n 0x201a: 0x0afd,\n // XK_singlelowquotemark\n 0x201c: 0x0ad2,\n // XK_leftdoublequotemark\n 0x201d: 0x0ad3,\n // XK_rightdoublequotemark\n 0x201e: 0x0afe,\n // XK_doublelowquotemark\n 0x2020: 0x0af1,\n // XK_dagger\n 0x2021: 0x0af2,\n // XK_doubledagger\n 0x2022: 0x0ae6,\n // XK_enfilledcircbullet\n 0x2025: 0x0aaf,\n // XK_doubbaselinedot\n 0x2026: 0x0aae,\n // XK_ellipsis\n 0x2030: 0x0ad5,\n // XK_permille\n 0x2032: 0x0ad6,\n // XK_minutes\n 0x2033: 0x0ad7,\n // XK_seconds\n 0x2038: 0x0afc,\n // XK_caret\n 0x203e: 0x047e,\n // XK_overline\n 0x20a9: 0x0eff,\n // XK_Korean_Won\n 0x20ac: 0x20ac,\n // XK_EuroSign\n 0x2105: 0x0ab8,\n // XK_careof\n 0x2116: 0x06b0,\n // XK_numerosign\n 0x2117: 0x0afb,\n // XK_phonographcopyright\n 0x211e: 0x0ad4,\n // XK_prescription\n 0x2122: 0x0ac9,\n // XK_trademark\n 0x2153: 0x0ab0,\n // XK_onethird\n 0x2154: 0x0ab1,\n // XK_twothirds\n 0x2155: 0x0ab2,\n // XK_onefifth\n 0x2156: 0x0ab3,\n // XK_twofifths\n 0x2157: 0x0ab4,\n // XK_threefifths\n 0x2158: 0x0ab5,\n // XK_fourfifths\n 0x2159: 0x0ab6,\n // XK_onesixth\n 0x215a: 0x0ab7,\n // XK_fivesixths\n 0x215b: 0x0ac3,\n // XK_oneeighth\n 0x215c: 0x0ac4,\n // XK_threeeighths\n 0x215d: 0x0ac5,\n // XK_fiveeighths\n 0x215e: 0x0ac6,\n // XK_seveneighths\n 0x2190: 0x08fb,\n // XK_leftarrow\n 0x2191: 0x08fc,\n // XK_uparrow\n 0x2192: 0x08fd,\n // XK_rightarrow\n 0x2193: 0x08fe,\n // XK_downarrow\n 0x21d2: 0x08ce,\n // XK_implies\n 0x21d4: 0x08cd,\n // XK_ifonlyif\n 0x2202: 0x08ef,\n // XK_partialderivative\n 0x2207: 0x08c5,\n // XK_nabla\n 0x2218: 0x0bca,\n // XK_jot\n 0x221a: 0x08d6,\n // XK_radical\n 0x221d: 0x08c1,\n // XK_variation\n 0x221e: 0x08c2,\n // XK_infinity\n 0x2227: 0x08de,\n // XK_logicaland\n 0x2228: 0x08df,\n // XK_logicalor\n 0x2229: 0x08dc,\n // XK_intersection\n 0x222a: 0x08dd,\n // XK_union\n 0x222b: 0x08bf,\n // XK_integral\n 0x2234: 0x08c0,\n // XK_therefore\n 0x223c: 0x08c8,\n // XK_approximate\n 0x2243: 0x08c9,\n // XK_similarequal\n 0x2245: 0x1002248,\n // XK_approxeq\n 0x2260: 0x08bd,\n // XK_notequal\n 0x2261: 0x08cf,\n // XK_identical\n 0x2264: 0x08bc,\n // XK_lessthanequal\n 0x2265: 0x08be,\n // XK_greaterthanequal\n 0x2282: 0x08da,\n // XK_includedin\n 0x2283: 0x08db,\n // XK_includes\n 0x22a2: 0x0bfc,\n // XK_righttack\n 0x22a3: 0x0bdc,\n // XK_lefttack\n 0x22a4: 0x0bc2,\n // XK_downtack\n 0x22a5: 0x0bce,\n // XK_uptack\n 0x2308: 0x0bd3,\n // XK_upstile\n 0x230a: 0x0bc4,\n // XK_downstile\n 0x2315: 0x0afa,\n // XK_telephonerecorder\n 0x2320: 0x08a4,\n // XK_topintegral\n 0x2321: 0x08a5,\n // XK_botintegral\n 0x2395: 0x0bcc,\n // XK_quad\n 0x239b: 0x08ab,\n // XK_topleftparens\n 0x239d: 0x08ac,\n // XK_botleftparens\n 0x239e: 0x08ad,\n // XK_toprightparens\n 0x23a0: 0x08ae,\n // XK_botrightparens\n 0x23a1: 0x08a7,\n // XK_topleftsqbracket\n 0x23a3: 0x08a8,\n // XK_botleftsqbracket\n 0x23a4: 0x08a9,\n // XK_toprightsqbracket\n 0x23a6: 0x08aa,\n // XK_botrightsqbracket\n 0x23a8: 0x08af,\n // XK_leftmiddlecurlybrace\n 0x23ac: 0x08b0,\n // XK_rightmiddlecurlybrace\n 0x23b7: 0x08a1,\n // XK_leftradical\n 0x23ba: 0x09ef,\n // XK_horizlinescan1\n 0x23bb: 0x09f0,\n // XK_horizlinescan3\n 0x23bc: 0x09f2,\n // XK_horizlinescan7\n 0x23bd: 0x09f3,\n // XK_horizlinescan9\n 0x2409: 0x09e2,\n // XK_ht\n 0x240a: 0x09e5,\n // XK_lf\n 0x240b: 0x09e9,\n // XK_vt\n 0x240c: 0x09e3,\n // XK_ff\n 0x240d: 0x09e4,\n // XK_cr\n 0x2423: 0x0aac,\n // XK_signifblank\n 0x2424: 0x09e8,\n // XK_nl\n 0x2500: 0x08a3,\n // XK_horizconnector\n 0x2502: 0x08a6,\n // XK_vertconnector\n 0x250c: 0x08a2,\n // XK_topleftradical\n 0x2510: 0x09eb,\n // XK_uprightcorner\n 0x2514: 0x09ed,\n // XK_lowleftcorner\n 0x2518: 0x09ea,\n // XK_lowrightcorner\n 0x251c: 0x09f4,\n // XK_leftt\n 0x2524: 0x09f5,\n // XK_rightt\n 0x252c: 0x09f7,\n // XK_topt\n 0x2534: 0x09f6,\n // XK_bott\n 0x253c: 0x09ee,\n // XK_crossinglines\n 0x2592: 0x09e1,\n // XK_checkerboard\n 0x25aa: 0x0ae7,\n // XK_enfilledsqbullet\n 0x25ab: 0x0ae1,\n // XK_enopensquarebullet\n 0x25ac: 0x0adb,\n // XK_filledrectbullet\n 0x25ad: 0x0ae2,\n // XK_openrectbullet\n 0x25ae: 0x0adf,\n // XK_emfilledrect\n 0x25af: 0x0acf,\n // XK_emopenrectangle\n 0x25b2: 0x0ae8,\n // XK_filledtribulletup\n 0x25b3: 0x0ae3,\n // XK_opentribulletup\n 0x25b6: 0x0add,\n // XK_filledrighttribullet\n 0x25b7: 0x0acd,\n // XK_rightopentriangle\n 0x25bc: 0x0ae9,\n // XK_filledtribulletdown\n 0x25bd: 0x0ae4,\n // XK_opentribulletdown\n 0x25c0: 0x0adc,\n // XK_filledlefttribullet\n 0x25c1: 0x0acc,\n // XK_leftopentriangle\n 0x25c6: 0x09e0,\n // XK_soliddiamond\n 0x25cb: 0x0ace,\n // XK_emopencircle\n 0x25cf: 0x0ade,\n // XK_emfilledcircle\n 0x25e6: 0x0ae0,\n // XK_enopencircbullet\n 0x2606: 0x0ae5,\n // XK_openstar\n 0x260e: 0x0af9,\n // XK_telephone\n 0x2613: 0x0aca,\n // XK_signaturemark\n 0x261c: 0x0aea,\n // XK_leftpointer\n 0x261e: 0x0aeb,\n // XK_rightpointer\n 0x2640: 0x0af8,\n // XK_femalesymbol\n 0x2642: 0x0af7,\n // XK_malesymbol\n 0x2663: 0x0aec,\n // XK_club\n 0x2665: 0x0aee,\n // XK_heart\n 0x2666: 0x0aed,\n // XK_diamond\n 0x266d: 0x0af6,\n // XK_musicalflat\n 0x266f: 0x0af5,\n // XK_musicalsharp\n 0x2713: 0x0af3,\n // XK_checkmark\n 0x2717: 0x0af4,\n // XK_ballotcross\n 0x271d: 0x0ad9,\n // XK_latincross\n 0x2720: 0x0af0,\n // XK_maltesecross\n 0x27e8: 0x0abc,\n // XK_leftanglebracket\n 0x27e9: 0x0abe,\n // XK_rightanglebracket\n 0x3001: 0x04a4,\n // XK_kana_comma\n 0x3002: 0x04a1,\n // XK_kana_fullstop\n 0x300c: 0x04a2,\n // XK_kana_openingbracket\n 0x300d: 0x04a3,\n // XK_kana_closingbracket\n 0x309b: 0x04de,\n // XK_voicedsound\n 0x309c: 0x04df,\n // XK_semivoicedsound\n 0x30a1: 0x04a7,\n // XK_kana_a\n 0x30a2: 0x04b1,\n // XK_kana_A\n 0x30a3: 0x04a8,\n // XK_kana_i\n 0x30a4: 0x04b2,\n // XK_kana_I\n 0x30a5: 0x04a9,\n // XK_kana_u\n 0x30a6: 0x04b3,\n // XK_kana_U\n 0x30a7: 0x04aa,\n // XK_kana_e\n 0x30a8: 0x04b4,\n // XK_kana_E\n 0x30a9: 0x04ab,\n // XK_kana_o\n 0x30aa: 0x04b5,\n // XK_kana_O\n 0x30ab: 0x04b6,\n // XK_kana_KA\n 0x30ad: 0x04b7,\n // XK_kana_KI\n 0x30af: 0x04b8,\n // XK_kana_KU\n 0x30b1: 0x04b9,\n // XK_kana_KE\n 0x30b3: 0x04ba,\n // XK_kana_KO\n 0x30b5: 0x04bb,\n // XK_kana_SA\n 0x30b7: 0x04bc,\n // XK_kana_SHI\n 0x30b9: 0x04bd,\n // XK_kana_SU\n 0x30bb: 0x04be,\n // XK_kana_SE\n 0x30bd: 0x04bf,\n // XK_kana_SO\n 0x30bf: 0x04c0,\n // XK_kana_TA\n 0x30c1: 0x04c1,\n // XK_kana_CHI\n 0x30c3: 0x04af,\n // XK_kana_tsu\n 0x30c4: 0x04c2,\n // XK_kana_TSU\n 0x30c6: 0x04c3,\n // XK_kana_TE\n 0x30c8: 0x04c4,\n // XK_kana_TO\n 0x30ca: 0x04c5,\n // XK_kana_NA\n 0x30cb: 0x04c6,\n // XK_kana_NI\n 0x30cc: 0x04c7,\n // XK_kana_NU\n 0x30cd: 0x04c8,\n // XK_kana_NE\n 0x30ce: 0x04c9,\n // XK_kana_NO\n 0x30cf: 0x04ca,\n // XK_kana_HA\n 0x30d2: 0x04cb,\n // XK_kana_HI\n 0x30d5: 0x04cc,\n // XK_kana_FU\n 0x30d8: 0x04cd,\n // XK_kana_HE\n 0x30db: 0x04ce,\n // XK_kana_HO\n 0x30de: 0x04cf,\n // XK_kana_MA\n 0x30df: 0x04d0,\n // XK_kana_MI\n 0x30e0: 0x04d1,\n // XK_kana_MU\n 0x30e1: 0x04d2,\n // XK_kana_ME\n 0x30e2: 0x04d3,\n // XK_kana_MO\n 0x30e3: 0x04ac,\n // XK_kana_ya\n 0x30e4: 0x04d4,\n // XK_kana_YA\n 0x30e5: 0x04ad,\n // XK_kana_yu\n 0x30e6: 0x04d5,\n // XK_kana_YU\n 0x30e7: 0x04ae,\n // XK_kana_yo\n 0x30e8: 0x04d6,\n // XK_kana_YO\n 0x30e9: 0x04d7,\n // XK_kana_RA\n 0x30ea: 0x04d8,\n // XK_kana_RI\n 0x30eb: 0x04d9,\n // XK_kana_RU\n 0x30ec: 0x04da,\n // XK_kana_RE\n 0x30ed: 0x04db,\n // XK_kana_RO\n 0x30ef: 0x04dc,\n // XK_kana_WA\n 0x30f2: 0x04a6,\n // XK_kana_WO\n 0x30f3: 0x04dd,\n // XK_kana_N\n 0x30fb: 0x04a5,\n // XK_kana_conjunctive\n 0x30fc: 0x04b0 // XK_prolongedsound\n\n};\nvar _default = {\n lookup: function lookup(u) {\n // Latin-1 is one-to-one mapping\n if (u >= 0x20 && u <= 0xff) {\n return u;\n } // Lookup table (fairly random)\n\n\n var keysym = codepoints[u];\n\n if (keysym !== undefined) {\n return keysym;\n } // General mapping as final fallback\n\n\n return 0x01000000 | u;\n }\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getKey = getKey;\nexports.getKeycode = getKeycode;\nexports.getKeysym = getKeysym;\n\nvar _keysym = _interopRequireDefault(require(\"./keysym.js\"));\n\nvar _keysymdef = _interopRequireDefault(require(\"./keysymdef.js\"));\n\nvar _vkeys = _interopRequireDefault(require(\"./vkeys.js\"));\n\nvar _fixedkeys = _interopRequireDefault(require(\"./fixedkeys.js\"));\n\nvar _domkeytable = _interopRequireDefault(require(\"./domkeytable.js\"));\n\nvar browser = _interopRequireWildcard(require(\"../util/browser.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// Get 'KeyboardEvent.code', handling legacy browsers\nfunction getKeycode(evt) {\n // Are we getting proper key identifiers?\n // (unfortunately Firefox and Chrome are crappy here and gives\n // us an empty string on some platforms, rather than leaving it\n // undefined)\n if (evt.code) {\n // Mozilla isn't fully in sync with the spec yet\n switch (evt.code) {\n case 'OSLeft':\n return 'MetaLeft';\n\n case 'OSRight':\n return 'MetaRight';\n }\n\n return evt.code;\n } // The de-facto standard is to use Windows Virtual-Key codes\n // in the 'keyCode' field for non-printable characters\n\n\n if (evt.keyCode in _vkeys[\"default\"]) {\n var code = _vkeys[\"default\"][evt.keyCode]; // macOS has messed up this code for some reason\n\n if (browser.isMac() && code === 'ContextMenu') {\n code = 'MetaRight';\n } // The keyCode doesn't distinguish between left and right\n // for the standard modifiers\n\n\n if (evt.location === 2) {\n switch (code) {\n case 'ShiftLeft':\n return 'ShiftRight';\n\n case 'ControlLeft':\n return 'ControlRight';\n\n case 'AltLeft':\n return 'AltRight';\n }\n } // Nor a bunch of the numpad keys\n\n\n if (evt.location === 3) {\n switch (code) {\n case 'Delete':\n return 'NumpadDecimal';\n\n case 'Insert':\n return 'Numpad0';\n\n case 'End':\n return 'Numpad1';\n\n case 'ArrowDown':\n return 'Numpad2';\n\n case 'PageDown':\n return 'Numpad3';\n\n case 'ArrowLeft':\n return 'Numpad4';\n\n case 'ArrowRight':\n return 'Numpad6';\n\n case 'Home':\n return 'Numpad7';\n\n case 'ArrowUp':\n return 'Numpad8';\n\n case 'PageUp':\n return 'Numpad9';\n\n case 'Enter':\n return 'NumpadEnter';\n }\n }\n\n return code;\n }\n\n return 'Unidentified';\n} // Get 'KeyboardEvent.key', handling legacy browsers\n\n\nfunction getKey(evt) {\n // Are we getting a proper key value?\n if (evt.key !== undefined) {\n // Mozilla isn't fully in sync with the spec yet\n switch (evt.key) {\n case 'OS':\n return 'Meta';\n\n case 'LaunchMyComputer':\n return 'LaunchApplication1';\n\n case 'LaunchCalculator':\n return 'LaunchApplication2';\n } // iOS leaks some OS names\n\n\n switch (evt.key) {\n case 'UIKeyInputUpArrow':\n return 'ArrowUp';\n\n case 'UIKeyInputDownArrow':\n return 'ArrowDown';\n\n case 'UIKeyInputLeftArrow':\n return 'ArrowLeft';\n\n case 'UIKeyInputRightArrow':\n return 'ArrowRight';\n\n case 'UIKeyInputEscape':\n return 'Escape';\n } // Broken behaviour in Chrome\n\n\n if (evt.key === '\\x00' && evt.code === 'NumpadDecimal') {\n return 'Delete';\n }\n\n return evt.key;\n } // Try to deduce it based on the physical key\n\n\n var code = getKeycode(evt);\n\n if (code in _fixedkeys[\"default\"]) {\n return _fixedkeys[\"default\"][code];\n } // If that failed, then see if we have a printable character\n\n\n if (evt.charCode) {\n return String.fromCharCode(evt.charCode);\n } // At this point we have nothing left to go on\n\n\n return 'Unidentified';\n} // Get the most reliable keysym value we can get from a key event\n\n\nfunction getKeysym(evt) {\n var key = getKey(evt);\n\n if (key === 'Unidentified') {\n return null;\n } // First look up special keys\n\n\n if (key in _domkeytable[\"default\"]) {\n var location = evt.location; // Safari screws up location for the right cmd key\n\n if (key === 'Meta' && location === 0) {\n location = 2;\n } // And for Clear\n\n\n if (key === 'Clear' && location === 3) {\n var code = getKeycode(evt);\n\n if (code === 'NumLock') {\n location = 0;\n }\n }\n\n if (location === undefined || location > 3) {\n location = 0;\n } // The original Meta key now gets confused with the Windows key\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1020141\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1232918\n\n\n if (key === 'Meta') {\n var _code = getKeycode(evt);\n\n if (_code === 'AltLeft') {\n return _keysym[\"default\"].XK_Meta_L;\n } else if (_code === 'AltRight') {\n return _keysym[\"default\"].XK_Meta_R;\n }\n } // macOS has Clear instead of NumLock, but the remote system is\n // probably not macOS, so lying here is probably best...\n\n\n if (key === 'Clear') {\n var _code2 = getKeycode(evt);\n\n if (_code2 === 'NumLock') {\n return _keysym[\"default\"].XK_Num_Lock;\n }\n } // Windows sends alternating symbols for some keys when using a\n // Japanese layout. We have no way of synchronising with the IM\n // running on the remote system, so we send some combined keysym\n // instead and hope for the best.\n\n\n if (browser.isWindows()) {\n switch (key) {\n case 'Zenkaku':\n case 'Hankaku':\n return _keysym[\"default\"].XK_Zenkaku_Hankaku;\n\n case 'Romaji':\n case 'KanaMode':\n return _keysym[\"default\"].XK_Romaji;\n }\n }\n\n return _domkeytable[\"default\"][key][location];\n } // Now we need to look at the Unicode symbol instead\n // Special key? (FIXME: Should have been caught earlier)\n\n\n if (key.length !== 1) {\n return null;\n }\n\n var codepoint = key.charCodeAt();\n\n if (codepoint) {\n return _keysymdef[\"default\"].lookup(codepoint);\n }\n\n return null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2018 The noVNC Authors\n * Licensed under MPL 2.0 or any later version (see LICENSE.txt)\n */\n\n/*\n * Mapping between Microsoft® Windows® Virtual-Key codes and\n * HTML key codes.\n */\nvar _default = {\n 0x08: 'Backspace',\n 0x09: 'Tab',\n 0x0a: 'NumpadClear',\n 0x0d: 'Enter',\n 0x10: 'ShiftLeft',\n 0x11: 'ControlLeft',\n 0x12: 'AltLeft',\n 0x13: 'Pause',\n 0x14: 'CapsLock',\n 0x15: 'Lang1',\n 0x19: 'Lang2',\n 0x1b: 'Escape',\n 0x1c: 'Convert',\n 0x1d: 'NonConvert',\n 0x20: 'Space',\n 0x21: 'PageUp',\n 0x22: 'PageDown',\n 0x23: 'End',\n 0x24: 'Home',\n 0x25: 'ArrowLeft',\n 0x26: 'ArrowUp',\n 0x27: 'ArrowRight',\n 0x28: 'ArrowDown',\n 0x29: 'Select',\n 0x2c: 'PrintScreen',\n 0x2d: 'Insert',\n 0x2e: 'Delete',\n 0x2f: 'Help',\n 0x30: 'Digit0',\n 0x31: 'Digit1',\n 0x32: 'Digit2',\n 0x33: 'Digit3',\n 0x34: 'Digit4',\n 0x35: 'Digit5',\n 0x36: 'Digit6',\n 0x37: 'Digit7',\n 0x38: 'Digit8',\n 0x39: 'Digit9',\n 0x5b: 'MetaLeft',\n 0x5c: 'MetaRight',\n 0x5d: 'ContextMenu',\n 0x5f: 'Sleep',\n 0x60: 'Numpad0',\n 0x61: 'Numpad1',\n 0x62: 'Numpad2',\n 0x63: 'Numpad3',\n 0x64: 'Numpad4',\n 0x65: 'Numpad5',\n 0x66: 'Numpad6',\n 0x67: 'Numpad7',\n 0x68: 'Numpad8',\n 0x69: 'Numpad9',\n 0x6a: 'NumpadMultiply',\n 0x6b: 'NumpadAdd',\n 0x6c: 'NumpadDecimal',\n 0x6d: 'NumpadSubtract',\n 0x6e: 'NumpadDecimal',\n // Duplicate, because buggy on Windows\n 0x6f: 'NumpadDivide',\n 0x70: 'F1',\n 0x71: 'F2',\n 0x72: 'F3',\n 0x73: 'F4',\n 0x74: 'F5',\n 0x75: 'F6',\n 0x76: 'F7',\n 0x77: 'F8',\n 0x78: 'F9',\n 0x79: 'F10',\n 0x7a: 'F11',\n 0x7b: 'F12',\n 0x7c: 'F13',\n 0x7d: 'F14',\n 0x7e: 'F15',\n 0x7f: 'F16',\n 0x80: 'F17',\n 0x81: 'F18',\n 0x82: 'F19',\n 0x83: 'F20',\n 0x84: 'F21',\n 0x85: 'F22',\n 0x86: 'F23',\n 0x87: 'F24',\n 0x90: 'NumLock',\n 0x91: 'ScrollLock',\n 0xa6: 'BrowserBack',\n 0xa7: 'BrowserForward',\n 0xa8: 'BrowserRefresh',\n 0xa9: 'BrowserStop',\n 0xaa: 'BrowserSearch',\n 0xab: 'BrowserFavorites',\n 0xac: 'BrowserHome',\n 0xad: 'AudioVolumeMute',\n 0xae: 'AudioVolumeDown',\n 0xaf: 'AudioVolumeUp',\n 0xb0: 'MediaTrackNext',\n 0xb1: 'MediaTrackPrevious',\n 0xb2: 'MediaStop',\n 0xb3: 'MediaPlayPause',\n 0xb4: 'LaunchMail',\n 0xb5: 'MediaSelect',\n 0xb6: 'LaunchApp1',\n 0xb7: 'LaunchApp2',\n 0xe1: 'AltRight' // Only when it is AltGraph\n\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\n/*\n * This file is auto-generated from keymaps.csv\n * Database checksum sha256(76d68c10e97d37fe2ea459e210125ae41796253fb217e900bf2983ade13a7920)\n * To re-generate, run:\n * keymap-gen code-map --lang=js keymaps.csv html atset1\n*/\nvar _default = {\n \"Again\": 0xe005,\n\n /* html:Again (Again) -> linux:129 (KEY_AGAIN) -> atset1:57349 */\n \"AltLeft\": 0x38,\n\n /* html:AltLeft (AltLeft) -> linux:56 (KEY_LEFTALT) -> atset1:56 */\n \"AltRight\": 0xe038,\n\n /* html:AltRight (AltRight) -> linux:100 (KEY_RIGHTALT) -> atset1:57400 */\n \"ArrowDown\": 0xe050,\n\n /* html:ArrowDown (ArrowDown) -> linux:108 (KEY_DOWN) -> atset1:57424 */\n \"ArrowLeft\": 0xe04b,\n\n /* html:ArrowLeft (ArrowLeft) -> linux:105 (KEY_LEFT) -> atset1:57419 */\n \"ArrowRight\": 0xe04d,\n\n /* html:ArrowRight (ArrowRight) -> linux:106 (KEY_RIGHT) -> atset1:57421 */\n \"ArrowUp\": 0xe048,\n\n /* html:ArrowUp (ArrowUp) -> linux:103 (KEY_UP) -> atset1:57416 */\n \"AudioVolumeDown\": 0xe02e,\n\n /* html:AudioVolumeDown (AudioVolumeDown) -> linux:114 (KEY_VOLUMEDOWN) -> atset1:57390 */\n \"AudioVolumeMute\": 0xe020,\n\n /* html:AudioVolumeMute (AudioVolumeMute) -> linux:113 (KEY_MUTE) -> atset1:57376 */\n \"AudioVolumeUp\": 0xe030,\n\n /* html:AudioVolumeUp (AudioVolumeUp) -> linux:115 (KEY_VOLUMEUP) -> atset1:57392 */\n \"Backquote\": 0x29,\n\n /* html:Backquote (Backquote) -> linux:41 (KEY_GRAVE) -> atset1:41 */\n \"Backslash\": 0x2b,\n\n /* html:Backslash (Backslash) -> linux:43 (KEY_BACKSLASH) -> atset1:43 */\n \"Backspace\": 0xe,\n\n /* html:Backspace (Backspace) -> linux:14 (KEY_BACKSPACE) -> atset1:14 */\n \"BracketLeft\": 0x1a,\n\n /* html:BracketLeft (BracketLeft) -> linux:26 (KEY_LEFTBRACE) -> atset1:26 */\n \"BracketRight\": 0x1b,\n\n /* html:BracketRight (BracketRight) -> linux:27 (KEY_RIGHTBRACE) -> atset1:27 */\n \"BrowserBack\": 0xe06a,\n\n /* html:BrowserBack (BrowserBack) -> linux:158 (KEY_BACK) -> atset1:57450 */\n \"BrowserFavorites\": 0xe066,\n\n /* html:BrowserFavorites (BrowserFavorites) -> linux:156 (KEY_BOOKMARKS) -> atset1:57446 */\n \"BrowserForward\": 0xe069,\n\n /* html:BrowserForward (BrowserForward) -> linux:159 (KEY_FORWARD) -> atset1:57449 */\n \"BrowserHome\": 0xe032,\n\n /* html:BrowserHome (BrowserHome) -> linux:172 (KEY_HOMEPAGE) -> atset1:57394 */\n \"BrowserRefresh\": 0xe067,\n\n /* html:BrowserRefresh (BrowserRefresh) -> linux:173 (KEY_REFRESH) -> atset1:57447 */\n \"BrowserSearch\": 0xe065,\n\n /* html:BrowserSearch (BrowserSearch) -> linux:217 (KEY_SEARCH) -> atset1:57445 */\n \"BrowserStop\": 0xe068,\n\n /* html:BrowserStop (BrowserStop) -> linux:128 (KEY_STOP) -> atset1:57448 */\n \"CapsLock\": 0x3a,\n\n /* html:CapsLock (CapsLock) -> linux:58 (KEY_CAPSLOCK) -> atset1:58 */\n \"Comma\": 0x33,\n\n /* html:Comma (Comma) -> linux:51 (KEY_COMMA) -> atset1:51 */\n \"ContextMenu\": 0xe05d,\n\n /* html:ContextMenu (ContextMenu) -> linux:127 (KEY_COMPOSE) -> atset1:57437 */\n \"ControlLeft\": 0x1d,\n\n /* html:ControlLeft (ControlLeft) -> linux:29 (KEY_LEFTCTRL) -> atset1:29 */\n \"ControlRight\": 0xe01d,\n\n /* html:ControlRight (ControlRight) -> linux:97 (KEY_RIGHTCTRL) -> atset1:57373 */\n \"Convert\": 0x79,\n\n /* html:Convert (Convert) -> linux:92 (KEY_HENKAN) -> atset1:121 */\n \"Copy\": 0xe078,\n\n /* html:Copy (Copy) -> linux:133 (KEY_COPY) -> atset1:57464 */\n \"Cut\": 0xe03c,\n\n /* html:Cut (Cut) -> linux:137 (KEY_CUT) -> atset1:57404 */\n \"Delete\": 0xe053,\n\n /* html:Delete (Delete) -> linux:111 (KEY_DELETE) -> atset1:57427 */\n \"Digit0\": 0xb,\n\n /* html:Digit0 (Digit0) -> linux:11 (KEY_0) -> atset1:11 */\n \"Digit1\": 0x2,\n\n /* html:Digit1 (Digit1) -> linux:2 (KEY_1) -> atset1:2 */\n \"Digit2\": 0x3,\n\n /* html:Digit2 (Digit2) -> linux:3 (KEY_2) -> atset1:3 */\n \"Digit3\": 0x4,\n\n /* html:Digit3 (Digit3) -> linux:4 (KEY_3) -> atset1:4 */\n \"Digit4\": 0x5,\n\n /* html:Digit4 (Digit4) -> linux:5 (KEY_4) -> atset1:5 */\n \"Digit5\": 0x6,\n\n /* html:Digit5 (Digit5) -> linux:6 (KEY_5) -> atset1:6 */\n \"Digit6\": 0x7,\n\n /* html:Digit6 (Digit6) -> linux:7 (KEY_6) -> atset1:7 */\n \"Digit7\": 0x8,\n\n /* html:Digit7 (Digit7) -> linux:8 (KEY_7) -> atset1:8 */\n \"Digit8\": 0x9,\n\n /* html:Digit8 (Digit8) -> linux:9 (KEY_8) -> atset1:9 */\n \"Digit9\": 0xa,\n\n /* html:Digit9 (Digit9) -> linux:10 (KEY_9) -> atset1:10 */\n \"Eject\": 0xe07d,\n\n /* html:Eject (Eject) -> linux:162 (KEY_EJECTCLOSECD) -> atset1:57469 */\n \"End\": 0xe04f,\n\n /* html:End (End) -> linux:107 (KEY_END) -> atset1:57423 */\n \"Enter\": 0x1c,\n\n /* html:Enter (Enter) -> linux:28 (KEY_ENTER) -> atset1:28 */\n \"Equal\": 0xd,\n\n /* html:Equal (Equal) -> linux:13 (KEY_EQUAL) -> atset1:13 */\n \"Escape\": 0x1,\n\n /* html:Escape (Escape) -> linux:1 (KEY_ESC) -> atset1:1 */\n \"F1\": 0x3b,\n\n /* html:F1 (F1) -> linux:59 (KEY_F1) -> atset1:59 */\n \"F10\": 0x44,\n\n /* html:F10 (F10) -> linux:68 (KEY_F10) -> atset1:68 */\n \"F11\": 0x57,\n\n /* html:F11 (F11) -> linux:87 (KEY_F11) -> atset1:87 */\n \"F12\": 0x58,\n\n /* html:F12 (F12) -> linux:88 (KEY_F12) -> atset1:88 */\n \"F13\": 0x5d,\n\n /* html:F13 (F13) -> linux:183 (KEY_F13) -> atset1:93 */\n \"F14\": 0x5e,\n\n /* html:F14 (F14) -> linux:184 (KEY_F14) -> atset1:94 */\n \"F15\": 0x5f,\n\n /* html:F15 (F15) -> linux:185 (KEY_F15) -> atset1:95 */\n \"F16\": 0x55,\n\n /* html:F16 (F16) -> linux:186 (KEY_F16) -> atset1:85 */\n \"F17\": 0xe003,\n\n /* html:F17 (F17) -> linux:187 (KEY_F17) -> atset1:57347 */\n \"F18\": 0xe077,\n\n /* html:F18 (F18) -> linux:188 (KEY_F18) -> atset1:57463 */\n \"F19\": 0xe004,\n\n /* html:F19 (F19) -> linux:189 (KEY_F19) -> atset1:57348 */\n \"F2\": 0x3c,\n\n /* html:F2 (F2) -> linux:60 (KEY_F2) -> atset1:60 */\n \"F20\": 0x5a,\n\n /* html:F20 (F20) -> linux:190 (KEY_F20) -> atset1:90 */\n \"F21\": 0x74,\n\n /* html:F21 (F21) -> linux:191 (KEY_F21) -> atset1:116 */\n \"F22\": 0xe079,\n\n /* html:F22 (F22) -> linux:192 (KEY_F22) -> atset1:57465 */\n \"F23\": 0x6d,\n\n /* html:F23 (F23) -> linux:193 (KEY_F23) -> atset1:109 */\n \"F24\": 0x6f,\n\n /* html:F24 (F24) -> linux:194 (KEY_F24) -> atset1:111 */\n \"F3\": 0x3d,\n\n /* html:F3 (F3) -> linux:61 (KEY_F3) -> atset1:61 */\n \"F4\": 0x3e,\n\n /* html:F4 (F4) -> linux:62 (KEY_F4) -> atset1:62 */\n \"F5\": 0x3f,\n\n /* html:F5 (F5) -> linux:63 (KEY_F5) -> atset1:63 */\n \"F6\": 0x40,\n\n /* html:F6 (F6) -> linux:64 (KEY_F6) -> atset1:64 */\n \"F7\": 0x41,\n\n /* html:F7 (F7) -> linux:65 (KEY_F7) -> atset1:65 */\n \"F8\": 0x42,\n\n /* html:F8 (F8) -> linux:66 (KEY_F8) -> atset1:66 */\n \"F9\": 0x43,\n\n /* html:F9 (F9) -> linux:67 (KEY_F9) -> atset1:67 */\n \"Find\": 0xe041,\n\n /* html:Find (Find) -> linux:136 (KEY_FIND) -> atset1:57409 */\n \"Help\": 0xe075,\n\n /* html:Help (Help) -> linux:138 (KEY_HELP) -> atset1:57461 */\n \"Hiragana\": 0x77,\n\n /* html:Hiragana (Lang4) -> linux:91 (KEY_HIRAGANA) -> atset1:119 */\n \"Home\": 0xe047,\n\n /* html:Home (Home) -> linux:102 (KEY_HOME) -> atset1:57415 */\n \"Insert\": 0xe052,\n\n /* html:Insert (Insert) -> linux:110 (KEY_INSERT) -> atset1:57426 */\n \"IntlBackslash\": 0x56,\n\n /* html:IntlBackslash (IntlBackslash) -> linux:86 (KEY_102ND) -> atset1:86 */\n \"IntlRo\": 0x73,\n\n /* html:IntlRo (IntlRo) -> linux:89 (KEY_RO) -> atset1:115 */\n \"IntlYen\": 0x7d,\n\n /* html:IntlYen (IntlYen) -> linux:124 (KEY_YEN) -> atset1:125 */\n \"KanaMode\": 0x70,\n\n /* html:KanaMode (KanaMode) -> linux:93 (KEY_KATAKANAHIRAGANA) -> atset1:112 */\n \"Katakana\": 0x78,\n\n /* html:Katakana (Lang3) -> linux:90 (KEY_KATAKANA) -> atset1:120 */\n \"KeyA\": 0x1e,\n\n /* html:KeyA (KeyA) -> linux:30 (KEY_A) -> atset1:30 */\n \"KeyB\": 0x30,\n\n /* html:KeyB (KeyB) -> linux:48 (KEY_B) -> atset1:48 */\n \"KeyC\": 0x2e,\n\n /* html:KeyC (KeyC) -> linux:46 (KEY_C) -> atset1:46 */\n \"KeyD\": 0x20,\n\n /* html:KeyD (KeyD) -> linux:32 (KEY_D) -> atset1:32 */\n \"KeyE\": 0x12,\n\n /* html:KeyE (KeyE) -> linux:18 (KEY_E) -> atset1:18 */\n \"KeyF\": 0x21,\n\n /* html:KeyF (KeyF) -> linux:33 (KEY_F) -> atset1:33 */\n \"KeyG\": 0x22,\n\n /* html:KeyG (KeyG) -> linux:34 (KEY_G) -> atset1:34 */\n \"KeyH\": 0x23,\n\n /* html:KeyH (KeyH) -> linux:35 (KEY_H) -> atset1:35 */\n \"KeyI\": 0x17,\n\n /* html:KeyI (KeyI) -> linux:23 (KEY_I) -> atset1:23 */\n \"KeyJ\": 0x24,\n\n /* html:KeyJ (KeyJ) -> linux:36 (KEY_J) -> atset1:36 */\n \"KeyK\": 0x25,\n\n /* html:KeyK (KeyK) -> linux:37 (KEY_K) -> atset1:37 */\n \"KeyL\": 0x26,\n\n /* html:KeyL (KeyL) -> linux:38 (KEY_L) -> atset1:38 */\n \"KeyM\": 0x32,\n\n /* html:KeyM (KeyM) -> linux:50 (KEY_M) -> atset1:50 */\n \"KeyN\": 0x31,\n\n /* html:KeyN (KeyN) -> linux:49 (KEY_N) -> atset1:49 */\n \"KeyO\": 0x18,\n\n /* html:KeyO (KeyO) -> linux:24 (KEY_O) -> atset1:24 */\n \"KeyP\": 0x19,\n\n /* html:KeyP (KeyP) -> linux:25 (KEY_P) -> atset1:25 */\n \"KeyQ\": 0x10,\n\n /* html:KeyQ (KeyQ) -> linux:16 (KEY_Q) -> atset1:16 */\n \"KeyR\": 0x13,\n\n /* html:KeyR (KeyR) -> linux:19 (KEY_R) -> atset1:19 */\n \"KeyS\": 0x1f,\n\n /* html:KeyS (KeyS) -> linux:31 (KEY_S) -> atset1:31 */\n \"KeyT\": 0x14,\n\n /* html:KeyT (KeyT) -> linux:20 (KEY_T) -> atset1:20 */\n \"KeyU\": 0x16,\n\n /* html:KeyU (KeyU) -> linux:22 (KEY_U) -> atset1:22 */\n \"KeyV\": 0x2f,\n\n /* html:KeyV (KeyV) -> linux:47 (KEY_V) -> atset1:47 */\n \"KeyW\": 0x11,\n\n /* html:KeyW (KeyW) -> linux:17 (KEY_W) -> atset1:17 */\n \"KeyX\": 0x2d,\n\n /* html:KeyX (KeyX) -> linux:45 (KEY_X) -> atset1:45 */\n \"KeyY\": 0x15,\n\n /* html:KeyY (KeyY) -> linux:21 (KEY_Y) -> atset1:21 */\n \"KeyZ\": 0x2c,\n\n /* html:KeyZ (KeyZ) -> linux:44 (KEY_Z) -> atset1:44 */\n \"Lang1\": 0x72,\n\n /* html:Lang1 (Lang1) -> linux:122 (KEY_HANGEUL) -> atset1:114 */\n \"Lang2\": 0x71,\n\n /* html:Lang2 (Lang2) -> linux:123 (KEY_HANJA) -> atset1:113 */\n \"Lang3\": 0x78,\n\n /* html:Lang3 (Lang3) -> linux:90 (KEY_KATAKANA) -> atset1:120 */\n \"Lang4\": 0x77,\n\n /* html:Lang4 (Lang4) -> linux:91 (KEY_HIRAGANA) -> atset1:119 */\n \"Lang5\": 0x76,\n\n /* html:Lang5 (Lang5) -> linux:85 (KEY_ZENKAKUHANKAKU) -> atset1:118 */\n \"LaunchApp1\": 0xe06b,\n\n /* html:LaunchApp1 (LaunchApp1) -> linux:157 (KEY_COMPUTER) -> atset1:57451 */\n \"LaunchApp2\": 0xe021,\n\n /* html:LaunchApp2 (LaunchApp2) -> linux:140 (KEY_CALC) -> atset1:57377 */\n \"LaunchMail\": 0xe06c,\n\n /* html:LaunchMail (LaunchMail) -> linux:155 (KEY_MAIL) -> atset1:57452 */\n \"MediaPlayPause\": 0xe022,\n\n /* html:MediaPlayPause (MediaPlayPause) -> linux:164 (KEY_PLAYPAUSE) -> atset1:57378 */\n \"MediaSelect\": 0xe06d,\n\n /* html:MediaSelect (MediaSelect) -> linux:226 (KEY_MEDIA) -> atset1:57453 */\n \"MediaStop\": 0xe024,\n\n /* html:MediaStop (MediaStop) -> linux:166 (KEY_STOPCD) -> atset1:57380 */\n \"MediaTrackNext\": 0xe019,\n\n /* html:MediaTrackNext (MediaTrackNext) -> linux:163 (KEY_NEXTSONG) -> atset1:57369 */\n \"MediaTrackPrevious\": 0xe010,\n\n /* html:MediaTrackPrevious (MediaTrackPrevious) -> linux:165 (KEY_PREVIOUSSONG) -> atset1:57360 */\n \"MetaLeft\": 0xe05b,\n\n /* html:MetaLeft (MetaLeft) -> linux:125 (KEY_LEFTMETA) -> atset1:57435 */\n \"MetaRight\": 0xe05c,\n\n /* html:MetaRight (MetaRight) -> linux:126 (KEY_RIGHTMETA) -> atset1:57436 */\n \"Minus\": 0xc,\n\n /* html:Minus (Minus) -> linux:12 (KEY_MINUS) -> atset1:12 */\n \"NonConvert\": 0x7b,\n\n /* html:NonConvert (NonConvert) -> linux:94 (KEY_MUHENKAN) -> atset1:123 */\n \"NumLock\": 0x45,\n\n /* html:NumLock (NumLock) -> linux:69 (KEY_NUMLOCK) -> atset1:69 */\n \"Numpad0\": 0x52,\n\n /* html:Numpad0 (Numpad0) -> linux:82 (KEY_KP0) -> atset1:82 */\n \"Numpad1\": 0x4f,\n\n /* html:Numpad1 (Numpad1) -> linux:79 (KEY_KP1) -> atset1:79 */\n \"Numpad2\": 0x50,\n\n /* html:Numpad2 (Numpad2) -> linux:80 (KEY_KP2) -> atset1:80 */\n \"Numpad3\": 0x51,\n\n /* html:Numpad3 (Numpad3) -> linux:81 (KEY_KP3) -> atset1:81 */\n \"Numpad4\": 0x4b,\n\n /* html:Numpad4 (Numpad4) -> linux:75 (KEY_KP4) -> atset1:75 */\n \"Numpad5\": 0x4c,\n\n /* html:Numpad5 (Numpad5) -> linux:76 (KEY_KP5) -> atset1:76 */\n \"Numpad6\": 0x4d,\n\n /* html:Numpad6 (Numpad6) -> linux:77 (KEY_KP6) -> atset1:77 */\n \"Numpad7\": 0x47,\n\n /* html:Numpad7 (Numpad7) -> linux:71 (KEY_KP7) -> atset1:71 */\n \"Numpad8\": 0x48,\n\n /* html:Numpad8 (Numpad8) -> linux:72 (KEY_KP8) -> atset1:72 */\n \"Numpad9\": 0x49,\n\n /* html:Numpad9 (Numpad9) -> linux:73 (KEY_KP9) -> atset1:73 */\n \"NumpadAdd\": 0x4e,\n\n /* html:NumpadAdd (NumpadAdd) -> linux:78 (KEY_KPPLUS) -> atset1:78 */\n \"NumpadComma\": 0x7e,\n\n /* html:NumpadComma (NumpadComma) -> linux:121 (KEY_KPCOMMA) -> atset1:126 */\n \"NumpadDecimal\": 0x53,\n\n /* html:NumpadDecimal (NumpadDecimal) -> linux:83 (KEY_KPDOT) -> atset1:83 */\n \"NumpadDivide\": 0xe035,\n\n /* html:NumpadDivide (NumpadDivide) -> linux:98 (KEY_KPSLASH) -> atset1:57397 */\n \"NumpadEnter\": 0xe01c,\n\n /* html:NumpadEnter (NumpadEnter) -> linux:96 (KEY_KPENTER) -> atset1:57372 */\n \"NumpadEqual\": 0x59,\n\n /* html:NumpadEqual (NumpadEqual) -> linux:117 (KEY_KPEQUAL) -> atset1:89 */\n \"NumpadMultiply\": 0x37,\n\n /* html:NumpadMultiply (NumpadMultiply) -> linux:55 (KEY_KPASTERISK) -> atset1:55 */\n \"NumpadParenLeft\": 0xe076,\n\n /* html:NumpadParenLeft (NumpadParenLeft) -> linux:179 (KEY_KPLEFTPAREN) -> atset1:57462 */\n \"NumpadParenRight\": 0xe07b,\n\n /* html:NumpadParenRight (NumpadParenRight) -> linux:180 (KEY_KPRIGHTPAREN) -> atset1:57467 */\n \"NumpadSubtract\": 0x4a,\n\n /* html:NumpadSubtract (NumpadSubtract) -> linux:74 (KEY_KPMINUS) -> atset1:74 */\n \"Open\": 0x64,\n\n /* html:Open (Open) -> linux:134 (KEY_OPEN) -> atset1:100 */\n \"PageDown\": 0xe051,\n\n /* html:PageDown (PageDown) -> linux:109 (KEY_PAGEDOWN) -> atset1:57425 */\n \"PageUp\": 0xe049,\n\n /* html:PageUp (PageUp) -> linux:104 (KEY_PAGEUP) -> atset1:57417 */\n \"Paste\": 0x65,\n\n /* html:Paste (Paste) -> linux:135 (KEY_PASTE) -> atset1:101 */\n \"Pause\": 0xe046,\n\n /* html:Pause (Pause) -> linux:119 (KEY_PAUSE) -> atset1:57414 */\n \"Period\": 0x34,\n\n /* html:Period (Period) -> linux:52 (KEY_DOT) -> atset1:52 */\n \"Power\": 0xe05e,\n\n /* html:Power (Power) -> linux:116 (KEY_POWER) -> atset1:57438 */\n \"PrintScreen\": 0x54,\n\n /* html:PrintScreen (PrintScreen) -> linux:99 (KEY_SYSRQ) -> atset1:84 */\n \"Props\": 0xe006,\n\n /* html:Props (Props) -> linux:130 (KEY_PROPS) -> atset1:57350 */\n \"Quote\": 0x28,\n\n /* html:Quote (Quote) -> linux:40 (KEY_APOSTROPHE) -> atset1:40 */\n \"ScrollLock\": 0x46,\n\n /* html:ScrollLock (ScrollLock) -> linux:70 (KEY_SCROLLLOCK) -> atset1:70 */\n \"Semicolon\": 0x27,\n\n /* html:Semicolon (Semicolon) -> linux:39 (KEY_SEMICOLON) -> atset1:39 */\n \"ShiftLeft\": 0x2a,\n\n /* html:ShiftLeft (ShiftLeft) -> linux:42 (KEY_LEFTSHIFT) -> atset1:42 */\n \"ShiftRight\": 0x36,\n\n /* html:ShiftRight (ShiftRight) -> linux:54 (KEY_RIGHTSHIFT) -> atset1:54 */\n \"Slash\": 0x35,\n\n /* html:Slash (Slash) -> linux:53 (KEY_SLASH) -> atset1:53 */\n \"Sleep\": 0xe05f,\n\n /* html:Sleep (Sleep) -> linux:142 (KEY_SLEEP) -> atset1:57439 */\n \"Space\": 0x39,\n\n /* html:Space (Space) -> linux:57 (KEY_SPACE) -> atset1:57 */\n \"Suspend\": 0xe025,\n\n /* html:Suspend (Suspend) -> linux:205 (KEY_SUSPEND) -> atset1:57381 */\n \"Tab\": 0xf,\n\n /* html:Tab (Tab) -> linux:15 (KEY_TAB) -> atset1:15 */\n \"Undo\": 0xe007,\n\n /* html:Undo (Undo) -> linux:131 (KEY_UNDO) -> atset1:57351 */\n \"WakeUp\": 0xe063\n /* html:WakeUp (WakeUp) -> linux:143 (KEY_WAKEUP) -> atset1:57443 */\n\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _int = require(\"./util/int.js\");\n\nvar Log = _interopRequireWildcard(require(\"./util/logging.js\"));\n\nvar _strings = require(\"./util/strings.js\");\n\nvar _browser = require(\"./util/browser.js\");\n\nvar _element = require(\"./util/element.js\");\n\nvar _events = require(\"./util/events.js\");\n\nvar _eventtarget = _interopRequireDefault(require(\"./util/eventtarget.js\"));\n\nvar _display = _interopRequireDefault(require(\"./display.js\"));\n\nvar _inflator = _interopRequireDefault(require(\"./inflator.js\"));\n\nvar _deflator = _interopRequireDefault(require(\"./deflator.js\"));\n\nvar _keyboard = _interopRequireDefault(require(\"./input/keyboard.js\"));\n\nvar _gesturehandler = _interopRequireDefault(require(\"./input/gesturehandler.js\"));\n\nvar _cursor = _interopRequireDefault(require(\"./util/cursor.js\"));\n\nvar _websock = _interopRequireDefault(require(\"./websock.js\"));\n\nvar _des = _interopRequireDefault(require(\"./des.js\"));\n\nvar _keysym = _interopRequireDefault(require(\"./input/keysym.js\"));\n\nvar _xtscancodes = _interopRequireDefault(require(\"./input/xtscancodes.js\"));\n\nvar _encodings = require(\"./encodings.js\");\n\nvar _raw = _interopRequireDefault(require(\"./decoders/raw.js\"));\n\nvar _copyrect = _interopRequireDefault(require(\"./decoders/copyrect.js\"));\n\nvar _rre = _interopRequireDefault(require(\"./decoders/rre.js\"));\n\nvar _hextile = _interopRequireDefault(require(\"./decoders/hextile.js\"));\n\nvar _tight = _interopRequireDefault(require(\"./decoders/tight.js\"));\n\nvar _tightpng = _interopRequireDefault(require(\"./decoders/tightpng.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// How many seconds to wait for a disconnect to finish\nvar DISCONNECT_TIMEOUT = 3;\nvar DEFAULT_BACKGROUND = 'rgb(40, 40, 40)'; // Minimum wait (ms) between two mouse moves\n\nvar MOUSE_MOVE_DELAY = 17; // Wheel thresholds\n\nvar WHEEL_STEP = 50; // Pixels needed for one step\n\nvar WHEEL_LINE_HEIGHT = 19; // Assumed pixels for one line step\n// Gesture thresholds\n\nvar GESTURE_ZOOMSENS = 75;\nvar GESTURE_SCRLSENS = 50;\nvar DOUBLE_TAP_TIMEOUT = 1000;\nvar DOUBLE_TAP_THRESHOLD = 50; // Extended clipboard pseudo-encoding formats\n\nvar extendedClipboardFormatText = 1;\n/*eslint-disable no-unused-vars */\n\nvar extendedClipboardFormatRtf = 1 << 1;\nvar extendedClipboardFormatHtml = 1 << 2;\nvar extendedClipboardFormatDib = 1 << 3;\nvar extendedClipboardFormatFiles = 1 << 4;\n/*eslint-enable */\n// Extended clipboard pseudo-encoding actions\n\nvar extendedClipboardActionCaps = 1 << 24;\nvar extendedClipboardActionRequest = 1 << 25;\nvar extendedClipboardActionPeek = 1 << 26;\nvar extendedClipboardActionNotify = 1 << 27;\nvar extendedClipboardActionProvide = 1 << 28;\n\nvar RFB = /*#__PURE__*/function (_EventTargetMixin) {\n _inherits(RFB, _EventTargetMixin);\n\n var _super = _createSuper(RFB);\n\n function RFB(target, urlOrChannel, options) {\n var _this;\n\n _classCallCheck(this, RFB);\n\n if (!target) {\n throw new Error(\"Must specify target\");\n }\n\n if (!urlOrChannel) {\n throw new Error(\"Must specify URL, WebSocket or RTCDataChannel\");\n }\n\n _this = _super.call(this);\n _this._target = target;\n\n if (typeof urlOrChannel === \"string\") {\n _this._url = urlOrChannel;\n } else {\n _this._url = null;\n _this._rawChannel = urlOrChannel;\n } // Connection details\n\n\n options = options || {};\n _this._rfbCredentials = options.credentials || {};\n _this._shared = 'shared' in options ? !!options.shared : true;\n _this._repeaterID = options.repeaterID || '';\n _this._wsProtocols = options.wsProtocols || []; // Internal state\n\n _this._rfbConnectionState = '';\n _this._rfbInitState = '';\n _this._rfbAuthScheme = -1;\n _this._rfbCleanDisconnect = true; // Server capabilities\n\n _this._rfbVersion = 0;\n _this._rfbMaxVersion = 3.8;\n _this._rfbTightVNC = false;\n _this._rfbVeNCryptState = 0;\n _this._rfbXvpVer = 0;\n _this._fbWidth = 0;\n _this._fbHeight = 0;\n _this._fbName = \"\";\n _this._capabilities = {\n power: false\n };\n _this._supportsFence = false;\n _this._supportsContinuousUpdates = false;\n _this._enabledContinuousUpdates = false;\n _this._supportsSetDesktopSize = false;\n _this._screenID = 0;\n _this._screenFlags = 0;\n _this._qemuExtKeyEventSupported = false;\n _this._clipboardText = null;\n _this._clipboardServerCapabilitiesActions = {};\n _this._clipboardServerCapabilitiesFormats = {}; // Internal objects\n\n _this._sock = null; // Websock object\n\n _this._display = null; // Display object\n\n _this._flushing = false; // Display flushing state\n\n _this._keyboard = null; // Keyboard input handler object\n\n _this._gestures = null; // Gesture input handler object\n\n _this._resizeObserver = null; // Resize observer object\n // Timers\n\n _this._disconnTimer = null; // disconnection timer\n\n _this._resizeTimeout = null; // resize rate limiting\n\n _this._mouseMoveTimer = null; // Decoder states\n\n _this._decoders = {};\n _this._FBU = {\n rects: 0,\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n encoding: null\n }; // Mouse state\n\n _this._mousePos = {};\n _this._mouseButtonMask = 0;\n _this._mouseLastMoveTime = 0;\n _this._viewportDragging = false;\n _this._viewportDragPos = {};\n _this._viewportHasMoved = false;\n _this._accumulatedWheelDeltaX = 0;\n _this._accumulatedWheelDeltaY = 0; // Gesture state\n\n _this._gestureLastTapTime = null;\n _this._gestureFirstDoubleTapEv = null;\n _this._gestureLastMagnitudeX = 0;\n _this._gestureLastMagnitudeY = 0; // Bound event handlers\n\n _this._eventHandlers = {\n focusCanvas: _this._focusCanvas.bind(_assertThisInitialized(_this)),\n handleResize: _this._handleResize.bind(_assertThisInitialized(_this)),\n handleMouse: _this._handleMouse.bind(_assertThisInitialized(_this)),\n handleWheel: _this._handleWheel.bind(_assertThisInitialized(_this)),\n handleGesture: _this._handleGesture.bind(_assertThisInitialized(_this))\n }; // main setup\n\n Log.Debug(\">> RFB.constructor\"); // Create DOM elements\n\n _this._screen = document.createElement('div');\n _this._screen.style.display = 'flex';\n _this._screen.style.width = '100%';\n _this._screen.style.height = '100%';\n _this._screen.style.overflow = 'auto';\n _this._screen.style.background = DEFAULT_BACKGROUND;\n _this._canvas = document.createElement('canvas');\n _this._canvas.style.margin = 'auto'; // Some browsers add an outline on focus\n\n _this._canvas.style.outline = 'none';\n _this._canvas.width = 0;\n _this._canvas.height = 0;\n _this._canvas.tabIndex = -1;\n\n _this._screen.appendChild(_this._canvas); // Cursor\n\n\n _this._cursor = new _cursor[\"default\"](); // XXX: TightVNC 2.8.11 sends no cursor at all until Windows changes\n // it. Result: no cursor at all until a window border or an edit field\n // is hit blindly. But there are also VNC servers that draw the cursor\n // in the framebuffer and don't send the empty local cursor. There is\n // no way to satisfy both sides.\n //\n // The spec is unclear on this \"initial cursor\" issue. Many other\n // viewers (TigerVNC, RealVNC, Remmina) display an arrow as the\n // initial cursor instead.\n\n _this._cursorImage = RFB.cursors.none; // populate decoder array with objects\n\n _this._decoders[_encodings.encodings.encodingRaw] = new _raw[\"default\"]();\n _this._decoders[_encodings.encodings.encodingCopyRect] = new _copyrect[\"default\"]();\n _this._decoders[_encodings.encodings.encodingRRE] = new _rre[\"default\"]();\n _this._decoders[_encodings.encodings.encodingHextile] = new _hextile[\"default\"]();\n _this._decoders[_encodings.encodings.encodingTight] = new _tight[\"default\"]();\n _this._decoders[_encodings.encodings.encodingTightPNG] = new _tightpng[\"default\"](); // NB: nothing that needs explicit teardown should be done\n // before this point, since this can throw an exception\n\n try {\n _this._display = new _display[\"default\"](_this._canvas);\n } catch (exc) {\n Log.Error(\"Display exception: \" + exc);\n throw exc;\n }\n\n _this._display.onflush = _this._onFlush.bind(_assertThisInitialized(_this));\n _this._keyboard = new _keyboard[\"default\"](_this._canvas);\n _this._keyboard.onkeyevent = _this._handleKeyEvent.bind(_assertThisInitialized(_this));\n _this._gestures = new _gesturehandler[\"default\"]();\n _this._sock = new _websock[\"default\"]();\n\n _this._sock.on('open', _this._socketOpen.bind(_assertThisInitialized(_this)));\n\n _this._sock.on('close', _this._socketClose.bind(_assertThisInitialized(_this)));\n\n _this._sock.on('message', _this._handleMessage.bind(_assertThisInitialized(_this)));\n\n _this._sock.on('error', _this._socketError.bind(_assertThisInitialized(_this)));\n\n _this._resizeObserver = new ResizeObserver(_this._eventHandlers.handleResize); // All prepared, kick off the connection\n\n _this._updateConnectionState('connecting');\n\n Log.Debug(\"<< RFB.constructor\"); // ===== PROPERTIES =====\n\n _this.dragViewport = false;\n _this.focusOnClick = true;\n _this._viewOnly = false;\n _this._clipViewport = false;\n _this._scaleViewport = false;\n _this._resizeSession = false;\n _this._showDotCursor = false;\n\n if (options.showDotCursor !== undefined) {\n Log.Warn(\"Specifying showDotCursor as a RFB constructor argument is deprecated\");\n _this._showDotCursor = options.showDotCursor;\n }\n\n _this._qualityLevel = 6;\n _this._compressionLevel = 2;\n return _this;\n } // ===== PROPERTIES =====\n\n\n _createClass(RFB, [{\n key: \"viewOnly\",\n get: function get() {\n return this._viewOnly;\n },\n set: function set(viewOnly) {\n this._viewOnly = viewOnly;\n\n if (this._rfbConnectionState === \"connecting\" || this._rfbConnectionState === \"connected\") {\n if (viewOnly) {\n this._keyboard.ungrab();\n } else {\n this._keyboard.grab();\n }\n }\n }\n }, {\n key: \"capabilities\",\n get: function get() {\n return this._capabilities;\n }\n }, {\n key: \"touchButton\",\n get: function get() {\n return 0;\n },\n set: function set(button) {\n Log.Warn(\"Using old API!\");\n }\n }, {\n key: \"clipViewport\",\n get: function get() {\n return this._clipViewport;\n },\n set: function set(viewport) {\n this._clipViewport = viewport;\n\n this._updateClip();\n }\n }, {\n key: \"scaleViewport\",\n get: function get() {\n return this._scaleViewport;\n },\n set: function set(scale) {\n this._scaleViewport = scale; // Scaling trumps clipping, so we may need to adjust\n // clipping when enabling or disabling scaling\n\n if (scale && this._clipViewport) {\n this._updateClip();\n }\n\n this._updateScale();\n\n if (!scale && this._clipViewport) {\n this._updateClip();\n }\n }\n }, {\n key: \"resizeSession\",\n get: function get() {\n return this._resizeSession;\n },\n set: function set(resize) {\n this._resizeSession = resize;\n\n if (resize) {\n this._requestRemoteResize();\n }\n }\n }, {\n key: \"showDotCursor\",\n get: function get() {\n return this._showDotCursor;\n },\n set: function set(show) {\n this._showDotCursor = show;\n\n this._refreshCursor();\n }\n }, {\n key: \"background\",\n get: function get() {\n return this._screen.style.background;\n },\n set: function set(cssValue) {\n this._screen.style.background = cssValue;\n }\n }, {\n key: \"qualityLevel\",\n get: function get() {\n return this._qualityLevel;\n },\n set: function set(qualityLevel) {\n if (!Number.isInteger(qualityLevel) || qualityLevel < 0 || qualityLevel > 9) {\n Log.Error(\"qualityLevel must be an integer between 0 and 9\");\n return;\n }\n\n if (this._qualityLevel === qualityLevel) {\n return;\n }\n\n this._qualityLevel = qualityLevel;\n\n if (this._rfbConnectionState === 'connected') {\n this._sendEncodings();\n }\n }\n }, {\n key: \"compressionLevel\",\n get: function get() {\n return this._compressionLevel;\n },\n set: function set(compressionLevel) {\n if (!Number.isInteger(compressionLevel) || compressionLevel < 0 || compressionLevel > 9) {\n Log.Error(\"compressionLevel must be an integer between 0 and 9\");\n return;\n }\n\n if (this._compressionLevel === compressionLevel) {\n return;\n }\n\n this._compressionLevel = compressionLevel;\n\n if (this._rfbConnectionState === 'connected') {\n this._sendEncodings();\n }\n } // ===== PUBLIC METHODS =====\n\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n this._updateConnectionState('disconnecting');\n\n this._sock.off('error');\n\n this._sock.off('message');\n\n this._sock.off('open');\n }\n }, {\n key: \"sendCredentials\",\n value: function sendCredentials(creds) {\n this._rfbCredentials = creds;\n setTimeout(this._initMsg.bind(this), 0);\n }\n }, {\n key: \"sendCtrlAltDel\",\n value: function sendCtrlAltDel() {\n if (this._rfbConnectionState !== 'connected' || this._viewOnly) {\n return;\n }\n\n Log.Info(\"Sending Ctrl-Alt-Del\");\n this.sendKey(_keysym[\"default\"].XK_Control_L, \"ControlLeft\", true);\n this.sendKey(_keysym[\"default\"].XK_Alt_L, \"AltLeft\", true);\n this.sendKey(_keysym[\"default\"].XK_Delete, \"Delete\", true);\n this.sendKey(_keysym[\"default\"].XK_Delete, \"Delete\", false);\n this.sendKey(_keysym[\"default\"].XK_Alt_L, \"AltLeft\", false);\n this.sendKey(_keysym[\"default\"].XK_Control_L, \"ControlLeft\", false);\n }\n }, {\n key: \"machineShutdown\",\n value: function machineShutdown() {\n this._xvpOp(1, 2);\n }\n }, {\n key: \"machineReboot\",\n value: function machineReboot() {\n this._xvpOp(1, 3);\n }\n }, {\n key: \"machineReset\",\n value: function machineReset() {\n this._xvpOp(1, 4);\n } // Send a key press. If 'down' is not specified then send a down key\n // followed by an up key.\n\n }, {\n key: \"sendKey\",\n value: function sendKey(keysym, code, down) {\n if (this._rfbConnectionState !== 'connected' || this._viewOnly) {\n return;\n }\n\n if (down === undefined) {\n this.sendKey(keysym, code, true);\n this.sendKey(keysym, code, false);\n return;\n }\n\n var scancode = _xtscancodes[\"default\"][code];\n\n if (this._qemuExtKeyEventSupported && scancode) {\n // 0 is NoSymbol\n keysym = keysym || 0;\n Log.Info(\"Sending key (\" + (down ? \"down\" : \"up\") + \"): keysym \" + keysym + \", scancode \" + scancode);\n RFB.messages.QEMUExtendedKeyEvent(this._sock, keysym, down, scancode);\n } else {\n if (!keysym) {\n return;\n }\n\n Log.Info(\"Sending keysym (\" + (down ? \"down\" : \"up\") + \"): \" + keysym);\n RFB.messages.keyEvent(this._sock, keysym, down ? 1 : 0);\n }\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this._canvas.focus();\n }\n }, {\n key: \"blur\",\n value: function blur() {\n this._canvas.blur();\n }\n }, {\n key: \"clipboardPasteFrom\",\n value: function clipboardPasteFrom(text) {\n if (this._rfbConnectionState !== 'connected' || this._viewOnly) {\n return;\n }\n\n if (this._clipboardServerCapabilitiesFormats[extendedClipboardFormatText] && this._clipboardServerCapabilitiesActions[extendedClipboardActionNotify]) {\n this._clipboardText = text;\n RFB.messages.extendedClipboardNotify(this._sock, [extendedClipboardFormatText]);\n } else {\n var data = new Uint8Array(text.length);\n\n for (var i = 0; i < text.length; i++) {\n // FIXME: text can have values outside of Latin1/Uint8\n data[i] = text.charCodeAt(i);\n }\n\n RFB.messages.clientCutText(this._sock, data);\n }\n } // ===== PRIVATE METHODS =====\n\n }, {\n key: \"_connect\",\n value: function _connect() {\n Log.Debug(\">> RFB.connect\");\n\n if (this._url) {\n Log.Info(\"connecting to \".concat(this._url));\n\n this._sock.open(this._url, this._wsProtocols);\n } else {\n Log.Info(\"attaching \".concat(this._rawChannel, \" to Websock\"));\n\n this._sock.attach(this._rawChannel);\n\n if (this._sock.readyState === 'closed') {\n throw Error(\"Cannot use already closed WebSocket/RTCDataChannel\");\n }\n\n if (this._sock.readyState === 'open') {\n // FIXME: _socketOpen() can in theory call _fail(), which\n // isn't allowed this early, but I'm not sure that can\n // happen without a bug messing up our state variables\n this._socketOpen();\n }\n } // Make our elements part of the page\n\n\n this._target.appendChild(this._screen);\n\n this._gestures.attach(this._canvas);\n\n this._cursor.attach(this._canvas);\n\n this._refreshCursor(); // Monitor size changes of the screen element\n\n\n this._resizeObserver.observe(this._screen); // Always grab focus on some kind of click event\n\n\n this._canvas.addEventListener(\"mousedown\", this._eventHandlers.focusCanvas);\n\n this._canvas.addEventListener(\"touchstart\", this._eventHandlers.focusCanvas); // Mouse events\n\n\n this._canvas.addEventListener('mousedown', this._eventHandlers.handleMouse);\n\n this._canvas.addEventListener('mouseup', this._eventHandlers.handleMouse);\n\n this._canvas.addEventListener('mousemove', this._eventHandlers.handleMouse); // Prevent middle-click pasting (see handler for why we bind to document)\n\n\n this._canvas.addEventListener('click', this._eventHandlers.handleMouse); // preventDefault() on mousedown doesn't stop this event for some\n // reason so we have to explicitly block it\n\n\n this._canvas.addEventListener('contextmenu', this._eventHandlers.handleMouse); // Wheel events\n\n\n this._canvas.addEventListener(\"wheel\", this._eventHandlers.handleWheel); // Gesture events\n\n\n this._canvas.addEventListener(\"gesturestart\", this._eventHandlers.handleGesture);\n\n this._canvas.addEventListener(\"gesturemove\", this._eventHandlers.handleGesture);\n\n this._canvas.addEventListener(\"gestureend\", this._eventHandlers.handleGesture);\n\n Log.Debug(\"<< RFB.connect\");\n }\n }, {\n key: \"_disconnect\",\n value: function _disconnect() {\n Log.Debug(\">> RFB.disconnect\");\n\n this._cursor.detach();\n\n this._canvas.removeEventListener(\"gesturestart\", this._eventHandlers.handleGesture);\n\n this._canvas.removeEventListener(\"gesturemove\", this._eventHandlers.handleGesture);\n\n this._canvas.removeEventListener(\"gestureend\", this._eventHandlers.handleGesture);\n\n this._canvas.removeEventListener(\"wheel\", this._eventHandlers.handleWheel);\n\n this._canvas.removeEventListener('mousedown', this._eventHandlers.handleMouse);\n\n this._canvas.removeEventListener('mouseup', this._eventHandlers.handleMouse);\n\n this._canvas.removeEventListener('mousemove', this._eventHandlers.handleMouse);\n\n this._canvas.removeEventListener('click', this._eventHandlers.handleMouse);\n\n this._canvas.removeEventListener('contextmenu', this._eventHandlers.handleMouse);\n\n this._canvas.removeEventListener(\"mousedown\", this._eventHandlers.focusCanvas);\n\n this._canvas.removeEventListener(\"touchstart\", this._eventHandlers.focusCanvas);\n\n this._resizeObserver.disconnect();\n\n this._keyboard.ungrab();\n\n this._gestures.detach();\n\n this._sock.close();\n\n try {\n this._target.removeChild(this._screen);\n } catch (e) {\n if (e.name === 'NotFoundError') {// Some cases where the initial connection fails\n // can disconnect before the _screen is created\n } else {\n throw e;\n }\n }\n\n clearTimeout(this._resizeTimeout);\n clearTimeout(this._mouseMoveTimer);\n Log.Debug(\"<< RFB.disconnect\");\n }\n }, {\n key: \"_socketOpen\",\n value: function _socketOpen() {\n if (this._rfbConnectionState === 'connecting' && this._rfbInitState === '') {\n this._rfbInitState = 'ProtocolVersion';\n Log.Debug(\"Starting VNC handshake\");\n } else {\n this._fail(\"Unexpected server connection while \" + this._rfbConnectionState);\n }\n }\n }, {\n key: \"_socketClose\",\n value: function _socketClose(e) {\n Log.Debug(\"WebSocket on-close event\");\n var msg = \"\";\n\n if (e.code) {\n msg = \"(code: \" + e.code;\n\n if (e.reason) {\n msg += \", reason: \" + e.reason;\n }\n\n msg += \")\";\n }\n\n switch (this._rfbConnectionState) {\n case 'connecting':\n this._fail(\"Connection closed \" + msg);\n\n break;\n\n case 'connected':\n // Handle disconnects that were initiated server-side\n this._updateConnectionState('disconnecting');\n\n this._updateConnectionState('disconnected');\n\n break;\n\n case 'disconnecting':\n // Normal disconnection path\n this._updateConnectionState('disconnected');\n\n break;\n\n case 'disconnected':\n this._fail(\"Unexpected server disconnect \" + \"when already disconnected \" + msg);\n\n break;\n\n default:\n this._fail(\"Unexpected server disconnect before connecting \" + msg);\n\n break;\n }\n\n this._sock.off('close'); // Delete reference to raw channel to allow cleanup.\n\n\n this._rawChannel = null;\n }\n }, {\n key: \"_socketError\",\n value: function _socketError(e) {\n Log.Warn(\"WebSocket on-error event\");\n }\n }, {\n key: \"_focusCanvas\",\n value: function _focusCanvas(event) {\n if (!this.focusOnClick) {\n return;\n }\n\n this.focus();\n }\n }, {\n key: \"_setDesktopName\",\n value: function _setDesktopName(name) {\n this._fbName = name;\n this.dispatchEvent(new CustomEvent(\"desktopname\", {\n detail: {\n name: this._fbName\n }\n }));\n }\n }, {\n key: \"_handleResize\",\n value: function _handleResize() {\n var _this2 = this;\n\n // If the window resized then our screen element might have\n // as well. Update the viewport dimensions.\n window.requestAnimationFrame(function () {\n _this2._updateClip();\n\n _this2._updateScale();\n });\n\n if (this._resizeSession) {\n // Request changing the resolution of the remote display to\n // the size of the local browser viewport.\n // In order to not send multiple requests before the browser-resize\n // is finished we wait 0.5 seconds before sending the request.\n clearTimeout(this._resizeTimeout);\n this._resizeTimeout = setTimeout(this._requestRemoteResize.bind(this), 500);\n }\n } // Update state of clipping in Display object, and make sure the\n // configured viewport matches the current screen size\n\n }, {\n key: \"_updateClip\",\n value: function _updateClip() {\n var curClip = this._display.clipViewport;\n var newClip = this._clipViewport;\n\n if (this._scaleViewport) {\n // Disable viewport clipping if we are scaling\n newClip = false;\n }\n\n if (curClip !== newClip) {\n this._display.clipViewport = newClip;\n }\n\n if (newClip) {\n // When clipping is enabled, the screen is limited to\n // the size of the container.\n var size = this._screenSize();\n\n this._display.viewportChangeSize(size.w, size.h);\n\n this._fixScrollbars();\n }\n }\n }, {\n key: \"_updateScale\",\n value: function _updateScale() {\n if (!this._scaleViewport) {\n this._display.scale = 1.0;\n } else {\n var size = this._screenSize();\n\n this._display.autoscale(size.w, size.h);\n }\n\n this._fixScrollbars();\n } // Requests a change of remote desktop size. This message is an extension\n // and may only be sent if we have received an ExtendedDesktopSize message\n\n }, {\n key: \"_requestRemoteResize\",\n value: function _requestRemoteResize() {\n clearTimeout(this._resizeTimeout);\n this._resizeTimeout = null;\n\n if (!this._resizeSession || this._viewOnly || !this._supportsSetDesktopSize) {\n return;\n }\n\n var size = this._screenSize();\n\n RFB.messages.setDesktopSize(this._sock, Math.floor(size.w), Math.floor(size.h), this._screenID, this._screenFlags);\n Log.Debug('Requested new desktop size: ' + size.w + 'x' + size.h);\n } // Gets the the size of the available screen\n\n }, {\n key: \"_screenSize\",\n value: function _screenSize() {\n var r = this._screen.getBoundingClientRect();\n\n return {\n w: r.width,\n h: r.height\n };\n }\n }, {\n key: \"_fixScrollbars\",\n value: function _fixScrollbars() {\n // This is a hack because Chrome screws up the calculation\n // for when scrollbars are needed. So to fix it we temporarily\n // toggle them off and on.\n var orig = this._screen.style.overflow;\n this._screen.style.overflow = 'hidden'; // Force Chrome to recalculate the layout by asking for\n // an element's dimensions\n\n this._screen.getBoundingClientRect();\n\n this._screen.style.overflow = orig;\n }\n /*\n * Connection states:\n * connecting\n * connected\n * disconnecting\n * disconnected - permanent state\n */\n\n }, {\n key: \"_updateConnectionState\",\n value: function _updateConnectionState(state) {\n var _this3 = this;\n\n var oldstate = this._rfbConnectionState;\n\n if (state === oldstate) {\n Log.Debug(\"Already in state '\" + state + \"', ignoring\");\n return;\n } // The 'disconnected' state is permanent for each RFB object\n\n\n if (oldstate === 'disconnected') {\n Log.Error(\"Tried changing state of a disconnected RFB object\");\n return;\n } // Ensure proper transitions before doing anything\n\n\n switch (state) {\n case 'connected':\n if (oldstate !== 'connecting') {\n Log.Error(\"Bad transition to connected state, \" + \"previous connection state: \" + oldstate);\n return;\n }\n\n break;\n\n case 'disconnected':\n if (oldstate !== 'disconnecting') {\n Log.Error(\"Bad transition to disconnected state, \" + \"previous connection state: \" + oldstate);\n return;\n }\n\n break;\n\n case 'connecting':\n if (oldstate !== '') {\n Log.Error(\"Bad transition to connecting state, \" + \"previous connection state: \" + oldstate);\n return;\n }\n\n break;\n\n case 'disconnecting':\n if (oldstate !== 'connected' && oldstate !== 'connecting') {\n Log.Error(\"Bad transition to disconnecting state, \" + \"previous connection state: \" + oldstate);\n return;\n }\n\n break;\n\n default:\n Log.Error(\"Unknown connection state: \" + state);\n return;\n } // State change actions\n\n\n this._rfbConnectionState = state;\n Log.Debug(\"New state '\" + state + \"', was '\" + oldstate + \"'.\");\n\n if (this._disconnTimer && state !== 'disconnecting') {\n Log.Debug(\"Clearing disconnect timer\");\n clearTimeout(this._disconnTimer);\n this._disconnTimer = null; // make sure we don't get a double event\n\n this._sock.off('close');\n }\n\n switch (state) {\n case 'connecting':\n this._connect();\n\n break;\n\n case 'connected':\n this.dispatchEvent(new CustomEvent(\"connect\", {\n detail: {}\n }));\n break;\n\n case 'disconnecting':\n this._disconnect();\n\n this._disconnTimer = setTimeout(function () {\n Log.Error(\"Disconnection timed out.\");\n\n _this3._updateConnectionState('disconnected');\n }, DISCONNECT_TIMEOUT * 1000);\n break;\n\n case 'disconnected':\n this.dispatchEvent(new CustomEvent(\"disconnect\", {\n detail: {\n clean: this._rfbCleanDisconnect\n }\n }));\n break;\n }\n }\n /* Print errors and disconnect\n *\n * The parameter 'details' is used for information that\n * should be logged but not sent to the user interface.\n */\n\n }, {\n key: \"_fail\",\n value: function _fail(details) {\n switch (this._rfbConnectionState) {\n case 'disconnecting':\n Log.Error(\"Failed when disconnecting: \" + details);\n break;\n\n case 'connected':\n Log.Error(\"Failed while connected: \" + details);\n break;\n\n case 'connecting':\n Log.Error(\"Failed when connecting: \" + details);\n break;\n\n default:\n Log.Error(\"RFB failure: \" + details);\n break;\n }\n\n this._rfbCleanDisconnect = false; //This is sent to the UI\n // Transition to disconnected without waiting for socket to close\n\n this._updateConnectionState('disconnecting');\n\n this._updateConnectionState('disconnected');\n\n return false;\n }\n }, {\n key: \"_setCapability\",\n value: function _setCapability(cap, val) {\n this._capabilities[cap] = val;\n this.dispatchEvent(new CustomEvent(\"capabilities\", {\n detail: {\n capabilities: this._capabilities\n }\n }));\n }\n }, {\n key: \"_handleMessage\",\n value: function _handleMessage() {\n if (this._sock.rQlen === 0) {\n Log.Warn(\"handleMessage called on an empty receive queue\");\n return;\n }\n\n switch (this._rfbConnectionState) {\n case 'disconnected':\n Log.Error(\"Got data while disconnected\");\n break;\n\n case 'connected':\n while (true) {\n if (this._flushing) {\n break;\n }\n\n if (!this._normalMsg()) {\n break;\n }\n\n if (this._sock.rQlen === 0) {\n break;\n }\n }\n\n break;\n\n default:\n this._initMsg();\n\n break;\n }\n }\n }, {\n key: \"_handleKeyEvent\",\n value: function _handleKeyEvent(keysym, code, down) {\n this.sendKey(keysym, code, down);\n }\n }, {\n key: \"_handleMouse\",\n value: function _handleMouse(ev) {\n /*\n * We don't check connection status or viewOnly here as the\n * mouse events might be used to control the viewport\n */\n if (ev.type === 'click') {\n /*\n * Note: This is only needed for the 'click' event as it fails\n * to fire properly for the target element so we have\n * to listen on the document element instead.\n */\n if (ev.target !== this._canvas) {\n return;\n }\n } // FIXME: if we're in view-only and not dragging,\n // should we stop events?\n\n\n ev.stopPropagation();\n ev.preventDefault();\n\n if (ev.type === 'click' || ev.type === 'contextmenu') {\n return;\n }\n\n var pos = (0, _element.clientToElement)(ev.clientX, ev.clientY, this._canvas);\n\n switch (ev.type) {\n case 'mousedown':\n (0, _events.setCapture)(this._canvas);\n\n this._handleMouseButton(pos.x, pos.y, true, 1 << ev.button);\n\n break;\n\n case 'mouseup':\n this._handleMouseButton(pos.x, pos.y, false, 1 << ev.button);\n\n break;\n\n case 'mousemove':\n this._handleMouseMove(pos.x, pos.y);\n\n break;\n }\n }\n }, {\n key: \"_handleMouseButton\",\n value: function _handleMouseButton(x, y, down, bmask) {\n if (this.dragViewport) {\n if (down && !this._viewportDragging) {\n this._viewportDragging = true;\n this._viewportDragPos = {\n 'x': x,\n 'y': y\n };\n this._viewportHasMoved = false; // Skip sending mouse events\n\n return;\n } else {\n this._viewportDragging = false; // If we actually performed a drag then we are done\n // here and should not send any mouse events\n\n if (this._viewportHasMoved) {\n return;\n } // Otherwise we treat this as a mouse click event.\n // Send the button down event here, as the button up\n // event is sent at the end of this function.\n\n\n this._sendMouse(x, y, bmask);\n }\n } // Flush waiting move event first\n\n\n if (this._mouseMoveTimer !== null) {\n clearTimeout(this._mouseMoveTimer);\n this._mouseMoveTimer = null;\n\n this._sendMouse(x, y, this._mouseButtonMask);\n }\n\n if (down) {\n this._mouseButtonMask |= bmask;\n } else {\n this._mouseButtonMask &= ~bmask;\n }\n\n this._sendMouse(x, y, this._mouseButtonMask);\n }\n }, {\n key: \"_handleMouseMove\",\n value: function _handleMouseMove(x, y) {\n var _this4 = this;\n\n if (this._viewportDragging) {\n var deltaX = this._viewportDragPos.x - x;\n var deltaY = this._viewportDragPos.y - y;\n\n if (this._viewportHasMoved || Math.abs(deltaX) > _browser.dragThreshold || Math.abs(deltaY) > _browser.dragThreshold) {\n this._viewportHasMoved = true;\n this._viewportDragPos = {\n 'x': x,\n 'y': y\n };\n\n this._display.viewportChangePos(deltaX, deltaY);\n } // Skip sending mouse events\n\n\n return;\n }\n\n this._mousePos = {\n 'x': x,\n 'y': y\n }; // Limit many mouse move events to one every MOUSE_MOVE_DELAY ms\n\n if (this._mouseMoveTimer == null) {\n var timeSinceLastMove = Date.now() - this._mouseLastMoveTime;\n\n if (timeSinceLastMove > MOUSE_MOVE_DELAY) {\n this._sendMouse(x, y, this._mouseButtonMask);\n\n this._mouseLastMoveTime = Date.now();\n } else {\n // Too soon since the latest move, wait the remaining time\n this._mouseMoveTimer = setTimeout(function () {\n _this4._handleDelayedMouseMove();\n }, MOUSE_MOVE_DELAY - timeSinceLastMove);\n }\n }\n }\n }, {\n key: \"_handleDelayedMouseMove\",\n value: function _handleDelayedMouseMove() {\n this._mouseMoveTimer = null;\n\n this._sendMouse(this._mousePos.x, this._mousePos.y, this._mouseButtonMask);\n\n this._mouseLastMoveTime = Date.now();\n }\n }, {\n key: \"_sendMouse\",\n value: function _sendMouse(x, y, mask) {\n if (this._rfbConnectionState !== 'connected') {\n return;\n }\n\n if (this._viewOnly) {\n return;\n } // View only, skip mouse events\n\n\n RFB.messages.pointerEvent(this._sock, this._display.absX(x), this._display.absY(y), mask);\n }\n }, {\n key: \"_handleWheel\",\n value: function _handleWheel(ev) {\n if (this._rfbConnectionState !== 'connected') {\n return;\n }\n\n if (this._viewOnly) {\n return;\n } // View only, skip mouse events\n\n\n ev.stopPropagation();\n ev.preventDefault();\n var pos = (0, _element.clientToElement)(ev.clientX, ev.clientY, this._canvas);\n var dX = ev.deltaX;\n var dY = ev.deltaY; // Pixel units unless it's non-zero.\n // Note that if deltamode is line or page won't matter since we aren't\n // sending the mouse wheel delta to the server anyway.\n // The difference between pixel and line can be important however since\n // we have a threshold that can be smaller than the line height.\n\n if (ev.deltaMode !== 0) {\n dX *= WHEEL_LINE_HEIGHT;\n dY *= WHEEL_LINE_HEIGHT;\n } // Mouse wheel events are sent in steps over VNC. This means that the VNC\n // protocol can't handle a wheel event with specific distance or speed.\n // Therefor, if we get a lot of small mouse wheel events we combine them.\n\n\n this._accumulatedWheelDeltaX += dX;\n this._accumulatedWheelDeltaY += dY; // Generate a mouse wheel step event when the accumulated delta\n // for one of the axes is large enough.\n\n if (Math.abs(this._accumulatedWheelDeltaX) >= WHEEL_STEP) {\n if (this._accumulatedWheelDeltaX < 0) {\n this._handleMouseButton(pos.x, pos.y, true, 1 << 5);\n\n this._handleMouseButton(pos.x, pos.y, false, 1 << 5);\n } else if (this._accumulatedWheelDeltaX > 0) {\n this._handleMouseButton(pos.x, pos.y, true, 1 << 6);\n\n this._handleMouseButton(pos.x, pos.y, false, 1 << 6);\n }\n\n this._accumulatedWheelDeltaX = 0;\n }\n\n if (Math.abs(this._accumulatedWheelDeltaY) >= WHEEL_STEP) {\n if (this._accumulatedWheelDeltaY < 0) {\n this._handleMouseButton(pos.x, pos.y, true, 1 << 3);\n\n this._handleMouseButton(pos.x, pos.y, false, 1 << 3);\n } else if (this._accumulatedWheelDeltaY > 0) {\n this._handleMouseButton(pos.x, pos.y, true, 1 << 4);\n\n this._handleMouseButton(pos.x, pos.y, false, 1 << 4);\n }\n\n this._accumulatedWheelDeltaY = 0;\n }\n }\n }, {\n key: \"_fakeMouseMove\",\n value: function _fakeMouseMove(ev, elementX, elementY) {\n this._handleMouseMove(elementX, elementY);\n\n this._cursor.move(ev.detail.clientX, ev.detail.clientY);\n }\n }, {\n key: \"_handleTapEvent\",\n value: function _handleTapEvent(ev, bmask) {\n var pos = (0, _element.clientToElement)(ev.detail.clientX, ev.detail.clientY, this._canvas); // If the user quickly taps multiple times we assume they meant to\n // hit the same spot, so slightly adjust coordinates\n\n if (this._gestureLastTapTime !== null && Date.now() - this._gestureLastTapTime < DOUBLE_TAP_TIMEOUT && this._gestureFirstDoubleTapEv.detail.type === ev.detail.type) {\n var dx = this._gestureFirstDoubleTapEv.detail.clientX - ev.detail.clientX;\n var dy = this._gestureFirstDoubleTapEv.detail.clientY - ev.detail.clientY;\n var distance = Math.hypot(dx, dy);\n\n if (distance < DOUBLE_TAP_THRESHOLD) {\n pos = (0, _element.clientToElement)(this._gestureFirstDoubleTapEv.detail.clientX, this._gestureFirstDoubleTapEv.detail.clientY, this._canvas);\n } else {\n this._gestureFirstDoubleTapEv = ev;\n }\n } else {\n this._gestureFirstDoubleTapEv = ev;\n }\n\n this._gestureLastTapTime = Date.now();\n\n this._fakeMouseMove(this._gestureFirstDoubleTapEv, pos.x, pos.y);\n\n this._handleMouseButton(pos.x, pos.y, true, bmask);\n\n this._handleMouseButton(pos.x, pos.y, false, bmask);\n }\n }, {\n key: \"_handleGesture\",\n value: function _handleGesture(ev) {\n var magnitude;\n var pos = (0, _element.clientToElement)(ev.detail.clientX, ev.detail.clientY, this._canvas);\n\n switch (ev.type) {\n case 'gesturestart':\n switch (ev.detail.type) {\n case 'onetap':\n this._handleTapEvent(ev, 0x1);\n\n break;\n\n case 'twotap':\n this._handleTapEvent(ev, 0x4);\n\n break;\n\n case 'threetap':\n this._handleTapEvent(ev, 0x2);\n\n break;\n\n case 'drag':\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n this._handleMouseButton(pos.x, pos.y, true, 0x1);\n\n break;\n\n case 'longpress':\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n this._handleMouseButton(pos.x, pos.y, true, 0x4);\n\n break;\n\n case 'twodrag':\n this._gestureLastMagnitudeX = ev.detail.magnitudeX;\n this._gestureLastMagnitudeY = ev.detail.magnitudeY;\n\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n break;\n\n case 'pinch':\n this._gestureLastMagnitudeX = Math.hypot(ev.detail.magnitudeX, ev.detail.magnitudeY);\n\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n break;\n }\n\n break;\n\n case 'gesturemove':\n switch (ev.detail.type) {\n case 'onetap':\n case 'twotap':\n case 'threetap':\n break;\n\n case 'drag':\n case 'longpress':\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n break;\n\n case 'twodrag':\n // Always scroll in the same position.\n // We don't know if the mouse was moved so we need to move it\n // every update.\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n while (ev.detail.magnitudeY - this._gestureLastMagnitudeY > GESTURE_SCRLSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x8);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x8);\n\n this._gestureLastMagnitudeY += GESTURE_SCRLSENS;\n }\n\n while (ev.detail.magnitudeY - this._gestureLastMagnitudeY < -GESTURE_SCRLSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x10);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x10);\n\n this._gestureLastMagnitudeY -= GESTURE_SCRLSENS;\n }\n\n while (ev.detail.magnitudeX - this._gestureLastMagnitudeX > GESTURE_SCRLSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x20);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x20);\n\n this._gestureLastMagnitudeX += GESTURE_SCRLSENS;\n }\n\n while (ev.detail.magnitudeX - this._gestureLastMagnitudeX < -GESTURE_SCRLSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x40);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x40);\n\n this._gestureLastMagnitudeX -= GESTURE_SCRLSENS;\n }\n\n break;\n\n case 'pinch':\n // Always scroll in the same position.\n // We don't know if the mouse was moved so we need to move it\n // every update.\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n magnitude = Math.hypot(ev.detail.magnitudeX, ev.detail.magnitudeY);\n\n if (Math.abs(magnitude - this._gestureLastMagnitudeX) > GESTURE_ZOOMSENS) {\n this._handleKeyEvent(_keysym[\"default\"].XK_Control_L, \"ControlLeft\", true);\n\n while (magnitude - this._gestureLastMagnitudeX > GESTURE_ZOOMSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x8);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x8);\n\n this._gestureLastMagnitudeX += GESTURE_ZOOMSENS;\n }\n\n while (magnitude - this._gestureLastMagnitudeX < -GESTURE_ZOOMSENS) {\n this._handleMouseButton(pos.x, pos.y, true, 0x10);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x10);\n\n this._gestureLastMagnitudeX -= GESTURE_ZOOMSENS;\n }\n }\n\n this._handleKeyEvent(_keysym[\"default\"].XK_Control_L, \"ControlLeft\", false);\n\n break;\n }\n\n break;\n\n case 'gestureend':\n switch (ev.detail.type) {\n case 'onetap':\n case 'twotap':\n case 'threetap':\n case 'pinch':\n case 'twodrag':\n break;\n\n case 'drag':\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x1);\n\n break;\n\n case 'longpress':\n this._fakeMouseMove(ev, pos.x, pos.y);\n\n this._handleMouseButton(pos.x, pos.y, false, 0x4);\n\n break;\n }\n\n break;\n }\n } // Message Handlers\n\n }, {\n key: \"_negotiateProtocolVersion\",\n value: function _negotiateProtocolVersion() {\n if (this._sock.rQwait(\"version\", 12)) {\n return false;\n }\n\n var sversion = this._sock.rQshiftStr(12).substr(4, 7);\n\n Log.Info(\"Server ProtocolVersion: \" + sversion);\n var isRepeater = 0;\n\n switch (sversion) {\n case \"000.000\":\n // UltraVNC repeater\n isRepeater = 1;\n break;\n\n case \"003.003\":\n case \"003.006\": // UltraVNC\n\n case \"003.889\":\n // Apple Remote Desktop\n this._rfbVersion = 3.3;\n break;\n\n case \"003.007\":\n this._rfbVersion = 3.7;\n break;\n\n case \"003.008\":\n case \"004.000\": // Intel AMT KVM\n\n case \"004.001\": // RealVNC 4.6\n\n case \"005.000\":\n // RealVNC 5.3\n this._rfbVersion = 3.8;\n break;\n\n default:\n return this._fail(\"Invalid server version \" + sversion);\n }\n\n if (isRepeater) {\n var repeaterID = \"ID:\" + this._repeaterID;\n\n while (repeaterID.length < 250) {\n repeaterID += \"\\0\";\n }\n\n this._sock.sendString(repeaterID);\n\n return true;\n }\n\n if (this._rfbVersion > this._rfbMaxVersion) {\n this._rfbVersion = this._rfbMaxVersion;\n }\n\n var cversion = \"00\" + parseInt(this._rfbVersion, 10) + \".00\" + this._rfbVersion * 10 % 10;\n\n this._sock.sendString(\"RFB \" + cversion + \"\\n\");\n\n Log.Debug('Sent ProtocolVersion: ' + cversion);\n this._rfbInitState = 'Security';\n }\n }, {\n key: \"_negotiateSecurity\",\n value: function _negotiateSecurity() {\n if (this._rfbVersion >= 3.7) {\n // Server sends supported list, client decides\n var numTypes = this._sock.rQshift8();\n\n if (this._sock.rQwait(\"security type\", numTypes, 1)) {\n return false;\n }\n\n if (numTypes === 0) {\n this._rfbInitState = \"SecurityReason\";\n this._securityContext = \"no security types\";\n this._securityStatus = 1;\n return this._initMsg();\n }\n\n var types = this._sock.rQshiftBytes(numTypes);\n\n Log.Debug(\"Server security types: \" + types); // Look for each auth in preferred order\n\n if (types.includes(1)) {\n this._rfbAuthScheme = 1; // None\n } else if (types.includes(22)) {\n this._rfbAuthScheme = 22; // XVP\n } else if (types.includes(16)) {\n this._rfbAuthScheme = 16; // Tight\n } else if (types.includes(2)) {\n this._rfbAuthScheme = 2; // VNC Auth\n } else if (types.includes(19)) {\n this._rfbAuthScheme = 19; // VeNCrypt Auth\n } else {\n return this._fail(\"Unsupported security types (types: \" + types + \")\");\n }\n\n this._sock.send([this._rfbAuthScheme]);\n } else {\n // Server decides\n if (this._sock.rQwait(\"security scheme\", 4)) {\n return false;\n }\n\n this._rfbAuthScheme = this._sock.rQshift32();\n\n if (this._rfbAuthScheme == 0) {\n this._rfbInitState = \"SecurityReason\";\n this._securityContext = \"authentication scheme\";\n this._securityStatus = 1;\n return this._initMsg();\n }\n }\n\n this._rfbInitState = 'Authentication';\n Log.Debug('Authenticating using scheme: ' + this._rfbAuthScheme);\n return this._initMsg(); // jump to authentication\n }\n }, {\n key: \"_handleSecurityReason\",\n value: function _handleSecurityReason() {\n if (this._sock.rQwait(\"reason length\", 4)) {\n return false;\n }\n\n var strlen = this._sock.rQshift32();\n\n var reason = \"\";\n\n if (strlen > 0) {\n if (this._sock.rQwait(\"reason\", strlen, 4)) {\n return false;\n }\n\n reason = this._sock.rQshiftStr(strlen);\n }\n\n if (reason !== \"\") {\n this.dispatchEvent(new CustomEvent(\"securityfailure\", {\n detail: {\n status: this._securityStatus,\n reason: reason\n }\n }));\n return this._fail(\"Security negotiation failed on \" + this._securityContext + \" (reason: \" + reason + \")\");\n } else {\n this.dispatchEvent(new CustomEvent(\"securityfailure\", {\n detail: {\n status: this._securityStatus\n }\n }));\n return this._fail(\"Security negotiation failed on \" + this._securityContext);\n }\n } // authentication\n\n }, {\n key: \"_negotiateXvpAuth\",\n value: function _negotiateXvpAuth() {\n if (this._rfbCredentials.username === undefined || this._rfbCredentials.password === undefined || this._rfbCredentials.target === undefined) {\n this.dispatchEvent(new CustomEvent(\"credentialsrequired\", {\n detail: {\n types: [\"username\", \"password\", \"target\"]\n }\n }));\n return false;\n }\n\n var xvpAuthStr = String.fromCharCode(this._rfbCredentials.username.length) + String.fromCharCode(this._rfbCredentials.target.length) + this._rfbCredentials.username + this._rfbCredentials.target;\n\n this._sock.sendString(xvpAuthStr);\n\n this._rfbAuthScheme = 2;\n return this._negotiateAuthentication();\n } // VeNCrypt authentication, currently only supports version 0.2 and only Plain subtype\n\n }, {\n key: \"_negotiateVeNCryptAuth\",\n value: function _negotiateVeNCryptAuth() {\n // waiting for VeNCrypt version\n if (this._rfbVeNCryptState == 0) {\n if (this._sock.rQwait(\"vencrypt version\", 2)) {\n return false;\n }\n\n var major = this._sock.rQshift8();\n\n var minor = this._sock.rQshift8();\n\n if (!(major == 0 && minor == 2)) {\n return this._fail(\"Unsupported VeNCrypt version \" + major + \".\" + minor);\n }\n\n this._sock.send([0, 2]);\n\n this._rfbVeNCryptState = 1;\n } // waiting for ACK\n\n\n if (this._rfbVeNCryptState == 1) {\n if (this._sock.rQwait(\"vencrypt ack\", 1)) {\n return false;\n }\n\n var res = this._sock.rQshift8();\n\n if (res != 0) {\n return this._fail(\"VeNCrypt failure \" + res);\n }\n\n this._rfbVeNCryptState = 2;\n } // must fall through here (i.e. no \"else if\"), beacause we may have already received\n // the subtypes length and won't be called again\n\n\n if (this._rfbVeNCryptState == 2) {\n // waiting for subtypes length\n if (this._sock.rQwait(\"vencrypt subtypes length\", 1)) {\n return false;\n }\n\n var subtypesLength = this._sock.rQshift8();\n\n if (subtypesLength < 1) {\n return this._fail(\"VeNCrypt subtypes empty\");\n }\n\n this._rfbVeNCryptSubtypesLength = subtypesLength;\n this._rfbVeNCryptState = 3;\n } // waiting for subtypes list\n\n\n if (this._rfbVeNCryptState == 3) {\n if (this._sock.rQwait(\"vencrypt subtypes\", 4 * this._rfbVeNCryptSubtypesLength)) {\n return false;\n }\n\n var subtypes = [];\n\n for (var i = 0; i < this._rfbVeNCryptSubtypesLength; i++) {\n subtypes.push(this._sock.rQshift32());\n } // 256 = Plain subtype\n\n\n if (subtypes.indexOf(256) != -1) {\n // 0x100 = 256\n this._sock.send([0, 0, 1, 0]);\n\n this._rfbVeNCryptState = 4;\n } else {\n return this._fail(\"VeNCrypt Plain subtype not offered by server\");\n }\n } // negotiated Plain subtype, server waits for password\n\n\n if (this._rfbVeNCryptState == 4) {\n if (this._rfbCredentials.username === undefined || this._rfbCredentials.password === undefined) {\n this.dispatchEvent(new CustomEvent(\"credentialsrequired\", {\n detail: {\n types: [\"username\", \"password\"]\n }\n }));\n return false;\n }\n\n var user = (0, _strings.encodeUTF8)(this._rfbCredentials.username);\n var pass = (0, _strings.encodeUTF8)(this._rfbCredentials.password);\n\n this._sock.send([user.length >> 24 & 0xFF, user.length >> 16 & 0xFF, user.length >> 8 & 0xFF, user.length & 0xFF]);\n\n this._sock.send([pass.length >> 24 & 0xFF, pass.length >> 16 & 0xFF, pass.length >> 8 & 0xFF, pass.length & 0xFF]);\n\n this._sock.sendString(user);\n\n this._sock.sendString(pass);\n\n this._rfbInitState = \"SecurityResult\";\n return true;\n }\n }\n }, {\n key: \"_negotiateStdVNCAuth\",\n value: function _negotiateStdVNCAuth() {\n if (this._sock.rQwait(\"auth challenge\", 16)) {\n return false;\n }\n\n if (this._rfbCredentials.password === undefined) {\n this.dispatchEvent(new CustomEvent(\"credentialsrequired\", {\n detail: {\n types: [\"password\"]\n }\n }));\n return false;\n } // TODO(directxman12): make genDES not require an Array\n\n\n var challenge = Array.prototype.slice.call(this._sock.rQshiftBytes(16));\n var response = RFB.genDES(this._rfbCredentials.password, challenge);\n\n this._sock.send(response);\n\n this._rfbInitState = \"SecurityResult\";\n return true;\n }\n }, {\n key: \"_negotiateTightUnixAuth\",\n value: function _negotiateTightUnixAuth() {\n if (this._rfbCredentials.username === undefined || this._rfbCredentials.password === undefined) {\n this.dispatchEvent(new CustomEvent(\"credentialsrequired\", {\n detail: {\n types: [\"username\", \"password\"]\n }\n }));\n return false;\n }\n\n this._sock.send([0, 0, 0, this._rfbCredentials.username.length]);\n\n this._sock.send([0, 0, 0, this._rfbCredentials.password.length]);\n\n this._sock.sendString(this._rfbCredentials.username);\n\n this._sock.sendString(this._rfbCredentials.password);\n\n this._rfbInitState = \"SecurityResult\";\n return true;\n }\n }, {\n key: \"_negotiateTightTunnels\",\n value: function _negotiateTightTunnels(numTunnels) {\n var clientSupportedTunnelTypes = {\n 0: {\n vendor: 'TGHT',\n signature: 'NOTUNNEL'\n }\n };\n var serverSupportedTunnelTypes = {}; // receive tunnel capabilities\n\n for (var i = 0; i < numTunnels; i++) {\n var capCode = this._sock.rQshift32();\n\n var capVendor = this._sock.rQshiftStr(4);\n\n var capSignature = this._sock.rQshiftStr(8);\n\n serverSupportedTunnelTypes[capCode] = {\n vendor: capVendor,\n signature: capSignature\n };\n }\n\n Log.Debug(\"Server Tight tunnel types: \" + serverSupportedTunnelTypes); // Siemens touch panels have a VNC server that supports NOTUNNEL,\n // but forgets to advertise it. Try to detect such servers by\n // looking for their custom tunnel type.\n\n if (serverSupportedTunnelTypes[1] && serverSupportedTunnelTypes[1].vendor === \"SICR\" && serverSupportedTunnelTypes[1].signature === \"SCHANNEL\") {\n Log.Debug(\"Detected Siemens server. Assuming NOTUNNEL support.\");\n serverSupportedTunnelTypes[0] = {\n vendor: 'TGHT',\n signature: 'NOTUNNEL'\n };\n } // choose the notunnel type\n\n\n if (serverSupportedTunnelTypes[0]) {\n if (serverSupportedTunnelTypes[0].vendor != clientSupportedTunnelTypes[0].vendor || serverSupportedTunnelTypes[0].signature != clientSupportedTunnelTypes[0].signature) {\n return this._fail(\"Client's tunnel type had the incorrect \" + \"vendor or signature\");\n }\n\n Log.Debug(\"Selected tunnel type: \" + clientSupportedTunnelTypes[0]);\n\n this._sock.send([0, 0, 0, 0]); // use NOTUNNEL\n\n\n return false; // wait until we receive the sub auth count to continue\n } else {\n return this._fail(\"Server wanted tunnels, but doesn't support \" + \"the notunnel type\");\n }\n }\n }, {\n key: \"_negotiateTightAuth\",\n value: function _negotiateTightAuth() {\n if (!this._rfbTightVNC) {\n // first pass, do the tunnel negotiation\n if (this._sock.rQwait(\"num tunnels\", 4)) {\n return false;\n }\n\n var numTunnels = this._sock.rQshift32();\n\n if (numTunnels > 0 && this._sock.rQwait(\"tunnel capabilities\", 16 * numTunnels, 4)) {\n return false;\n }\n\n this._rfbTightVNC = true;\n\n if (numTunnels > 0) {\n this._negotiateTightTunnels(numTunnels);\n\n return false; // wait until we receive the sub auth to continue\n }\n } // second pass, do the sub-auth negotiation\n\n\n if (this._sock.rQwait(\"sub auth count\", 4)) {\n return false;\n }\n\n var subAuthCount = this._sock.rQshift32();\n\n if (subAuthCount === 0) {\n // empty sub-auth list received means 'no auth' subtype selected\n this._rfbInitState = 'SecurityResult';\n return true;\n }\n\n if (this._sock.rQwait(\"sub auth capabilities\", 16 * subAuthCount, 4)) {\n return false;\n }\n\n var clientSupportedTypes = {\n 'STDVNOAUTH__': 1,\n 'STDVVNCAUTH_': 2,\n 'TGHTULGNAUTH': 129\n };\n var serverSupportedTypes = [];\n\n for (var i = 0; i < subAuthCount; i++) {\n this._sock.rQshift32(); // capNum\n\n\n var capabilities = this._sock.rQshiftStr(12);\n\n serverSupportedTypes.push(capabilities);\n }\n\n Log.Debug(\"Server Tight authentication types: \" + serverSupportedTypes);\n\n for (var authType in clientSupportedTypes) {\n if (serverSupportedTypes.indexOf(authType) != -1) {\n this._sock.send([0, 0, 0, clientSupportedTypes[authType]]);\n\n Log.Debug(\"Selected authentication type: \" + authType);\n\n switch (authType) {\n case 'STDVNOAUTH__':\n // no auth\n this._rfbInitState = 'SecurityResult';\n return true;\n\n case 'STDVVNCAUTH_':\n // VNC auth\n this._rfbAuthScheme = 2;\n return this._initMsg();\n\n case 'TGHTULGNAUTH':\n // UNIX auth\n this._rfbAuthScheme = 129;\n return this._initMsg();\n\n default:\n return this._fail(\"Unsupported tiny auth scheme \" + \"(scheme: \" + authType + \")\");\n }\n }\n }\n\n return this._fail(\"No supported sub-auth types!\");\n }\n }, {\n key: \"_negotiateAuthentication\",\n value: function _negotiateAuthentication() {\n switch (this._rfbAuthScheme) {\n case 1:\n // no auth\n if (this._rfbVersion >= 3.8) {\n this._rfbInitState = 'SecurityResult';\n return true;\n }\n\n this._rfbInitState = 'ClientInitialisation';\n return this._initMsg();\n\n case 22:\n // XVP auth\n return this._negotiateXvpAuth();\n\n case 2:\n // VNC authentication\n return this._negotiateStdVNCAuth();\n\n case 16:\n // TightVNC Security Type\n return this._negotiateTightAuth();\n\n case 19:\n // VeNCrypt Security Type\n return this._negotiateVeNCryptAuth();\n\n case 129:\n // TightVNC UNIX Security Type\n return this._negotiateTightUnixAuth();\n\n default:\n return this._fail(\"Unsupported auth scheme (scheme: \" + this._rfbAuthScheme + \")\");\n }\n }\n }, {\n key: \"_handleSecurityResult\",\n value: function _handleSecurityResult() {\n if (this._sock.rQwait('VNC auth response ', 4)) {\n return false;\n }\n\n var status = this._sock.rQshift32();\n\n if (status === 0) {\n // OK\n this._rfbInitState = 'ClientInitialisation';\n Log.Debug('Authentication OK');\n return this._initMsg();\n } else {\n if (this._rfbVersion >= 3.8) {\n this._rfbInitState = \"SecurityReason\";\n this._securityContext = \"security result\";\n this._securityStatus = status;\n return this._initMsg();\n } else {\n this.dispatchEvent(new CustomEvent(\"securityfailure\", {\n detail: {\n status: status\n }\n }));\n return this._fail(\"Security handshake failed\");\n }\n }\n }\n }, {\n key: \"_negotiateServerInit\",\n value: function _negotiateServerInit() {\n if (this._sock.rQwait(\"server initialization\", 24)) {\n return false;\n }\n /* Screen size */\n\n\n var width = this._sock.rQshift16();\n\n var height = this._sock.rQshift16();\n /* PIXEL_FORMAT */\n\n\n var bpp = this._sock.rQshift8();\n\n var depth = this._sock.rQshift8();\n\n var bigEndian = this._sock.rQshift8();\n\n var trueColor = this._sock.rQshift8();\n\n var redMax = this._sock.rQshift16();\n\n var greenMax = this._sock.rQshift16();\n\n var blueMax = this._sock.rQshift16();\n\n var redShift = this._sock.rQshift8();\n\n var greenShift = this._sock.rQshift8();\n\n var blueShift = this._sock.rQshift8();\n\n this._sock.rQskipBytes(3); // padding\n // NB(directxman12): we don't want to call any callbacks or print messages until\n // *after* we're past the point where we could backtrack\n\n /* Connection name/title */\n\n\n var nameLength = this._sock.rQshift32();\n\n if (this._sock.rQwait('server init name', nameLength, 24)) {\n return false;\n }\n\n var name = this._sock.rQshiftStr(nameLength);\n\n name = (0, _strings.decodeUTF8)(name, true);\n\n if (this._rfbTightVNC) {\n if (this._sock.rQwait('TightVNC extended server init header', 8, 24 + nameLength)) {\n return false;\n } // In TightVNC mode, ServerInit message is extended\n\n\n var numServerMessages = this._sock.rQshift16();\n\n var numClientMessages = this._sock.rQshift16();\n\n var numEncodings = this._sock.rQshift16();\n\n this._sock.rQskipBytes(2); // padding\n\n\n var totalMessagesLength = (numServerMessages + numClientMessages + numEncodings) * 16;\n\n if (this._sock.rQwait('TightVNC extended server init header', totalMessagesLength, 32 + nameLength)) {\n return false;\n } // we don't actually do anything with the capability information that TIGHT sends,\n // so we just skip the all of this.\n // TIGHT server message capabilities\n\n\n this._sock.rQskipBytes(16 * numServerMessages); // TIGHT client message capabilities\n\n\n this._sock.rQskipBytes(16 * numClientMessages); // TIGHT encoding capabilities\n\n\n this._sock.rQskipBytes(16 * numEncodings);\n } // NB(directxman12): these are down here so that we don't run them multiple times\n // if we backtrack\n\n\n Log.Info(\"Screen: \" + width + \"x\" + height + \", bpp: \" + bpp + \", depth: \" + depth + \", bigEndian: \" + bigEndian + \", trueColor: \" + trueColor + \", redMax: \" + redMax + \", greenMax: \" + greenMax + \", blueMax: \" + blueMax + \", redShift: \" + redShift + \", greenShift: \" + greenShift + \", blueShift: \" + blueShift); // we're past the point where we could backtrack, so it's safe to call this\n\n this._setDesktopName(name);\n\n this._resize(width, height);\n\n if (!this._viewOnly) {\n this._keyboard.grab();\n }\n\n this._fbDepth = 24;\n\n if (this._fbName === \"Intel(r) AMT KVM\") {\n Log.Warn(\"Intel AMT KVM only supports 8/16 bit depths. Using low color mode.\");\n this._fbDepth = 8;\n }\n\n RFB.messages.pixelFormat(this._sock, this._fbDepth, true);\n\n this._sendEncodings();\n\n RFB.messages.fbUpdateRequest(this._sock, false, 0, 0, this._fbWidth, this._fbHeight);\n\n this._updateConnectionState('connected');\n\n return true;\n }\n }, {\n key: \"_sendEncodings\",\n value: function _sendEncodings() {\n var encs = []; // In preference order\n\n encs.push(_encodings.encodings.encodingCopyRect); // Only supported with full depth support\n\n if (this._fbDepth == 24) {\n encs.push(_encodings.encodings.encodingTight);\n encs.push(_encodings.encodings.encodingTightPNG);\n encs.push(_encodings.encodings.encodingHextile);\n encs.push(_encodings.encodings.encodingRRE);\n }\n\n encs.push(_encodings.encodings.encodingRaw); // Psuedo-encoding settings\n\n encs.push(_encodings.encodings.pseudoEncodingQualityLevel0 + this._qualityLevel);\n encs.push(_encodings.encodings.pseudoEncodingCompressLevel0 + this._compressionLevel);\n encs.push(_encodings.encodings.pseudoEncodingDesktopSize);\n encs.push(_encodings.encodings.pseudoEncodingLastRect);\n encs.push(_encodings.encodings.pseudoEncodingQEMUExtendedKeyEvent);\n encs.push(_encodings.encodings.pseudoEncodingExtendedDesktopSize);\n encs.push(_encodings.encodings.pseudoEncodingXvp);\n encs.push(_encodings.encodings.pseudoEncodingFence);\n encs.push(_encodings.encodings.pseudoEncodingContinuousUpdates);\n encs.push(_encodings.encodings.pseudoEncodingDesktopName);\n encs.push(_encodings.encodings.pseudoEncodingExtendedClipboard);\n\n if (this._fbDepth == 24) {\n encs.push(_encodings.encodings.pseudoEncodingVMwareCursor);\n encs.push(_encodings.encodings.pseudoEncodingCursor);\n }\n\n RFB.messages.clientEncodings(this._sock, encs);\n }\n /* RFB protocol initialization states:\n * ProtocolVersion\n * Security\n * Authentication\n * SecurityResult\n * ClientInitialization - not triggered by server message\n * ServerInitialization\n */\n\n }, {\n key: \"_initMsg\",\n value: function _initMsg() {\n switch (this._rfbInitState) {\n case 'ProtocolVersion':\n return this._negotiateProtocolVersion();\n\n case 'Security':\n return this._negotiateSecurity();\n\n case 'Authentication':\n return this._negotiateAuthentication();\n\n case 'SecurityResult':\n return this._handleSecurityResult();\n\n case 'SecurityReason':\n return this._handleSecurityReason();\n\n case 'ClientInitialisation':\n this._sock.send([this._shared ? 1 : 0]); // ClientInitialisation\n\n\n this._rfbInitState = 'ServerInitialisation';\n return true;\n\n case 'ServerInitialisation':\n return this._negotiateServerInit();\n\n default:\n return this._fail(\"Unknown init state (state: \" + this._rfbInitState + \")\");\n }\n }\n }, {\n key: \"_handleSetColourMapMsg\",\n value: function _handleSetColourMapMsg() {\n Log.Debug(\"SetColorMapEntries\");\n return this._fail(\"Unexpected SetColorMapEntries message\");\n }\n }, {\n key: \"_handleServerCutText\",\n value: function _handleServerCutText() {\n Log.Debug(\"ServerCutText\");\n\n if (this._sock.rQwait(\"ServerCutText header\", 7, 1)) {\n return false;\n }\n\n this._sock.rQskipBytes(3); // Padding\n\n\n var length = this._sock.rQshift32();\n\n length = (0, _int.toSigned32bit)(length);\n\n if (this._sock.rQwait(\"ServerCutText content\", Math.abs(length), 8)) {\n return false;\n }\n\n if (length >= 0) {\n //Standard msg\n var text = this._sock.rQshiftStr(length);\n\n if (this._viewOnly) {\n return true;\n }\n\n this.dispatchEvent(new CustomEvent(\"clipboard\", {\n detail: {\n text: text\n }\n }));\n } else {\n //Extended msg.\n length = Math.abs(length);\n\n var flags = this._sock.rQshift32();\n\n var formats = flags & 0x0000FFFF;\n var actions = flags & 0xFF000000;\n var isCaps = !!(actions & extendedClipboardActionCaps);\n\n if (isCaps) {\n this._clipboardServerCapabilitiesFormats = {};\n this._clipboardServerCapabilitiesActions = {}; // Update our server capabilities for Formats\n\n for (var i = 0; i <= 15; i++) {\n var index = 1 << i; // Check if format flag is set.\n\n if (formats & index) {\n this._clipboardServerCapabilitiesFormats[index] = true; // We don't send unsolicited clipboard, so we\n // ignore the size\n\n this._sock.rQshift32();\n }\n } // Update our server capabilities for Actions\n\n\n for (var _i = 24; _i <= 31; _i++) {\n var _index = 1 << _i;\n\n this._clipboardServerCapabilitiesActions[_index] = !!(actions & _index);\n }\n /* Caps handling done, send caps with the clients\n capabilities set as a response */\n\n\n var clientActions = [extendedClipboardActionCaps, extendedClipboardActionRequest, extendedClipboardActionPeek, extendedClipboardActionNotify, extendedClipboardActionProvide];\n RFB.messages.extendedClipboardCaps(this._sock, clientActions, {\n extendedClipboardFormatText: 0\n });\n } else if (actions === extendedClipboardActionRequest) {\n if (this._viewOnly) {\n return true;\n } // Check if server has told us it can handle Provide and there is clipboard data to send.\n\n\n if (this._clipboardText != null && this._clipboardServerCapabilitiesActions[extendedClipboardActionProvide]) {\n if (formats & extendedClipboardFormatText) {\n RFB.messages.extendedClipboardProvide(this._sock, [extendedClipboardFormatText], [this._clipboardText]);\n }\n }\n } else if (actions === extendedClipboardActionPeek) {\n if (this._viewOnly) {\n return true;\n }\n\n if (this._clipboardServerCapabilitiesActions[extendedClipboardActionNotify]) {\n if (this._clipboardText != null) {\n RFB.messages.extendedClipboardNotify(this._sock, [extendedClipboardFormatText]);\n } else {\n RFB.messages.extendedClipboardNotify(this._sock, []);\n }\n }\n } else if (actions === extendedClipboardActionNotify) {\n if (this._viewOnly) {\n return true;\n }\n\n if (this._clipboardServerCapabilitiesActions[extendedClipboardActionRequest]) {\n if (formats & extendedClipboardFormatText) {\n RFB.messages.extendedClipboardRequest(this._sock, [extendedClipboardFormatText]);\n }\n }\n } else if (actions === extendedClipboardActionProvide) {\n if (this._viewOnly) {\n return true;\n }\n\n if (!(formats & extendedClipboardFormatText)) {\n return true;\n } // Ignore what we had in our clipboard client side.\n\n\n this._clipboardText = null; // FIXME: Should probably verify that this data was actually requested\n\n var zlibStream = this._sock.rQshiftBytes(length - 4);\n\n var streamInflator = new _inflator[\"default\"]();\n var textData = null;\n streamInflator.setInput(zlibStream);\n\n for (var _i2 = 0; _i2 <= 15; _i2++) {\n var format = 1 << _i2;\n\n if (formats & format) {\n var size = 0x00;\n var sizeArray = streamInflator.inflate(4);\n size |= sizeArray[0] << 24;\n size |= sizeArray[1] << 16;\n size |= sizeArray[2] << 8;\n size |= sizeArray[3];\n var chunk = streamInflator.inflate(size);\n\n if (format === extendedClipboardFormatText) {\n textData = chunk;\n }\n }\n }\n\n streamInflator.setInput(null);\n\n if (textData !== null) {\n var tmpText = \"\";\n\n for (var _i3 = 0; _i3 < textData.length; _i3++) {\n tmpText += String.fromCharCode(textData[_i3]);\n }\n\n textData = tmpText;\n textData = (0, _strings.decodeUTF8)(textData);\n\n if (textData.length > 0 && \"\\0\" === textData.charAt(textData.length - 1)) {\n textData = textData.slice(0, -1);\n }\n\n textData = textData.replace(\"\\r\\n\", \"\\n\");\n this.dispatchEvent(new CustomEvent(\"clipboard\", {\n detail: {\n text: textData\n }\n }));\n }\n } else {\n return this._fail(\"Unexpected action in extended clipboard message: \" + actions);\n }\n }\n\n return true;\n }\n }, {\n key: \"_handleServerFenceMsg\",\n value: function _handleServerFenceMsg() {\n if (this._sock.rQwait(\"ServerFence header\", 8, 1)) {\n return false;\n }\n\n this._sock.rQskipBytes(3); // Padding\n\n\n var flags = this._sock.rQshift32();\n\n var length = this._sock.rQshift8();\n\n if (this._sock.rQwait(\"ServerFence payload\", length, 9)) {\n return false;\n }\n\n if (length > 64) {\n Log.Warn(\"Bad payload length (\" + length + \") in fence response\");\n length = 64;\n }\n\n var payload = this._sock.rQshiftStr(length);\n\n this._supportsFence = true;\n /*\n * Fence flags\n *\n * (1<<0) - BlockBefore\n * (1<<1) - BlockAfter\n * (1<<2) - SyncNext\n * (1<<31) - Request\n */\n\n if (!(flags & 1 << 31)) {\n return this._fail(\"Unexpected fence response\");\n } // Filter out unsupported flags\n // FIXME: support syncNext\n\n\n flags &= 1 << 0 | 1 << 1; // BlockBefore and BlockAfter are automatically handled by\n // the fact that we process each incoming message\n // synchronuosly.\n\n RFB.messages.clientFence(this._sock, flags, payload);\n return true;\n }\n }, {\n key: \"_handleXvpMsg\",\n value: function _handleXvpMsg() {\n if (this._sock.rQwait(\"XVP version and message\", 3, 1)) {\n return false;\n }\n\n this._sock.rQskipBytes(1); // Padding\n\n\n var xvpVer = this._sock.rQshift8();\n\n var xvpMsg = this._sock.rQshift8();\n\n switch (xvpMsg) {\n case 0:\n // XVP_FAIL\n Log.Error(\"XVP Operation Failed\");\n break;\n\n case 1:\n // XVP_INIT\n this._rfbXvpVer = xvpVer;\n Log.Info(\"XVP extensions enabled (version \" + this._rfbXvpVer + \")\");\n\n this._setCapability(\"power\", true);\n\n break;\n\n default:\n this._fail(\"Illegal server XVP message (msg: \" + xvpMsg + \")\");\n\n break;\n }\n\n return true;\n }\n }, {\n key: \"_normalMsg\",\n value: function _normalMsg() {\n var msgType;\n\n if (this._FBU.rects > 0) {\n msgType = 0;\n } else {\n msgType = this._sock.rQshift8();\n }\n\n var first, ret;\n\n switch (msgType) {\n case 0:\n // FramebufferUpdate\n ret = this._framebufferUpdate();\n\n if (ret && !this._enabledContinuousUpdates) {\n RFB.messages.fbUpdateRequest(this._sock, true, 0, 0, this._fbWidth, this._fbHeight);\n }\n\n return ret;\n\n case 1:\n // SetColorMapEntries\n return this._handleSetColourMapMsg();\n\n case 2:\n // Bell\n Log.Debug(\"Bell\");\n this.dispatchEvent(new CustomEvent(\"bell\", {\n detail: {}\n }));\n return true;\n\n case 3:\n // ServerCutText\n return this._handleServerCutText();\n\n case 150:\n // EndOfContinuousUpdates\n first = !this._supportsContinuousUpdates;\n this._supportsContinuousUpdates = true;\n this._enabledContinuousUpdates = false;\n\n if (first) {\n this._enabledContinuousUpdates = true;\n\n this._updateContinuousUpdates();\n\n Log.Info(\"Enabling continuous updates.\");\n } else {// FIXME: We need to send a framebufferupdaterequest here\n // if we add support for turning off continuous updates\n }\n\n return true;\n\n case 248:\n // ServerFence\n return this._handleServerFenceMsg();\n\n case 250:\n // XVP\n return this._handleXvpMsg();\n\n default:\n this._fail(\"Unexpected server message (type \" + msgType + \")\");\n\n Log.Debug(\"sock.rQslice(0, 30): \" + this._sock.rQslice(0, 30));\n return true;\n }\n }\n }, {\n key: \"_onFlush\",\n value: function _onFlush() {\n this._flushing = false; // Resume processing\n\n if (this._sock.rQlen > 0) {\n this._handleMessage();\n }\n }\n }, {\n key: \"_framebufferUpdate\",\n value: function _framebufferUpdate() {\n if (this._FBU.rects === 0) {\n if (this._sock.rQwait(\"FBU header\", 3, 1)) {\n return false;\n }\n\n this._sock.rQskipBytes(1); // Padding\n\n\n this._FBU.rects = this._sock.rQshift16(); // Make sure the previous frame is fully rendered first\n // to avoid building up an excessive queue\n\n if (this._display.pending()) {\n this._flushing = true;\n\n this._display.flush();\n\n return false;\n }\n }\n\n while (this._FBU.rects > 0) {\n if (this._FBU.encoding === null) {\n if (this._sock.rQwait(\"rect header\", 12)) {\n return false;\n }\n /* New FramebufferUpdate */\n\n\n var hdr = this._sock.rQshiftBytes(12);\n\n this._FBU.x = (hdr[0] << 8) + hdr[1];\n this._FBU.y = (hdr[2] << 8) + hdr[3];\n this._FBU.width = (hdr[4] << 8) + hdr[5];\n this._FBU.height = (hdr[6] << 8) + hdr[7];\n this._FBU.encoding = parseInt((hdr[8] << 24) + (hdr[9] << 16) + (hdr[10] << 8) + hdr[11], 10);\n }\n\n if (!this._handleRect()) {\n return false;\n }\n\n this._FBU.rects--;\n this._FBU.encoding = null;\n }\n\n this._display.flip();\n\n return true; // We finished this FBU\n }\n }, {\n key: \"_handleRect\",\n value: function _handleRect() {\n switch (this._FBU.encoding) {\n case _encodings.encodings.pseudoEncodingLastRect:\n this._FBU.rects = 1; // Will be decreased when we return\n\n return true;\n\n case _encodings.encodings.pseudoEncodingVMwareCursor:\n return this._handleVMwareCursor();\n\n case _encodings.encodings.pseudoEncodingCursor:\n return this._handleCursor();\n\n case _encodings.encodings.pseudoEncodingQEMUExtendedKeyEvent:\n this._qemuExtKeyEventSupported = true;\n return true;\n\n case _encodings.encodings.pseudoEncodingDesktopName:\n return this._handleDesktopName();\n\n case _encodings.encodings.pseudoEncodingDesktopSize:\n this._resize(this._FBU.width, this._FBU.height);\n\n return true;\n\n case _encodings.encodings.pseudoEncodingExtendedDesktopSize:\n return this._handleExtendedDesktopSize();\n\n default:\n return this._handleDataRect();\n }\n }\n }, {\n key: \"_handleVMwareCursor\",\n value: function _handleVMwareCursor() {\n var hotx = this._FBU.x; // hotspot-x\n\n var hoty = this._FBU.y; // hotspot-y\n\n var w = this._FBU.width;\n var h = this._FBU.height;\n\n if (this._sock.rQwait(\"VMware cursor encoding\", 1)) {\n return false;\n }\n\n var cursorType = this._sock.rQshift8();\n\n this._sock.rQshift8(); //Padding\n\n\n var rgba;\n var bytesPerPixel = 4; //Classic cursor\n\n if (cursorType == 0) {\n //Used to filter away unimportant bits.\n //OR is used for correct conversion in js.\n var PIXEL_MASK = 0xffffff00 | 0;\n rgba = new Array(w * h * bytesPerPixel);\n\n if (this._sock.rQwait(\"VMware cursor classic encoding\", w * h * bytesPerPixel * 2, 2)) {\n return false;\n }\n\n var andMask = new Array(w * h);\n\n for (var pixel = 0; pixel < w * h; pixel++) {\n andMask[pixel] = this._sock.rQshift32();\n }\n\n var xorMask = new Array(w * h);\n\n for (var _pixel = 0; _pixel < w * h; _pixel++) {\n xorMask[_pixel] = this._sock.rQshift32();\n }\n\n for (var _pixel2 = 0; _pixel2 < w * h; _pixel2++) {\n if (andMask[_pixel2] == 0) {\n //Fully opaque pixel\n var bgr = xorMask[_pixel2];\n var r = bgr >> 8 & 0xff;\n var g = bgr >> 16 & 0xff;\n var b = bgr >> 24 & 0xff;\n rgba[_pixel2 * bytesPerPixel] = r; //r\n\n rgba[_pixel2 * bytesPerPixel + 1] = g; //g\n\n rgba[_pixel2 * bytesPerPixel + 2] = b; //b\n\n rgba[_pixel2 * bytesPerPixel + 3] = 0xff; //a\n } else if ((andMask[_pixel2] & PIXEL_MASK) == PIXEL_MASK) {\n //Only screen value matters, no mouse colouring\n if (xorMask[_pixel2] == 0) {\n //Transparent pixel\n rgba[_pixel2 * bytesPerPixel] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 1] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 2] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 3] = 0x00;\n } else if ((xorMask[_pixel2] & PIXEL_MASK) == PIXEL_MASK) {\n //Inverted pixel, not supported in browsers.\n //Fully opaque instead.\n rgba[_pixel2 * bytesPerPixel] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 1] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 2] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 3] = 0xff;\n } else {\n //Unhandled xorMask\n rgba[_pixel2 * bytesPerPixel] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 1] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 2] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 3] = 0xff;\n }\n } else {\n //Unhandled andMask\n rgba[_pixel2 * bytesPerPixel] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 1] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 2] = 0x00;\n rgba[_pixel2 * bytesPerPixel + 3] = 0xff;\n }\n } //Alpha cursor.\n\n } else if (cursorType == 1) {\n if (this._sock.rQwait(\"VMware cursor alpha encoding\", w * h * 4, 2)) {\n return false;\n }\n\n rgba = new Array(w * h * bytesPerPixel);\n\n for (var _pixel3 = 0; _pixel3 < w * h; _pixel3++) {\n var data = this._sock.rQshift32();\n\n rgba[_pixel3 * 4] = data >> 24 & 0xff; //r\n\n rgba[_pixel3 * 4 + 1] = data >> 16 & 0xff; //g\n\n rgba[_pixel3 * 4 + 2] = data >> 8 & 0xff; //b\n\n rgba[_pixel3 * 4 + 3] = data & 0xff; //a\n }\n } else {\n Log.Warn(\"The given cursor type is not supported: \" + cursorType + \" given.\");\n return false;\n }\n\n this._updateCursor(rgba, hotx, hoty, w, h);\n\n return true;\n }\n }, {\n key: \"_handleCursor\",\n value: function _handleCursor() {\n var hotx = this._FBU.x; // hotspot-x\n\n var hoty = this._FBU.y; // hotspot-y\n\n var w = this._FBU.width;\n var h = this._FBU.height;\n var pixelslength = w * h * 4;\n var masklength = Math.ceil(w / 8) * h;\n var bytes = pixelslength + masklength;\n\n if (this._sock.rQwait(\"cursor encoding\", bytes)) {\n return false;\n } // Decode from BGRX pixels + bit mask to RGBA\n\n\n var pixels = this._sock.rQshiftBytes(pixelslength);\n\n var mask = this._sock.rQshiftBytes(masklength);\n\n var rgba = new Uint8Array(w * h * 4);\n var pixIdx = 0;\n\n for (var y = 0; y < h; y++) {\n for (var x = 0; x < w; x++) {\n var maskIdx = y * Math.ceil(w / 8) + Math.floor(x / 8);\n var alpha = mask[maskIdx] << x % 8 & 0x80 ? 255 : 0;\n rgba[pixIdx] = pixels[pixIdx + 2];\n rgba[pixIdx + 1] = pixels[pixIdx + 1];\n rgba[pixIdx + 2] = pixels[pixIdx];\n rgba[pixIdx + 3] = alpha;\n pixIdx += 4;\n }\n }\n\n this._updateCursor(rgba, hotx, hoty, w, h);\n\n return true;\n }\n }, {\n key: \"_handleDesktopName\",\n value: function _handleDesktopName() {\n if (this._sock.rQwait(\"DesktopName\", 4)) {\n return false;\n }\n\n var length = this._sock.rQshift32();\n\n if (this._sock.rQwait(\"DesktopName\", length, 4)) {\n return false;\n }\n\n var name = this._sock.rQshiftStr(length);\n\n name = (0, _strings.decodeUTF8)(name, true);\n\n this._setDesktopName(name);\n\n return true;\n }\n }, {\n key: \"_handleExtendedDesktopSize\",\n value: function _handleExtendedDesktopSize() {\n if (this._sock.rQwait(\"ExtendedDesktopSize\", 4)) {\n return false;\n }\n\n var numberOfScreens = this._sock.rQpeek8();\n\n var bytes = 4 + numberOfScreens * 16;\n\n if (this._sock.rQwait(\"ExtendedDesktopSize\", bytes)) {\n return false;\n }\n\n var firstUpdate = !this._supportsSetDesktopSize;\n this._supportsSetDesktopSize = true; // Normally we only apply the current resize mode after a\n // window resize event. However there is no such trigger on the\n // initial connect. And we don't know if the server supports\n // resizing until we've gotten here.\n\n if (firstUpdate) {\n this._requestRemoteResize();\n }\n\n this._sock.rQskipBytes(1); // number-of-screens\n\n\n this._sock.rQskipBytes(3); // padding\n\n\n for (var i = 0; i < numberOfScreens; i += 1) {\n // Save the id and flags of the first screen\n if (i === 0) {\n this._screenID = this._sock.rQshiftBytes(4); // id\n\n this._sock.rQskipBytes(2); // x-position\n\n\n this._sock.rQskipBytes(2); // y-position\n\n\n this._sock.rQskipBytes(2); // width\n\n\n this._sock.rQskipBytes(2); // height\n\n\n this._screenFlags = this._sock.rQshiftBytes(4); // flags\n } else {\n this._sock.rQskipBytes(16);\n }\n }\n /*\n * The x-position indicates the reason for the change:\n *\n * 0 - server resized on its own\n * 1 - this client requested the resize\n * 2 - another client requested the resize\n */\n // We need to handle errors when we requested the resize.\n\n\n if (this._FBU.x === 1 && this._FBU.y !== 0) {\n var msg = \"\"; // The y-position indicates the status code from the server\n\n switch (this._FBU.y) {\n case 1:\n msg = \"Resize is administratively prohibited\";\n break;\n\n case 2:\n msg = \"Out of resources\";\n break;\n\n case 3:\n msg = \"Invalid screen layout\";\n break;\n\n default:\n msg = \"Unknown reason\";\n break;\n }\n\n Log.Warn(\"Server did not accept the resize request: \" + msg);\n } else {\n this._resize(this._FBU.width, this._FBU.height);\n }\n\n return true;\n }\n }, {\n key: \"_handleDataRect\",\n value: function _handleDataRect() {\n var decoder = this._decoders[this._FBU.encoding];\n\n if (!decoder) {\n this._fail(\"Unsupported encoding (encoding: \" + this._FBU.encoding + \")\");\n\n return false;\n }\n\n try {\n return decoder.decodeRect(this._FBU.x, this._FBU.y, this._FBU.width, this._FBU.height, this._sock, this._display, this._fbDepth);\n } catch (err) {\n this._fail(\"Error decoding rect: \" + err);\n\n return false;\n }\n }\n }, {\n key: \"_updateContinuousUpdates\",\n value: function _updateContinuousUpdates() {\n if (!this._enabledContinuousUpdates) {\n return;\n }\n\n RFB.messages.enableContinuousUpdates(this._sock, true, 0, 0, this._fbWidth, this._fbHeight);\n }\n }, {\n key: \"_resize\",\n value: function _resize(width, height) {\n this._fbWidth = width;\n this._fbHeight = height;\n\n this._display.resize(this._fbWidth, this._fbHeight); // Adjust the visible viewport based on the new dimensions\n\n\n this._updateClip();\n\n this._updateScale();\n\n this._updateContinuousUpdates();\n }\n }, {\n key: \"_xvpOp\",\n value: function _xvpOp(ver, op) {\n if (this._rfbXvpVer < ver) {\n return;\n }\n\n Log.Info(\"Sending XVP operation \" + op + \" (version \" + ver + \")\");\n RFB.messages.xvpOp(this._sock, ver, op);\n }\n }, {\n key: \"_updateCursor\",\n value: function _updateCursor(rgba, hotx, hoty, w, h) {\n this._cursorImage = {\n rgbaPixels: rgba,\n hotx: hotx,\n hoty: hoty,\n w: w,\n h: h\n };\n\n this._refreshCursor();\n }\n }, {\n key: \"_shouldShowDotCursor\",\n value: function _shouldShowDotCursor() {\n // Called when this._cursorImage is updated\n if (!this._showDotCursor) {\n // User does not want to see the dot, so...\n return false;\n } // The dot should not be shown if the cursor is already visible,\n // i.e. contains at least one not-fully-transparent pixel.\n // So iterate through all alpha bytes in rgba and stop at the\n // first non-zero.\n\n\n for (var i = 3; i < this._cursorImage.rgbaPixels.length; i += 4) {\n if (this._cursorImage.rgbaPixels[i]) {\n return false;\n }\n } // At this point, we know that the cursor is fully transparent, and\n // the user wants to see the dot instead of this.\n\n\n return true;\n }\n }, {\n key: \"_refreshCursor\",\n value: function _refreshCursor() {\n if (this._rfbConnectionState !== \"connecting\" && this._rfbConnectionState !== \"connected\") {\n return;\n }\n\n var image = this._shouldShowDotCursor() ? RFB.cursors.dot : this._cursorImage;\n\n this._cursor.change(image.rgbaPixels, image.hotx, image.hoty, image.w, image.h);\n }\n }], [{\n key: \"genDES\",\n value: function genDES(password, challenge) {\n var passwordChars = password.split('').map(function (c) {\n return c.charCodeAt(0);\n });\n return new _des[\"default\"](passwordChars).encrypt(challenge);\n }\n }]);\n\n return RFB;\n}(_eventtarget[\"default\"]); // Class Methods\n\n\nexports[\"default\"] = RFB;\nRFB.messages = {\n keyEvent: function keyEvent(sock, keysym, down) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 4; // msg-type\n\n buff[offset + 1] = down;\n buff[offset + 2] = 0;\n buff[offset + 3] = 0;\n buff[offset + 4] = keysym >> 24;\n buff[offset + 5] = keysym >> 16;\n buff[offset + 6] = keysym >> 8;\n buff[offset + 7] = keysym;\n sock._sQlen += 8;\n sock.flush();\n },\n QEMUExtendedKeyEvent: function QEMUExtendedKeyEvent(sock, keysym, down, keycode) {\n function getRFBkeycode(xtScanCode) {\n var upperByte = keycode >> 8;\n var lowerByte = keycode & 0x00ff;\n\n if (upperByte === 0xe0 && lowerByte < 0x7f) {\n return lowerByte | 0x80;\n }\n\n return xtScanCode;\n }\n\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 255; // msg-type\n\n buff[offset + 1] = 0; // sub msg-type\n\n buff[offset + 2] = down >> 8;\n buff[offset + 3] = down;\n buff[offset + 4] = keysym >> 24;\n buff[offset + 5] = keysym >> 16;\n buff[offset + 6] = keysym >> 8;\n buff[offset + 7] = keysym;\n var RFBkeycode = getRFBkeycode(keycode);\n buff[offset + 8] = RFBkeycode >> 24;\n buff[offset + 9] = RFBkeycode >> 16;\n buff[offset + 10] = RFBkeycode >> 8;\n buff[offset + 11] = RFBkeycode;\n sock._sQlen += 12;\n sock.flush();\n },\n pointerEvent: function pointerEvent(sock, x, y, mask) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 5; // msg-type\n\n buff[offset + 1] = mask;\n buff[offset + 2] = x >> 8;\n buff[offset + 3] = x;\n buff[offset + 4] = y >> 8;\n buff[offset + 5] = y;\n sock._sQlen += 6;\n sock.flush();\n },\n // Used to build Notify and Request data.\n _buildExtendedClipboardFlags: function _buildExtendedClipboardFlags(actions, formats) {\n var data = new Uint8Array(4);\n var formatFlag = 0x00000000;\n var actionFlag = 0x00000000;\n\n for (var i = 0; i < actions.length; i++) {\n actionFlag |= actions[i];\n }\n\n for (var _i4 = 0; _i4 < formats.length; _i4++) {\n formatFlag |= formats[_i4];\n }\n\n data[0] = actionFlag >> 24; // Actions\n\n data[1] = 0x00; // Reserved\n\n data[2] = 0x00; // Reserved\n\n data[3] = formatFlag; // Formats\n\n return data;\n },\n extendedClipboardProvide: function extendedClipboardProvide(sock, formats, inData) {\n // Deflate incomming data and their sizes\n var deflator = new _deflator[\"default\"]();\n var dataToDeflate = [];\n\n for (var i = 0; i < formats.length; i++) {\n // We only support the format Text at this time\n if (formats[i] != extendedClipboardFormatText) {\n throw new Error(\"Unsupported extended clipboard format for Provide message.\");\n } // Change lone \\r or \\n into \\r\\n as defined in rfbproto\n\n\n inData[i] = inData[i].replace(/\\r\\n|\\r|\\n/gm, \"\\r\\n\"); // Check if it already has \\0\n\n var text = (0, _strings.encodeUTF8)(inData[i] + \"\\0\");\n dataToDeflate.push(text.length >> 24 & 0xFF, text.length >> 16 & 0xFF, text.length >> 8 & 0xFF, text.length & 0xFF);\n\n for (var j = 0; j < text.length; j++) {\n dataToDeflate.push(text.charCodeAt(j));\n }\n }\n\n var deflatedData = deflator.deflate(new Uint8Array(dataToDeflate)); // Build data to send\n\n var data = new Uint8Array(4 + deflatedData.length);\n data.set(RFB.messages._buildExtendedClipboardFlags([extendedClipboardActionProvide], formats));\n data.set(deflatedData, 4);\n RFB.messages.clientCutText(sock, data, true);\n },\n extendedClipboardNotify: function extendedClipboardNotify(sock, formats) {\n var flags = RFB.messages._buildExtendedClipboardFlags([extendedClipboardActionNotify], formats);\n\n RFB.messages.clientCutText(sock, flags, true);\n },\n extendedClipboardRequest: function extendedClipboardRequest(sock, formats) {\n var flags = RFB.messages._buildExtendedClipboardFlags([extendedClipboardActionRequest], formats);\n\n RFB.messages.clientCutText(sock, flags, true);\n },\n extendedClipboardCaps: function extendedClipboardCaps(sock, actions, formats) {\n var formatKeys = Object.keys(formats);\n var data = new Uint8Array(4 + 4 * formatKeys.length);\n formatKeys.map(function (x) {\n return parseInt(x);\n });\n formatKeys.sort(function (a, b) {\n return a - b;\n });\n data.set(RFB.messages._buildExtendedClipboardFlags(actions, []));\n var loopOffset = 4;\n\n for (var i = 0; i < formatKeys.length; i++) {\n data[loopOffset] = formats[formatKeys[i]] >> 24;\n data[loopOffset + 1] = formats[formatKeys[i]] >> 16;\n data[loopOffset + 2] = formats[formatKeys[i]] >> 8;\n data[loopOffset + 3] = formats[formatKeys[i]] >> 0;\n loopOffset += 4;\n data[3] |= 1 << formatKeys[i]; // Update our format flags\n }\n\n RFB.messages.clientCutText(sock, data, true);\n },\n clientCutText: function clientCutText(sock, data) {\n var extended = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 6; // msg-type\n\n buff[offset + 1] = 0; // padding\n\n buff[offset + 2] = 0; // padding\n\n buff[offset + 3] = 0; // padding\n\n var length;\n\n if (extended) {\n length = (0, _int.toUnsigned32bit)(-data.length);\n } else {\n length = data.length;\n }\n\n buff[offset + 4] = length >> 24;\n buff[offset + 5] = length >> 16;\n buff[offset + 6] = length >> 8;\n buff[offset + 7] = length;\n sock._sQlen += 8; // We have to keep track of from where in the data we begin creating the\n // buffer for the flush in the next iteration.\n\n var dataOffset = 0;\n var remaining = data.length;\n\n while (remaining > 0) {\n var flushSize = Math.min(remaining, sock._sQbufferSize - sock._sQlen);\n\n for (var i = 0; i < flushSize; i++) {\n buff[sock._sQlen + i] = data[dataOffset + i];\n }\n\n sock._sQlen += flushSize;\n sock.flush();\n remaining -= flushSize;\n dataOffset += flushSize;\n }\n },\n setDesktopSize: function setDesktopSize(sock, width, height, id, flags) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 251; // msg-type\n\n buff[offset + 1] = 0; // padding\n\n buff[offset + 2] = width >> 8; // width\n\n buff[offset + 3] = width;\n buff[offset + 4] = height >> 8; // height\n\n buff[offset + 5] = height;\n buff[offset + 6] = 1; // number-of-screens\n\n buff[offset + 7] = 0; // padding\n // screen array\n\n buff[offset + 8] = id >> 24; // id\n\n buff[offset + 9] = id >> 16;\n buff[offset + 10] = id >> 8;\n buff[offset + 11] = id;\n buff[offset + 12] = 0; // x-position\n\n buff[offset + 13] = 0;\n buff[offset + 14] = 0; // y-position\n\n buff[offset + 15] = 0;\n buff[offset + 16] = width >> 8; // width\n\n buff[offset + 17] = width;\n buff[offset + 18] = height >> 8; // height\n\n buff[offset + 19] = height;\n buff[offset + 20] = flags >> 24; // flags\n\n buff[offset + 21] = flags >> 16;\n buff[offset + 22] = flags >> 8;\n buff[offset + 23] = flags;\n sock._sQlen += 24;\n sock.flush();\n },\n clientFence: function clientFence(sock, flags, payload) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 248; // msg-type\n\n buff[offset + 1] = 0; // padding\n\n buff[offset + 2] = 0; // padding\n\n buff[offset + 3] = 0; // padding\n\n buff[offset + 4] = flags >> 24; // flags\n\n buff[offset + 5] = flags >> 16;\n buff[offset + 6] = flags >> 8;\n buff[offset + 7] = flags;\n var n = payload.length;\n buff[offset + 8] = n; // length\n\n for (var i = 0; i < n; i++) {\n buff[offset + 9 + i] = payload.charCodeAt(i);\n }\n\n sock._sQlen += 9 + n;\n sock.flush();\n },\n enableContinuousUpdates: function enableContinuousUpdates(sock, enable, x, y, width, height) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 150; // msg-type\n\n buff[offset + 1] = enable; // enable-flag\n\n buff[offset + 2] = x >> 8; // x\n\n buff[offset + 3] = x;\n buff[offset + 4] = y >> 8; // y\n\n buff[offset + 5] = y;\n buff[offset + 6] = width >> 8; // width\n\n buff[offset + 7] = width;\n buff[offset + 8] = height >> 8; // height\n\n buff[offset + 9] = height;\n sock._sQlen += 10;\n sock.flush();\n },\n pixelFormat: function pixelFormat(sock, depth, trueColor) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n var bpp;\n\n if (depth > 16) {\n bpp = 32;\n } else if (depth > 8) {\n bpp = 16;\n } else {\n bpp = 8;\n }\n\n var bits = Math.floor(depth / 3);\n buff[offset] = 0; // msg-type\n\n buff[offset + 1] = 0; // padding\n\n buff[offset + 2] = 0; // padding\n\n buff[offset + 3] = 0; // padding\n\n buff[offset + 4] = bpp; // bits-per-pixel\n\n buff[offset + 5] = depth; // depth\n\n buff[offset + 6] = 0; // little-endian\n\n buff[offset + 7] = trueColor ? 1 : 0; // true-color\n\n buff[offset + 8] = 0; // red-max\n\n buff[offset + 9] = (1 << bits) - 1; // red-max\n\n buff[offset + 10] = 0; // green-max\n\n buff[offset + 11] = (1 << bits) - 1; // green-max\n\n buff[offset + 12] = 0; // blue-max\n\n buff[offset + 13] = (1 << bits) - 1; // blue-max\n\n buff[offset + 14] = bits * 0; // red-shift\n\n buff[offset + 15] = bits * 1; // green-shift\n\n buff[offset + 16] = bits * 2; // blue-shift\n\n buff[offset + 17] = 0; // padding\n\n buff[offset + 18] = 0; // padding\n\n buff[offset + 19] = 0; // padding\n\n sock._sQlen += 20;\n sock.flush();\n },\n clientEncodings: function clientEncodings(sock, encodings) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 2; // msg-type\n\n buff[offset + 1] = 0; // padding\n\n buff[offset + 2] = encodings.length >> 8;\n buff[offset + 3] = encodings.length;\n var j = offset + 4;\n\n for (var i = 0; i < encodings.length; i++) {\n var enc = encodings[i];\n buff[j] = enc >> 24;\n buff[j + 1] = enc >> 16;\n buff[j + 2] = enc >> 8;\n buff[j + 3] = enc;\n j += 4;\n }\n\n sock._sQlen += j - offset;\n sock.flush();\n },\n fbUpdateRequest: function fbUpdateRequest(sock, incremental, x, y, w, h) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n\n if (typeof x === \"undefined\") {\n x = 0;\n }\n\n if (typeof y === \"undefined\") {\n y = 0;\n }\n\n buff[offset] = 3; // msg-type\n\n buff[offset + 1] = incremental ? 1 : 0;\n buff[offset + 2] = x >> 8 & 0xFF;\n buff[offset + 3] = x & 0xFF;\n buff[offset + 4] = y >> 8 & 0xFF;\n buff[offset + 5] = y & 0xFF;\n buff[offset + 6] = w >> 8 & 0xFF;\n buff[offset + 7] = w & 0xFF;\n buff[offset + 8] = h >> 8 & 0xFF;\n buff[offset + 9] = h & 0xFF;\n sock._sQlen += 10;\n sock.flush();\n },\n xvpOp: function xvpOp(sock, ver, op) {\n var buff = sock._sQ;\n var offset = sock._sQlen;\n buff[offset] = 250; // msg-type\n\n buff[offset + 1] = 0; // padding\n\n buff[offset + 2] = ver;\n buff[offset + 3] = op;\n sock._sQlen += 4;\n sock.flush();\n }\n};\nRFB.cursors = {\n none: {\n rgbaPixels: new Uint8Array(),\n w: 0,\n h: 0,\n hotx: 0,\n hoty: 0\n },\n dot: {\n /* eslint-disable indent */\n rgbaPixels: new Uint8Array([255, 255, 255, 255, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 0, 0, 0, 255, 255, 255, 255, 255]),\n\n /* eslint-enable indent */\n w: 3,\n h: 3,\n hotx: 1,\n hoty: 1\n }\n};","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hasScrollbarGutter = exports.dragThreshold = void 0;\nexports.isFirefox = isFirefox;\nexports.isIOS = isIOS;\nexports.isMac = isMac;\nexports.isSafari = isSafari;\nexports.isTouchDevice = void 0;\nexports.isWindows = isWindows;\nexports.supportsCursorURIs = void 0;\n\nvar Log = _interopRequireWildcard(require(\"./logging.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n *\n * Browser feature support detection\n */\n// Touch detection\nvar isTouchDevice = 'ontouchstart' in document.documentElement || // requried for Chrome debugger\ndocument.ontouchstart !== undefined || // required for MS Surface\nnavigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\nexports.isTouchDevice = isTouchDevice;\nwindow.addEventListener('touchstart', function onFirstTouch() {\n exports.isTouchDevice = isTouchDevice = true;\n window.removeEventListener('touchstart', onFirstTouch, false);\n}, false); // The goal is to find a certain physical width, the devicePixelRatio\n// brings us a bit closer but is not optimal.\n\nvar dragThreshold = 10 * (window.devicePixelRatio || 1);\nexports.dragThreshold = dragThreshold;\nvar _supportsCursorURIs = false;\n\ntry {\n var target = document.createElement('canvas');\n target.style.cursor = 'url(\"data:image/x-icon;base64,AAACAAEACAgAAAIAAgA4AQAAFgAAACgAAAAIAAAAEAAAAAEAIAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAA==\") 2 2, default';\n\n if (target.style.cursor.indexOf(\"url\") === 0) {\n Log.Info(\"Data URI scheme cursor supported\");\n _supportsCursorURIs = true;\n } else {\n Log.Warn(\"Data URI scheme cursor not supported\");\n }\n} catch (exc) {\n Log.Error(\"Data URI scheme cursor test exception: \" + exc);\n}\n\nvar supportsCursorURIs = _supportsCursorURIs;\nexports.supportsCursorURIs = supportsCursorURIs;\nvar _hasScrollbarGutter = true;\n\ntry {\n // Create invisible container\n var container = document.createElement('div');\n container.style.visibility = 'hidden';\n container.style.overflow = 'scroll'; // forcing scrollbars\n\n document.body.appendChild(container); // Create a div and place it in the container\n\n var child = document.createElement('div');\n container.appendChild(child); // Calculate the difference between the container's full width\n // and the child's width - the difference is the scrollbars\n\n var scrollbarWidth = container.offsetWidth - child.offsetWidth; // Clean up\n\n container.parentNode.removeChild(container);\n _hasScrollbarGutter = scrollbarWidth != 0;\n} catch (exc) {\n Log.Error(\"Scrollbar test exception: \" + exc);\n}\n\nvar hasScrollbarGutter = _hasScrollbarGutter;\n/*\n * The functions for detection of platforms and browsers below are exported\n * but the use of these should be minimized as much as possible.\n *\n * It's better to use feature detection than platform detection.\n */\n\nexports.hasScrollbarGutter = hasScrollbarGutter;\n\nfunction isMac() {\n return navigator && !!/mac/i.exec(navigator.platform);\n}\n\nfunction isWindows() {\n return navigator && !!/win/i.exec(navigator.platform);\n}\n\nfunction isIOS() {\n return navigator && (!!/ipad/i.exec(navigator.platform) || !!/iphone/i.exec(navigator.platform) || !!/ipod/i.exec(navigator.platform));\n}\n\nfunction isSafari() {\n return navigator && navigator.userAgent.indexOf('Safari') !== -1 && navigator.userAgent.indexOf('Chrome') === -1;\n}\n\nfunction isFirefox() {\n return navigator && !!/firefox/i.exec(navigator.userAgent);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _browser = require(\"./browser.js\");\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar useFallback = !_browser.supportsCursorURIs || _browser.isTouchDevice;\n\nvar Cursor = /*#__PURE__*/function () {\n function Cursor() {\n _classCallCheck(this, Cursor);\n\n this._target = null;\n this._canvas = document.createElement('canvas');\n\n if (useFallback) {\n this._canvas.style.position = 'fixed';\n this._canvas.style.zIndex = '65535';\n this._canvas.style.pointerEvents = 'none'; // Can't use \"display\" because of Firefox bug #1445997\n\n this._canvas.style.visibility = 'hidden';\n }\n\n this._position = {\n x: 0,\n y: 0\n };\n this._hotSpot = {\n x: 0,\n y: 0\n };\n this._eventHandlers = {\n 'mouseover': this._handleMouseOver.bind(this),\n 'mouseleave': this._handleMouseLeave.bind(this),\n 'mousemove': this._handleMouseMove.bind(this),\n 'mouseup': this._handleMouseUp.bind(this)\n };\n }\n\n _createClass(Cursor, [{\n key: \"attach\",\n value: function attach(target) {\n if (this._target) {\n this.detach();\n }\n\n this._target = target;\n\n if (useFallback) {\n document.body.appendChild(this._canvas);\n var options = {\n capture: true,\n passive: true\n };\n\n this._target.addEventListener('mouseover', this._eventHandlers.mouseover, options);\n\n this._target.addEventListener('mouseleave', this._eventHandlers.mouseleave, options);\n\n this._target.addEventListener('mousemove', this._eventHandlers.mousemove, options);\n\n this._target.addEventListener('mouseup', this._eventHandlers.mouseup, options);\n }\n\n this.clear();\n }\n }, {\n key: \"detach\",\n value: function detach() {\n if (!this._target) {\n return;\n }\n\n if (useFallback) {\n var options = {\n capture: true,\n passive: true\n };\n\n this._target.removeEventListener('mouseover', this._eventHandlers.mouseover, options);\n\n this._target.removeEventListener('mouseleave', this._eventHandlers.mouseleave, options);\n\n this._target.removeEventListener('mousemove', this._eventHandlers.mousemove, options);\n\n this._target.removeEventListener('mouseup', this._eventHandlers.mouseup, options);\n\n document.body.removeChild(this._canvas);\n }\n\n this._target = null;\n }\n }, {\n key: \"change\",\n value: function change(rgba, hotx, hoty, w, h) {\n if (w === 0 || h === 0) {\n this.clear();\n return;\n }\n\n this._position.x = this._position.x + this._hotSpot.x - hotx;\n this._position.y = this._position.y + this._hotSpot.y - hoty;\n this._hotSpot.x = hotx;\n this._hotSpot.y = hoty;\n\n var ctx = this._canvas.getContext('2d');\n\n this._canvas.width = w;\n this._canvas.height = h;\n var img = new ImageData(new Uint8ClampedArray(rgba), w, h);\n ctx.clearRect(0, 0, w, h);\n ctx.putImageData(img, 0, 0);\n\n if (useFallback) {\n this._updatePosition();\n } else {\n var url = this._canvas.toDataURL();\n\n this._target.style.cursor = 'url(' + url + ')' + hotx + ' ' + hoty + ', default';\n }\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this._target.style.cursor = 'none';\n this._canvas.width = 0;\n this._canvas.height = 0;\n this._position.x = this._position.x + this._hotSpot.x;\n this._position.y = this._position.y + this._hotSpot.y;\n this._hotSpot.x = 0;\n this._hotSpot.y = 0;\n } // Mouse events might be emulated, this allows\n // moving the cursor in such cases\n\n }, {\n key: \"move\",\n value: function move(clientX, clientY) {\n if (!useFallback) {\n return;\n } // clientX/clientY are relative the _visual viewport_,\n // but our position is relative the _layout viewport_,\n // so try to compensate when we can\n\n\n if (window.visualViewport) {\n this._position.x = clientX + window.visualViewport.offsetLeft;\n this._position.y = clientY + window.visualViewport.offsetTop;\n } else {\n this._position.x = clientX;\n this._position.y = clientY;\n }\n\n this._updatePosition();\n\n var target = document.elementFromPoint(clientX, clientY);\n\n this._updateVisibility(target);\n }\n }, {\n key: \"_handleMouseOver\",\n value: function _handleMouseOver(event) {\n // This event could be because we're entering the target, or\n // moving around amongst its sub elements. Let the move handler\n // sort things out.\n this._handleMouseMove(event);\n }\n }, {\n key: \"_handleMouseLeave\",\n value: function _handleMouseLeave(event) {\n // Check if we should show the cursor on the element we are leaving to\n this._updateVisibility(event.relatedTarget);\n }\n }, {\n key: \"_handleMouseMove\",\n value: function _handleMouseMove(event) {\n this._updateVisibility(event.target);\n\n this._position.x = event.clientX - this._hotSpot.x;\n this._position.y = event.clientY - this._hotSpot.y;\n\n this._updatePosition();\n }\n }, {\n key: \"_handleMouseUp\",\n value: function _handleMouseUp(event) {\n var _this = this;\n\n // We might get this event because of a drag operation that\n // moved outside of the target. Check what's under the cursor\n // now and adjust visibility based on that.\n var target = document.elementFromPoint(event.clientX, event.clientY);\n\n this._updateVisibility(target); // Captures end with a mouseup but we can't know the event order of\n // mouseup vs releaseCapture.\n //\n // In the cases when releaseCapture comes first, the code above is\n // enough.\n //\n // In the cases when the mouseup comes first, we need wait for the\n // browser to flush all events and then check again if the cursor\n // should be visible.\n\n\n if (this._captureIsActive()) {\n window.setTimeout(function () {\n // We might have detached at this point\n if (!_this._target) {\n return;\n } // Refresh the target from elementFromPoint since queued events\n // might have altered the DOM\n\n\n target = document.elementFromPoint(event.clientX, event.clientY);\n\n _this._updateVisibility(target);\n }, 0);\n }\n }\n }, {\n key: \"_showCursor\",\n value: function _showCursor() {\n if (this._canvas.style.visibility === 'hidden') {\n this._canvas.style.visibility = '';\n }\n }\n }, {\n key: \"_hideCursor\",\n value: function _hideCursor() {\n if (this._canvas.style.visibility !== 'hidden') {\n this._canvas.style.visibility = 'hidden';\n }\n } // Should we currently display the cursor?\n // (i.e. are we over the target, or a child of the target without a\n // different cursor set)\n\n }, {\n key: \"_shouldShowCursor\",\n value: function _shouldShowCursor(target) {\n if (!target) {\n return false;\n } // Easy case\n\n\n if (target === this._target) {\n return true;\n } // Other part of the DOM?\n\n\n if (!this._target.contains(target)) {\n return false;\n } // Has the child its own cursor?\n // FIXME: How can we tell that a sub element has an\n // explicit \"cursor: none;\"?\n\n\n if (window.getComputedStyle(target).cursor !== 'none') {\n return false;\n }\n\n return true;\n }\n }, {\n key: \"_updateVisibility\",\n value: function _updateVisibility(target) {\n // When the cursor target has capture we want to show the cursor.\n // So, if a capture is active - look at the captured element instead.\n if (this._captureIsActive()) {\n target = document.captureElement;\n }\n\n if (this._shouldShowCursor(target)) {\n this._showCursor();\n } else {\n this._hideCursor();\n }\n }\n }, {\n key: \"_updatePosition\",\n value: function _updatePosition() {\n this._canvas.style.left = this._position.x + \"px\";\n this._canvas.style.top = this._position.y + \"px\";\n }\n }, {\n key: \"_captureIsActive\",\n value: function _captureIsActive() {\n return document.captureElement && document.documentElement.contains(document.captureElement);\n }\n }]);\n\n return Cursor;\n}();\n\nexports[\"default\"] = Cursor;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clientToElement = clientToElement;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2020 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\n/*\n * HTML element utility functions\n */\nfunction clientToElement(x, y, elem) {\n var bounds = elem.getBoundingClientRect();\n var pos = {\n x: 0,\n y: 0\n }; // Clip to target bounds\n\n if (x < bounds.left) {\n pos.x = 0;\n } else if (x >= bounds.right) {\n pos.x = bounds.width - 1;\n } else {\n pos.x = x - bounds.left;\n }\n\n if (y < bounds.top) {\n pos.y = 0;\n } else if (y >= bounds.bottom) {\n pos.y = bounds.height - 1;\n } else {\n pos.y = y - bounds.top;\n }\n\n return pos;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getPointerEvent = getPointerEvent;\nexports.releaseCapture = releaseCapture;\nexports.setCapture = setCapture;\nexports.stopEvent = stopEvent;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2018 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\n/*\n * Cross-browser event and position routines\n */\nfunction getPointerEvent(e) {\n return e.changedTouches ? e.changedTouches[0] : e.touches ? e.touches[0] : e;\n}\n\nfunction stopEvent(e) {\n e.stopPropagation();\n e.preventDefault();\n} // Emulate Element.setCapture() when not supported\n\n\nvar _captureRecursion = false;\nvar _elementForUnflushedEvents = null;\ndocument.captureElement = null;\n\nfunction _captureProxy(e) {\n // Recursion protection as we'll see our own event\n if (_captureRecursion) return; // Clone the event as we cannot dispatch an already dispatched event\n\n var newEv = new e.constructor(e.type, e);\n _captureRecursion = true;\n\n if (document.captureElement) {\n document.captureElement.dispatchEvent(newEv);\n } else {\n _elementForUnflushedEvents.dispatchEvent(newEv);\n }\n\n _captureRecursion = false; // Avoid double events\n\n e.stopPropagation(); // Respect the wishes of the redirected event handlers\n\n if (newEv.defaultPrevented) {\n e.preventDefault();\n } // Implicitly release the capture on button release\n\n\n if (e.type === \"mouseup\") {\n releaseCapture();\n }\n} // Follow cursor style of target element\n\n\nfunction _capturedElemChanged() {\n var proxyElem = document.getElementById(\"noVNC_mouse_capture_elem\");\n proxyElem.style.cursor = window.getComputedStyle(document.captureElement).cursor;\n}\n\nvar _captureObserver = new MutationObserver(_capturedElemChanged);\n\nfunction setCapture(target) {\n if (target.setCapture) {\n target.setCapture();\n document.captureElement = target;\n } else {\n // Release any existing capture in case this method is\n // called multiple times without coordination\n releaseCapture();\n var proxyElem = document.getElementById(\"noVNC_mouse_capture_elem\");\n\n if (proxyElem === null) {\n proxyElem = document.createElement(\"div\");\n proxyElem.id = \"noVNC_mouse_capture_elem\";\n proxyElem.style.position = \"fixed\";\n proxyElem.style.top = \"0px\";\n proxyElem.style.left = \"0px\";\n proxyElem.style.width = \"100%\";\n proxyElem.style.height = \"100%\";\n proxyElem.style.zIndex = 10000;\n proxyElem.style.display = \"none\";\n document.body.appendChild(proxyElem); // This is to make sure callers don't get confused by having\n // our blocking element as the target\n\n proxyElem.addEventListener('contextmenu', _captureProxy);\n proxyElem.addEventListener('mousemove', _captureProxy);\n proxyElem.addEventListener('mouseup', _captureProxy);\n }\n\n document.captureElement = target; // Track cursor and get initial cursor\n\n _captureObserver.observe(target, {\n attributes: true\n });\n\n _capturedElemChanged();\n\n proxyElem.style.display = \"\"; // We listen to events on window in order to keep tracking if it\n // happens to leave the viewport\n\n window.addEventListener('mousemove', _captureProxy);\n window.addEventListener('mouseup', _captureProxy);\n }\n}\n\nfunction releaseCapture() {\n if (document.releaseCapture) {\n document.releaseCapture();\n document.captureElement = null;\n } else {\n if (!document.captureElement) {\n return;\n } // There might be events already queued. The event proxy needs\n // access to the captured element for these queued events.\n // E.g. contextmenu (right-click) in Microsoft Edge\n //\n // Before removing the capturedElem pointer we save it to a\n // temporary variable that the unflushed events can use.\n\n\n _elementForUnflushedEvents = document.captureElement;\n document.captureElement = null;\n\n _captureObserver.disconnect();\n\n var proxyElem = document.getElementById(\"noVNC_mouse_capture_elem\");\n proxyElem.style.display = \"none\";\n window.removeEventListener('mousemove', _captureProxy);\n window.removeEventListener('mouseup', _captureProxy);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\nvar EventTargetMixin = /*#__PURE__*/function () {\n function EventTargetMixin() {\n _classCallCheck(this, EventTargetMixin);\n\n this._listeners = new Map();\n }\n\n _createClass(EventTargetMixin, [{\n key: \"addEventListener\",\n value: function addEventListener(type, callback) {\n if (!this._listeners.has(type)) {\n this._listeners.set(type, new Set());\n }\n\n this._listeners.get(type).add(callback);\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(type, callback) {\n if (this._listeners.has(type)) {\n this._listeners.get(type)[\"delete\"](callback);\n }\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n var _this = this;\n\n if (!this._listeners.has(event.type)) {\n return true;\n }\n\n this._listeners.get(event.type).forEach(function (callback) {\n return callback.call(_this, event);\n });\n\n return !event.defaultPrevented;\n }\n }]);\n\n return EventTargetMixin;\n}();\n\nexports[\"default\"] = EventTargetMixin;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.toSigned32bit = toSigned32bit;\nexports.toUnsigned32bit = toUnsigned32bit;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2020 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\nfunction toUnsigned32bit(toConvert) {\n return toConvert >>> 0;\n}\n\nfunction toSigned32bit(toConvert) {\n return toConvert | 0;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Warn = exports.Info = exports.Error = exports.Debug = void 0;\nexports.getLogging = getLogging;\nexports.initLogging = initLogging;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n\n/*\n * Logging/debug routines\n */\nvar _logLevel = 'warn';\n\nvar Debug = function Debug() {};\n\nexports.Debug = Debug;\n\nvar Info = function Info() {};\n\nexports.Info = Info;\n\nvar Warn = function Warn() {};\n\nexports.Warn = Warn;\n\nvar Error = function Error() {};\n\nexports.Error = Error;\n\nfunction initLogging(level) {\n if (typeof level === 'undefined') {\n level = _logLevel;\n } else {\n _logLevel = level;\n }\n\n exports.Debug = Debug = exports.Info = Info = exports.Warn = Warn = exports.Error = Error = function Error() {};\n\n if (typeof window.console !== \"undefined\") {\n /* eslint-disable no-console, no-fallthrough */\n switch (level) {\n case 'debug':\n exports.Debug = Debug = console.debug.bind(window.console);\n\n case 'info':\n exports.Info = Info = console.info.bind(window.console);\n\n case 'warn':\n exports.Warn = Warn = console.warn.bind(window.console);\n\n case 'error':\n exports.Error = Error = console.error.bind(window.console);\n\n case 'none':\n break;\n\n default:\n throw new window.Error(\"invalid logging type '\" + level + \"'\");\n }\n /* eslint-enable no-console, no-fallthrough */\n\n }\n}\n\nfunction getLogging() {\n return _logLevel;\n}\n\n// Initialize logging level\ninitLogging();","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.decodeUTF8 = decodeUTF8;\nexports.encodeUTF8 = encodeUTF8;\n\n/*\n * noVNC: HTML5 VNC client\n * Copyright (C) 2019 The noVNC Authors\n * Licensed under MPL 2.0 (see LICENSE.txt)\n *\n * See README.md for usage and integration instructions.\n */\n// Decode from UTF-8\nfunction decodeUTF8(utf8string) {\n var allowLatin1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n try {\n return decodeURIComponent(escape(utf8string));\n } catch (e) {\n if (e instanceof URIError) {\n if (allowLatin1) {\n // If we allow Latin1 we can ignore any decoding fails\n // and in these cases return the original string\n return utf8string;\n }\n }\n\n throw e;\n }\n} // Encode to UTF-8\n\n\nfunction encodeUTF8(DOMString) {\n return unescape(encodeURIComponent(DOMString));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Buf8 = exports.Buf32 = exports.Buf16 = void 0;\nexports.arraySet = arraySet;\nexports.flattenChunks = flattenChunks;\nexports.shrinkBuf = shrinkBuf;\n\n// reduce buffer size, avoiding mem copy\nfunction shrinkBuf(buf, size) {\n if (buf.length === size) {\n return buf;\n }\n\n if (buf.subarray) {\n return buf.subarray(0, size);\n }\n\n buf.length = size;\n return buf;\n}\n\n;\n\nfunction arraySet(dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n } // Fallback to ordinary array\n\n\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n} // Join array of chunks to single array.\n\n\nfunction flattenChunks(chunks) {\n var i, l, len, pos, chunk, result; // calculate data length\n\n len = 0;\n\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n } // join chunks\n\n\n result = new Uint8Array(len);\n pos = 0;\n\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n}\n\nvar Buf8 = Uint8Array;\nexports.Buf8 = Buf8;\nvar Buf16 = Uint16Array;\nexports.Buf16 = Buf16;\nvar Buf32 = Int32Array;\nexports.Buf32 = Buf32;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = adler32;\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It doesn't worth to make additional optimizationa as in original.\n// Small size is preferable.\nfunction adler32(adler, buf, len, pos) {\n var s1 = adler & 0xffff | 0,\n s2 = adler >>> 16 & 0xffff | 0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = s1 + buf[pos++] | 0;\n s2 = s2 + s1 | 0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return s1 | s2 << 16 | 0;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = makeTable;\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c,\n table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n\n for (var k = 0; k < 8; k++) {\n c = c & 1 ? 0xEDB88320 ^ c >>> 1 : c >>> 1;\n }\n\n table[n] = c;\n }\n\n return table;\n} // Create table on load. Just 255 signed longs. Not a problem.\n\n\nvar crcTable = makeTable();\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return crc ^ -1; // >>> 0;\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Z_UNKNOWN = exports.Z_STREAM_ERROR = exports.Z_STREAM_END = exports.Z_RLE = exports.Z_PARTIAL_FLUSH = exports.Z_OK = exports.Z_NO_FLUSH = exports.Z_HUFFMAN_ONLY = exports.Z_FULL_FLUSH = exports.Z_FIXED = exports.Z_FINISH = exports.Z_FILTERED = exports.Z_DEFLATED = exports.Z_DEFAULT_STRATEGY = exports.Z_DEFAULT_COMPRESSION = exports.Z_DATA_ERROR = exports.Z_BUF_ERROR = exports.Z_BLOCK = void 0;\nexports.deflate = deflate;\nexports.deflateEnd = deflateEnd;\nexports.deflateInfo = void 0;\nexports.deflateInit = deflateInit;\nexports.deflateInit2 = deflateInit2;\nexports.deflateReset = deflateReset;\nexports.deflateResetKeep = deflateResetKeep;\nexports.deflateSetDictionary = deflateSetDictionary;\nexports.deflateSetHeader = deflateSetHeader;\n\nvar utils = _interopRequireWildcard(require(\"../utils/common.js\"));\n\nvar trees = _interopRequireWildcard(require(\"./trees.js\"));\n\nvar _adler = _interopRequireDefault(require(\"./adler32.js\"));\n\nvar _crc = _interopRequireDefault(require(\"./crc32.js\"));\n\nvar _messages = _interopRequireDefault(require(\"./messages.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/* Public constants ==========================================================*/\n\n/* ===========================================================================*/\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH = 0;\nexports.Z_NO_FLUSH = Z_NO_FLUSH;\nvar Z_PARTIAL_FLUSH = 1; //export const Z_SYNC_FLUSH = 2;\n\nexports.Z_PARTIAL_FLUSH = Z_PARTIAL_FLUSH;\nvar Z_FULL_FLUSH = 3;\nexports.Z_FULL_FLUSH = Z_FULL_FLUSH;\nvar Z_FINISH = 4;\nexports.Z_FINISH = Z_FINISH;\nvar Z_BLOCK = 5; //export const Z_TREES = 6;\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n\nexports.Z_BLOCK = Z_BLOCK;\nvar Z_OK = 0;\nexports.Z_OK = Z_OK;\nvar Z_STREAM_END = 1; //export const Z_NEED_DICT = 2;\n//export const Z_ERRNO = -1;\n\nexports.Z_STREAM_END = Z_STREAM_END;\nvar Z_STREAM_ERROR = -2;\nexports.Z_STREAM_ERROR = Z_STREAM_ERROR;\nvar Z_DATA_ERROR = -3; //export const Z_MEM_ERROR = -4;\n\nexports.Z_DATA_ERROR = Z_DATA_ERROR;\nvar Z_BUF_ERROR = -5; //export const Z_VERSION_ERROR = -6;\n\n/* compression levels */\n//export const Z_NO_COMPRESSION = 0;\n//export const Z_BEST_SPEED = 1;\n//export const Z_BEST_COMPRESSION = 9;\n\nexports.Z_BUF_ERROR = Z_BUF_ERROR;\nvar Z_DEFAULT_COMPRESSION = -1;\nexports.Z_DEFAULT_COMPRESSION = Z_DEFAULT_COMPRESSION;\nvar Z_FILTERED = 1;\nexports.Z_FILTERED = Z_FILTERED;\nvar Z_HUFFMAN_ONLY = 2;\nexports.Z_HUFFMAN_ONLY = Z_HUFFMAN_ONLY;\nvar Z_RLE = 3;\nexports.Z_RLE = Z_RLE;\nvar Z_FIXED = 4;\nexports.Z_FIXED = Z_FIXED;\nvar Z_DEFAULT_STRATEGY = 0;\n/* Possible values of the data_type field (though see inflate()) */\n//export const Z_BINARY = 0;\n//export const Z_TEXT = 1;\n//export const Z_ASCII = 1; // = Z_TEXT\n\nexports.Z_DEFAULT_STRATEGY = Z_DEFAULT_STRATEGY;\nvar Z_UNKNOWN = 2;\n/* The deflate compression method */\n\nexports.Z_UNKNOWN = Z_UNKNOWN;\nvar Z_DEFLATED = 8;\n/*============================================================================*/\n\nexports.Z_DEFLATED = Z_DEFLATED;\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\n\nvar DEF_MEM_LEVEL = 8;\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1;\nvar PRESET_DICT = 0x20;\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\nvar BS_NEED_MORE = 1;\n/* block not completed, need more input or more output */\n\nvar BS_BLOCK_DONE = 2;\n/* block flush performed */\n\nvar BS_FINISH_STARTED = 3;\n/* finish started, need only more output at next deflate */\n\nvar BS_FINISH_DONE = 4;\n/* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = _messages[\"default\"][errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return (f << 1) - (f > 4 ? 9 : 0);\n}\n\nfunction zero(buf) {\n var len = buf.length;\n\n while (--len >= 0) {\n buf[len] = 0;\n }\n}\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\n\n\nfunction flush_pending(strm) {\n var s = strm.state; //_tr_flush_bits(s);\n\n var len = s.pending;\n\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n\n if (len === 0) {\n return;\n }\n\n utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\nfunction flush_block_only(s, last) {\n trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last);\n\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\n\n\nfunction putShortMSB(s, b) {\n // put_byte(s, (Byte)(b >> 8));\n // put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = b >>> 8 & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\n\n\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) {\n len = size;\n }\n\n if (len === 0) {\n return 0;\n }\n\n strm.avail_in -= len; // zmemcpy(buf, strm->next_in, len);\n\n utils.arraySet(buf, strm.input, strm.next_in, len, start);\n\n if (strm.state.wrap === 1) {\n strm.adler = (0, _adler[\"default\"])(strm.adler, buf, len, start);\n } else if (strm.state.wrap === 2) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n return len;\n}\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\n\n\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length;\n /* max hash chain length */\n\n var scan = s.strstart;\n /* current string */\n\n var match;\n /* matched string */\n\n var len;\n /* length of current match */\n\n var best_len = s.prev_length;\n /* best match length so far */\n\n var nice_match = s.nice_match;\n /* stop if match long enough */\n\n var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0\n /*NIL*/\n ;\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n\n\n if (nice_match > s.lookahead) {\n nice_match = s.lookahead;\n } // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) {\n continue;\n }\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n\n\n scan += 2;\n match++; // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n\n do {// Do nothing\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend); // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n\n if (len >= nice_match) {\n break;\n }\n\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n\n return s.lookahead;\n}\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\n\n\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str; //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart; // JS ints have 32 bit, block below not needed\n\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n\n s.block_start -= _w_size;\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = m >= _w_size ? m - _w_size : 0;\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = m >= _w_size ? m - _w_size : 0;\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n\n if (s.strm.avail_in === 0) {\n break;\n }\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n\n\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n /* Initialize the hash value now that we have some input: */\n\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask; //#if MIN_MATCH != 3\n // Call update_hash() MIN_MATCH-3 more times\n //#endif\n\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n // if (s.high_water < s.window_size) {\n // var curr = s.strstart + s.lookahead;\n // var init = 0;\n //\n // if (s.high_water < curr) {\n // /* Previous high water mark below current data -- zero WIN_INIT\n // * bytes or up to end of window, whichever is less.\n // */\n // init = s.window_size - curr;\n // if (init > WIN_INIT)\n // init = WIN_INIT;\n // zmemzero(s->window + curr, (unsigned)init);\n // s->high_water = curr + init;\n // }\n // else if (s->high_water < (ulg)curr + WIN_INIT) {\n // /* High water mark at or above current data, but below current data\n // * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n // * to end of window, whichever is less.\n // */\n // init = (ulg)curr + WIN_INIT - s->high_water;\n // if (init > s->window_size - s->high_water)\n // init = s->window_size - s->high_water;\n // zmemzero(s->window + s->high_water, (unsigned)init);\n // s->high_water += init;\n // }\n // }\n //\n // Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n // \"not enough room for search\");\n\n}\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\n\n\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n /* Copy as much as possible from input to output: */\n\n\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n // if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n // s.block_start >= s.w_size)) {\n // throw new Error(\"slide too late\");\n // }\n fill_window(s);\n\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n\n } //Assert(s->block_start >= 0L, \"block gone\");\n // if (s.block_start < 0) throw new Error(\"block gone\");\n\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n /* Emit a stored block if pending_buf will be full: */\n\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n\n\n if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_NEED_MORE;\n}\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\n\n\nfunction deflate_fast(s, flush) {\n var hash_head;\n /* head of the hash chain */\n\n var bflush;\n /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n /* flush the current block */\n }\n }\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n\n\n hash_head = 0\n /*NIL*/\n ;\n\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n\n\n if (hash_head !== 0\n /*NIL*/\n && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n s.lookahead -= s.match_length;\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n\n if (s.match_length <= s.max_lazy_match\n /*max_insert_length*/\n && s.lookahead >= MIN_MATCH) {\n s.match_length--;\n /* string at strstart already in table */\n\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n\n s.strstart++;\n } else {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask; //#if MIN_MATCH != 3\n // Call UPDATE_HASH() MIN_MATCH-3 more times\n //#endif\n\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n }\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n }\n\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_BLOCK_DONE;\n}\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\n\n\nfunction deflate_slow(s, flush) {\n var hash_head;\n /* head of hash chain */\n\n var bflush;\n /* set if current block must be flushed */\n\n var max_insert;\n /* Process the input block. */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n\n }\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n\n\n hash_head = 0\n /*NIL*/\n ;\n\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n /* Find the longest match, discarding those <= prev_length.\n */\n\n\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0\n /*NIL*/\n && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD\n /*MAX_DIST(s)*/\n ) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096\n /*TOO_FAR*/\n )) {\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n\n\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n\n bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n\n s.strstart++;\n s.lookahead--;\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n } //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n\n\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n s.match_available = 0;\n }\n\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_BLOCK_DONE;\n}\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\n\n\nfunction deflate_rle(s, flush) {\n var bflush;\n /* set if current block must be flushed */\n\n var prev;\n /* byte at distance one to match */\n\n var scan, strend;\n /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n\n }\n /* See how many times the previous byte repeats */\n\n\n s.match_length = 0;\n\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n\n do {// Do nothing\n } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend);\n\n s.match_length = MAX_MATCH - (strend - scan);\n\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n } //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n\n }\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n\n\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n }\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_BLOCK_DONE;\n}\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\n\n\nfunction deflate_huff(s, flush) {\n var bflush;\n /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n break;\n /* flush the current block */\n }\n }\n /* Output a literal byte */\n\n\n s.match_length = 0; //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_BLOCK_DONE;\n}\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\n\n\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nvar configuration_table;\nconfiguration_table = [\n/* good lazy nice chain */\nnew Config(0, 0, 0, 0, deflate_stored),\n/* 0 store only */\nnew Config(4, 4, 8, 4, deflate_fast),\n/* 1 max speed, no lazy matches */\nnew Config(4, 5, 16, 8, deflate_fast),\n/* 2 */\nnew Config(4, 6, 32, 32, deflate_fast),\n/* 3 */\nnew Config(4, 4, 16, 16, deflate_slow),\n/* 4 lazy matches */\nnew Config(8, 16, 32, 32, deflate_slow),\n/* 5 */\nnew Config(8, 16, 128, 128, deflate_slow),\n/* 6 */\nnew Config(8, 32, 128, 256, deflate_slow),\n/* 7 */\nnew Config(32, 128, 258, 1024, deflate_slow),\n/* 8 */\nnew Config(32, 258, 258, 4096, deflate_slow)\n/* 9 max compression */\n];\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\n\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n /*** CLEAR_HASH(s); ***/\n\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\nfunction DeflateState() {\n this.strm = null;\n /* pointer back to this zlib stream */\n\n this.status = 0;\n /* as the name implies */\n\n this.pending_buf = null;\n /* output still pending */\n\n this.pending_buf_size = 0;\n /* size of pending_buf */\n\n this.pending_out = 0;\n /* next pending byte to output to the stream */\n\n this.pending = 0;\n /* nb of bytes in the pending buffer */\n\n this.wrap = 0;\n /* bit 0 true for zlib, bit 1 true for gzip */\n\n this.gzhead = null;\n /* gzip header information to write */\n\n this.gzindex = 0;\n /* where in extra, name, or comment */\n\n this.method = Z_DEFLATED;\n /* can only be DEFLATED */\n\n this.last_flush = -1;\n /* value of flush param for previous deflate call */\n\n this.w_size = 0;\n /* LZ77 window size (32K by default) */\n\n this.w_bits = 0;\n /* log2(w_size) (8..16) */\n\n this.w_mask = 0;\n /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null;\n /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0;\n /* hash index of string to be inserted */\n\n this.hash_size = 0;\n /* number of elements in hash table */\n\n this.hash_bits = 0;\n /* log2(hash_size) */\n\n this.hash_mask = 0;\n /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0;\n /* length of best match */\n\n this.prev_match = 0;\n /* previous match */\n\n this.match_available = 0;\n /* set if previous match exists */\n\n this.strstart = 0;\n /* start of string to insert */\n\n this.match_start = 0;\n /* start of matching string */\n\n this.lookahead = 0;\n /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0;\n /* compression level (1..9) */\n\n this.strategy = 0;\n /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0;\n /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n\n this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2);\n this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n this.l_desc = null;\n /* desc. for literal tree */\n\n this.d_desc = null;\n /* desc. for distance tree */\n\n this.bl_desc = null;\n /* desc. for bit length tree */\n //ush bl_count[MAX_BITS+1];\n\n this.bl_count = new utils.Buf16(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n\n this.heap = new utils.Buf16(2 * L_CODES + 1);\n /* heap used to build the Huffman trees */\n\n zero(this.heap);\n this.heap_len = 0;\n /* number of elements in the heap */\n\n this.heap_max = 0;\n /* element of largest frequency */\n\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0;\n /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0;\n /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0;\n /* bit length of current block with optimal trees */\n\n this.static_len = 0;\n /* bit length of current block with static trees */\n\n this.matches = 0;\n /* number of string matches in current block */\n\n this.insert = 0;\n /* bytes at end of window left to insert */\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n\n s.status = s.wrap ? INIT_STATE : BUSY_STATE;\n strm.adler = s.wrap === 2 ? 0 // crc32(0, Z_NULL, 0)\n : 1; // adler32(0, Z_NULL, 0)\n\n s.last_flush = Z_NO_FLUSH;\n\n trees._tr_init(s);\n\n return Z_OK;\n}\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n\n return ret;\n}\n\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n if (strm.state.wrap !== 2) {\n return Z_STREAM_ERROR;\n }\n\n strm.state.gzhead = head;\n return Z_OK;\n}\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) {\n // === Z_NULL\n return Z_STREAM_ERROR;\n }\n\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) {\n /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n } else if (windowBits > 15) {\n wrap = 2;\n /* write gzip wrapper instead */\n\n windowBits -= 16;\n }\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n\n var s = new DeflateState();\n strm.state = s;\n s.strm = strm;\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n s.window = new utils.Buf8(s.w_size * 2);\n s.head = new utils.Buf16(s.hash_size);\n s.prev = new utils.Buf16(s.w_size); // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << memLevel + 6;\n /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4; //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n\n s.pending_buf = new utils.Buf8(s.pending_buf_size); // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n\n s.d_buf = 1 * s.lit_bufsize; //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n\n s.l_buf = (1 + 2) * s.lit_bufsize;\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state || flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n s = strm.state;\n\n if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush !== Z_FINISH) {\n return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm;\n /* just in case */\n\n old_flush = s.last_flush;\n s.last_flush = flush;\n /* Write the header */\n\n if (s.status === INIT_STATE) {\n if (s.wrap === 2) {\n // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n\n if (!s.gzhead) {\n // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n } else {\n put_byte(s, (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16));\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, s.gzhead.time >> 8 & 0xff);\n put_byte(s, s.gzhead.time >> 16 & 0xff);\n put_byte(s, s.gzhead.time >> 24 & 0xff);\n put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);\n put_byte(s, s.gzhead.os & 0xff);\n\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, s.gzhead.extra.length >> 8 & 0xff);\n }\n\n if (s.gzhead.hcrc) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, s.pending_buf, s.pending, 0);\n }\n\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n } else // DEFLATE header\n {\n var header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n\n header |= level_flags << 6;\n\n if (s.strstart !== 0) {\n header |= PRESET_DICT;\n }\n\n header += 31 - header % 31;\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n /* Save the adler32 of the preset dictionary: */\n\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n } //#ifdef GZIP\n\n\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra\n /* != Z_NULL*/\n ) {\n beg = s.pending;\n /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n flush_pending(strm);\n beg = s.pending;\n\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n } else {\n s.status = NAME_STATE;\n }\n }\n\n if (s.status === NAME_STATE) {\n if (s.gzhead.name\n /* != Z_NULL*/\n ) {\n beg = s.pending;\n /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n flush_pending(strm);\n beg = s.pending;\n\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n } // JS specific: little magic to add zero terminator to end of string\n\n\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n } else {\n s.status = COMMENT_STATE;\n }\n }\n\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment\n /* != Z_NULL*/\n ) {\n beg = s.pending;\n /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n flush_pending(strm);\n beg = s.pending;\n\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n } // JS specific: little magic to add zero terminator to end of string\n\n\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = (0, _crc[\"default\"])(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n } else {\n s.status = HCRC_STATE;\n }\n }\n\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, strm.adler >> 8 & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n\n s.status = BUSY_STATE;\n }\n } else {\n s.status = BUSY_STATE;\n }\n } //#endif\n\n /* Flush as much pending output as possible */\n\n\n if (s.pending !== 0) {\n flush_pending(strm);\n\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n /* User must not provide more input after the first FINISH: */\n\n\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n /* Start a new block or continue the current one.\n */\n\n\n if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH && s.status !== FINISH_STATE) {\n var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : s.strategy === Z_RLE ? deflate_rle(s, flush) : configuration_table[s.level].func(s, flush);\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n trees._tr_align(s);\n } else if (flush !== Z_BLOCK) {\n /* FULL_FLUSH or SYNC_FLUSH */\n trees._tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n\n\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/\n\n /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n\n flush_pending(strm);\n\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR at next call, see above */\n\n return Z_OK;\n }\n }\n } //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n\n if (flush !== Z_FINISH) {\n return Z_OK;\n }\n\n if (s.wrap <= 0) {\n return Z_STREAM_END;\n }\n /* Write the trailer */\n\n\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, strm.adler >> 8 & 0xff);\n put_byte(s, strm.adler >> 16 & 0xff);\n put_byte(s, strm.adler >> 24 & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, strm.total_in >> 8 & 0xff);\n put_byte(s, strm.total_in >> 16 & 0xff);\n put_byte(s, strm.total_in >> 24 & 0xff);\n } else {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n\n if (s.wrap > 0) {\n s.wrap = -s.wrap;\n }\n /* write the trailer only once! */\n\n\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm\n /*== Z_NULL*/\n || !strm.state\n /*== Z_NULL*/\n ) {\n return Z_STREAM_ERROR;\n }\n\n status = strm.state.status;\n\n if (status !== INIT_STATE && status !== EXTRA_STATE && status !== NAME_STATE && status !== COMMENT_STATE && status !== HCRC_STATE && status !== BUSY_STATE && status !== FINISH_STATE) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\n\n\nfunction deflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n var s;\n var str, n;\n var wrap;\n var avail;\n var next;\n var input;\n var tmpDict;\n\n if (!strm\n /*== Z_NULL*/\n || !strm.state\n /*== Z_NULL*/\n ) {\n return Z_STREAM_ERROR;\n }\n\n s = strm.state;\n wrap = s.wrap;\n\n if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n\n\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = (0, _adler[\"default\"])(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0;\n /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n\n if (dictLength >= s.w_size) {\n if (wrap === 0) {\n /* already empty otherwise */\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n\n\n tmpDict = new utils.Buf8(s.w_size);\n utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n\n\n avail = strm.avail_in;\n next = strm.next_in;\n input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n\n while (s.lookahead >= MIN_MATCH) {\n str = s.strstart;\n n = s.lookahead - (MIN_MATCH - 1);\n\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n}\n\nvar deflateInfo = 'pako deflate (from Nodeca project)';\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n\nexports.deflateInfo = deflateInfo;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = inflate_fast;\n// See state defs from inflate.js\nvar BAD = 30;\n/* got a data error -- remain here until reset */\n\nvar TYPE = 12;\n/* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\n\nfunction inflate_fast(strm, start) {\n var state;\n\n var _in;\n /* local strm.input */\n\n\n var last;\n /* have enough input while in < last */\n\n var _out;\n /* local strm.output */\n\n\n var beg;\n /* inflate()'s initial strm.output */\n\n var end;\n /* while out < end, enough space available */\n //#ifdef INFLATE_STRICT\n\n var dmax;\n /* maximum distance from zlib header */\n //#endif\n\n var wsize;\n /* window size or zero if not using window */\n\n var whave;\n /* valid bytes in the window */\n\n var wnext;\n /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n\n var s_window;\n /* allocated sliding window, if wsize != 0 */\n\n var hold;\n /* local strm.hold */\n\n var bits;\n /* local strm.bits */\n\n var lcode;\n /* local strm.lencode */\n\n var dcode;\n /* local strm.distcode */\n\n var lmask;\n /* mask for first level of length codes */\n\n var dmask;\n /* mask for first level of distance codes */\n\n var here;\n /* retrieved table entry */\n\n var op;\n /* code bits, operation, extra bits, or */\n\n /* window position, window bytes to copy */\n\n var len;\n /* match length, unused bytes */\n\n var dist;\n /* match distance */\n\n var from;\n /* where to copy match from */\n\n var from_source;\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n\n state = strm.state; //here = state.here;\n\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257); //#ifdef INFLATE_STRICT\n\n dmax = state.dmax; //#endif\n\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top: do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen: for (;;) {\n // Goto emulation\n op = here >>> 24\n /*here.bits*/\n ;\n hold >>>= op;\n bits -= op;\n op = here >>> 16 & 0xff\n /*here.op*/\n ;\n\n if (op === 0) {\n /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff\n /*here.val*/\n ;\n } else if (op & 16) {\n /* length base */\n len = here & 0xffff\n /*here.val*/\n ;\n op &= 15;\n /* number of extra bits */\n\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n len += hold & (1 << op) - 1;\n hold >>>= op;\n bits -= op;\n } //Tracevv((stderr, \"inflate: length %u\\n\", len));\n\n\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = dcode[hold & dmask];\n\n dodist: for (;;) {\n // goto emulation\n op = here >>> 24\n /*here.bits*/\n ;\n hold >>>= op;\n bits -= op;\n op = here >>> 16 & 0xff\n /*here.op*/\n ;\n\n if (op & 16) {\n /* distance base */\n dist = here & 0xffff\n /*here.val*/\n ;\n op &= 15;\n /* number of extra bits */\n\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n\n dist += hold & (1 << op) - 1; //#ifdef INFLATE_STRICT\n\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n } //#endif\n\n\n hold >>>= op;\n bits -= op; //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n\n op = _out - beg;\n /* max distance in output */\n\n if (dist > op) {\n /* see if copy from window */\n op = dist - op;\n /* distance back in window */\n\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n } // (!) This block is disabled in zlib defailts,\n // don't enable it for binary compatibility\n //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n // if (len <= op - whave) {\n // do {\n // output[_out++] = 0;\n // } while (--len);\n // continue top;\n // }\n // len -= op - whave;\n // do {\n // output[_out++] = 0;\n // } while (--op > whave);\n // if (op === 0) {\n // from = _out - dist;\n // do {\n // output[_out++] = output[from++];\n // } while (--len);\n // continue top;\n // }\n //#endif\n\n }\n\n from = 0; // window index\n\n from_source = s_window;\n\n if (wnext === 0) {\n /* very common case */\n from += wsize - op;\n\n if (op < len) {\n /* some from window */\n len -= op;\n\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n\n from = _out - dist;\n /* rest from output */\n\n from_source = output;\n }\n } else if (wnext < op) {\n /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n\n if (op < len) {\n /* some from end of window */\n len -= op;\n\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n\n from = 0;\n\n if (wnext < len) {\n /* some from start of window */\n op = wnext;\n len -= op;\n\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n\n from = _out - dist;\n /* rest from output */\n\n from_source = output;\n }\n }\n } else {\n /* contiguous in window */\n from += wnext - op;\n\n if (op < len) {\n /* some from window */\n len -= op;\n\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n\n from = _out - dist;\n /* rest from output */\n\n from_source = output;\n }\n }\n\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n\n if (len) {\n output[_out++] = from_source[from++];\n\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n } else {\n from = _out - dist;\n /* copy direct from output */\n\n do {\n /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n\n if (len) {\n output[_out++] = output[from++];\n\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n } else if ((op & 64) === 0) {\n /* 2nd level distance code */\n here = dcode[(here & 0xffff\n /*here.val*/\n ) + (hold & (1 << op) - 1)];\n continue dodist;\n } else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } else if ((op & 64) === 0) {\n /* 2nd level length code */\n here = lcode[(here & 0xffff\n /*here.val*/\n ) + (hold & (1 << op) - 1)];\n continue dolen;\n } else if (op & 32) {\n /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n } else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n\n\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n /* update state and return */\n\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last);\n strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end);\n state.hold = hold;\n state.bits = bits;\n return;\n}\n\n;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Z_TREES = exports.Z_STREAM_ERROR = exports.Z_STREAM_END = exports.Z_OK = exports.Z_NEED_DICT = exports.Z_MEM_ERROR = exports.Z_FINISH = exports.Z_DEFLATED = exports.Z_DATA_ERROR = exports.Z_BUF_ERROR = exports.Z_BLOCK = void 0;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateInfo = void 0;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateSetDictionary = inflateSetDictionary;\n\nvar utils = _interopRequireWildcard(require(\"../utils/common.js\"));\n\nvar _adler = _interopRequireDefault(require(\"./adler32.js\"));\n\nvar _crc = _interopRequireDefault(require(\"./crc32.js\"));\n\nvar _inffast = _interopRequireDefault(require(\"./inffast.js\"));\n\nvar _inftrees = _interopRequireDefault(require(\"./inftrees.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n/* Public constants ==========================================================*/\n\n/* ===========================================================================*/\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//export const Z_NO_FLUSH = 0;\n//export const Z_PARTIAL_FLUSH = 1;\n//export const Z_SYNC_FLUSH = 2;\n//export const Z_FULL_FLUSH = 3;\n\nvar Z_FINISH = 4;\nexports.Z_FINISH = Z_FINISH;\nvar Z_BLOCK = 5;\nexports.Z_BLOCK = Z_BLOCK;\nvar Z_TREES = 6;\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n\nexports.Z_TREES = Z_TREES;\nvar Z_OK = 0;\nexports.Z_OK = Z_OK;\nvar Z_STREAM_END = 1;\nexports.Z_STREAM_END = Z_STREAM_END;\nvar Z_NEED_DICT = 2; //export const Z_ERRNO = -1;\n\nexports.Z_NEED_DICT = Z_NEED_DICT;\nvar Z_STREAM_ERROR = -2;\nexports.Z_STREAM_ERROR = Z_STREAM_ERROR;\nvar Z_DATA_ERROR = -3;\nexports.Z_DATA_ERROR = Z_DATA_ERROR;\nvar Z_MEM_ERROR = -4;\nexports.Z_MEM_ERROR = Z_MEM_ERROR;\nvar Z_BUF_ERROR = -5; //export const Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\n\nexports.Z_BUF_ERROR = Z_BUF_ERROR;\nvar Z_DEFLATED = 8;\n/* STATES ====================================================================*/\n\n/* ===========================================================================*/\n\nexports.Z_DEFLATED = Z_DEFLATED;\nvar HEAD = 1;\n/* i: waiting for magic header */\n\nvar FLAGS = 2;\n/* i: waiting for method and flags (gzip) */\n\nvar TIME = 3;\n/* i: waiting for modification time (gzip) */\n\nvar OS = 4;\n/* i: waiting for extra flags and operating system (gzip) */\n\nvar EXLEN = 5;\n/* i: waiting for extra length (gzip) */\n\nvar EXTRA = 6;\n/* i: waiting for extra bytes (gzip) */\n\nvar NAME = 7;\n/* i: waiting for end of file name (gzip) */\n\nvar COMMENT = 8;\n/* i: waiting for end of comment (gzip) */\n\nvar HCRC = 9;\n/* i: waiting for header crc (gzip) */\n\nvar DICTID = 10;\n/* i: waiting for dictionary check value */\n\nvar DICT = 11;\n/* waiting for inflateSetDictionary() call */\n\nvar TYPE = 12;\n/* i: waiting for type bits, including last-flag bit */\n\nvar TYPEDO = 13;\n/* i: same, but skip check to exit inflate on new block */\n\nvar STORED = 14;\n/* i: waiting for stored size (length and complement) */\n\nvar COPY_ = 15;\n/* i/o: same as COPY below, but only first time in */\n\nvar COPY = 16;\n/* i/o: waiting for input or output to copy stored block */\n\nvar TABLE = 17;\n/* i: waiting for dynamic block table lengths */\n\nvar LENLENS = 18;\n/* i: waiting for code length code lengths */\n\nvar CODELENS = 19;\n/* i: waiting for length/lit and distance code lengths */\n\nvar LEN_ = 20;\n/* i: same as LEN below, but only first time in */\n\nvar LEN = 21;\n/* i: waiting for length/lit/eob code */\n\nvar LENEXT = 22;\n/* i: waiting for length extra bits */\n\nvar DIST = 23;\n/* i: waiting for distance code */\n\nvar DISTEXT = 24;\n/* i: waiting for distance extra bits */\n\nvar MATCH = 25;\n/* o: waiting for output space to copy string */\n\nvar LIT = 26;\n/* o: waiting for output space to write literal */\n\nvar CHECK = 27;\n/* i: waiting for 32-bit check value */\n\nvar LENGTH = 28;\n/* i: waiting for 32-bit length (gzip) */\n\nvar DONE = 29;\n/* finished check, done -- remain here until reset */\n\nvar BAD = 30;\n/* got a data error -- remain here until reset */\n\nvar MEM = 31;\n/* got an inflate() memory error -- remain here until reset */\n\nvar SYNC = 32;\n/* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592; //var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\n\nvar DEF_WBITS = MAX_WBITS;\n\nfunction zswap32(q) {\n return (q >>> 24 & 0xff) + (q >>> 8 & 0xff00) + ((q & 0xff00) << 8) + ((q & 0xff) << 24);\n}\n\nfunction InflateState() {\n this.mode = 0;\n /* current inflate mode */\n\n this.last = false;\n /* true if processing last block */\n\n this.wrap = 0;\n /* bit 0 true for zlib, bit 1 true for gzip */\n\n this.havedict = false;\n /* true if dictionary provided */\n\n this.flags = 0;\n /* gzip header method and flags (0 if zlib) */\n\n this.dmax = 0;\n /* zlib header max distance (INFLATE_STRICT) */\n\n this.check = 0;\n /* protected copy of check value */\n\n this.total = 0;\n /* protected copy of output count */\n // TODO: may be {}\n\n this.head = null;\n /* where to save gzip header information */\n\n /* sliding window */\n\n this.wbits = 0;\n /* log base 2 of requested window size */\n\n this.wsize = 0;\n /* window size or zero if not using window */\n\n this.whave = 0;\n /* valid bytes in the window */\n\n this.wnext = 0;\n /* window write index */\n\n this.window = null;\n /* allocated sliding window, if needed */\n\n /* bit accumulator */\n\n this.hold = 0;\n /* input bit accumulator */\n\n this.bits = 0;\n /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n\n this.length = 0;\n /* literal or length of data to copy */\n\n this.offset = 0;\n /* distance back to copy string from */\n\n /* for table and code decoding */\n\n this.extra = 0;\n /* extra bits needed */\n\n /* fixed and dynamic code tables */\n\n this.lencode = null;\n /* starting table for length/literal codes */\n\n this.distcode = null;\n /* starting table for distance codes */\n\n this.lenbits = 0;\n /* index bits for lencode */\n\n this.distbits = 0;\n /* index bits for distcode */\n\n /* dynamic table building */\n\n this.ncode = 0;\n /* number of code length code lengths */\n\n this.nlen = 0;\n /* number of length code lengths */\n\n this.ndist = 0;\n /* number of distance code lengths */\n\n this.have = 0;\n /* number of code lengths in lens[] */\n\n this.next = null;\n /* next available space in codes[] */\n\n this.lens = new utils.Buf16(320);\n /* temporary storage for code lengths */\n\n this.work = new utils.Buf16(288);\n /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n\n this.lendyn = null;\n /* dynamic table for length/literal codes (JS specific) */\n\n this.distdyn = null;\n /* dynamic table for distance codes (JS specific) */\n\n this.sane = 0;\n /* if false, allow invalid distance too far */\n\n this.back = 0;\n /* bits back of last unprocessed length/lit */\n\n this.was = 0;\n /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = '';\n /*Z_NULL*/\n\n if (state.wrap) {\n /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null\n /*Z_NULL*/\n ;\n state.hold = 0;\n state.bits = 0; //state.lencode = state.distcode = state.next = state.codes;\n\n state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n state.sane = 1;\n state.back = -1; //Tracev((stderr, \"inflate: reset\\n\"));\n\n return Z_OK;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n /* get the state */\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n /* extract wrap request from windowBits parameter */\n\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n } else {\n wrap = (windowBits >> 4) + 1;\n\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n /* set number of window bits, free window if different */\n\n\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n /* update state and reset the rest of it */\n\n\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) {\n return Z_STREAM_ERROR;\n } //strm.msg = Z_NULL; /* in case we return an error */\n\n\n state = new InflateState(); //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n\n strm.state = state;\n state.window = null\n /*Z_NULL*/\n ;\n ret = inflateReset2(strm, windowBits);\n\n if (ret !== Z_OK) {\n strm.state = null\n /*Z_NULL*/\n ;\n }\n\n return ret;\n}\n\nfunction inflateInit(strm) {\n return inflateInit2(strm, DEF_WBITS);\n}\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\n\n\nvar virgin = true;\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n lenfix = new utils.Buf32(512);\n distfix = new utils.Buf32(32);\n /* literal/length table */\n\n sym = 0;\n\n while (sym < 144) {\n state.lens[sym++] = 8;\n }\n\n while (sym < 256) {\n state.lens[sym++] = 9;\n }\n\n while (sym < 280) {\n state.lens[sym++] = 7;\n }\n\n while (sym < 288) {\n state.lens[sym++] = 8;\n }\n\n (0, _inftrees[\"default\"])(LENS, state.lens, 0, 288, lenfix, 0, state.work, {\n bits: 9\n });\n /* distance table */\n\n sym = 0;\n\n while (sym < 32) {\n state.lens[sym++] = 5;\n }\n\n (0, _inftrees[\"default\"])(DISTS, state.lens, 0, 32, distfix, 0, state.work, {\n bits: 5\n });\n /* do this just once */\n\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\n\n\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n /* if it hasn't been done already, allocate space for the window */\n\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n state.window = new utils.Buf8(state.wsize);\n }\n /* copy state->wsize or less output bytes into the circular window */\n\n\n if (copy >= state.wsize) {\n utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n } else {\n dist = state.wsize - state.wnext;\n\n if (dist > copy) {\n dist = copy;\n } //zmemcpy(state->window + state->wnext, end - copy, dist);\n\n\n utils.arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n utils.arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n } else {\n state.wnext += dist;\n\n if (state.wnext === state.wsize) {\n state.wnext = 0;\n }\n\n if (state.whave < state.wsize) {\n state.whave += dist;\n }\n }\n }\n\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n\n var next;\n /* next input INDEX */\n\n var put;\n /* next output INDEX */\n\n var have, left;\n /* available input and output */\n\n var hold;\n /* bit buffer */\n\n var bits;\n /* bits in bit buffer */\n\n var _in, _out;\n /* save starting available input and output */\n\n\n var copy;\n /* number of stored or match bytes to copy */\n\n var from;\n /* where to copy match bytes from */\n\n var from_source;\n var here = 0;\n /* current decoding table entry */\n\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n\n var len;\n /* length to copy for repeats, bits to drop */\n\n var ret;\n /* return code */\n\n var hbuf = new utils.Buf8(4);\n /* buffer for gzip header crc calculation */\n\n var opts;\n var n; // temporary var for NEED_BITS\n\n var order =\n /* permutation of code lengths */\n [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n\n if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n\n if (state.mode === TYPE) {\n state.mode = TYPEDO;\n }\n /* skip check */\n //--- LOAD() ---\n\n\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits; //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n } //=== NEEDBITS(16);\n\n\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (state.wrap & 2 && hold === 0x8b1f) {\n /* gzip header */\n state.check = 0\n /*crc32(0L, Z_NULL, 0)*/\n ; //=== CRC2(state.check, hold);\n\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = (0, _crc[\"default\"])(state.check, hbuf, 2, 0); //===//\n //=== INITBITS();\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = FLAGS;\n break;\n }\n\n state.flags = 0;\n /* expect zlib header */\n\n if (state.head) {\n state.head.done = false;\n }\n\n if (!(state.wrap & 1) ||\n /* check if zlib header allowed */\n (((hold & 0xff\n /*BITS(8)*/\n ) << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n\n if ((hold & 0x0f\n /*BITS(4)*/\n ) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n } //--- DROPBITS(4) ---//\n\n\n hold >>>= 4;\n bits -= 4; //---//\n\n len = (hold & 0x0f\n /*BITS(4)*/\n ) + 8;\n\n if (state.wbits === 0) {\n state.wbits = len;\n } else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n state.dmax = 1 << len; //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n\n strm.adler = state.check = 1\n /*adler32(0L, Z_NULL, 0)*/\n ;\n state.mode = hold & 0x200 ? DICTID : TYPE; //=== INITBITS();\n\n hold = 0;\n bits = 0; //===//\n\n break;\n\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.flags = hold;\n\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n\n if (state.head) {\n state.head.text = hold >> 8 & 1;\n }\n\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = (0, _crc[\"default\"])(state.check, hbuf, 2, 0); //===//\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = TIME;\n\n /* falls through */\n\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (state.head) {\n state.head.time = hold;\n }\n\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n hbuf[2] = hold >>> 16 & 0xff;\n hbuf[3] = hold >>> 24 & 0xff;\n state.check = (0, _crc[\"default\"])(state.check, hbuf, 4, 0); //===\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = OS;\n\n /* falls through */\n\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (state.head) {\n state.head.xflags = hold & 0xff;\n state.head.os = hold >> 8;\n }\n\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = (0, _crc[\"default\"])(state.check, hbuf, 2, 0); //===//\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = EXLEN;\n\n /* falls through */\n\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.length = hold;\n\n if (state.head) {\n state.head.extra_len = hold;\n }\n\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = (0, _crc[\"default\"])(state.check, hbuf, 2, 0); //===//\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n } else if (state.head) {\n state.head.extra = null\n /*Z_NULL*/\n ;\n }\n\n state.mode = EXTRA;\n\n /* falls through */\n\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n\n if (copy > have) {\n copy = have;\n }\n\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n\n if (!state.head.extra) {\n // Use untyped array for more conveniend processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n\n utils.arraySet(state.head.extra, input, next, // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len); //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n\n if (state.flags & 0x0200) {\n state.check = (0, _crc[\"default\"])(state.check, input, copy, next);\n }\n\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n\n if (state.length) {\n break inf_leave;\n }\n }\n\n state.length = 0;\n state.mode = NAME;\n\n /* falls through */\n\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) {\n break inf_leave;\n }\n\n copy = 0;\n\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n\n if (state.head && len && state.length < 65536\n /*state.head.name_max*/\n ) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = (0, _crc[\"default\"])(state.check, input, copy, next);\n }\n\n have -= copy;\n next += copy;\n\n if (len) {\n break inf_leave;\n }\n } else if (state.head) {\n state.head.name = null;\n }\n\n state.length = 0;\n state.mode = COMMENT;\n\n /* falls through */\n\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) {\n break inf_leave;\n }\n\n copy = 0;\n\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n\n if (state.head && len && state.length < 65536\n /*state.head.comm_max*/\n ) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = (0, _crc[\"default\"])(state.check, input, copy, next);\n }\n\n have -= copy;\n next += copy;\n\n if (len) {\n break inf_leave;\n }\n } else if (state.head) {\n state.head.comment = null;\n }\n\n state.mode = HCRC;\n\n /* falls through */\n\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n }\n\n if (state.head) {\n state.head.hcrc = state.flags >> 9 & 1;\n state.head.done = true;\n }\n\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n strm.adler = state.check = zswap32(hold); //=== INITBITS();\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = DICT;\n\n /* falls through */\n\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits; //---\n\n return Z_NEED_DICT;\n }\n\n strm.adler = state.check = 1\n /*adler32(0L, Z_NULL, 0)*/\n ;\n state.mode = TYPE;\n\n /* falls through */\n\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) {\n break inf_leave;\n }\n\n /* falls through */\n\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7; //---//\n\n state.mode = CHECK;\n break;\n } //=== NEEDBITS(3); */\n\n\n while (bits < 3) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.last = hold & 0x01\n /*BITS(1)*/\n ; //--- DROPBITS(1) ---//\n\n hold >>>= 1;\n bits -= 1; //---//\n\n switch (hold & 0x03\n /*BITS(2)*/\n ) {\n case 0:\n /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n\n case 1:\n /* fixed block */\n fixedtables(state); //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n\n state.mode = LEN_;\n /* decode codes */\n\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2; //---//\n\n break inf_leave;\n }\n\n break;\n\n case 2:\n /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n } //--- DROPBITS(2) ---//\n\n\n hold >>>= 2;\n bits -= 2; //---//\n\n break;\n\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7; //---//\n //=== NEEDBITS(32); */\n\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if ((hold & 0xffff) !== (hold >>> 16 ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n\n state.length = hold & 0xffff; //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = COPY_;\n\n if (flush === Z_TREES) {\n break inf_leave;\n }\n\n /* falls through */\n\n case COPY_:\n state.mode = COPY;\n\n /* falls through */\n\n case COPY:\n copy = state.length;\n\n if (copy) {\n if (copy > have) {\n copy = have;\n }\n\n if (copy > left) {\n copy = left;\n }\n\n if (copy === 0) {\n break inf_leave;\n } //--- zmemcpy(put, next, copy); ---\n\n\n utils.arraySet(output, input, next, copy, put); //---//\n\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n } //Tracev((stderr, \"inflate: stored end\\n\"));\n\n\n state.mode = TYPE;\n break;\n\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.nlen = (hold & 0x1f\n /*BITS(5)*/\n ) + 257; //--- DROPBITS(5) ---//\n\n hold >>>= 5;\n bits -= 5; //---//\n\n state.ndist = (hold & 0x1f\n /*BITS(5)*/\n ) + 1; //--- DROPBITS(5) ---//\n\n hold >>>= 5;\n bits -= 5; //---//\n\n state.ncode = (hold & 0x0f\n /*BITS(4)*/\n ) + 4; //--- DROPBITS(4) ---//\n\n hold >>>= 4;\n bits -= 4; //---//\n //#ifndef PKZIP_BUG_WORKAROUND\n\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n } //#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n\n\n state.have = 0;\n state.mode = LENLENS;\n\n /* falls through */\n\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.lens[order[state.have++]] = hold & 0x07; //BITS(3);\n //--- DROPBITS(3) ---//\n\n hold >>>= 3;\n bits -= 3; //---//\n }\n\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n } // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n\n\n state.lencode = state.lendyn;\n state.lenbits = 7;\n opts = {\n bits: state.lenbits\n };\n ret = (0, _inftrees[\"default\"])(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n } //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n\n\n state.have = 0;\n state.mode = CODELENS;\n\n /* falls through */\n\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & (1 << state.lenbits) - 1];\n /*BITS(state.lenbits)*/\n\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n }\n\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n state.lens[state.have++] = here_val;\n } else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03); //BITS(2);\n //--- DROPBITS(2) ---//\n\n hold >>>= 2;\n bits -= 2; //---//\n } else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n len = 0;\n copy = 3 + (hold & 0x07); //BITS(3);\n //--- DROPBITS(3) ---//\n\n hold >>>= 3;\n bits -= 3; //---//\n } else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n len = 0;\n copy = 11 + (hold & 0x7f); //BITS(7);\n //--- DROPBITS(7) ---//\n\n hold >>>= 7;\n bits -= 7; //---//\n }\n\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n /* handle error breaks in while */\n\n\n if (state.mode === BAD) {\n break;\n }\n /* check for end-of-block code (better have one) */\n\n\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n\n\n state.lenbits = 9;\n opts = {\n bits: state.lenbits\n };\n ret = (0, _inftrees[\"default\"])(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n\n state.lenbits = opts.bits; // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6; //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n\n state.distcode = state.distdyn;\n opts = {\n bits: state.distbits\n };\n ret = (0, _inftrees[\"default\"])(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n\n state.distbits = opts.bits; // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n } //Tracev((stderr, 'inflate: codes ok\\n'));\n\n\n state.mode = LEN_;\n\n if (flush === Z_TREES) {\n break inf_leave;\n }\n\n /* falls through */\n\n case LEN_:\n state.mode = LEN;\n\n /* falls through */\n\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits; //---\n\n (0, _inffast[\"default\"])(strm, _out); //--- LOAD() ---\n\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits; //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n\n break;\n }\n\n state.back = 0;\n\n for (;;) {\n here = state.lencode[hold & (1 << state.lenbits) - 1];\n /*BITS(state.lenbits)*/\n\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n }\n\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n\n for (;;) {\n here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1\n /*BITS(last.bits + last.op)*/\n ) >> last_bits)];\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (last_bits + here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n } //--- DROPBITS(last.bits) ---//\n\n\n hold >>>= last_bits;\n bits -= last_bits; //---//\n\n state.back += last_bits;\n } //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n state.back += here_bits;\n state.length = here_val;\n\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n\n state.extra = here_op & 15;\n state.mode = LENEXT;\n\n /* falls through */\n\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.length += hold & (1 << state.extra) - 1\n /*BITS(state.extra)*/\n ; //--- DROPBITS(state.extra) ---//\n\n hold >>>= state.extra;\n bits -= state.extra; //---//\n\n state.back += state.extra;\n } //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n\n\n state.was = state.length;\n state.mode = DIST;\n\n /* falls through */\n\n case DIST:\n for (;;) {\n here = state.distcode[hold & (1 << state.distbits) - 1];\n /*BITS(state.distbits)*/\n\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n }\n\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n\n for (;;) {\n here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1\n /*BITS(last.bits + last.op)*/\n ) >> last_bits)];\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (last_bits + here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n } //--- DROPBITS(last.bits) ---//\n\n\n hold >>>= last_bits;\n bits -= last_bits; //---//\n\n state.back += last_bits;\n } //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n state.back += here_bits;\n\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n\n state.offset = here_val;\n state.extra = here_op & 15;\n state.mode = DISTEXT;\n\n /* falls through */\n\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.offset += hold & (1 << state.extra) - 1\n /*BITS(state.extra)*/\n ; //--- DROPBITS(state.extra) ---//\n\n hold >>>= state.extra;\n bits -= state.extra; //---//\n\n state.back += state.extra;\n } //#ifdef INFLATE_STRICT\n\n\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n } //#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n\n\n state.mode = MATCH;\n\n /* falls through */\n\n case MATCH:\n if (left === 0) {\n break inf_leave;\n }\n\n copy = _out - left;\n\n if (state.offset > copy) {\n /* copy from window */\n copy = state.offset - copy;\n\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n } // (!) This block is disabled in zlib defailts,\n // don't enable it for binary compatibility\n //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n // Trace((stderr, \"inflate.c too far\\n\"));\n // copy -= state.whave;\n // if (copy > state.length) { copy = state.length; }\n // if (copy > left) { copy = left; }\n // left -= copy;\n // state.length -= copy;\n // do {\n // output[put++] = 0;\n // } while (--copy);\n // if (state.length === 0) { state.mode = LEN; }\n // break;\n //#endif\n\n }\n\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n } else {\n from = state.wnext - copy;\n }\n\n if (copy > state.length) {\n copy = state.length;\n }\n\n from_source = state.window;\n } else {\n /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n\n if (copy > left) {\n copy = left;\n }\n\n left -= copy;\n state.length -= copy;\n\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n\n if (state.length === 0) {\n state.mode = LEN;\n }\n\n break;\n\n case LIT:\n if (left === 0) {\n break inf_leave;\n }\n\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--; // Use '|' insdead of '+' to make sure that result is signed\n\n hold |= input[next++] << bits;\n bits += 8;\n } //===//\n\n\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n state.flags ? (0, _crc[\"default\"])(state.check, output, _out, put - _out) : (0, _adler[\"default\"])(state.check, output, _out, put - _out);\n }\n\n _out = left; // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n\n state.mode = LENGTH;\n\n /* falls through */\n\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n\n state.mode = DONE;\n\n /* falls through */\n\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n\n case MEM:\n return Z_MEM_ERROR;\n\n case SYNC:\n /* falls through */\n\n default:\n return Z_STREAM_ERROR;\n }\n } // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n //--- RESTORE() ---\n\n\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits; //---\n\n if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH)) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n\n if (state.wrap && _out) {\n strm.adler = state.check =\n /*UPDATE(state.check, strm.next_out - _out, _out);*/\n state.flags ? (0, _crc[\"default\"])(state.check, output, _out, strm.next_out - _out) : (0, _adler[\"default\"])(state.check, output, _out, strm.next_out - _out);\n }\n\n strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n\n if ((_in === 0 && _out === 0 || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n\n return ret;\n}\n\nfunction inflateEnd(strm) {\n if (!strm || !strm.state\n /*|| strm->zfree == (free_func)0*/\n ) {\n return Z_STREAM_ERROR;\n }\n\n var state = strm.state;\n\n if (state.window) {\n state.window = null;\n }\n\n strm.state = null;\n return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n /* check state */\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n\n if ((state.wrap & 2) === 0) {\n return Z_STREAM_ERROR;\n }\n /* save header structure */\n\n\n state.head = head;\n head.done = false;\n return Z_OK;\n}\n\nfunction inflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n var state;\n var dictid;\n var ret;\n /* check state */\n\n if (!strm\n /* == Z_NULL */\n || !strm.state\n /* == Z_NULL */\n ) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n /* check for correct dictionary identifier */\n\n\n if (state.mode === DICT) {\n dictid = 1;\n /* adler32(0, null, 0)*/\n\n /* dictid = adler32(dictid, dictionary, dictLength); */\n\n dictid = (0, _adler[\"default\"])(dictid, dictionary, dictLength, 0);\n\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n\n\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n\n state.havedict = 1; // Tracev((stderr, \"inflate: dictionary set\\n\"));\n\n return Z_OK;\n}\n\nvar inflateInfo = 'pako inflate (from Nodeca project)';\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n\nexports.inflateInfo = inflateInfo;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = inflate_table;\n\nvar utils = _interopRequireWildcard(require(\"../utils/common.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592; //var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\nvar lbase = [\n/* Length codes 257..285 base */\n3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0];\nvar lext = [\n/* Length codes 257..285 extra */\n16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78];\nvar dbase = [\n/* Distance codes 0..29 base */\n1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0];\nvar dext = [\n/* Distance codes 0..29 extra */\n16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64];\n\nfunction inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) {\n var bits = opts.bits; //here = opts.here; /* table entry for duplication */\n\n var len = 0;\n /* a code's length in bits */\n\n var sym = 0;\n /* index of code symbols */\n\n var min = 0,\n max = 0;\n /* minimum and maximum code lengths */\n\n var root = 0;\n /* number of index bits for root table */\n\n var curr = 0;\n /* number of index bits for current table */\n\n var drop = 0;\n /* code bits to drop for sub-table */\n\n var left = 0;\n /* number of prefix codes available */\n\n var used = 0;\n /* code entries in table used */\n\n var huff = 0;\n /* Huffman code */\n\n var incr;\n /* for incrementing code, index */\n\n var fill;\n /* index for replicating entries */\n\n var low;\n /* low bits for current root entry */\n\n var mask;\n /* mask for low root bits */\n\n var next;\n /* next available space in table */\n\n var base = null;\n /* base value table to use */\n\n var base_index = 0; // var shoextra; /* extra bits table to use */\n\n var end;\n /* use base and extra for symbol > end */\n\n var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n\n var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n\n var extra = null;\n var extra_index = 0;\n var here_bits, here_op, here_val;\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n /* bound code lengths, force root to be within code lengths */\n\n\n root = bits;\n\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) {\n break;\n }\n }\n\n if (root > max) {\n root = max;\n }\n\n if (max === 0) {\n /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = 1 << 24 | 64 << 16 | 0; //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n\n table[table_index++] = 1 << 24 | 64 << 16 | 0;\n opts.bits = 1;\n return 0;\n /* no symbols, but wait for decoding to report error */\n }\n\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) {\n break;\n }\n }\n\n if (root < min) {\n root = min;\n }\n /* check for an over-subscribed or incomplete set of lengths */\n\n\n left = 1;\n\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n\n if (left < 0) {\n return -1;\n }\n /* over-subscribed */\n\n }\n\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1;\n /* incomplete set */\n }\n /* generate offsets into symbol table for each length for sorting */\n\n\n offs[1] = 0;\n\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n /* sort symbols by length, by symbol order within each length */\n\n\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n\n\n if (type === CODES) {\n base = extra = work;\n /* dummy value--not used */\n\n end = 19;\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n } else {\n /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n /* initialize opts for loop */\n\n\n huff = 0;\n /* starting code */\n\n sym = 0;\n /* starting code symbol */\n\n len = min;\n /* starting code length */\n\n next = table_index;\n /* current table to fill in */\n\n curr = root;\n /* current table index bits */\n\n drop = 0;\n /* current bits to drop from code for index */\n\n low = -1;\n /* trigger new sub-table when len > root */\n\n used = 1 << root;\n /* use root table entries */\n\n mask = used - 1;\n /* mask for comparing low */\n\n /* check available table space */\n\n if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) {\n return 1;\n }\n /* process all codes and make table entries */\n\n\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n } else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n } else {\n here_op = 32 + 64;\n /* end of block */\n\n here_val = 0;\n }\n /* replicate for those indices with low len bits equal to huff */\n\n\n incr = 1 << len - drop;\n fill = 1 << curr;\n min = fill;\n /* save offset to next table */\n\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0;\n } while (fill !== 0);\n /* backwards increment the len-bit code huff */\n\n\n incr = 1 << len - 1;\n\n while (huff & incr) {\n incr >>= 1;\n }\n\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n /* go to next symbol, update count, len */\n\n\n sym++;\n\n if (--count[len] === 0) {\n if (len === max) {\n break;\n }\n\n len = lens[lens_index + work[sym]];\n }\n /* create new sub-table if needed */\n\n\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n /* increment past last table */\n\n\n next += min;\n /* here min is 1 << curr */\n\n /* determine length of next table */\n\n curr = len - drop;\n left = 1 << curr;\n\n while (curr + drop < max) {\n left -= count[curr + drop];\n\n if (left <= 0) {\n break;\n }\n\n curr++;\n left <<= 1;\n }\n /* check for enough space */\n\n\n used += 1 << curr;\n\n if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) {\n return 1;\n }\n /* point entry in root table to sub-table */\n\n\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n\n table[low] = root << 24 | curr << 16 | next - table_index | 0;\n }\n }\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n\n\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = len - drop << 24 | 64 << 16 | 0;\n }\n /* set return parameters */\n //opts.table_index += used;\n\n\n opts.bits = root;\n return 0;\n}\n\n;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _default = {\n 2: 'need dictionary',\n\n /* Z_NEED_DICT 2 */\n 1: 'stream end',\n\n /* Z_STREAM_END 1 */\n 0: '',\n\n /* Z_OK 0 */\n '-1': 'file error',\n\n /* Z_ERRNO (-1) */\n '-2': 'stream error',\n\n /* Z_STREAM_ERROR (-2) */\n '-3': 'data error',\n\n /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory',\n\n /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error',\n\n /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version'\n /* Z_VERSION_ERROR (-6) */\n\n};\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports._tr_align = _tr_align;\nexports._tr_flush_block = _tr_flush_block;\nexports._tr_init = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_tally = _tr_tally;\n\nvar utils = _interopRequireWildcard(require(\"../utils/common.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n/* Public constants ==========================================================*/\n\n/* ===========================================================================*/\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED = 4; //var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n\nvar Z_BINARY = 0;\nvar Z_TEXT = 1; //var Z_ASCII = 1; // = Z_TEXT\n\nvar Z_UNKNOWN = 2;\n/*============================================================================*/\n\nfunction zero(buf) {\n var len = buf.length;\n\n while (--len >= 0) {\n buf[len] = 0;\n }\n} // From zutil.h\n\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n// From deflate.h\n\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\n\nvar extra_lbits =\n/* extra bits for each length code */\n[0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0];\nvar extra_dbits =\n/* extra bits for each distance code */\n[0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13];\nvar extra_blbits =\n/* extra bits for each bit length code */\n[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7];\nvar bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512;\n/* see definition of array dist_code below */\n// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1\n\nvar static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\n\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\n\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n this.static_tree = static_tree;\n /* static tree or NULL */\n\n this.extra_bits = extra_bits;\n /* extra bits for each code or NULL */\n\n this.extra_base = extra_base;\n /* base index for extra_bits */\n\n this.elems = elems;\n /* max number of elements in the tree */\n\n this.max_length = max_length;\n /* max bit length for the codes */\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n\n this.has_stree = static_tree && static_tree.length;\n}\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree;\n /* the dynamic tree */\n\n this.max_code = 0;\n /* largest code with non zero frequency */\n\n this.stat_desc = stat_desc;\n /* the corresponding static tree */\n}\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\n\n\nfunction put_short(s, w) {\n // put_byte(s, (uch)((w) & 0xff));\n // put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = w & 0xff;\n s.pending_buf[s.pending++] = w >>> 8 & 0xff;\n}\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\n\n\nfunction send_bits(s, value, length) {\n if (s.bi_valid > Buf_size - length) {\n s.bi_buf |= value << s.bi_valid & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> Buf_size - s.bi_valid;\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= value << s.bi_valid & 0xffff;\n s.bi_valid += length;\n }\n}\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2]\n /*.Code*/\n , tree[c * 2 + 1]\n /*.Len*/\n );\n}\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\n\n\nfunction bi_reverse(code, len) {\n var res = 0;\n\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n\n return res >>> 1;\n}\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\n\n\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\n\n\nfunction gen_bitlen(s, desc) // deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h;\n /* heap index */\n\n var n, m;\n /* iterate over the tree elements */\n\n var bits;\n /* bit length */\n\n var xbits;\n /* extra bits */\n\n var f;\n /* frequency */\n\n var overflow = 0;\n /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n\n\n tree[s.heap[s.heap_max] * 2 + 1]\n /*.Len*/\n = 0;\n /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]\n /*.Dad*/\n * 2 + 1]\n /*.Len*/\n + 1;\n\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n\n tree[n * 2 + 1]\n /*.Len*/\n = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) {\n continue;\n }\n /* not a leaf node */\n\n\n s.bl_count[bits]++;\n xbits = 0;\n\n if (n >= base) {\n xbits = extra[n - base];\n }\n\n f = tree[n * 2]\n /*.Freq*/\n ;\n s.opt_len += f * (bits + xbits);\n\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]\n /*.Len*/\n + xbits);\n }\n }\n\n if (overflow === 0) {\n return;\n } // Trace((stderr,\"\\nbit length overflow\\n\"));\n\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n\n\n do {\n bits = max_length - 1;\n\n while (s.bl_count[bits] === 0) {\n bits--;\n }\n\n s.bl_count[bits]--;\n /* move one leaf down the tree */\n\n s.bl_count[bits + 1] += 2;\n /* move one overflow item as its brother */\n\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n\n overflow -= 2;\n } while (overflow > 0);\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n\n\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n\n while (n !== 0) {\n m = s.heap[--h];\n\n if (m > max_code) {\n continue;\n }\n\n if (tree[m * 2 + 1]\n /*.Len*/\n !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]\n /*.Len*/\n ) * tree[m * 2]\n /*.Freq*/\n ;\n tree[m * 2 + 1]\n /*.Len*/\n = bits;\n }\n\n n--;\n }\n }\n}\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\n\n\nfunction gen_codes(tree, max_code, bl_count) // ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS + 1);\n /* next code value for each bit length */\n\n var code = 0;\n /* running code value */\n\n var bits;\n /* bit index */\n\n var n;\n /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = code + bl_count[bits - 1] << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n\n length = 0;\n\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n\n for (n = 0; n < 1 << extra_lbits[code]; n++) {\n _length_code[length++] = code;\n }\n } //Assert (length == 256, \"tr_static_init: length != 256\");\n\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n\n\n _length_code[length - 1] = code;\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n\n dist = 0;\n\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n\n for (n = 0; n < 1 << extra_dbits[code]; n++) {\n _dist_code[dist++] = code;\n }\n } //Assert (dist == 256, \"tr_static_init: dist != 256\");\n\n\n dist >>= 7;\n /* from now on, all distances are divided by 128 */\n\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n\n for (n = 0; n < 1 << extra_dbits[code] - 7; n++) {\n _dist_code[256 + dist++] = code;\n }\n } //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n\n while (n <= 143) {\n static_ltree[n * 2 + 1]\n /*.Len*/\n = 8;\n n++;\n bl_count[8]++;\n }\n\n while (n <= 255) {\n static_ltree[n * 2 + 1]\n /*.Len*/\n = 9;\n n++;\n bl_count[9]++;\n }\n\n while (n <= 279) {\n static_ltree[n * 2 + 1]\n /*.Len*/\n = 7;\n n++;\n bl_count[7]++;\n }\n\n while (n <= 287) {\n static_ltree[n * 2 + 1]\n /*.Len*/\n = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n\n\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n /* The static distance tree is trivial: */\n\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]\n /*.Len*/\n = 5;\n static_dtree[n * 2]\n /*.Code*/\n = bi_reverse(n, 5);\n } // Now data ready and we can init static trees\n\n\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); //static_init_done = true;\n}\n/* ===========================================================================\n * Initialize a new block.\n */\n\n\nfunction init_block(s) {\n var n;\n /* iterates over tree elements */\n\n /* Initialize the trees. */\n\n for (n = 0; n < L_CODES; n++) {\n s.dyn_ltree[n * 2]\n /*.Freq*/\n = 0;\n }\n\n for (n = 0; n < D_CODES; n++) {\n s.dyn_dtree[n * 2]\n /*.Freq*/\n = 0;\n }\n\n for (n = 0; n < BL_CODES; n++) {\n s.bl_tree[n * 2]\n /*.Freq*/\n = 0;\n }\n\n s.dyn_ltree[END_BLOCK * 2]\n /*.Freq*/\n = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\n\n\nfunction bi_windup(s) {\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\n\n\nfunction copy_block(s, buf, len, header) //DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s);\n /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n } // while (len--) {\n // put_byte(s, *buf++);\n // }\n\n\n utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\n\n\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n\n var _m2 = m * 2;\n\n return tree[_n2]\n /*.Freq*/\n < tree[_m2]\n /*.Freq*/\n || tree[_n2]\n /*.Freq*/\n === tree[_m2]\n /*.Freq*/\n && depth[n] <= depth[m];\n}\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\n\n\nfunction pqdownheap(s, tree, k) // deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1;\n /* left son of k */\n\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n\n\n if (smaller(tree, v, s.heap[j], s.depth)) {\n break;\n }\n /* Exchange v with the smallest son */\n\n\n s.heap[k] = s.heap[j];\n k = j;\n /* And continue down the tree, setting j to the left son of k */\n\n j <<= 1;\n }\n\n s.heap[k] = v;\n} // inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\n\n\nfunction compress_block(s, ltree, dtree) // deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist;\n /* distance of matched string */\n\n var lc;\n /* match length or unmatched char (if dist == 0) */\n\n var lx = 0;\n /* running index in l_buf */\n\n var code;\n /* the code to send */\n\n var extra;\n /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1];\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree);\n /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree);\n /* send the length code */\n\n extra = extra_lbits[code];\n\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra);\n /* send the extra length bits */\n }\n\n dist--;\n /* dist is now the match distance - 1 */\n\n code = d_code(dist); //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree);\n /* send the distance code */\n\n extra = extra_dbits[code];\n\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra);\n /* send the extra distance bits */\n }\n }\n /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\n\n\nfunction build_tree(s, desc) // deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m;\n /* iterate over heap elements */\n\n var max_code = -1;\n /* largest code with non zero frequency */\n\n var node;\n /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]\n /*.Freq*/\n !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n } else {\n tree[n * 2 + 1]\n /*.Len*/\n = 0;\n }\n }\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n\n\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0;\n tree[node * 2]\n /*.Freq*/\n = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]\n /*.Len*/\n ;\n }\n /* node is 0 or 1 so it does not have extra bits */\n\n }\n\n desc.max_code = max_code;\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n\n for (n = s.heap_len >> 1\n /*int /2*/\n ; n >= 1; n--) {\n pqdownheap(s, tree, n);\n }\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n\n\n node = elems;\n /* next internal node of the tree */\n\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n\n /*** pqremove ***/\n n = s.heap[1\n /*SMALLEST*/\n ];\n s.heap[1\n /*SMALLEST*/\n ] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1\n /*SMALLEST*/\n );\n /***/\n\n m = s.heap[1\n /*SMALLEST*/\n ];\n /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n;\n /* keep the nodes sorted by frequency */\n\n s.heap[--s.heap_max] = m;\n /* Create a new node father of n and m */\n\n tree[node * 2]\n /*.Freq*/\n = tree[n * 2]\n /*.Freq*/\n + tree[m * 2]\n /*.Freq*/\n ;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]\n /*.Dad*/\n = tree[m * 2 + 1]\n /*.Dad*/\n = node;\n /* and insert the new node in the heap */\n\n s.heap[1\n /*SMALLEST*/\n ] = node++;\n pqdownheap(s, tree, 1\n /*SMALLEST*/\n );\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1\n /*SMALLEST*/\n ];\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n\n gen_bitlen(s, desc);\n /* The field len is now set, we can generate the bit codes */\n\n gen_codes(tree, max_code, s.bl_count);\n}\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\n\n\nfunction scan_tree(s, tree, max_code) // deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n;\n /* iterates over all tree elements */\n\n var prevlen = -1;\n /* last emitted length */\n\n var curlen;\n /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]\n /*.Len*/\n ;\n /* length of next code */\n\n var count = 0;\n /* repeat count of the current code */\n\n var max_count = 7;\n /* max repeat count */\n\n var min_count = 4;\n /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n tree[(max_code + 1) * 2 + 1]\n /*.Len*/\n = 0xffff;\n /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]\n /*.Len*/\n ;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]\n /*.Freq*/\n += count;\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n s.bl_tree[curlen * 2] /*.Freq*/++;\n }\n\n s.bl_tree[REP_3_6 * 2] /*.Freq*/++;\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2] /*.Freq*/++;\n } else {\n s.bl_tree[REPZ_11_138 * 2] /*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\n\n\nfunction send_tree(s, tree, max_code) // deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n;\n /* iterates over all tree elements */\n\n var prevlen = -1;\n /* last emitted length */\n\n var curlen;\n /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]\n /*.Len*/\n ;\n /* length of next code */\n\n var count = 0;\n /* repeat count of the current code */\n\n var max_count = 7;\n /* max repeat count */\n\n var min_count = 4;\n /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */\n\n /* guard already set */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]\n /*.Len*/\n ;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n } else if (count < min_count) {\n do {\n send_code(s, curlen, s.bl_tree);\n } while (--count !== 0);\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n } //Assert(count >= 3 && count <= 6, \" 3_6?\");\n\n\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\n\n\nfunction build_bl_tree(s) {\n var max_blindex;\n /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n /* Build the bit length tree: */\n\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]\n /*.Len*/\n !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n\n\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\n\n\nfunction send_all_trees(s, lcodes, dcodes, blcodes) // deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank;\n /* index in bl_order */\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n\n send_bits(s, lcodes - 257, 5);\n /* not +255 as stated in appnote.txt */\n\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4);\n /* not -3 as stated in appnote.txt */\n\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]\n /*.Len*/\n , 3);\n } //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n\n send_tree(s, s.dyn_ltree, lcodes - 1);\n /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1);\n /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\n\n\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n /* Check for non-textual (\"black-listed\") bytes. */\n\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if (black_mask & 1 && s.dyn_ltree[n * 2]\n /*.Freq*/\n !== 0) {\n return Z_BINARY;\n }\n }\n /* Check for textual (\"white-listed\") bytes. */\n\n\n if (s.dyn_ltree[9 * 2]\n /*.Freq*/\n !== 0 || s.dyn_ltree[10 * 2]\n /*.Freq*/\n !== 0 || s.dyn_ltree[13 * 2]\n /*.Freq*/\n !== 0) {\n return Z_TEXT;\n }\n\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]\n /*.Freq*/\n !== 0) {\n return Z_TEXT;\n }\n }\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n\n\n return Z_BINARY;\n}\n\nvar static_init_done = false;\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\n\nfunction _tr_init(s) {\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n s.bi_buf = 0;\n s.bi_valid = 0;\n /* Initialize the first block of the first file: */\n\n init_block(s);\n}\n/* ===========================================================================\n * Send a stored block\n */\n\n\nfunction _tr_stored_block(s, buf, stored_len, last) //DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);\n /* send block type */\n\n copy_block(s, buf, stored_len, true);\n /* with header */\n}\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\n\n\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\n\n\nfunction _tr_flush_block(s, buf, stored_len, last) //DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb;\n /* opt_len and static_len in bytes */\n\n var max_blindex = 0;\n /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n\n if (s.level > 0) {\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n /* Construct the literal and distance trees */\n\n\n build_tree(s, s.l_desc); // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc); // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n\n max_blindex = build_bl_tree(s);\n /* Determine the best encoding. Compute the block lengths in bytes. */\n\n opt_lenb = s.opt_len + 3 + 7 >>> 3;\n static_lenb = s.static_len + 3 + 7 >>> 3; // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) {\n opt_lenb = static_lenb;\n }\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5;\n /* force a stored block */\n }\n\n if (stored_len + 4 <= opt_lenb && buf !== -1) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n } // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n\n\n init_block(s);\n\n if (last) {\n bi_windup(s);\n } // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n\n}\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\n\n\nfunction _tr_tally(s, dist, lc) // deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2] /*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n\n dist--;\n /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2] /*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2] /*.Freq*/++;\n } // (!) This block is disabled in zlib defailts,\n // don't enable it for binary compatibility\n //#ifdef TRUNCATE_BLOCK\n // /* Try to guess if it is profitable to stop the current block here */\n // if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n // /* Compute an upper bound for the compressed length */\n // out_length = s.last_lit*8;\n // in_length = s.strstart - s.block_start;\n //\n // for (dcode = 0; dcode < D_CODES; dcode++) {\n // out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n // }\n // out_length >>>= 3;\n // //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n // // s->last_lit, in_length, out_length,\n // // 100L - out_length*100L/in_length));\n // if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n // return true;\n // }\n // }\n //#endif\n\n\n return s.last_lit === s.lit_bufsize - 1;\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = ZStream;\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n\n this.next_in = 0;\n /* number of bytes available at input */\n\n this.avail_in = 0;\n /* total number of input bytes read so far */\n\n this.total_in = 0;\n /* next output byte should be put there */\n\n this.output = null; // JS specific, because we have no pointers\n\n this.next_out = 0;\n /* remaining free space at output */\n\n this.avail_out = 0;\n /* total number of bytes output so far */\n\n this.total_out = 0;\n /* last error message, NULL if no error */\n\n this.msg = ''\n /*Z_NULL*/\n ;\n /* not visible by applications */\n\n this.state = null;\n /* best guess about the data type: binary or text */\n\n this.data_type = 2\n /*Z_UNKNOWN*/\n ;\n /* adler32 value of the uncompressed data */\n\n this.adler = 0;\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar Log = _interopRequireWildcard(require(\"./util/logging.js\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// this has performance issues in some versions Chromium, and\n// doesn't gain a tremendous amount of performance increase in Firefox\n// at the moment. It may be valuable to turn it on in the future.\nvar MAX_RQ_GROW_SIZE = 40 * 1024 * 1024; // 40 MiB\n// Constants pulled from RTCDataChannelState enum\n// https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel/readyState#RTCDataChannelState_enum\n\nvar DataChannel = {\n CONNECTING: \"connecting\",\n OPEN: \"open\",\n CLOSING: \"closing\",\n CLOSED: \"closed\"\n};\nvar ReadyStates = {\n CONNECTING: [WebSocket.CONNECTING, DataChannel.CONNECTING],\n OPEN: [WebSocket.OPEN, DataChannel.OPEN],\n CLOSING: [WebSocket.CLOSING, DataChannel.CLOSING],\n CLOSED: [WebSocket.CLOSED, DataChannel.CLOSED]\n}; // Properties a raw channel must have, WebSocket and RTCDataChannel are two examples\n\nvar rawChannelProps = [\"send\", \"close\", \"binaryType\", \"onerror\", \"onmessage\", \"onopen\", \"protocol\", \"readyState\"];\n\nvar Websock = /*#__PURE__*/function () {\n function Websock() {\n _classCallCheck(this, Websock);\n\n this._websocket = null; // WebSocket or RTCDataChannel object\n\n this._rQi = 0; // Receive queue index\n\n this._rQlen = 0; // Next write position in the receive queue\n\n this._rQbufferSize = 1024 * 1024 * 4; // Receive queue buffer size (4 MiB)\n // called in init: this._rQ = new Uint8Array(this._rQbufferSize);\n\n this._rQ = null; // Receive queue\n\n this._sQbufferSize = 1024 * 10; // 10 KiB\n // called in init: this._sQ = new Uint8Array(this._sQbufferSize);\n\n this._sQlen = 0;\n this._sQ = null; // Send queue\n\n this._eventHandlers = {\n message: function message() {},\n open: function open() {},\n close: function close() {},\n error: function error() {}\n };\n } // Getters and Setters\n\n\n _createClass(Websock, [{\n key: \"readyState\",\n get: function get() {\n var subState;\n\n if (this._websocket === null) {\n return \"unused\";\n }\n\n subState = this._websocket.readyState;\n\n if (ReadyStates.CONNECTING.includes(subState)) {\n return \"connecting\";\n } else if (ReadyStates.OPEN.includes(subState)) {\n return \"open\";\n } else if (ReadyStates.CLOSING.includes(subState)) {\n return \"closing\";\n } else if (ReadyStates.CLOSED.includes(subState)) {\n return \"closed\";\n }\n\n return \"unknown\";\n }\n }, {\n key: \"sQ\",\n get: function get() {\n return this._sQ;\n }\n }, {\n key: \"rQ\",\n get: function get() {\n return this._rQ;\n }\n }, {\n key: \"rQi\",\n get: function get() {\n return this._rQi;\n },\n set: function set(val) {\n this._rQi = val;\n } // Receive Queue\n\n }, {\n key: \"rQlen\",\n get: function get() {\n return this._rQlen - this._rQi;\n }\n }, {\n key: \"rQpeek8\",\n value: function rQpeek8() {\n return this._rQ[this._rQi];\n }\n }, {\n key: \"rQskipBytes\",\n value: function rQskipBytes(bytes) {\n this._rQi += bytes;\n }\n }, {\n key: \"rQshift8\",\n value: function rQshift8() {\n return this._rQshift(1);\n }\n }, {\n key: \"rQshift16\",\n value: function rQshift16() {\n return this._rQshift(2);\n }\n }, {\n key: \"rQshift32\",\n value: function rQshift32() {\n return this._rQshift(4);\n } // TODO(directxman12): test performance with these vs a DataView\n\n }, {\n key: \"_rQshift\",\n value: function _rQshift(bytes) {\n var res = 0;\n\n for (var _byte = bytes - 1; _byte >= 0; _byte--) {\n res += this._rQ[this._rQi++] << _byte * 8;\n }\n\n return res;\n }\n }, {\n key: \"rQshiftStr\",\n value: function rQshiftStr(len) {\n if (typeof len === 'undefined') {\n len = this.rQlen;\n }\n\n var str = \"\"; // Handle large arrays in steps to avoid long strings on the stack\n\n for (var i = 0; i < len; i += 4096) {\n var part = this.rQshiftBytes(Math.min(4096, len - i));\n str += String.fromCharCode.apply(null, part);\n }\n\n return str;\n }\n }, {\n key: \"rQshiftBytes\",\n value: function rQshiftBytes(len) {\n if (typeof len === 'undefined') {\n len = this.rQlen;\n }\n\n this._rQi += len;\n return new Uint8Array(this._rQ.buffer, this._rQi - len, len);\n }\n }, {\n key: \"rQshiftTo\",\n value: function rQshiftTo(target, len) {\n if (len === undefined) {\n len = this.rQlen;\n } // TODO: make this just use set with views when using a ArrayBuffer to store the rQ\n\n\n target.set(new Uint8Array(this._rQ.buffer, this._rQi, len));\n this._rQi += len;\n }\n }, {\n key: \"rQslice\",\n value: function rQslice(start) {\n var end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rQlen;\n return new Uint8Array(this._rQ.buffer, this._rQi + start, end - start);\n } // Check to see if we must wait for 'num' bytes (default to FBU.bytes)\n // to be available in the receive queue. Return true if we need to\n // wait (and possibly print a debug message), otherwise false.\n\n }, {\n key: \"rQwait\",\n value: function rQwait(msg, num, goback) {\n if (this.rQlen < num) {\n if (goback) {\n if (this._rQi < goback) {\n throw new Error(\"rQwait cannot backup \" + goback + \" bytes\");\n }\n\n this._rQi -= goback;\n }\n\n return true; // true means need more data\n }\n\n return false;\n } // Send Queue\n\n }, {\n key: \"flush\",\n value: function flush() {\n if (this._sQlen > 0 && this.readyState === 'open') {\n this._websocket.send(this._encodeMessage());\n\n this._sQlen = 0;\n }\n }\n }, {\n key: \"send\",\n value: function send(arr) {\n this._sQ.set(arr, this._sQlen);\n\n this._sQlen += arr.length;\n this.flush();\n }\n }, {\n key: \"sendString\",\n value: function sendString(str) {\n this.send(str.split('').map(function (chr) {\n return chr.charCodeAt(0);\n }));\n } // Event Handlers\n\n }, {\n key: \"off\",\n value: function off(evt) {\n this._eventHandlers[evt] = function () {};\n }\n }, {\n key: \"on\",\n value: function on(evt, handler) {\n this._eventHandlers[evt] = handler;\n }\n }, {\n key: \"_allocateBuffers\",\n value: function _allocateBuffers() {\n this._rQ = new Uint8Array(this._rQbufferSize);\n this._sQ = new Uint8Array(this._sQbufferSize);\n }\n }, {\n key: \"init\",\n value: function init() {\n this._allocateBuffers();\n\n this._rQi = 0;\n this._websocket = null;\n }\n }, {\n key: \"open\",\n value: function open(uri, protocols) {\n this.attach(new WebSocket(uri, protocols));\n }\n }, {\n key: \"attach\",\n value: function attach(rawChannel) {\n var _this = this;\n\n this.init(); // Must get object and class methods to be compatible with the tests.\n\n var channelProps = [].concat(_toConsumableArray(Object.keys(rawChannel)), _toConsumableArray(Object.getOwnPropertyNames(Object.getPrototypeOf(rawChannel))));\n\n for (var i = 0; i < rawChannelProps.length; i++) {\n var prop = rawChannelProps[i];\n\n if (channelProps.indexOf(prop) < 0) {\n throw new Error('Raw channel missing property: ' + prop);\n }\n }\n\n this._websocket = rawChannel;\n this._websocket.binaryType = \"arraybuffer\";\n this._websocket.onmessage = this._recvMessage.bind(this);\n\n this._websocket.onopen = function () {\n Log.Debug('>> WebSock.onopen');\n\n if (_this._websocket.protocol) {\n Log.Info(\"Server choose sub-protocol: \" + _this._websocket.protocol);\n }\n\n _this._eventHandlers.open();\n\n Log.Debug(\"<< WebSock.onopen\");\n };\n\n this._websocket.onclose = function (e) {\n Log.Debug(\">> WebSock.onclose\");\n\n _this._eventHandlers.close(e);\n\n Log.Debug(\"<< WebSock.onclose\");\n };\n\n this._websocket.onerror = function (e) {\n Log.Debug(\">> WebSock.onerror: \" + e);\n\n _this._eventHandlers.error(e);\n\n Log.Debug(\"<< WebSock.onerror: \" + e);\n };\n }\n }, {\n key: \"close\",\n value: function close() {\n if (this._websocket) {\n if (this.readyState === 'connecting' || this.readyState === 'open') {\n Log.Info(\"Closing WebSocket connection\");\n\n this._websocket.close();\n }\n\n this._websocket.onmessage = function () {};\n }\n } // private methods\n\n }, {\n key: \"_encodeMessage\",\n value: function _encodeMessage() {\n // Put in a binary arraybuffer\n // according to the spec, you can send ArrayBufferViews with the send method\n return new Uint8Array(this._sQ.buffer, 0, this._sQlen);\n } // We want to move all the unread data to the start of the queue,\n // e.g. compacting.\n // The function also expands the receive que if needed, and for\n // performance reasons we combine these two actions to avoid\n // unneccessary copying.\n\n }, {\n key: \"_expandCompactRQ\",\n value: function _expandCompactRQ(minFit) {\n // if we're using less than 1/8th of the buffer even with the incoming bytes, compact in place\n // instead of resizing\n var requiredBufferSize = (this._rQlen - this._rQi + minFit) * 8;\n var resizeNeeded = this._rQbufferSize < requiredBufferSize;\n\n if (resizeNeeded) {\n // Make sure we always *at least* double the buffer size, and have at least space for 8x\n // the current amount of data\n this._rQbufferSize = Math.max(this._rQbufferSize * 2, requiredBufferSize);\n } // we don't want to grow unboundedly\n\n\n if (this._rQbufferSize > MAX_RQ_GROW_SIZE) {\n this._rQbufferSize = MAX_RQ_GROW_SIZE;\n\n if (this._rQbufferSize - this.rQlen < minFit) {\n throw new Error(\"Receive Queue buffer exceeded \" + MAX_RQ_GROW_SIZE + \" bytes, and the new message could not fit\");\n }\n }\n\n if (resizeNeeded) {\n var oldRQbuffer = this._rQ.buffer;\n this._rQ = new Uint8Array(this._rQbufferSize);\n\n this._rQ.set(new Uint8Array(oldRQbuffer, this._rQi, this._rQlen - this._rQi));\n } else {\n this._rQ.copyWithin(0, this._rQi, this._rQlen);\n }\n\n this._rQlen = this._rQlen - this._rQi;\n this._rQi = 0;\n } // push arraybuffer values onto the end of the receive que\n\n }, {\n key: \"_DecodeMessage\",\n value: function _DecodeMessage(data) {\n var u8 = new Uint8Array(data);\n\n if (u8.length > this._rQbufferSize - this._rQlen) {\n this._expandCompactRQ(u8.length);\n }\n\n this._rQ.set(u8, this._rQlen);\n\n this._rQlen += u8.length;\n }\n }, {\n key: \"_recvMessage\",\n value: function _recvMessage(e) {\n this._DecodeMessage(e.data);\n\n if (this.rQlen > 0) {\n this._eventHandlers.message();\n\n if (this._rQlen == this._rQi) {\n // All data has now been processed, this means we\n // can reset the receive queue.\n this._rQlen = 0;\n this._rQi = 0;\n }\n } else {\n Log.Debug(\"Ignoring empty message\");\n }\n }\n }]);\n\n return Websock;\n}();\n\nexports[\"default\"] = Websock;","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n // Remove event specific arrays for event types that no\r\n // one is subscribed for to avoid memory leak.\r\n if (callbacks.length === 0) {\r\n delete this._callbacks['$' + event];\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n\r\n var args = new Array(arguments.length - 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n for (var i = 1; i < arguments.length; i++) {\r\n args[i - 1] = arguments[i];\r\n }\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\n","var objectKeys = require('object-keys');\nvar isArguments = require('is-arguments');\nvar is = require('object-is');\nvar isRegex = require('is-regex');\nvar flags = require('regexp.prototype.flags');\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n if (typeof a !== typeof b) { return false; }\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n if (typeof a !== typeof b) { return false; }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) { // happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; }\n }\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) { return false; }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\torigDefineProperty(obj, 'x', { enumerable: false, value: obj });\n\t\t// eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\t\tfor (var _ in obj) { // jscs:ignore disallowUnusedVariables\n\t\t\treturn false;\n\t\t}\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","/*!\nCopyright (C) 2013-2015 by Andrea Giammarchi - @WebReflection\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n(function(window){'use strict';\n /* jshint loopfunc: true, noempty: false*/\n // http://www.w3.org/TR/dom/#element\n\n function createDocumentFragment() {\n return document.createDocumentFragment();\n }\n\n function createElement(nodeName) {\n return document.createElement(nodeName);\n }\n\n function enoughArguments(length, name) {\n if (!length) throw new Error(\n 'Failed to construct ' +\n name +\n ': 1 argument required, but only 0 present.'\n );\n }\n\n function mutationMacro(nodes) {\n if (nodes.length === 1) {\n return textNodeIfPrimitive(nodes[0]);\n }\n for (var\n fragment = createDocumentFragment(),\n list = slice.call(nodes),\n i = 0; i < nodes.length; i++\n ) {\n fragment.appendChild(textNodeIfPrimitive(list[i]));\n }\n return fragment;\n }\n\n function textNodeIfPrimitive(node) {\n return typeof node === 'object' ? node : document.createTextNode(node);\n }\n\n for(var\n head,\n property,\n TemporaryPrototype,\n TemporaryTokenList,\n wrapVerifyToken,\n document = window.document,\n hOP = Object.prototype.hasOwnProperty,\n defineProperty = Object.defineProperty || function (object, property, descriptor) {\n if (hOP.call(descriptor, 'value')) {\n object[property] = descriptor.value;\n } else {\n if (hOP.call(descriptor, 'get'))\n object.__defineGetter__(property, descriptor.get);\n if (hOP.call(descriptor, 'set'))\n object.__defineSetter__(property, descriptor.set);\n }\n return object;\n },\n indexOf = [].indexOf || function indexOf(value){\n var length = this.length;\n while(length--) {\n if (this[length] === value) {\n break;\n }\n }\n return length;\n },\n // http://www.w3.org/TR/domcore/#domtokenlist\n verifyToken = function (token) {\n if (!token) {\n throw 'SyntaxError';\n } else if (spaces.test(token)) {\n throw 'InvalidCharacterError';\n }\n return token;\n },\n DOMTokenList = function (node) {\n var\n noClassName = typeof node.className === 'undefined',\n className = noClassName ?\n (node.getAttribute('class') || '') : node.className,\n isSVG = noClassName || typeof className === 'object',\n value = (isSVG ?\n (noClassName ? className : className.baseVal) :\n className\n ).replace(trim, '')\n ;\n if (value.length) {\n properties.push.apply(\n this,\n value.split(spaces)\n );\n }\n this._isSVG = isSVG;\n this._ = node;\n },\n classListDescriptor = {\n get: function get() {\n return new DOMTokenList(this);\n },\n set: function(){}\n },\n trim = /^\\s+|\\s+$/g,\n spaces = /\\s+/,\n SPACE = '\\x20',\n CLASS_LIST = 'classList',\n toggle = function toggle(token, force) {\n if (this.contains(token)) {\n if (!force) {\n // force is not true (either false or omitted)\n this.remove(token);\n }\n } else if(force === undefined || force) {\n force = true;\n this.add(token);\n }\n return !!force;\n },\n DocumentFragmentPrototype = window.DocumentFragment && DocumentFragment.prototype,\n Node = window.Node,\n NodePrototype = (Node || Element).prototype,\n CharacterData = window.CharacterData || Node,\n CharacterDataPrototype = CharacterData && CharacterData.prototype,\n DocumentType = window.DocumentType,\n DocumentTypePrototype = DocumentType && DocumentType.prototype,\n ElementPrototype = (window.Element || Node || window.HTMLElement).prototype,\n HTMLSelectElement = window.HTMLSelectElement || createElement('select').constructor,\n selectRemove = HTMLSelectElement.prototype.remove,\n SVGElement = window.SVGElement,\n properties = [\n 'matches', (\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.khtmlMatchesSelector ||\n ElementPrototype.mozMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n ElementPrototype.oMatchesSelector ||\n function matches(selector) {\n var parentNode = this.parentNode;\n return !!parentNode && -1 < indexOf.call(\n parentNode.querySelectorAll(selector),\n this\n );\n }\n ),\n 'closest', function closest(selector) {\n var parentNode = this, matches;\n while (\n // document has no .matches\n (matches = parentNode && parentNode.matches) &&\n !parentNode.matches(selector)\n ) {\n parentNode = parentNode.parentNode;\n }\n return matches ? parentNode : null;\n },\n 'prepend', function prepend() {\n var firstChild = this.firstChild,\n node = mutationMacro(arguments);\n if (firstChild) {\n this.insertBefore(node, firstChild);\n } else {\n this.appendChild(node);\n }\n },\n 'append', function append() {\n this.appendChild(mutationMacro(arguments));\n },\n 'before', function before() {\n var parentNode = this.parentNode;\n if (parentNode) {\n parentNode.insertBefore(\n mutationMacro(arguments), this\n );\n }\n },\n 'after', function after() {\n var parentNode = this.parentNode,\n nextSibling = this.nextSibling,\n node = mutationMacro(arguments);\n if (parentNode) {\n if (nextSibling) {\n parentNode.insertBefore(node, nextSibling);\n } else {\n parentNode.appendChild(node);\n }\n }\n },\n // https://dom.spec.whatwg.org/#dom-element-toggleattribute\n 'toggleAttribute', function toggleAttribute(name, force) {\n var had = this.hasAttribute(name);\n if (1 < arguments.length) {\n if (had && !force)\n this.removeAttribute(name);\n else if (force && !had)\n this.setAttribute(name, \"\");\n }\n else if (had)\n this.removeAttribute(name);\n else\n this.setAttribute(name, \"\");\n return this.hasAttribute(name);\n },\n // WARNING - DEPRECATED - use .replaceWith() instead\n 'replace', function replace() {\n this.replaceWith.apply(this, arguments);\n },\n 'replaceWith', function replaceWith() {\n var parentNode = this.parentNode;\n if (parentNode) {\n parentNode.replaceChild(\n mutationMacro(arguments),\n this\n );\n }\n },\n 'remove', function remove() {\n var parentNode = this.parentNode;\n if (parentNode) {\n parentNode.removeChild(this);\n }\n }\n ],\n slice = properties.slice,\n i = properties.length; i; i -= 2\n ) {\n property = properties[i - 2];\n if (!(property in ElementPrototype)) {\n ElementPrototype[property] = properties[i - 1];\n }\n // avoid unnecessary re-patch when the script is included\n // gazillion times without any reason whatsoever\n // https://github.com/WebReflection/dom4/pull/48\n if (property === 'remove' && !selectRemove._dom4) {\n // see https://github.com/WebReflection/dom4/issues/19\n (HTMLSelectElement.prototype[property] = function () {\n return 0 < arguments.length ?\n selectRemove.apply(this, arguments) :\n ElementPrototype.remove.call(this);\n })._dom4 = true;\n }\n // see https://github.com/WebReflection/dom4/issues/18\n if (/^(?:before|after|replace|replaceWith|remove)$/.test(property)) {\n if (CharacterData && !(property in CharacterDataPrototype)) {\n CharacterDataPrototype[property] = properties[i - 1];\n }\n if (DocumentType && !(property in DocumentTypePrototype)) {\n DocumentTypePrototype[property] = properties[i - 1];\n }\n }\n // see https://github.com/WebReflection/dom4/pull/26\n if (/^(?:append|prepend)$/.test(property)) {\n if (DocumentFragmentPrototype) {\n if (!(property in DocumentFragmentPrototype)) {\n DocumentFragmentPrototype[property] = properties[i - 1];\n }\n } else {\n try {\n createDocumentFragment().constructor.prototype[property] = properties[i - 1];\n } catch(o_O) {}\n }\n }\n }\n\n // most likely an IE9 only issue\n // see https://github.com/WebReflection/dom4/issues/6\n if (!createElement('a').matches('a')) {\n ElementPrototype[property] = function(matches){\n return function (selector) {\n return matches.call(\n this.parentNode ?\n this :\n createDocumentFragment().appendChild(this),\n selector\n );\n };\n }(ElementPrototype[property]);\n }\n\n // used to fix both old webkit and SVG\n DOMTokenList.prototype = {\n length: 0,\n add: function add() {\n for(var j = 0, token; j < arguments.length; j++) {\n token = arguments[j];\n if(!this.contains(token)) {\n properties.push.call(this, property);\n }\n }\n if (this._isSVG) {\n this._.setAttribute('class', '' + this);\n } else {\n this._.className = '' + this;\n }\n },\n contains: (function(indexOf){\n return function contains(token) {\n i = indexOf.call(this, property = verifyToken(token));\n return -1 < i;\n };\n }([].indexOf || function (token) {\n i = this.length;\n while(i-- && this[i] !== token){}\n return i;\n })),\n item: function item(i) {\n return this[i] || null;\n },\n remove: function remove() {\n for(var j = 0, token; j < arguments.length; j++) {\n token = arguments[j];\n if(this.contains(token)) {\n properties.splice.call(this, i, 1);\n }\n }\n if (this._isSVG) {\n this._.setAttribute('class', '' + this);\n } else {\n this._.className = '' + this;\n }\n },\n toggle: toggle,\n toString: function toString() {\n return properties.join.call(this, SPACE);\n }\n };\n\n if (SVGElement && !(CLASS_LIST in SVGElement.prototype)) {\n defineProperty(SVGElement.prototype, CLASS_LIST, classListDescriptor);\n }\n\n // http://www.w3.org/TR/dom/#domtokenlist\n // iOS 5.1 has completely screwed this property\n // classList in ElementPrototype is false\n // but it's actually there as getter\n if (!(CLASS_LIST in document.documentElement)) {\n defineProperty(ElementPrototype, CLASS_LIST, classListDescriptor);\n } else {\n // iOS 5.1 and Nokia ASHA do not support multiple add or remove\n // trying to detect and fix that in here\n TemporaryTokenList = createElement('div')[CLASS_LIST];\n TemporaryTokenList.add('a', 'b', 'a');\n if ('a\\x20b' != TemporaryTokenList) {\n // no other way to reach original methods in iOS 5.1\n TemporaryPrototype = TemporaryTokenList.constructor.prototype;\n if (!('add' in TemporaryPrototype)) {\n // ASHA double fails in here\n TemporaryPrototype = window.TemporaryTokenList.prototype;\n }\n wrapVerifyToken = function (original) {\n return function () {\n var i = 0;\n while (i < arguments.length) {\n original.call(this, arguments[i++]);\n }\n };\n };\n TemporaryPrototype.add = wrapVerifyToken(TemporaryPrototype.add);\n TemporaryPrototype.remove = wrapVerifyToken(TemporaryPrototype.remove);\n // toggle is broken too ^_^ ... let's fix it\n TemporaryPrototype.toggle = toggle;\n }\n }\n\n if (!('contains' in NodePrototype)) {\n defineProperty(NodePrototype, 'contains', {\n value: function (el) {\n while (el && el !== this) el = el.parentNode;\n return this === el;\n }\n });\n }\n\n if (!('head' in document)) {\n defineProperty(document, 'head', {\n get: function () {\n return head || (\n head = document.getElementsByTagName('head')[0]\n );\n }\n });\n }\n\n // requestAnimationFrame partial polyfill\n (function () {\n for (var\n raf,\n rAF = window.requestAnimationFrame,\n cAF = window.cancelAnimationFrame,\n prefixes = ['o', 'ms', 'moz', 'webkit'],\n i = prefixes.length;\n !cAF && i--;\n ) {\n rAF = rAF || window[prefixes[i] + 'RequestAnimationFrame'];\n cAF = window[prefixes[i] + 'CancelAnimationFrame'] ||\n window[prefixes[i] + 'CancelRequestAnimationFrame'];\n }\n if (!cAF) {\n // some FF apparently implemented rAF but no cAF \n if (rAF) {\n raf = rAF;\n rAF = function (callback) {\n var goOn = true;\n raf(function () {\n if (goOn) callback.apply(this, arguments);\n });\n return function () {\n goOn = false;\n };\n };\n cAF = function (id) {\n id();\n };\n } else {\n rAF = function (callback) {\n return setTimeout(callback, 15, 15);\n };\n cAF = function (id) {\n clearTimeout(id);\n };\n }\n }\n window.requestAnimationFrame = rAF;\n window.cancelAnimationFrame = cAF;\n }());\n\n // http://www.w3.org/TR/dom/#customevent\n try{new window.CustomEvent('?');}catch(o_O){\n window.CustomEvent = function(\n eventName,\n defaultInitDict\n ){\n\n // the infamous substitute\n function CustomEvent(type, eventInitDict) {\n /*jshint eqnull:true */\n var event = document.createEvent(eventName);\n if (typeof type != 'string') {\n throw new Error('An event name must be provided');\n }\n if (eventName == 'Event') {\n event.initCustomEvent = initCustomEvent;\n }\n if (eventInitDict == null) {\n eventInitDict = defaultInitDict;\n }\n event.initCustomEvent(\n type,\n eventInitDict.bubbles,\n eventInitDict.cancelable,\n eventInitDict.detail\n );\n return event;\n }\n\n // attached at runtime\n function initCustomEvent(\n type, bubbles, cancelable, detail\n ) {\n /*jshint validthis:true*/\n this.initEvent(type, bubbles, cancelable);\n this.detail = detail;\n }\n\n // that's it\n return CustomEvent;\n }(\n // is this IE9 or IE10 ?\n // where CustomEvent is there\n // but not usable as construtor ?\n window.CustomEvent ?\n // use the CustomEvent interface in such case\n 'CustomEvent' : 'Event',\n // otherwise the common compatible one\n {\n bubbles: false,\n cancelable: false,\n detail: null\n }\n );\n }\n\n // window.Event as constructor\n try { new Event('_'); } catch (o_O) {\n /* jshint -W022 */\n o_O = (function ($Event) {\n function Event(type, init) {\n enoughArguments(arguments.length, 'Event');\n var out = document.createEvent('Event');\n if (!init) init = {};\n out.initEvent(\n type,\n !!init.bubbles,\n !!init.cancelable\n );\n return out;\n }\n Event.prototype = $Event.prototype;\n return Event;\n }(window.Event || function Event() {}));\n defineProperty(window, 'Event', {value: o_O});\n // Android 4 gotcha\n if (Event !== o_O) Event = o_O;\n }\n\n // window.KeyboardEvent as constructor\n try { new KeyboardEvent('_', {}); } catch (o_O) {\n /* jshint -W022 */\n o_O = (function ($KeyboardEvent) {\n // code inspired by https://gist.github.com/termi/4654819\n var\n initType = 0,\n defaults = {\n char: '',\n key: '',\n location: 0,\n ctrlKey: false,\n shiftKey: false,\n altKey: false,\n metaKey: false,\n altGraphKey: false,\n repeat: false,\n locale: navigator.language,\n detail: 0,\n bubbles: false,\n cancelable: false,\n keyCode: 0,\n charCode: 0,\n which: 0\n },\n eventType\n ;\n try {\n var e = document.createEvent('KeyboardEvent');\n e.initKeyboardEvent(\n 'keyup', false, false, window, '+', 3,\n true, false, true, false, false\n );\n initType = (\n (e.keyIdentifier || e.key) == '+' &&\n (e.keyLocation || e.location) == 3\n ) && (\n e.ctrlKey ? e.altKey ? 1 : 3 : e.shiftKey ? 2 : 4\n ) || 9;\n } catch(o_O) {}\n eventType = 0 < initType ? 'KeyboardEvent' : 'Event';\n\n function getModifier(init) {\n for (var\n out = [],\n keys = [\n 'ctrlKey',\n 'Control',\n 'shiftKey',\n 'Shift',\n 'altKey',\n 'Alt',\n 'metaKey',\n 'Meta',\n 'altGraphKey',\n 'AltGraph'\n ],\n i = 0; i < keys.length; i += 2\n ) {\n if (init[keys[i]])\n out.push(keys[i + 1]);\n }\n return out.join(' ');\n }\n\n function withDefaults(target, source) {\n for (var key in source) {\n if (\n source.hasOwnProperty(key) &&\n !source.hasOwnProperty.call(target, key)\n ) target[key] = source[key];\n }\n return target;\n }\n\n function withInitValues(key, out, init) {\n try {\n out[key] = init[key];\n } catch(o_O) {}\n }\n\n function KeyboardEvent(type, init) {\n enoughArguments(arguments.length, 'KeyboardEvent');\n init = withDefaults(init || {}, defaults);\n var\n out = document.createEvent(eventType),\n ctrlKey = init.ctrlKey,\n shiftKey = init.shiftKey,\n altKey = init.altKey,\n metaKey = init.metaKey,\n altGraphKey = init.altGraphKey,\n modifiers = initType > 3 ? getModifier(init) : null,\n key = String(init.key),\n chr = String(init.char),\n location = init.location,\n keyCode = init.keyCode || (\n (init.keyCode = key) &&\n key.charCodeAt(0)\n ) || 0,\n charCode = init.charCode || (\n (init.charCode = chr) &&\n chr.charCodeAt(0)\n ) || 0,\n bubbles = init.bubbles,\n cancelable = init.cancelable,\n repeat = init.repeat,\n locale = init.locale,\n view = init.view || window,\n args\n ;\n if (!init.which) init.which = init.keyCode;\n if ('initKeyEvent' in out) {\n out.initKeyEvent(\n type, bubbles, cancelable, view,\n ctrlKey, altKey, shiftKey, metaKey, keyCode, charCode\n );\n } else if (0 < initType && 'initKeyboardEvent' in out) {\n args = [type, bubbles, cancelable, view];\n switch (initType) {\n case 1:\n args.push(key, location, ctrlKey, shiftKey, altKey, metaKey, altGraphKey);\n break;\n case 2:\n args.push(ctrlKey, altKey, shiftKey, metaKey, keyCode, charCode);\n break;\n case 3:\n args.push(key, location, ctrlKey, altKey, shiftKey, metaKey, altGraphKey);\n break;\n case 4:\n args.push(key, location, modifiers, repeat, locale);\n break;\n default:\n args.push(char, key, location, modifiers, repeat, locale);\n }\n out.initKeyboardEvent.apply(out, args);\n } else {\n out.initEvent(type, bubbles, cancelable);\n }\n for (key in out) {\n if (defaults.hasOwnProperty(key) && out[key] !== init[key]) {\n withInitValues(key, out, init);\n }\n }\n return out;\n }\n KeyboardEvent.prototype = $KeyboardEvent.prototype;\n return KeyboardEvent;\n }(window.KeyboardEvent || function KeyboardEvent() {}));\n defineProperty(window, 'KeyboardEvent', {value: o_O});\n // Android 4 gotcha\n if (KeyboardEvent !== o_O) KeyboardEvent = o_O;\n }\n\n // window.MouseEvent as constructor\n try { new MouseEvent('_', {}); } catch (o_O) {\n /* jshint -W022 */\n o_O = (function ($MouseEvent) {\n function MouseEvent(type, init) {\n enoughArguments(arguments.length, 'MouseEvent');\n var out = document.createEvent('MouseEvent');\n if (!init) init = {};\n out.initMouseEvent(\n type,\n !!init.bubbles,\n !!init.cancelable,\n init.view || window,\n init.detail || 1,\n init.screenX || 0,\n init.screenY || 0,\n init.clientX || 0,\n init.clientY || 0,\n !!init.ctrlKey,\n !!init.altKey,\n !!init.shiftKey,\n !!init.metaKey,\n init.button || 0,\n init.relatedTarget || null\n );\n return out;\n }\n MouseEvent.prototype = $MouseEvent.prototype;\n return MouseEvent;\n }(window.MouseEvent || function MouseEvent() {}));\n defineProperty(window, 'MouseEvent', {value: o_O});\n // Android 4 gotcha\n if (MouseEvent !== o_O) MouseEvent = o_O;\n }\n\n if (!document.querySelectorAll('*').forEach) {\n (function () {\n function patch(what) {\n var querySelectorAll = what.querySelectorAll;\n what.querySelectorAll = function qSA(css) {\n var result = querySelectorAll.call(this, css);\n result.forEach = Array.prototype.forEach;\n return result;\n };\n }\n patch(document);\n patch(Element.prototype);\n }());\n }\n\n try {\n // https://drafts.csswg.org/selectors-4/#the-scope-pseudo\n document.querySelector(':scope *');\n } catch(o_O) {\n (function () {\n var dataScope = 'data-scope-' + (Math.random() * 1e9 >>> 0);\n var proto = Element.prototype;\n var querySelector = proto.querySelector;\n var querySelectorAll = proto.querySelectorAll;\n proto.querySelector = function qS(css) {\n return find(this, querySelector, css);\n };\n proto.querySelectorAll = function qSA(css) {\n return find(this, querySelectorAll, css);\n };\n function find(node, method, css) {\n if (node.type != document.ELEMENT_NODE) return method.call(node, css);\n node.setAttribute(dataScope, null);\n var result = method.call(\n node,\n String(css).replace(\n /(^|,\\s*)(:scope([ >]|$))/g,\n function ($0, $1, $2, $3) {\n return $1 + '[' + dataScope + ']' + ($3 || ' ');\n }\n )\n );\n node.removeAttribute(dataScope);\n return result;\n }\n }());\n }\n}(window));\n(function (global){'use strict';\n\n // a WeakMap fallback for DOM nodes only used as key\n var DOMMap = global.WeakMap || (function () {\n\n var\n counter = 0,\n dispatched = false,\n drop = false,\n value\n ;\n\n function dispatch(key, ce, shouldDrop) {\n drop = shouldDrop;\n dispatched = false;\n value = undefined;\n key.dispatchEvent(ce);\n }\n\n function Handler(value) {\n this.value = value;\n }\n\n Handler.prototype.handleEvent = function handleEvent(e) {\n dispatched = true;\n if (drop) {\n e.currentTarget.removeEventListener(e.type, this, false);\n } else {\n value = this.value;\n }\n };\n\n function DOMMap() {\n counter++; // make id clashing highly improbable\n this.__ce__ = new Event(('@DOMMap:' + counter) + Math.random());\n }\n\n DOMMap.prototype = {\n 'constructor': DOMMap,\n 'delete': function del(key) {\n return dispatch(key, this.__ce__, true), dispatched;\n },\n 'get': function get(key) {\n dispatch(key, this.__ce__, false);\n var v = value;\n value = undefined;\n return v;\n },\n 'has': function has(key) {\n return dispatch(key, this.__ce__, false), dispatched;\n },\n 'set': function set(key, value) {\n dispatch(key, this.__ce__, true);\n key.addEventListener(this.__ce__.type, new Handler(value), false);\n return this;\n },\n };\n\n return DOMMap;\n\n }());\n\n function Dict() {}\n Dict.prototype = (Object.create || Object)(null);\n\n // https://dom.spec.whatwg.org/#interface-eventtarget\n\n function createEventListener(type, callback, options) {\n function eventListener(e) {\n if (eventListener.once) {\n e.currentTarget.removeEventListener(\n e.type,\n callback,\n eventListener\n );\n eventListener.removed = true;\n }\n if (eventListener.passive) {\n e.preventDefault = createEventListener.preventDefault;\n }\n if (typeof eventListener.callback === 'function') {\n /* jshint validthis: true */\n eventListener.callback.call(this, e);\n } else if (eventListener.callback) {\n eventListener.callback.handleEvent(e);\n }\n if (eventListener.passive) {\n delete e.preventDefault;\n }\n }\n eventListener.type = type;\n eventListener.callback = callback;\n eventListener.capture = !!options.capture;\n eventListener.passive = !!options.passive;\n eventListener.once = !!options.once;\n // currently pointless but specs say to use it, so ...\n eventListener.removed = false;\n return eventListener;\n }\n\n createEventListener.preventDefault = function preventDefault() {};\n\n var\n Event = global.CustomEvent,\n dE = global.dispatchEvent,\n aEL = global.addEventListener,\n rEL = global.removeEventListener,\n counter = 0,\n increment = function () { counter++; },\n indexOf = [].indexOf || function indexOf(value){\n var length = this.length;\n while(length--) {\n if (this[length] === value) {\n break;\n }\n }\n return length;\n },\n getListenerKey = function (options) {\n return ''.concat(\n options.capture ? '1' : '0',\n options.passive ? '1' : '0',\n options.once ? '1' : '0'\n );\n },\n augment\n ;\n\n try {\n aEL('_', increment, {once: true});\n dE(new Event('_'));\n dE(new Event('_'));\n rEL('_', increment, {once: true});\n } catch(o_O) {}\n\n if (counter !== 1) {\n (function () {\n var dm = new DOMMap();\n function createAEL(aEL) {\n return function addEventListener(type, handler, options) {\n if (options && typeof options !== 'boolean') {\n var\n info = dm.get(this),\n key = getListenerKey(options),\n i, tmp, wrap\n ;\n if (!info) dm.set(this, (info = new Dict()));\n if (!(type in info)) info[type] = {\n handler: [],\n wrap: []\n };\n tmp = info[type];\n i = indexOf.call(tmp.handler, handler);\n if (i < 0) {\n i = tmp.handler.push(handler) - 1;\n tmp.wrap[i] = (wrap = new Dict());\n } else {\n wrap = tmp.wrap[i];\n }\n if (!(key in wrap)) {\n wrap[key] = createEventListener(type, handler, options);\n aEL.call(this, type, wrap[key], wrap[key].capture);\n }\n } else {\n aEL.call(this, type, handler, options);\n }\n };\n }\n function createREL(rEL) {\n return function removeEventListener(type, handler, options) {\n if (options && typeof options !== 'boolean') {\n var\n info = dm.get(this),\n key, i, tmp, wrap\n ;\n if (info && (type in info)) {\n tmp = info[type];\n i = indexOf.call(tmp.handler, handler);\n if (-1 < i) {\n key = getListenerKey(options);\n wrap = tmp.wrap[i];\n if (key in wrap) {\n rEL.call(this, type, wrap[key], wrap[key].capture);\n delete wrap[key];\n // return if there are other wraps\n for (key in wrap) return;\n // otherwise remove all the things\n tmp.handler.splice(i, 1);\n tmp.wrap.splice(i, 1);\n // if there are no other handlers\n if (tmp.handler.length === 0)\n // drop the info[type] entirely\n delete info[type];\n }\n }\n }\n } else {\n rEL.call(this, type, handler, options);\n }\n };\n }\n\n augment = function (Constructor) {\n if (!Constructor) return;\n var proto = Constructor.prototype;\n proto.addEventListener = createAEL(proto.addEventListener);\n proto.removeEventListener = createREL(proto.removeEventListener);\n };\n\n if (global.EventTarget) {\n augment(EventTarget);\n } else {\n augment(global.Text);\n augment(global.Element || global.HTMLElement);\n augment(global.HTMLDocument);\n augment(global.Window || {prototype:global});\n augment(global.XMLHttpRequest);\n }\n\n }());\n }\n\n}(self));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","module.exports = stringify\nstringify.default = stringify\nstringify.stable = deterministicStringify\nstringify.stableStringify = deterministicStringify\n\nvar LIMIT_REPLACE_NODE = '[...]'\nvar CIRCULAR_REPLACE_NODE = '[Circular]'\n\nvar arr = []\nvar replacerStack = []\n\nfunction defaultOptions () {\n return {\n depthLimit: Number.MAX_SAFE_INTEGER,\n edgesLimit: Number.MAX_SAFE_INTEGER\n }\n}\n\n// Regular stringify\nfunction stringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n decirc(obj, '', 0, [], undefined, 0, options)\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(obj, replacer, spacer)\n } else {\n res = JSON.stringify(obj, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction setReplace (replace, val, k, parent) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k)\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, { value: replace })\n arr.push([parent, k, val, propertyDescriptor])\n } else {\n replacerStack.push([val, k, replace])\n }\n } else {\n parent[k] = replace\n arr.push([parent, k, val])\n }\n}\n\nfunction decirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n decirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n var keys = Object.keys(val)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n decirc(val[key], key, i, stack, val, depth, options)\n }\n }\n stack.pop()\n }\n}\n\n// Stable-stringify\nfunction compareFunction (a, b) {\n if (a < b) {\n return -1\n }\n if (a > b) {\n return 1\n }\n return 0\n}\n\nfunction deterministicStringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n var tmp = deterministicDecirc(obj, '', 0, [], undefined, 0, options) || obj\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer)\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n // Ensure that we restore the object as it was.\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction deterministicDecirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n try {\n if (typeof val.toJSON === 'function') {\n return\n }\n } catch (_) {\n return\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {}\n var keys = Object.keys(val).sort(compareFunction)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n deterministicDecirc(val[key], key, i, stack, val, depth, options)\n tmp[key] = val[key]\n }\n if (typeof parent !== 'undefined') {\n arr.push([parent, k, val])\n parent[k] = tmp\n } else {\n return tmp\n }\n }\n stack.pop()\n }\n}\n\n// wraps replacer function to handle values we couldn't replace\n// and mark them as replaced value\nfunction replaceGetterValues (replacer) {\n replacer =\n typeof replacer !== 'undefined'\n ? replacer\n : function (k, v) {\n return v\n }\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i]\n if (part[1] === key && part[0] === val) {\n val = part[2]\n replacerStack.splice(i, 1)\n break\n }\n }\n }\n return replacer.call(this, key, val)\n }\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n'use strict';\n\nvar validateFormat = process.env.NODE_ENV !== \"production\" ? function (format) {\n if (format === undefined) {\n throw new Error('invariant(...): Second argument must be a string.');\n }\n} : function (format) {};\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments to provide\n * information about what broke and what you were expecting.\n *\n * The invariant message will be stripped in production, but the invariant will\n * remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n validateFormat(format);\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return String(args[argIndex++]);\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // Skip invariant's own stack frame.\n\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\r\n * Copyright (c) 2014-present, Facebook, Inc.\r\n * All rights reserved.\r\n *\r\n * This source code is licensed under the BSD-style license found in the\r\n * LICENSE file in the root directory of this source tree. An additional grant\r\n * of patent rights can be found in the PATENTS file in the same directory.\r\n */\r\n\r\nmodule.exports.Dispatcher = require('./lib/Dispatcher');\r\n","/**\r\n * Copyright (c) 2014-present, Facebook, Inc.\r\n * All rights reserved.\r\n *\r\n * This source code is licensed under the BSD-style license found in the\r\n * LICENSE file in the root directory of this source tree. An additional grant\r\n * of patent rights can be found in the PATENTS file in the same directory.\r\n *\r\n * @providesModule Dispatcher\r\n * \r\n * @preventMunge\r\n */\n'use strict';\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar invariant = require(\"fbjs/lib/invariant\");\n\nvar _prefix = 'ID_';\n/**\r\n * Dispatcher is used to broadcast payloads to registered callbacks. This is\r\n * different from generic pub-sub systems in two ways:\r\n *\r\n * 1) Callbacks are not subscribed to particular events. Every payload is\r\n * dispatched to every registered callback.\r\n * 2) Callbacks can be deferred in whole or part until other callbacks have\r\n * been executed.\r\n *\r\n * For example, consider this hypothetical flight destination form, which\r\n * selects a default city when a country is selected:\r\n *\r\n * var flightDispatcher = new Dispatcher();\r\n *\r\n * // Keeps track of which country is selected\r\n * var CountryStore = {country: null};\r\n *\r\n * // Keeps track of which city is selected\r\n * var CityStore = {city: null};\r\n *\r\n * // Keeps track of the base flight price of the selected city\r\n * var FlightPriceStore = {price: null}\r\n *\r\n * When a user changes the selected city, we dispatch the payload:\r\n *\r\n * flightDispatcher.dispatch({\r\n * actionType: 'city-update',\r\n * selectedCity: 'paris'\r\n * });\r\n *\r\n * This payload is digested by `CityStore`:\r\n *\r\n * flightDispatcher.register(function(payload) {\r\n * if (payload.actionType === 'city-update') {\r\n * CityStore.city = payload.selectedCity;\r\n * }\r\n * });\r\n *\r\n * When the user selects a country, we dispatch the payload:\r\n *\r\n * flightDispatcher.dispatch({\r\n * actionType: 'country-update',\r\n * selectedCountry: 'australia'\r\n * });\r\n *\r\n * This payload is digested by both stores:\r\n *\r\n * CountryStore.dispatchToken = flightDispatcher.register(function(payload) {\r\n * if (payload.actionType === 'country-update') {\r\n * CountryStore.country = payload.selectedCountry;\r\n * }\r\n * });\r\n *\r\n * When the callback to update `CountryStore` is registered, we save a reference\r\n * to the returned token. Using this token with `waitFor()`, we can guarantee\r\n * that `CountryStore` is updated before the callback that updates `CityStore`\r\n * needs to query its data.\r\n *\r\n * CityStore.dispatchToken = flightDispatcher.register(function(payload) {\r\n * if (payload.actionType === 'country-update') {\r\n * // `CountryStore.country` may not be updated.\r\n * flightDispatcher.waitFor([CountryStore.dispatchToken]);\r\n * // `CountryStore.country` is now guaranteed to be updated.\r\n *\r\n * // Select the default city for the new country\r\n * CityStore.city = getDefaultCityForCountry(CountryStore.country);\r\n * }\r\n * });\r\n *\r\n * The usage of `waitFor()` can be chained, for example:\r\n *\r\n * FlightPriceStore.dispatchToken =\r\n * flightDispatcher.register(function(payload) {\r\n * switch (payload.actionType) {\r\n * case 'country-update':\r\n * case 'city-update':\r\n * flightDispatcher.waitFor([CityStore.dispatchToken]);\r\n * FlightPriceStore.price =\r\n * getFlightPriceStore(CountryStore.country, CityStore.city);\r\n * break;\r\n * }\r\n * });\r\n *\r\n * The `country-update` payload will be guaranteed to invoke the stores'\r\n * registered callbacks in order: `CountryStore`, `CityStore`, then\r\n * `FlightPriceStore`.\r\n */\n\nvar Dispatcher = /*#__PURE__*/function () {\n function Dispatcher() {\n _defineProperty(this, \"_callbacks\", void 0);\n\n _defineProperty(this, \"_isDispatching\", void 0);\n\n _defineProperty(this, \"_isHandled\", void 0);\n\n _defineProperty(this, \"_isPending\", void 0);\n\n _defineProperty(this, \"_lastID\", void 0);\n\n _defineProperty(this, \"_pendingPayload\", void 0);\n\n this._callbacks = {};\n this._isDispatching = false;\n this._isHandled = {};\n this._isPending = {};\n this._lastID = 1;\n }\n /**\r\n * Registers a callback to be invoked with every dispatched payload. Returns\r\n * a token that can be used with `waitFor()`.\r\n */\n\n\n var _proto = Dispatcher.prototype;\n\n _proto.register = function register(callback) {\n var id = _prefix + this._lastID++;\n this._callbacks[id] = callback;\n return id;\n }\n /**\r\n * Removes a callback based on its token.\r\n */\n ;\n\n _proto.unregister = function unregister(id) {\n !this._callbacks[id] ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Dispatcher.unregister(...): `%s` does not map to a registered callback.', id) : invariant(false) : void 0;\n delete this._callbacks[id];\n }\n /**\r\n * Waits for the callbacks specified to be invoked before continuing execution\r\n * of the current callback. This method should only be used by a callback in\r\n * response to a dispatched payload.\r\n */\n ;\n\n _proto.waitFor = function waitFor(ids) {\n !this._isDispatching ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Dispatcher.waitFor(...): Must be invoked while dispatching.') : invariant(false) : void 0;\n\n for (var ii = 0; ii < ids.length; ii++) {\n var id = ids[ii];\n\n if (this._isPending[id]) {\n !this._isHandled[id] ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Dispatcher.waitFor(...): Circular dependency detected while ' + 'waiting for `%s`.', id) : invariant(false) : void 0;\n continue;\n }\n\n !this._callbacks[id] ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Dispatcher.waitFor(...): `%s` does not map to a registered callback.', id) : invariant(false) : void 0;\n\n this._invokeCallback(id);\n }\n }\n /**\r\n * Dispatches a payload to all registered callbacks.\r\n */\n ;\n\n _proto.dispatch = function dispatch(payload) {\n !!this._isDispatching ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch.') : invariant(false) : void 0;\n\n this._startDispatching(payload);\n\n try {\n for (var id in this._callbacks) {\n if (this._isPending[id]) {\n continue;\n }\n\n this._invokeCallback(id);\n }\n } finally {\n this._stopDispatching();\n }\n }\n /**\r\n * Is this Dispatcher currently dispatching.\r\n */\n ;\n\n _proto.isDispatching = function isDispatching() {\n return this._isDispatching;\n }\n /**\r\n * Call the callback stored with the given id. Also do some internal\r\n * bookkeeping.\r\n *\r\n * @internal\r\n */\n ;\n\n _proto._invokeCallback = function _invokeCallback(id) {\n this._isPending[id] = true;\n\n this._callbacks[id](this._pendingPayload);\n\n this._isHandled[id] = true;\n }\n /**\r\n * Set up bookkeeping needed when dispatching.\r\n *\r\n * @internal\r\n */\n ;\n\n _proto._startDispatching = function _startDispatching(payload) {\n for (var id in this._callbacks) {\n this._isPending[id] = false;\n this._isHandled[id] = false;\n }\n\n this._pendingPayload = payload;\n this._isDispatching = true;\n }\n /**\r\n * Clear bookkeeping used for dispatching.\r\n *\r\n * @internal\r\n */\n ;\n\n _proto._stopDispatching = function _stopDispatching() {\n delete this._pendingPayload;\n this._isDispatching = false;\n };\n\n return Dispatcher;\n}();\n\nmodule.exports = Dispatcher;","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n return global[key] = (global[key] || 0) + 1;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","// THIS FILE IS GENERATED - DO NOT EDIT!\n/*!mobile-detect v1.4.5 2021-03-13*/\n/*global module:false, define:false*/\n/*jshint latedef:false*/\n/*!@license Copyright 2013, Heinrich Goebl, License: MIT, see https://github.com/hgoebl/mobile-detect.js*/\n(function (define, undefined) {\ndefine(function () {\n 'use strict';\n\n var impl = {};\n\n impl.mobileDetectRules = {\n \"phones\": {\n \"iPhone\": \"\\\\biPhone\\\\b|\\\\biPod\\\\b\",\n \"BlackBerry\": \"BlackBerry|\\\\bBB10\\\\b|rim[0-9]+|\\\\b(BBA100|BBB100|BBD100|BBE100|BBF100|STH100)\\\\b-[0-9]+\",\n \"Pixel\": \"; \\\\bPixel\\\\b\",\n \"HTC\": \"HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\\\bEVO\\\\b|T-Mobile G1|Z520m|Android [0-9.]+; Pixel\",\n \"Nexus\": \"Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 5X|Nexus 6\",\n \"Dell\": \"Dell[;]? (Streak|Aero|Venue|Venue Pro|Flash|Smoke|Mini 3iX)|XCD28|XCD35|\\\\b001DL\\\\b|\\\\b101DL\\\\b|\\\\bGS01\\\\b\",\n \"Motorola\": \"Motorola|DROIDX|DROID BIONIC|\\\\bDroid\\\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\\\\bMoto E\\\\b|XT1068|XT1092|XT1052\",\n \"Samsung\": \"\\\\bSamsung\\\\b|SM-G950F|SM-G955F|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F|SM-G920F|SM-G920V|SM-G930F|SM-N910C|SM-A310F|GT-I9190|SM-J500FN|SM-G903F|SM-J330F|SM-G610F|SM-G981B|SM-G892A|SM-A530F\",\n \"LG\": \"\\\\bLG\\\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323|M257)|LM-G710\",\n \"Sony\": \"SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533|SOV34|601SO|F8332\",\n \"Asus\": \"Asus.*Galaxy|PadFone.*Mobile\",\n \"Xiaomi\": \"^(?!.*\\\\bx11\\\\b).*xiaomi.*$|POCOPHONE F1|MI 8|Redmi Note 9S|Redmi Note 5A Prime|N2G47H|M2001J2G|M2001J2I|M1805E10A|M2004J11G|M1902F1G|M2002J9G|M2004J19G|M2003J6A1G\",\n \"NokiaLumia\": \"Lumia [0-9]{3,4}\",\n \"Micromax\": \"Micromax.*\\\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\\\b\",\n \"Palm\": \"PalmSource|Palm\",\n \"Vertu\": \"Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature\",\n \"Pantech\": \"PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790\",\n \"Fly\": \"IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250\",\n \"Wiko\": \"KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM\",\n \"iMobile\": \"i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)\",\n \"SimValley\": \"\\\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\\\b\",\n \"Wolfgang\": \"AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q\",\n \"Alcatel\": \"Alcatel\",\n \"Nintendo\": \"Nintendo (3DS|Switch)\",\n \"Amoi\": \"Amoi\",\n \"INQ\": \"INQ\",\n \"OnePlus\": \"ONEPLUS\",\n \"GenericPhone\": \"Tapatalk|PDA;|SAGEM|\\\\bmmp\\\\b|pocket|\\\\bpsp\\\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\\\bwap\\\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser\"\n },\n \"tablets\": {\n \"iPad\": \"iPad|iPad.*Mobile\",\n \"NexusTablet\": \"Android.*Nexus[\\\\s]+(7|9|10)\",\n \"GoogleTablet\": \"Android.*Pixel C\",\n \"SamsungTablet\": \"SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-T116BU|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y?|SM-T280|SM-T817A|SM-T820|SM-W700|SM-P580|SM-T587|SM-P350|SM-P555M|SM-P355M|SM-T113NU|SM-T815Y|SM-T585|SM-T285|SM-T825|SM-W708|SM-T835|SM-T830|SM-T837V|SM-T720|SM-T510|SM-T387V|SM-P610|SM-T290|SM-T515|SM-T590|SM-T595|SM-T725|SM-T817P|SM-P585N0|SM-T395|SM-T295|SM-T865|SM-P610N|SM-P615|SM-T970|SM-T380|SM-T5950|SM-T905|SM-T231|SM-T500|SM-T860\",\n \"Kindle\": \"Kindle|Silk.*Accelerated|Android.*\\\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI|KFFOWI|KFGIWI|KFMEWI)\\\\b|Android.*Silk\\/[0-9.]+ like Chrome\\/[0-9.]+ (?!Mobile)\",\n \"SurfaceTablet\": \"Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)\",\n \"HPTablet\": \"HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10\",\n \"AsusTablet\": \"^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\\\bK00F\\\\b|\\\\bK00C\\\\b|\\\\bK00E\\\\b|\\\\bK00L\\\\b|TX201LA|ME176C|ME102A|\\\\bM80TA\\\\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\\\\bME70C\\\\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z|\\\\bP027\\\\b|\\\\bP024\\\\b|\\\\bP00C\\\\b\",\n \"BlackBerryTablet\": \"PlayBook|RIM Tablet\",\n \"HTCtablet\": \"HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410\",\n \"MotorolaTablet\": \"xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617\",\n \"NookTablet\": \"Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2\",\n \"AcerTablet\": \"Android.*; \\\\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\\\\b|W3-810|\\\\bA3-A10\\\\b|\\\\bA3-A11\\\\b|\\\\bA3-A20\\\\b|\\\\bA3-A30|A3-A40\",\n \"ToshibaTablet\": \"Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO\",\n \"LGTablet\": \"\\\\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\\\\b\",\n \"FujitsuTablet\": \"Android.*\\\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\\\b\",\n \"PrestigioTablet\": \"PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002\",\n \"LenovoTablet\": \"Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-850M|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)|TB-X103F|TB-X304X|TB-X304F|TB-X304L|TB-X505F|TB-X505L|TB-X505X|TB-X605F|TB-X605L|TB-8703F|TB-8703X|TB-8703N|TB-8704N|TB-8704F|TB-8704X|TB-8704V|TB-7304F|TB-7304I|TB-7304X|Tab2A7-10F|Tab2A7-20F|TB2-X30L|YT3-X50L|YT3-X50F|YT3-X50M|YT-X705F|YT-X703F|YT-X703L|YT-X705L|YT-X705X|TB2-X30F|TB2-X30L|TB2-X30M|A2107A-F|A2107A-H|TB3-730F|TB3-730M|TB3-730X|TB-7504F|TB-7504X|TB-X704F|TB-X104F|TB3-X70F|TB-X705F|TB-8504F|TB3-X70L|TB3-710F|TB-X704L\",\n \"DellTablet\": \"Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7\",\n \"YarvikTablet\": \"Android.*\\\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\\\b\",\n \"MedionTablet\": \"Android.*\\\\bOYO\\\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB\",\n \"ArnovaTablet\": \"97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2\",\n \"IntensoTablet\": \"INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004\",\n \"IRUTablet\": \"M702pro\",\n \"MegafonTablet\": \"MegaFon V9|\\\\bZTE V9\\\\b|Android.*\\\\bMT7A\\\\b\",\n \"EbodaTablet\": \"E-Boda (Supreme|Impresspeed|Izzycomm|Essential)\",\n \"AllViewTablet\": \"Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)\",\n \"ArchosTablet\": \"\\\\b(101G9|80G9|A101IT)\\\\b|Qilive 97R|Archos5|\\\\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|c|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\\\\b\",\n \"AinolTablet\": \"NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark\",\n \"NokiaLumiaTablet\": \"Lumia 2520\",\n \"SonyTablet\": \"Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP641|SGP612|SOT31|SGP771|SGP611|SGP612|SGP712\",\n \"PhilipsTablet\": \"\\\\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\\\\b\",\n \"CubeTablet\": \"Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT\",\n \"CobyTablet\": \"MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010\",\n \"MIDTablet\": \"M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10\",\n \"MSITablet\": \"MSI \\\\b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\\\\b\",\n \"SMiTTablet\": \"Android.*(\\\\bMID\\\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)\",\n \"RockChipTablet\": \"Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A\",\n \"FlyTablet\": \"IQ310|Fly Vision\",\n \"bqTablet\": \"Android.*(bq)?.*\\\\b(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris ([E|M]10|M8))\\\\b|Maxwell.*Lite|Maxwell.*Plus\",\n \"HuaweiTablet\": \"MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim|M2-A01L|BAH-L09|BAH-W09|AGS-L09|CMR-AL19\",\n \"NecTablet\": \"\\\\bN-06D|\\\\bN-08D\",\n \"PantechTablet\": \"Pantech.*P4100\",\n \"BronchoTablet\": \"Broncho.*(N701|N708|N802|a710)\",\n \"VersusTablet\": \"TOUCHPAD.*[78910]|\\\\bTOUCHTAB\\\\b\",\n \"ZyncTablet\": \"z1000|Z99 2G|z930|z990|z909|Z919|z900\",\n \"PositivoTablet\": \"TB07STA|TB10STA|TB07FTA|TB10FTA\",\n \"NabiTablet\": \"Android.*\\\\bNabi\",\n \"KoboTablet\": \"Kobo Touch|\\\\bK080\\\\b|\\\\bVox\\\\b Build|\\\\bArc\\\\b Build\",\n \"DanewTablet\": \"DSlide.*\\\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\\\b\",\n \"TexetTablet\": \"NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE\",\n \"PlaystationTablet\": \"Playstation.*(Portable|Vita)\",\n \"TrekstorTablet\": \"ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab\",\n \"PyleAudioTablet\": \"\\\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\\\b\",\n \"AdvanTablet\": \"Android.* \\\\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\\\b \",\n \"DanyTechTablet\": \"Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1\",\n \"GalapadTablet\": \"Android [0-9.]+; [a-z-]+; \\\\bG1\\\\b\",\n \"MicromaxTablet\": \"Funbook|Micromax.*\\\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\\\b\",\n \"KarbonnTablet\": \"Android.*\\\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\\\b\",\n \"AllFineTablet\": \"Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide\",\n \"PROSCANTablet\": \"\\\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\\\b\",\n \"YONESTablet\": \"BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026\",\n \"ChangJiaTablet\": \"TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503\",\n \"GUTablet\": \"TX-A1301|TX-M9002|Q702|kf026\",\n \"PointOfViewTablet\": \"TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10\",\n \"OvermaxTablet\": \"OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)|Qualcore 1027\",\n \"HCLTablet\": \"HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync\",\n \"DPSTablet\": \"DPS Dream 9|DPS Dual 7\",\n \"VistureTablet\": \"V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10\",\n \"CrestaTablet\": \"CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989\",\n \"MediatekTablet\": \"\\\\bMT8125|MT8389|MT8135|MT8377\\\\b\",\n \"ConcordeTablet\": \"Concorde([ ]+)?Tab|ConCorde ReadMan\",\n \"GoCleverTablet\": \"GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042\",\n \"ModecomTablet\": \"FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003\",\n \"VoninoTablet\": \"\\\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\\\bQ8\\\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\\\b\",\n \"ECSTablet\": \"V07OT2|TM105A|S10OT1|TR10CS1\",\n \"StorexTablet\": \"eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab\",\n \"VodafoneTablet\": \"SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497|VFD 1400\",\n \"EssentielBTablet\": \"Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2\",\n \"RossMoorTablet\": \"RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711\",\n \"iMobileTablet\": \"i-mobile i-note\",\n \"TolinoTablet\": \"tolino tab [0-9.]+|tolino shine\",\n \"AudioSonicTablet\": \"\\\\bC-22Q|T7-QC|T-17B|T-17P\\\\b\",\n \"AMPETablet\": \"Android.* A78 \",\n \"SkkTablet\": \"Android.* (SKYPAD|PHOENIX|CYCLOPS)\",\n \"TecnoTablet\": \"TECNO P9|TECNO DP8D\",\n \"JXDTablet\": \"Android.* \\\\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\\\b\",\n \"iJoyTablet\": \"Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)\",\n \"FX2Tablet\": \"FX2 PAD7|FX2 PAD10\",\n \"XoroTablet\": \"KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151\",\n \"ViewsonicTablet\": \"ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a\",\n \"VerizonTablet\": \"QTAQZ3|QTAIR7|QTAQTZ3|QTASUN1|QTASUN2|QTAXIA1\",\n \"OdysTablet\": \"LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\\\\bXELIO\\\\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10\",\n \"CaptivaTablet\": \"CAPTIVA PAD\",\n \"IconbitTablet\": \"NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S\",\n \"TeclastTablet\": \"T98 4G|\\\\bP80\\\\b|\\\\bX90HD\\\\b|X98 Air|X98 Air 3G|\\\\bX89\\\\b|P80 3G|\\\\bX80h\\\\b|P98 Air|\\\\bX89HD\\\\b|P98 3G|\\\\bP90HD\\\\b|P89 3G|X98 3G|\\\\bP70h\\\\b|P79HD 3G|G18d 3G|\\\\bP79HD\\\\b|\\\\bP89s\\\\b|\\\\bA88\\\\b|\\\\bP10HD\\\\b|\\\\bP19HD\\\\b|G18 3G|\\\\bP78HD\\\\b|\\\\bA78\\\\b|\\\\bP75\\\\b|G17s 3G|G17h 3G|\\\\bP85t\\\\b|\\\\bP90\\\\b|\\\\bP11\\\\b|\\\\bP98t\\\\b|\\\\bP98HD\\\\b|\\\\bG18d\\\\b|\\\\bP85s\\\\b|\\\\bP11HD\\\\b|\\\\bP88s\\\\b|\\\\bA80HD\\\\b|\\\\bA80se\\\\b|\\\\bA10h\\\\b|\\\\bP89\\\\b|\\\\bP78s\\\\b|\\\\bG18\\\\b|\\\\bP85\\\\b|\\\\bA70h\\\\b|\\\\bA70\\\\b|\\\\bG17\\\\b|\\\\bP18\\\\b|\\\\bA80s\\\\b|\\\\bA11s\\\\b|\\\\bP88HD\\\\b|\\\\bA80h\\\\b|\\\\bP76s\\\\b|\\\\bP76h\\\\b|\\\\bP98\\\\b|\\\\bA10HD\\\\b|\\\\bP78\\\\b|\\\\bP88\\\\b|\\\\bA11\\\\b|\\\\bA10t\\\\b|\\\\bP76a\\\\b|\\\\bP76t\\\\b|\\\\bP76e\\\\b|\\\\bP85HD\\\\b|\\\\bP85a\\\\b|\\\\bP86\\\\b|\\\\bP75HD\\\\b|\\\\bP76v\\\\b|\\\\bA12\\\\b|\\\\bP75a\\\\b|\\\\bA15\\\\b|\\\\bP76Ti\\\\b|\\\\bP81HD\\\\b|\\\\bA10\\\\b|\\\\bT760VE\\\\b|\\\\bT720HD\\\\b|\\\\bP76\\\\b|\\\\bP73\\\\b|\\\\bP71\\\\b|\\\\bP72\\\\b|\\\\bT720SE\\\\b|\\\\bC520Ti\\\\b|\\\\bT760\\\\b|\\\\bT720VE\\\\b|T720-3GE|T720-WiFi\",\n \"OndaTablet\": \"\\\\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\\\\b[\\\\s]+|V10 \\\\b4G\\\\b\",\n \"JaytechTablet\": \"TPC-PA762\",\n \"BlaupunktTablet\": \"Endeavour 800NG|Endeavour 1010\",\n \"DigmaTablet\": \"\\\\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\\\\b\",\n \"EvolioTablet\": \"ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\\\\bEvotab\\\\b|\\\\bNeura\\\\b\",\n \"LavaTablet\": \"QPAD E704|\\\\bIvoryS\\\\b|E-TAB IVORY|\\\\bE-TAB\\\\b\",\n \"AocTablet\": \"MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712\",\n \"MpmanTablet\": \"MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\\\\bMPG7\\\\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010\",\n \"CelkonTablet\": \"CT695|CT888|CT[\\\\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\\\\bCT-1\\\\b\",\n \"WolderTablet\": \"miTab \\\\b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\\\\b\",\n \"MediacomTablet\": \"M-MPI10C3G|M-SP10EG|M-SP10EGP|M-SP10HXAH|M-SP7HXAH|M-SP10HXBH|M-SP8HXAH|M-SP8MXA\",\n \"MiTablet\": \"\\\\bMI PAD\\\\b|\\\\bHM NOTE 1W\\\\b\",\n \"NibiruTablet\": \"Nibiru M1|Nibiru Jupiter One\",\n \"NexoTablet\": \"NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI\",\n \"LeaderTablet\": \"TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100\",\n \"UbislateTablet\": \"UbiSlate[\\\\s]?7C\",\n \"PocketBookTablet\": \"Pocketbook\",\n \"KocasoTablet\": \"\\\\b(TB-1207)\\\\b\",\n \"HisenseTablet\": \"\\\\b(F5281|E2371)\\\\b\",\n \"Hudl\": \"Hudl HT7S3|Hudl 2\",\n \"TelstraTablet\": \"T-Hub2\",\n \"GenericTablet\": \"Android.*\\\\b97D\\\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\\\bA7EB\\\\b|CatNova8|A1_07|CT704|CT1002|\\\\bM721\\\\b|rk30sdk|\\\\bEVOTAB\\\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\\\\bM6pro\\\\b|CT1020W|arc 10HD|\\\\bTP750\\\\b|\\\\bQTAQZ3\\\\b|WVT101|TM1088|KT107\"\n },\n \"oss\": {\n \"AndroidOS\": \"Android\",\n \"BlackBerryOS\": \"blackberry|\\\\bBB10\\\\b|rim tablet os\",\n \"PalmOS\": \"PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino\",\n \"SymbianOS\": \"Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\\\bS60\\\\b\",\n \"WindowsMobileOS\": \"Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Windows Mobile|Windows Phone [0-9.]+|WCE;\",\n \"WindowsPhoneOS\": \"Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;\",\n \"iOS\": \"\\\\biPhone.*Mobile|\\\\biPod|\\\\biPad|AppleCoreMedia\",\n \"iPadOS\": \"CPU OS 13\",\n \"SailfishOS\": \"Sailfish\",\n \"MeeGoOS\": \"MeeGo\",\n \"MaemoOS\": \"Maemo\",\n \"JavaOS\": \"J2ME\\/|\\\\bMIDP\\\\b|\\\\bCLDC\\\\b\",\n \"webOS\": \"webOS|hpwOS\",\n \"badaOS\": \"\\\\bBada\\\\b\",\n \"BREWOS\": \"BREW\"\n },\n \"uas\": {\n \"Chrome\": \"\\\\bCrMo\\\\b|CriOS|Android.*Chrome\\/[.0-9]* (Mobile)?\",\n \"Dolfin\": \"\\\\bDolfin\\\\b\",\n \"Opera\": \"Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR\\/[0-9.]+$|Coast\\/[0-9.]+\",\n \"Skyfire\": \"Skyfire\",\n \"Edge\": \"\\\\bEdgiOS\\\\b|Mobile Safari\\/[.0-9]* Edge\",\n \"IE\": \"IEMobile|MSIEMobile\",\n \"Firefox\": \"fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS\",\n \"Bolt\": \"bolt\",\n \"TeaShark\": \"teashark\",\n \"Blazer\": \"Blazer\",\n \"Safari\": \"Version((?!\\\\bEdgiOS\\\\b).)*Mobile.*Safari|Safari.*Mobile|MobileSafari\",\n \"WeChat\": \"\\\\bMicroMessenger\\\\b\",\n \"UCBrowser\": \"UC.*Browser|UCWEB\",\n \"baiduboxapp\": \"baiduboxapp\",\n \"baidubrowser\": \"baidubrowser\",\n \"DiigoBrowser\": \"DiigoBrowser\",\n \"Mercury\": \"\\\\bMercury\\\\b\",\n \"ObigoBrowser\": \"Obigo\",\n \"NetFront\": \"NF-Browser\",\n \"GenericBrowser\": \"NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger\",\n \"PaleMoon\": \"Android.*PaleMoon|Mobile.*PaleMoon\"\n },\n \"props\": {\n \"Mobile\": \"Mobile\\/[VER]\",\n \"Build\": \"Build\\/[VER]\",\n \"Version\": \"Version\\/[VER]\",\n \"VendorID\": \"VendorID\\/[VER]\",\n \"iPad\": \"iPad.*CPU[a-z ]+[VER]\",\n \"iPhone\": \"iPhone.*CPU[a-z ]+[VER]\",\n \"iPod\": \"iPod.*CPU[a-z ]+[VER]\",\n \"Kindle\": \"Kindle\\/[VER]\",\n \"Chrome\": [\n \"Chrome\\/[VER]\",\n \"CriOS\\/[VER]\",\n \"CrMo\\/[VER]\"\n ],\n \"Coast\": [\n \"Coast\\/[VER]\"\n ],\n \"Dolfin\": \"Dolfin\\/[VER]\",\n \"Firefox\": [\n \"Firefox\\/[VER]\",\n \"FxiOS\\/[VER]\"\n ],\n \"Fennec\": \"Fennec\\/[VER]\",\n \"Edge\": \"Edge\\/[VER]\",\n \"IE\": [\n \"IEMobile\\/[VER];\",\n \"IEMobile [VER]\",\n \"MSIE [VER];\",\n \"Trident\\/[0-9.]+;.*rv:[VER]\"\n ],\n \"NetFront\": \"NetFront\\/[VER]\",\n \"NokiaBrowser\": \"NokiaBrowser\\/[VER]\",\n \"Opera\": [\n \" OPR\\/[VER]\",\n \"Opera Mini\\/[VER]\",\n \"Version\\/[VER]\"\n ],\n \"Opera Mini\": \"Opera Mini\\/[VER]\",\n \"Opera Mobi\": \"Version\\/[VER]\",\n \"UCBrowser\": [\n \"UCWEB[VER]\",\n \"UC.*Browser\\/[VER]\"\n ],\n \"MQQBrowser\": \"MQQBrowser\\/[VER]\",\n \"MicroMessenger\": \"MicroMessenger\\/[VER]\",\n \"baiduboxapp\": \"baiduboxapp\\/[VER]\",\n \"baidubrowser\": \"baidubrowser\\/[VER]\",\n \"SamsungBrowser\": \"SamsungBrowser\\/[VER]\",\n \"Iron\": \"Iron\\/[VER]\",\n \"Safari\": [\n \"Version\\/[VER]\",\n \"Safari\\/[VER]\"\n ],\n \"Skyfire\": \"Skyfire\\/[VER]\",\n \"Tizen\": \"Tizen\\/[VER]\",\n \"Webkit\": \"webkit[ \\/][VER]\",\n \"PaleMoon\": \"PaleMoon\\/[VER]\",\n \"SailfishBrowser\": \"SailfishBrowser\\/[VER]\",\n \"Gecko\": \"Gecko\\/[VER]\",\n \"Trident\": \"Trident\\/[VER]\",\n \"Presto\": \"Presto\\/[VER]\",\n \"Goanna\": \"Goanna\\/[VER]\",\n \"iOS\": \" \\\\bi?OS\\\\b [VER][ ;]{1}\",\n \"Android\": \"Android [VER]\",\n \"Sailfish\": \"Sailfish [VER]\",\n \"BlackBerry\": [\n \"BlackBerry[\\\\w]+\\/[VER]\",\n \"BlackBerry.*Version\\/[VER]\",\n \"Version\\/[VER]\"\n ],\n \"BREW\": \"BREW [VER]\",\n \"Java\": \"Java\\/[VER]\",\n \"Windows Phone OS\": [\n \"Windows Phone OS [VER]\",\n \"Windows Phone [VER]\"\n ],\n \"Windows Phone\": \"Windows Phone [VER]\",\n \"Windows CE\": \"Windows CE\\/[VER]\",\n \"Windows NT\": \"Windows NT [VER]\",\n \"Symbian\": [\n \"SymbianOS\\/[VER]\",\n \"Symbian\\/[VER]\"\n ],\n \"webOS\": [\n \"webOS\\/[VER]\",\n \"hpwOS\\/[VER];\"\n ]\n },\n \"utils\": {\n \"Bot\": \"Googlebot|facebookexternalhit|Google-AMPHTML|s~amp-validator|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom|contentkingapp|AspiegelBot\",\n \"MobileBot\": \"Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker\\/M1A1-R2D2\",\n \"DesktopMode\": \"WPDesktop\",\n \"TV\": \"SonyDTV|HbbTV\",\n \"WebKit\": \"(webkit)[ \\/]([\\\\w.]+)\",\n \"Console\": \"\\\\b(Nintendo|Nintendo WiiU|Nintendo 3DS|Nintendo Switch|PLAYSTATION|Xbox)\\\\b\",\n \"Watch\": \"SM-V700\"\n }\n};\n\n // following patterns come from http://detectmobilebrowsers.com/\n impl.detectMobileBrowsers = {\n fullPattern: /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,\n shortPattern: /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i,\n tabletPattern: /android|ipad|playbook|silk/i\n };\n\n var hasOwnProp = Object.prototype.hasOwnProperty,\n isArray;\n\n impl.FALLBACK_PHONE = 'UnknownPhone';\n impl.FALLBACK_TABLET = 'UnknownTablet';\n impl.FALLBACK_MOBILE = 'UnknownMobile';\n\n isArray = ('isArray' in Array) ?\n Array.isArray : function (value) { return Object.prototype.toString.call(value) === '[object Array]'; };\n\n function equalIC(a, b) {\n return a != null && b != null && a.toLowerCase() === b.toLowerCase();\n }\n\n function containsIC(array, value) {\n var valueLC, i, len = array.length;\n if (!len || !value) {\n return false;\n }\n valueLC = value.toLowerCase();\n for (i = 0; i < len; ++i) {\n if (valueLC === array[i].toLowerCase()) {\n return true;\n }\n }\n return false;\n }\n\n function convertPropsToRegExp(object) {\n for (var key in object) {\n if (hasOwnProp.call(object, key)) {\n object[key] = new RegExp(object[key], 'i');\n }\n }\n }\n\n function prepareUserAgent(userAgent) {\n return (userAgent || '').substr(0, 500); // mitigate vulnerable to ReDoS\n }\n\n (function init() {\n var key, values, value, i, len, verPos, mobileDetectRules = impl.mobileDetectRules;\n for (key in mobileDetectRules.props) {\n if (hasOwnProp.call(mobileDetectRules.props, key)) {\n values = mobileDetectRules.props[key];\n if (!isArray(values)) {\n values = [values];\n }\n len = values.length;\n for (i = 0; i < len; ++i) {\n value = values[i];\n verPos = value.indexOf('[VER]');\n if (verPos >= 0) {\n value = value.substring(0, verPos) + '([\\\\w._\\\\+]+)' + value.substring(verPos + 5);\n }\n values[i] = new RegExp(value, 'i');\n }\n mobileDetectRules.props[key] = values;\n }\n }\n convertPropsToRegExp(mobileDetectRules.oss);\n convertPropsToRegExp(mobileDetectRules.phones);\n convertPropsToRegExp(mobileDetectRules.tablets);\n convertPropsToRegExp(mobileDetectRules.uas);\n convertPropsToRegExp(mobileDetectRules.utils);\n\n // copy some patterns to oss0 which are tested first (see issue#15)\n mobileDetectRules.oss0 = {\n WindowsPhoneOS: mobileDetectRules.oss.WindowsPhoneOS,\n WindowsMobileOS: mobileDetectRules.oss.WindowsMobileOS\n };\n }());\n\n /**\n * Test userAgent string against a set of rules and find the first matched key.\n * @param {Object} rules (key is String, value is RegExp)\n * @param {String} userAgent the navigator.userAgent (or HTTP-Header 'User-Agent').\n * @returns {String|null} the matched key if found, otherwise null\n * @private\n */\n impl.findMatch = function(rules, userAgent) {\n for (var key in rules) {\n if (hasOwnProp.call(rules, key)) {\n if (rules[key].test(userAgent)) {\n return key;\n }\n }\n }\n return null;\n };\n\n /**\n * Test userAgent string against a set of rules and return an array of matched keys.\n * @param {Object} rules (key is String, value is RegExp)\n * @param {String} userAgent the navigator.userAgent (or HTTP-Header 'User-Agent').\n * @returns {Array} an array of matched keys, may be empty when there is no match, but not null\n * @private\n */\n impl.findMatches = function(rules, userAgent) {\n var result = [];\n for (var key in rules) {\n if (hasOwnProp.call(rules, key)) {\n if (rules[key].test(userAgent)) {\n result.push(key);\n }\n }\n }\n return result;\n };\n\n /**\n * Check the version of the given property in the User-Agent.\n *\n * @param {String} propertyName\n * @param {String} userAgent\n * @return {String} version or null if version not found\n * @private\n */\n impl.getVersionStr = function (propertyName, userAgent) {\n var props = impl.mobileDetectRules.props, patterns, i, len, match;\n if (hasOwnProp.call(props, propertyName)) {\n patterns = props[propertyName];\n len = patterns.length;\n for (i = 0; i < len; ++i) {\n match = patterns[i].exec(userAgent);\n if (match !== null) {\n return match[1];\n }\n }\n }\n return null;\n };\n\n /**\n * Check the version of the given property in the User-Agent.\n * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)\n *\n * @param {String} propertyName\n * @param {String} userAgent\n * @return {Number} version or NaN if version not found\n * @private\n */\n impl.getVersion = function (propertyName, userAgent) {\n var version = impl.getVersionStr(propertyName, userAgent);\n return version ? impl.prepareVersionNo(version) : NaN;\n };\n\n /**\n * Prepare the version number.\n *\n * @param {String} version\n * @return {Number} the version number as a floating number\n * @private\n */\n impl.prepareVersionNo = function (version) {\n var numbers;\n\n numbers = version.split(/[a-z._ \\/\\-]/i);\n if (numbers.length === 1) {\n version = numbers[0];\n }\n if (numbers.length > 1) {\n version = numbers[0] + '.';\n numbers.shift();\n version += numbers.join('');\n }\n return Number(version);\n };\n\n impl.isMobileFallback = function (userAgent) {\n return impl.detectMobileBrowsers.fullPattern.test(userAgent) ||\n impl.detectMobileBrowsers.shortPattern.test(userAgent.substr(0,4));\n };\n\n impl.isTabletFallback = function (userAgent) {\n return impl.detectMobileBrowsers.tabletPattern.test(userAgent);\n };\n\n impl.prepareDetectionCache = function (cache, userAgent, maxPhoneWidth) {\n if (cache.mobile !== undefined) {\n return;\n }\n var phone, tablet, phoneSized;\n\n // first check for stronger tablet rules, then phone (see issue#5)\n tablet = impl.findMatch(impl.mobileDetectRules.tablets, userAgent);\n if (tablet) {\n cache.mobile = cache.tablet = tablet;\n cache.phone = null;\n return; // unambiguously identified as tablet\n }\n\n phone = impl.findMatch(impl.mobileDetectRules.phones, userAgent);\n if (phone) {\n cache.mobile = cache.phone = phone;\n cache.tablet = null;\n return; // unambiguously identified as phone\n }\n\n // our rules haven't found a match -> try more general fallback rules\n if (impl.isMobileFallback(userAgent)) {\n phoneSized = MobileDetect.isPhoneSized(maxPhoneWidth);\n if (phoneSized === undefined) {\n cache.mobile = impl.FALLBACK_MOBILE;\n cache.tablet = cache.phone = null;\n } else if (phoneSized) {\n cache.mobile = cache.phone = impl.FALLBACK_PHONE;\n cache.tablet = null;\n } else {\n cache.mobile = cache.tablet = impl.FALLBACK_TABLET;\n cache.phone = null;\n }\n } else if (impl.isTabletFallback(userAgent)) {\n cache.mobile = cache.tablet = impl.FALLBACK_TABLET;\n cache.phone = null;\n } else {\n // not mobile at all!\n cache.mobile = cache.tablet = cache.phone = null;\n }\n };\n\n // t is a reference to a MobileDetect instance\n impl.mobileGrade = function (t) {\n // impl note:\n // To keep in sync w/ Mobile_Detect.php easily, the following code is tightly aligned to the PHP version.\n // When changes are made in Mobile_Detect.php, copy this method and replace:\n // $this-> / t.\n // self::MOBILE_GRADE_(.) / '$1'\n // , self::VERSION_TYPE_FLOAT / (nothing)\n // isIOS() / os('iOS')\n // [reg] / (nothing) <-- jsdelivr complaining about unescaped unicode character U+00AE\n var $isMobile = t.mobile() !== null;\n\n if (\n // Apple iOS 3.2-5.1 - Tested on the original iPad (4.3 / 5.0), iPad 2 (4.3), iPad 3 (5.1), original iPhone (3.1), iPhone 3 (3.2), 3GS (4.3), 4 (4.3 / 5.0), and 4S (5.1)\n t.os('iOS') && t.version('iPad')>=4.3 ||\n t.os('iOS') && t.version('iPhone')>=3.1 ||\n t.os('iOS') && t.version('iPod')>=3.1 ||\n\n // Android 2.1-2.3 - Tested on the HTC Incredible (2.2), original Droid (2.2), HTC Aria (2.1), Google Nexus S (2.3). Functional on 1.5 & 1.6 but performance may be sluggish, tested on Google G1 (1.5)\n // Android 3.1 (Honeycomb) - Tested on the Samsung Galaxy Tab 10.1 and Motorola XOOM\n // Android 4.0 (ICS) - Tested on a Galaxy Nexus. Note: transition performance can be poor on upgraded devices\n // Android 4.1 (Jelly Bean) - Tested on a Galaxy Nexus and Galaxy 7\n ( t.version('Android')>2.1 && t.is('Webkit') ) ||\n\n // Windows Phone 7-7.5 - Tested on the HTC Surround (7.0) HTC Trophy (7.5), LG-E900 (7.5), Nokia Lumia 800\n t.version('Windows Phone OS')>=7.0 ||\n\n // Blackberry 7 - Tested on BlackBerry Torch 9810\n // Blackberry 6.0 - Tested on the Torch 9800 and Style 9670\n t.is('BlackBerry') && t.version('BlackBerry')>=6.0 ||\n // Blackberry Playbook (1.0-2.0) - Tested on PlayBook\n t.match('Playbook.*Tablet') ||\n\n // Palm WebOS (1.4-2.0) - Tested on the Palm Pixi (1.4), Pre (1.4), Pre 2 (2.0)\n ( t.version('webOS')>=1.4 && t.match('Palm|Pre|Pixi') ) ||\n // Palm WebOS 3.0 - Tested on HP TouchPad\n t.match('hp.*TouchPad') ||\n\n // Firefox Mobile (12 Beta) - Tested on Android 2.3 device\n ( t.is('Firefox') && t.version('Firefox')>=12 ) ||\n\n // Chrome for Android - Tested on Android 4.0, 4.1 device\n ( t.is('Chrome') && t.is('AndroidOS') && t.version('Android')>=4.0 ) ||\n\n // Skyfire 4.1 - Tested on Android 2.3 device\n ( t.is('Skyfire') && t.version('Skyfire')>=4.1 && t.is('AndroidOS') && t.version('Android')>=2.3 ) ||\n\n // Opera Mobile 11.5-12: Tested on Android 2.3\n ( t.is('Opera') && t.version('Opera Mobi')>11 && t.is('AndroidOS') ) ||\n\n // Meego 1.2 - Tested on Nokia 950 and N9\n t.is('MeeGoOS') ||\n\n // Tizen (pre-release) - Tested on early hardware\n t.is('Tizen') ||\n\n // Samsung Bada 2.0 - Tested on a Samsung Wave 3, Dolphin browser\n // @todo: more tests here!\n t.is('Dolfin') && t.version('Bada')>=2.0 ||\n\n // UC Browser - Tested on Android 2.3 device\n ( (t.is('UC Browser') || t.is('Dolfin')) && t.version('Android')>=2.3 ) ||\n\n // Kindle 3 and Fire - Tested on the built-in WebKit browser for each\n ( t.match('Kindle Fire') ||\n t.is('Kindle') && t.version('Kindle')>=3.0 ) ||\n\n // Nook Color 1.4.1 - Tested on original Nook Color, not Nook Tablet\n t.is('AndroidOS') && t.is('NookTablet') ||\n\n // Chrome Desktop 11-21 - Tested on OS X 10.7 and Windows 7\n t.version('Chrome')>=11 && !$isMobile ||\n\n // Safari Desktop 4-5 - Tested on OS X 10.7 and Windows 7\n t.version('Safari')>=5.0 && !$isMobile ||\n\n // Firefox Desktop 4-13 - Tested on OS X 10.7 and Windows 7\n t.version('Firefox')>=4.0 && !$isMobile ||\n\n // Internet Explorer 7-9 - Tested on Windows XP, Vista and 7\n t.version('MSIE')>=7.0 && !$isMobile ||\n\n // Opera Desktop 10-12 - Tested on OS X 10.7 and Windows 7\n // @reference: http://my.opera.com/community/openweb/idopera/\n t.version('Opera')>=10 && !$isMobile\n\n ){\n return 'A';\n }\n\n if (\n t.os('iOS') && t.version('iPad')<4.3 ||\n t.os('iOS') && t.version('iPhone')<3.1 ||\n t.os('iOS') && t.version('iPod')<3.1 ||\n\n // Blackberry 5.0: Tested on the Storm 2 9550, Bold 9770\n t.is('Blackberry') && t.version('BlackBerry')>=5 && t.version('BlackBerry')<6 ||\n\n //Opera Mini (5.0-6.5) - Tested on iOS 3.2/4.3 and Android 2.3\n ( t.version('Opera Mini')>=5.0 && t.version('Opera Mini')<=6.5 &&\n (t.version('Android')>=2.3 || t.is('iOS')) ) ||\n\n // Nokia Symbian^3 - Tested on Nokia N8 (Symbian^3), C7 (Symbian^3), also works on N97 (Symbian^1)\n t.match('NokiaN8|NokiaC7|N97.*Series60|Symbian/3') ||\n\n // @todo: report this (tested on Nokia N71)\n t.version('Opera Mobi')>=11 && t.is('SymbianOS')\n ){\n return 'B';\n }\n\n if (\n // Blackberry 4.x - Tested on the Curve 8330\n t.version('BlackBerry')<5.0 ||\n // Windows Mobile - Tested on the HTC Leo (WinMo 5.2)\n t.match('MSIEMobile|Windows CE.*Mobile') || t.version('Windows Mobile')<=5.2\n\n ){\n return 'C';\n }\n\n //All older smartphone platforms and featurephones - Any device that doesn't support media queries\n //will receive the basic, C grade experience.\n return 'C';\n };\n\n impl.detectOS = function (ua) {\n return impl.findMatch(impl.mobileDetectRules.oss0, ua) ||\n impl.findMatch(impl.mobileDetectRules.oss, ua);\n };\n\n impl.getDeviceSmallerSide = function () {\n return window.screen.width < window.screen.height ?\n window.screen.width :\n window.screen.height;\n };\n\n /**\n * Constructor for MobileDetect object.\n *
    \n * Such an object will keep a reference to the given user-agent string and cache most of the detect queries.
    \n *
    \n *\n * @example
    \n     *     var md = new MobileDetect(window.navigator.userAgent);\n     *     if (md.mobile()) {\n     *         location.href = (md.mobileGrade() === 'A') ? '/mobile/' : '/lynx/';\n     *     }\n     * 
    \n *\n * @param {string} userAgent typically taken from window.navigator.userAgent or http_header['User-Agent']\n * @param {number} [maxPhoneWidth=600] only for browsers specify a value for the maximum\n * width of smallest device side (in logical \"CSS\" pixels) until a device detected as mobile will be handled\n * as phone.\n * This is only used in cases where the device cannot be classified as phone or tablet.
    \n * See Declaring Tablet Layouts\n * for Android.
    \n * If you provide a value < 0, then this \"fuzzy\" check is disabled.\n * @constructor\n * @global\n */\n function MobileDetect(userAgent, maxPhoneWidth) {\n this.ua = prepareUserAgent(userAgent);\n this._cache = {};\n //600dp is typical 7\" tablet minimum width\n this.maxPhoneWidth = maxPhoneWidth || 600;\n }\n\n MobileDetect.prototype = {\n constructor: MobileDetect,\n\n /**\n * Returns the detected phone or tablet type or null if it is not a mobile device.\n *
    \n * For a list of possible return values see {@link MobileDetect#phone} and {@link MobileDetect#tablet}.
    \n *
    \n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n * the patterns of detectmobilebrowsers.com. If this test\n * is positive, a value of UnknownPhone, UnknownTablet or\n * UnknownMobile is returned.
    \n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
    \n *
    \n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\n * and UnknownMobile, so you will get UnknownMobile here.
    \n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\n *
    \n * In most cases you will use the return value just as a boolean.\n *\n * @returns {String} the key for the phone family or tablet family, e.g. \"Nexus\".\n * @function MobileDetect#mobile\n */\n mobile: function () {\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n return this._cache.mobile;\n },\n\n /**\n * Returns the detected phone type/family string or null.\n *
    \n * The returned tablet (family or producer) is one of following keys:
    \n *
    iPhone, BlackBerry, Pixel, HTC, Nexus, Dell, Motorola, Samsung, LG, Sony, Asus,\n * Xiaomi, NokiaLumia, Micromax, Palm, Vertu, Pantech, Fly, Wiko, iMobile,\n * SimValley, Wolfgang, Alcatel, Nintendo, Amoi, INQ, OnePlus, GenericPhone
    \n *
    \n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n * the patterns of detectmobilebrowsers.com. If this test\n * is positive, a value of UnknownPhone or UnknownMobile is returned.
    \n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
    \n *
    \n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\n * and UnknownMobile, so you will get null here, while {@link MobileDetect#mobile}\n * will return UnknownMobile.
    \n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\n *
    \n * In most cases you will use the return value just as a boolean.\n *\n * @returns {String} the key of the phone family or producer, e.g. \"iPhone\"\n * @function MobileDetect#phone\n */\n phone: function () {\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n return this._cache.phone;\n },\n\n /**\n * Returns the detected tablet type/family string or null.\n *
    \n * The returned tablet (family or producer) is one of following keys:
    \n *
    iPad, NexusTablet, GoogleTablet, SamsungTablet, Kindle, SurfaceTablet,\n * HPTablet, AsusTablet, BlackBerryTablet, HTCtablet, MotorolaTablet, NookTablet,\n * AcerTablet, ToshibaTablet, LGTablet, FujitsuTablet, PrestigioTablet,\n * LenovoTablet, DellTablet, YarvikTablet, MedionTablet, ArnovaTablet,\n * IntensoTablet, IRUTablet, MegafonTablet, EbodaTablet, AllViewTablet,\n * ArchosTablet, AinolTablet, NokiaLumiaTablet, SonyTablet, PhilipsTablet,\n * CubeTablet, CobyTablet, MIDTablet, MSITablet, SMiTTablet, RockChipTablet,\n * FlyTablet, bqTablet, HuaweiTablet, NecTablet, PantechTablet, BronchoTablet,\n * VersusTablet, ZyncTablet, PositivoTablet, NabiTablet, KoboTablet, DanewTablet,\n * TexetTablet, PlaystationTablet, TrekstorTablet, PyleAudioTablet, AdvanTablet,\n * DanyTechTablet, GalapadTablet, MicromaxTablet, KarbonnTablet, AllFineTablet,\n * PROSCANTablet, YONESTablet, ChangJiaTablet, GUTablet, PointOfViewTablet,\n * OvermaxTablet, HCLTablet, DPSTablet, VistureTablet, CrestaTablet,\n * MediatekTablet, ConcordeTablet, GoCleverTablet, ModecomTablet, VoninoTablet,\n * ECSTablet, StorexTablet, VodafoneTablet, EssentielBTablet, RossMoorTablet,\n * iMobileTablet, TolinoTablet, AudioSonicTablet, AMPETablet, SkkTablet,\n * TecnoTablet, JXDTablet, iJoyTablet, FX2Tablet, XoroTablet, ViewsonicTablet,\n * VerizonTablet, OdysTablet, CaptivaTablet, IconbitTablet, TeclastTablet,\n * OndaTablet, JaytechTablet, BlaupunktTablet, DigmaTablet, EvolioTablet,\n * LavaTablet, AocTablet, MpmanTablet, CelkonTablet, WolderTablet, MediacomTablet,\n * MiTablet, NibiruTablet, NexoTablet, LeaderTablet, UbislateTablet,\n * PocketBookTablet, KocasoTablet, HisenseTablet, Hudl, TelstraTablet,\n * GenericTablet
    \n *
    \n * If the device is not detected by the regular expressions from Mobile-Detect, a test is made against\n * the patterns of detectmobilebrowsers.com. If this test\n * is positive, a value of UnknownTablet or UnknownMobile is returned.
    \n * When used in browser, the decision whether phone or tablet is made based on screen.width/height.
    \n *
    \n * When used server-side (node.js), there is no way to tell the difference between UnknownTablet\n * and UnknownMobile, so you will get null here, while {@link MobileDetect#mobile}\n * will return UnknownMobile.
    \n * Be aware that since v1.0.0 in this special case you will get UnknownMobile only for:\n * {@link MobileDetect#mobile}, not for {@link MobileDetect#phone} and {@link MobileDetect#tablet}.\n * In versions before v1.0.0 all 3 methods returned UnknownMobile which was tedious to use.\n *
    \n * In most cases you will use the return value just as a boolean.\n *\n * @returns {String} the key of the tablet family or producer, e.g. \"SamsungTablet\"\n * @function MobileDetect#tablet\n */\n tablet: function () {\n impl.prepareDetectionCache(this._cache, this.ua, this.maxPhoneWidth);\n return this._cache.tablet;\n },\n\n /**\n * Returns the (first) detected user-agent string or null.\n *
    \n * The returned user-agent is one of following keys:
    \n *
    Chrome, Dolfin, Opera, Skyfire, Edge, IE, Firefox, Bolt, TeaShark, Blazer,\n * Safari, WeChat, UCBrowser, baiduboxapp, baidubrowser, DiigoBrowser, Mercury,\n * ObigoBrowser, NetFront, GenericBrowser, PaleMoon
    \n *
    \n * In most cases calling {@link MobileDetect#userAgent} will be sufficient. But there are rare\n * cases where a mobile device pretends to be more than one particular browser. You can get the\n * list of all matches with {@link MobileDetect#userAgents} or check for a particular value by\n * providing one of the defined keys as first argument to {@link MobileDetect#is}.\n *\n * @returns {String} the key for the detected user-agent or null\n * @function MobileDetect#userAgent\n */\n userAgent: function () {\n if (this._cache.userAgent === undefined) {\n this._cache.userAgent = impl.findMatch(impl.mobileDetectRules.uas, this.ua);\n }\n return this._cache.userAgent;\n },\n\n /**\n * Returns all detected user-agent strings.\n *
    \n * The array is empty or contains one or more of following keys:
    \n *
    Chrome, Dolfin, Opera, Skyfire, Edge, IE, Firefox, Bolt, TeaShark, Blazer,\n * Safari, WeChat, UCBrowser, baiduboxapp, baidubrowser, DiigoBrowser, Mercury,\n * ObigoBrowser, NetFront, GenericBrowser, PaleMoon
    \n *
    \n * In most cases calling {@link MobileDetect#userAgent} will be sufficient. But there are rare\n * cases where a mobile device pretends to be more than one particular browser. You can get the\n * list of all matches with {@link MobileDetect#userAgents} or check for a particular value by\n * providing one of the defined keys as first argument to {@link MobileDetect#is}.\n *\n * @returns {Array} the array of detected user-agent keys or []\n * @function MobileDetect#userAgents\n */\n userAgents: function () {\n if (this._cache.userAgents === undefined) {\n this._cache.userAgents = impl.findMatches(impl.mobileDetectRules.uas, this.ua);\n }\n return this._cache.userAgents;\n },\n\n /**\n * Returns the detected operating system string or null.\n *
    \n * The operating system is one of following keys:
    \n *
    AndroidOS, BlackBerryOS, PalmOS, SymbianOS, WindowsMobileOS, WindowsPhoneOS,\n * iOS, iPadOS, SailfishOS, MeeGoOS, MaemoOS, JavaOS, webOS, badaOS, BREWOS
    \n *\n * @returns {String} the key for the detected operating system.\n * @function MobileDetect#os\n */\n os: function () {\n if (this._cache.os === undefined) {\n this._cache.os = impl.detectOS(this.ua);\n }\n return this._cache.os;\n },\n\n /**\n * Get the version (as Number) of the given property in the User-Agent.\n *
    \n * Will return a float number. (eg. 2_0 will return 2.0, 4.3.1 will return 4.31)\n *\n * @param {String} key a key defining a thing which has a version.
    \n * You can use one of following keys:
    \n *
    Mobile, Build, Version, VendorID, iPad, iPhone, iPod, Kindle, Chrome, Coast,\n * Dolfin, Firefox, Fennec, Edge, IE, NetFront, NokiaBrowser, Opera, Opera Mini,\n * Opera Mobi, UCBrowser, MQQBrowser, MicroMessenger, baiduboxapp, baidubrowser,\n * SamsungBrowser, Iron, Safari, Skyfire, Tizen, Webkit, PaleMoon,\n * SailfishBrowser, Gecko, Trident, Presto, Goanna, iOS, Android, Sailfish,\n * BlackBerry, BREW, Java, Windows Phone OS, Windows Phone, Windows CE, Windows\n * NT, Symbian, webOS
    \n *\n * @returns {Number} the version as float or NaN if User-Agent doesn't contain this version.\n * Be careful when comparing this value with '==' operator!\n * @function MobileDetect#version\n */\n version: function (key) {\n return impl.getVersion(key, this.ua);\n },\n\n /**\n * Get the version (as String) of the given property in the User-Agent.\n *
    \n *\n * @param {String} key a key defining a thing which has a version.
    \n * You can use one of following keys:
    \n *
    Mobile, Build, Version, VendorID, iPad, iPhone, iPod, Kindle, Chrome, Coast,\n * Dolfin, Firefox, Fennec, Edge, IE, NetFront, NokiaBrowser, Opera, Opera Mini,\n * Opera Mobi, UCBrowser, MQQBrowser, MicroMessenger, baiduboxapp, baidubrowser,\n * SamsungBrowser, Iron, Safari, Skyfire, Tizen, Webkit, PaleMoon,\n * SailfishBrowser, Gecko, Trident, Presto, Goanna, iOS, Android, Sailfish,\n * BlackBerry, BREW, Java, Windows Phone OS, Windows Phone, Windows CE, Windows\n * NT, Symbian, webOS
    \n *\n * @returns {String} the \"raw\" version as String or null if User-Agent doesn't contain this version.\n *\n * @function MobileDetect#versionStr\n */\n versionStr: function (key) {\n return impl.getVersionStr(key, this.ua);\n },\n\n /**\n * Global test key against userAgent, os, phone, tablet and some other properties of userAgent string.\n *\n * @param {String} key the key (case-insensitive) of a userAgent, an operating system, phone or\n * tablet family.
    \n * For a complete list of possible values, see {@link MobileDetect#userAgent},\n * {@link MobileDetect#os}, {@link MobileDetect#phone}, {@link MobileDetect#tablet}.
    \n * Additionally you have following keys:
    \n *
    Bot, MobileBot, DesktopMode, TV, WebKit, Console, Watch
    \n *\n * @returns {boolean} true when the given key is one of the defined keys of userAgent, os, phone,\n * tablet or one of the listed additional keys, otherwise false\n * @function MobileDetect#is\n */\n is: function (key) {\n return containsIC(this.userAgents(), key) ||\n equalIC(key, this.os()) ||\n equalIC(key, this.phone()) ||\n equalIC(key, this.tablet()) ||\n containsIC(impl.findMatches(impl.mobileDetectRules.utils, this.ua), key);\n },\n\n /**\n * Do a quick test against navigator::userAgent.\n *\n * @param {String|RegExp} pattern the pattern, either as String or RegExp\n * (a string will be converted to a case-insensitive RegExp).\n * @returns {boolean} true when the pattern matches, otherwise false\n * @function MobileDetect#match\n */\n match: function (pattern) {\n if (!(pattern instanceof RegExp)) {\n pattern = new RegExp(pattern, 'i');\n }\n return pattern.test(this.ua);\n },\n\n /**\n * Checks whether the mobile device can be considered as phone regarding screen.width.\n *
    \n * Obviously this method makes sense in browser environments only (not for Node.js)!\n * @param {number} [maxPhoneWidth] the maximum logical pixels (aka. CSS-pixels) to be considered as phone.
    \n * The argument is optional and if not present or falsy, the value of the constructor is taken.\n * @returns {boolean|undefined} undefined if screen size wasn't detectable, else true\n * when screen.width is less or equal to maxPhoneWidth, otherwise false.
    \n * Will always return undefined server-side.\n */\n isPhoneSized: function (maxPhoneWidth) {\n return MobileDetect.isPhoneSized(maxPhoneWidth || this.maxPhoneWidth);\n },\n\n /**\n * Returns the mobile grade ('A', 'B', 'C').\n *\n * @returns {String} one of the mobile grades ('A', 'B', 'C').\n * @function MobileDetect#mobileGrade\n */\n mobileGrade: function () {\n if (this._cache.grade === undefined) {\n this._cache.grade = impl.mobileGrade(this);\n }\n return this._cache.grade;\n }\n };\n\n // environment-dependent\n if (typeof window !== 'undefined' && window.screen) {\n MobileDetect.isPhoneSized = function (maxPhoneWidth) {\n return maxPhoneWidth < 0 ? undefined : impl.getDeviceSmallerSide() <= maxPhoneWidth;\n };\n } else {\n MobileDetect.isPhoneSized = function () {};\n }\n\n // should not be replaced by a completely new object - just overwrite existing methods\n MobileDetect._impl = impl;\n \n MobileDetect.version = '1.4.5 2021-03-13';\n\n return MobileDetect;\n}); // end of call of define()\n})((function (undefined) {\n if (typeof module !== 'undefined' && module.exports) {\n return function (factory) { module.exports = factory(); };\n } else if (typeof define === 'function' && define.amd) {\n return define;\n } else if (typeof window !== 'undefined') {\n return function (factory) { window.MobileDetect = factory(); };\n } else {\n // please file a bug if you get this error!\n throw new Error('unknown environment');\n }\n})());","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar inspectCustom = require('./util.inspect').custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if ('cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar split = String.prototype.split;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n if (generateArrayPrefix === 'comma' && encodeValuesOnly) {\n var valuesArray = split.call(String(obj), ',');\n var valuesJoined = '';\n for (var i = 0; i < valuesArray.length; ++i) {\n valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));\n }\n return [formatter(keyValue) + '=' + valuesJoined];\n }\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e tag inside default button\n textStyle: _propTypes2.default.object,\n\n // Prevents any events from opening the popup\n // Adds the disabled prop to the button and adjusts the styling as well\n disabled: _propTypes2.default.bool,\n\n // Named component to wrap button (eg. div)\n ComponentClass: _propTypes2.default.string,\n\n // Show a loading indicator\n showLoadingDialog: _propTypes2.default.func,\n // Hide the loading indicator\n hideLoadingDialog: _propTypes2.default.func,\n\n // Run this method when the scrupt fails to load. Will run if the internet\n // connection is offline when attemting to load the script.\n onScriptError: _propTypes2.default.func,\n\n // Runs when the script tag is created, but before it is added to the DOM\n onScriptTagCreated: _propTypes2.default.func,\n\n // By default, any time the React component is updated, it will call\n // StripeCheckout.configure, which may result in additional XHR calls to the\n // stripe API. If you know the first configuration is all you need, you\n // can set this to false. Subsequent updates will affect the StripeCheckout.open\n // (e.g. different prices)\n reconfigureOnUpdate: _propTypes2.default.bool,\n\n // =====================================================\n // Required by stripe\n // see Stripe docs for more info:\n // https://stripe.com/docs/checkout#integration-custom\n // =====================================================\n\n // Your publishable key (test or live).\n // can't use \"key\" as a prop in react, so have to change the keyname\n stripeKey: _propTypes2.default.string.isRequired,\n\n // The callback to invoke when the Checkout process is complete.\n // function(token)\n // token is the token object created.\n // token.id can be used to create a charge or customer.\n // token.email contains the email address entered by the user.\n token: _propTypes2.default.func.isRequired,\n\n // ==========================\n // Highly Recommended Options\n // ==========================\n\n // Name of the company or website.\n name: _propTypes2.default.string,\n\n // A description of the product or service being purchased.\n description: _propTypes2.default.string,\n\n // A relative URL pointing to a square image of your brand or product. The\n // recommended minimum size is 128x128px. The recommended image types are\n // .gif, .jpeg, and .png.\n image: _propTypes2.default.string,\n\n // The amount (in cents) that's shown to the user. Note that you will still\n // have to explicitly include it when you create a charge using the API.\n amount: _propTypes2.default.number,\n\n // Specify auto to display Checkout in the user's preferred language, if\n // available. English will be used by default.\n //\n // https://stripe.com/docs/checkout#supported-languages\n // for more info.\n locale: _propTypes2.default.oneOf(['auto', // (Default) Automatically chosen by checkout\n 'zh', // Simplified Chinese\n 'da', // Danish\n 'nl', // Dutch\n 'en', // English\n 'fr', // French\n 'de', // German\n 'it', // Italian\n 'ja', // Japanease\n 'no', // Norwegian\n 'es', // Spanish\n 'sv']),\n\n // ==============\n // Optional Props\n // ==============\n\n // The currency of the amount (3-letter ISO code). The default is USD.\n currency: _propTypes2.default.oneOf(['AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN', 'BAM', 'BBD', // eslint-disable-line comma-spacing\n 'BDT', 'BGN', 'BIF', 'BMD', 'BND', 'BOB', 'BRL', 'BSD', 'BWP', 'BZD', 'CAD', 'CDF', // eslint-disable-line comma-spacing\n 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EEK', // eslint-disable-line comma-spacing\n 'EGP', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GIP', 'GMD', 'GNF', 'GTQ', 'GYD', // eslint-disable-line comma-spacing\n 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'INR', 'ISK', 'JMD', 'JPY', 'KES', // eslint-disable-line comma-spacing\n 'KGS', 'KHR', 'KMF', 'KRW', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LTL', // eslint-disable-line comma-spacing\n 'LVL', 'MAD', 'MDL', 'MGA', 'MKD', 'MNT', 'MOP', 'MRO', 'MUR', 'MVR', 'MWK', 'MXN', // eslint-disable-line comma-spacing\n 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'PAB', 'PEN', 'PGK', 'PHP', // eslint-disable-line comma-spacing\n 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SEK', // eslint-disable-line comma-spacing\n 'SGD', 'SHP', 'SLL', 'SOS', 'SRD', 'STD', 'SVC', 'SZL', 'THB', 'TJS', 'TOP', 'TRY', // eslint-disable-line comma-spacing\n 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'USD', 'UYU', 'UZS', 'VND', 'VUV', 'WST', 'XAF', // eslint-disable-line comma-spacing\n 'XCD', 'XOF', 'XPF', 'YER', 'ZAR', 'ZMW']),\n\n // The label of the payment button in the Checkout form (e.g. “Subscribe”,\n // “Pay {{amount}}”, etc.). If you include {{amount}}, it will be replaced\n // by the provided amount. Otherwise, the amount will be appended to the\n // end of your label.\n panelLabel: _propTypes2.default.string,\n\n // Specify whether Checkout should validate the billing ZIP code (true or\n // false)\n zipCode: _propTypes2.default.bool,\n\n // Specify whether Checkout should collect the user's billing address\n // (true or false). The default is false.\n billingAddress: _propTypes2.default.bool,\n\n // Specify whether Checkout should collect the user's shipping address\n // (true or false). The default is false.\n shippingAddress: _propTypes2.default.bool,\n\n // Specify whether Checkout should validate the billing ZIP code (true or\n // false). The default is false.\n email: _propTypes2.default.string,\n\n // Specify whether to include the option to \"Remember Me\" for future\n // purchases (true or false). The default is true.\n allowRememberMe: _propTypes2.default.bool,\n\n // Specify whether to accept Bitcoin in Checkout. The default is false.\n bitcoin: _propTypes2.default.bool,\n\n // Specify whether to accept Alipay ('auto', true, or false). The default\n // is false.\n alipay: _propTypes2.default.oneOf(['auto', true, false]),\n\n // Specify if you need reusable access to the customer's Alipay account\n // (true or false). The default is false.\n alipayReusable: _propTypes2.default.bool,\n\n // function() The callback to invoke when Checkout is opened (not supported\n // in IE6 and IE7).\n opened: _propTypes2.default.func,\n\n // function() The callback to invoke when Checkout is closed (not supported\n // in IE6 and IE7).\n closed: _propTypes2.default.func\n};\nReactStripeCheckout._isMounted = false;\nexports.default = ReactStripeCheckout;\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","function Agent() {\n this._defaults = [];\n}\n\n[\n 'use',\n 'on',\n 'once',\n 'set',\n 'query',\n 'type',\n 'accept',\n 'auth',\n 'withCredentials',\n 'sortQuery',\n 'retry',\n 'ok',\n 'redirects',\n 'timeout',\n 'buffer',\n 'serialize',\n 'parse',\n 'ca',\n 'key',\n 'pfx',\n 'cert',\n 'disableTLSCerts'\n].forEach((fn) => {\n // Default setting for all requests from this agent\n Agent.prototype[fn] = function (...args) {\n this._defaults.push({ fn, args });\n return this;\n };\n});\n\nAgent.prototype._setDefaults = function (req) {\n this._defaults.forEach((def) => {\n req[def.fn](...def.args);\n });\n};\n\nmodule.exports = Agent;\n","/**\n * Root reference for iframes.\n */\n\nlet root;\nif (typeof window !== 'undefined') {\n // Browser window\n root = window;\n} else if (typeof self === 'undefined') {\n // Other environments\n console.warn(\n 'Using browser-only version of superagent in non-browser environment'\n );\n root = this;\n} else {\n // Web Worker\n root = self;\n}\n\nconst Emitter = require('component-emitter');\nconst safeStringify = require('fast-safe-stringify');\nconst qs = require('qs');\nconst RequestBase = require('./request-base');\nconst isObject = require('./is-object');\nconst ResponseBase = require('./response-base');\nconst Agent = require('./agent-base');\n\n/**\n * Noop.\n */\n\nfunction noop() {}\n\n/**\n * Expose `request`.\n */\n\nmodule.exports = function (method, url) {\n // callback\n if (typeof url === 'function') {\n return new exports.Request('GET', method).end(url);\n }\n\n // url first\n if (arguments.length === 1) {\n return new exports.Request('GET', method);\n }\n\n return new exports.Request(method, url);\n};\n\nexports = module.exports;\n\nconst request = exports;\n\nexports.Request = Request;\n\n/**\n * Determine XHR.\n */\n\nrequest.getXHR = () => {\n if (\n root.XMLHttpRequest &&\n (!root.location ||\n root.location.protocol !== 'file:' ||\n !root.ActiveXObject)\n ) {\n return new XMLHttpRequest();\n }\n\n try {\n return new ActiveXObject('Microsoft.XMLHTTP');\n } catch {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.6.0');\n } catch {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP.3.0');\n } catch {}\n\n try {\n return new ActiveXObject('Msxml2.XMLHTTP');\n } catch {}\n\n throw new Error('Browser-only version of superagent could not find XHR');\n};\n\n/**\n * Removes leading and trailing whitespace, added to support IE.\n *\n * @param {String} s\n * @return {String}\n * @api private\n */\n\nconst trim = ''.trim ? (s) => s.trim() : (s) => s.replace(/(^\\s*|\\s*$)/g, '');\n\n/**\n * Serialize the given `obj`.\n *\n * @param {Object} obj\n * @return {String}\n * @api private\n */\n\nfunction serialize(obj) {\n if (!isObject(obj)) return obj;\n const pairs = [];\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key))\n pushEncodedKeyValuePair(pairs, key, obj[key]);\n }\n\n return pairs.join('&');\n}\n\n/**\n * Helps 'serialize' with serializing arrays.\n * Mutates the pairs array.\n *\n * @param {Array} pairs\n * @param {String} key\n * @param {Mixed} val\n */\n\nfunction pushEncodedKeyValuePair(pairs, key, val) {\n if (val === undefined) return;\n if (val === null) {\n pairs.push(encodeURI(key));\n return;\n }\n\n if (Array.isArray(val)) {\n val.forEach((v) => {\n pushEncodedKeyValuePair(pairs, key, v);\n });\n } else if (isObject(val)) {\n for (const subkey in val) {\n if (Object.prototype.hasOwnProperty.call(val, subkey))\n pushEncodedKeyValuePair(pairs, `${key}[${subkey}]`, val[subkey]);\n }\n } else {\n pairs.push(encodeURI(key) + '=' + encodeURIComponent(val));\n }\n}\n\n/**\n * Expose serialization method.\n */\n\nrequest.serializeObject = serialize;\n\n/**\n * Parse the given x-www-form-urlencoded `str`.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseString(str) {\n const obj = {};\n const pairs = str.split('&');\n let pair;\n let pos;\n\n for (let i = 0, len = pairs.length; i < len; ++i) {\n pair = pairs[i];\n pos = pair.indexOf('=');\n if (pos === -1) {\n obj[decodeURIComponent(pair)] = '';\n } else {\n obj[decodeURIComponent(pair.slice(0, pos))] = decodeURIComponent(\n pair.slice(pos + 1)\n );\n }\n }\n\n return obj;\n}\n\n/**\n * Expose parser.\n */\n\nrequest.parseString = parseString;\n\n/**\n * Default MIME type map.\n *\n * superagent.types.xml = 'application/xml';\n *\n */\n\nrequest.types = {\n html: 'text/html',\n json: 'application/json',\n xml: 'text/xml',\n urlencoded: 'application/x-www-form-urlencoded',\n form: 'application/x-www-form-urlencoded',\n 'form-data': 'application/x-www-form-urlencoded'\n};\n\n/**\n * Default serialization map.\n *\n * superagent.serialize['application/xml'] = function(obj){\n * return 'generated xml here';\n * };\n *\n */\n\nrequest.serialize = {\n 'application/x-www-form-urlencoded': qs.stringify,\n 'application/json': safeStringify\n};\n\n/**\n * Default parsers.\n *\n * superagent.parse['application/xml'] = function(str){\n * return { object parsed from str };\n * };\n *\n */\n\nrequest.parse = {\n 'application/x-www-form-urlencoded': parseString,\n 'application/json': JSON.parse\n};\n\n/**\n * Parse the given header `str` into\n * an object containing the mapped fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nfunction parseHeader(str) {\n const lines = str.split(/\\r?\\n/);\n const fields = {};\n let index;\n let line;\n let field;\n let val;\n\n for (let i = 0, len = lines.length; i < len; ++i) {\n line = lines[i];\n index = line.indexOf(':');\n if (index === -1) {\n // could be empty line, just skip it\n continue;\n }\n\n field = line.slice(0, index).toLowerCase();\n val = trim(line.slice(index + 1));\n fields[field] = val;\n }\n\n return fields;\n}\n\n/**\n * Check if `mime` is json or has +json structured syntax suffix.\n *\n * @param {String} mime\n * @return {Boolean}\n * @api private\n */\n\nfunction isJSON(mime) {\n // should match /json or +json\n // but not /json-seq\n return /[/+]json($|[^-\\w])/i.test(mime);\n}\n\n/**\n * Initialize a new `Response` with the given `xhr`.\n *\n * - set flags (.ok, .error, etc)\n * - parse header\n *\n * Examples:\n *\n * Aliasing `superagent` as `request` is nice:\n *\n * request = superagent;\n *\n * We can use the promise-like API, or pass callbacks:\n *\n * request.get('/').end(function(res){});\n * request.get('/', function(res){});\n *\n * Sending data can be chained:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' })\n * .end(function(res){});\n *\n * Or passed to `.send()`:\n *\n * request\n * .post('/user')\n * .send({ name: 'tj' }, function(res){});\n *\n * Or passed to `.post()`:\n *\n * request\n * .post('/user', { name: 'tj' })\n * .end(function(res){});\n *\n * Or further reduced to a single call for simple cases:\n *\n * request\n * .post('/user', { name: 'tj' }, function(res){});\n *\n * @param {XMLHTTPRequest} xhr\n * @param {Object} options\n * @api private\n */\n\nfunction Response(req) {\n this.req = req;\n this.xhr = this.req.xhr;\n // responseText is accessible only if responseType is '' or 'text' and on older browsers\n this.text =\n (this.req.method !== 'HEAD' &&\n (this.xhr.responseType === '' || this.xhr.responseType === 'text')) ||\n typeof this.xhr.responseType === 'undefined'\n ? this.xhr.responseText\n : null;\n this.statusText = this.req.xhr.statusText;\n let { status } = this.xhr;\n // handle IE9 bug: http://stackoverflow.com/questions/10046972/msie-returns-status-code-of-1223-for-ajax-request\n if (status === 1223) {\n status = 204;\n }\n\n this._setStatusProperties(status);\n this.headers = parseHeader(this.xhr.getAllResponseHeaders());\n this.header = this.headers;\n // getAllResponseHeaders sometimes falsely returns \"\" for CORS requests, but\n // getResponseHeader still works. so we get content-type even if getting\n // other headers fails.\n this.header['content-type'] = this.xhr.getResponseHeader('content-type');\n this._setHeaderProperties(this.header);\n\n if (this.text === null && req._responseType) {\n this.body = this.xhr.response;\n } else {\n this.body =\n this.req.method === 'HEAD'\n ? null\n : this._parseBody(this.text ? this.text : this.xhr.response);\n }\n}\n\n// eslint-disable-next-line new-cap\nResponseBase(Response.prototype);\n\n/**\n * Parse the given body `str`.\n *\n * Used for auto-parsing of bodies. Parsers\n * are defined on the `superagent.parse` object.\n *\n * @param {String} str\n * @return {Mixed}\n * @api private\n */\n\nResponse.prototype._parseBody = function (str) {\n let parse = request.parse[this.type];\n if (this.req._parser) {\n return this.req._parser(this, str);\n }\n\n if (!parse && isJSON(this.type)) {\n parse = request.parse['application/json'];\n }\n\n return parse && str && (str.length > 0 || str instanceof Object)\n ? parse(str)\n : null;\n};\n\n/**\n * Return an `Error` representative of this response.\n *\n * @return {Error}\n * @api public\n */\n\nResponse.prototype.toError = function () {\n const { req } = this;\n const { method } = req;\n const { url } = req;\n\n const msg = `cannot ${method} ${url} (${this.status})`;\n const err = new Error(msg);\n err.status = this.status;\n err.method = method;\n err.url = url;\n\n return err;\n};\n\n/**\n * Expose `Response`.\n */\n\nrequest.Response = Response;\n\n/**\n * Initialize a new `Request` with the given `method` and `url`.\n *\n * @param {String} method\n * @param {String} url\n * @api public\n */\n\nfunction Request(method, url) {\n const self = this;\n this._query = this._query || [];\n this.method = method;\n this.url = url;\n this.header = {}; // preserves header name case\n this._header = {}; // coerces header names to lowercase\n this.on('end', () => {\n let err = null;\n let res = null;\n\n try {\n res = new Response(self);\n } catch (err_) {\n err = new Error('Parser is unable to parse the response');\n err.parse = true;\n err.original = err_;\n // issue #675: return the raw response if the response parsing fails\n if (self.xhr) {\n // ie9 doesn't have 'response' property\n err.rawResponse =\n typeof self.xhr.responseType === 'undefined'\n ? self.xhr.responseText\n : self.xhr.response;\n // issue #876: return the http status code if the response parsing fails\n err.status = self.xhr.status ? self.xhr.status : null;\n err.statusCode = err.status; // backwards-compat only\n } else {\n err.rawResponse = null;\n err.status = null;\n }\n\n return self.callback(err);\n }\n\n self.emit('response', res);\n\n let new_err;\n try {\n if (!self._isResponseOK(res)) {\n new_err = new Error(\n res.statusText || res.text || 'Unsuccessful HTTP response'\n );\n }\n } catch (err_) {\n new_err = err_; // ok() callback can throw\n }\n\n // #1000 don't catch errors from the callback to avoid double calling it\n if (new_err) {\n new_err.original = err;\n new_err.response = res;\n new_err.status = res.status;\n self.callback(new_err, res);\n } else {\n self.callback(null, res);\n }\n });\n}\n\n/**\n * Mixin `Emitter` and `RequestBase`.\n */\n\n// eslint-disable-next-line new-cap\nEmitter(Request.prototype);\n// eslint-disable-next-line new-cap\nRequestBase(Request.prototype);\n\n/**\n * Set Content-Type to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.xml = 'application/xml';\n *\n * request.post('/')\n * .type('xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * request.post('/')\n * .type('application/xml')\n * .send(xmlstring)\n * .end(callback);\n *\n * @param {String} type\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.type = function (type) {\n this.set('Content-Type', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Accept to `type`, mapping values from `request.types`.\n *\n * Examples:\n *\n * superagent.types.json = 'application/json';\n *\n * request.get('/agent')\n * .accept('json')\n * .end(callback);\n *\n * request.get('/agent')\n * .accept('application/json')\n * .end(callback);\n *\n * @param {String} accept\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.accept = function (type) {\n this.set('Accept', request.types[type] || type);\n return this;\n};\n\n/**\n * Set Authorization field value with `user` and `pass`.\n *\n * @param {String} user\n * @param {String} [pass] optional in case of using 'bearer' as type\n * @param {Object} options with 'type' property 'auto', 'basic' or 'bearer' (default 'basic')\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.auth = function (user, pass, options) {\n if (arguments.length === 1) pass = '';\n if (typeof pass === 'object' && pass !== null) {\n // pass is optional and can be replaced with options\n options = pass;\n pass = '';\n }\n\n if (!options) {\n options = {\n type: typeof btoa === 'function' ? 'basic' : 'auto'\n };\n }\n\n const encoder = (string) => {\n if (typeof btoa === 'function') {\n return btoa(string);\n }\n\n throw new Error('Cannot use basic auth, btoa is not a function');\n };\n\n return this._auth(user, pass, options, encoder);\n};\n\n/**\n * Add query-string `val`.\n *\n * Examples:\n *\n * request.get('/shoes')\n * .query('size=10')\n * .query({ color: 'blue' })\n *\n * @param {Object|String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.query = function (val) {\n if (typeof val !== 'string') val = serialize(val);\n if (val) this._query.push(val);\n return this;\n};\n\n/**\n * Queue the given `file` as an attachment to the specified `field`,\n * with optional `options` (or filename).\n *\n * ``` js\n * request.post('/upload')\n * .attach('content', new Blob(['hey!'], { type: \"text/html\"}))\n * .end(callback);\n * ```\n *\n * @param {String} field\n * @param {Blob|File} file\n * @param {String|Object} options\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.attach = function (field, file, options) {\n if (file) {\n if (this._data) {\n throw new Error(\"superagent can't mix .send() and .attach()\");\n }\n\n this._getFormData().append(field, file, options || file.name);\n }\n\n return this;\n};\n\nRequest.prototype._getFormData = function () {\n if (!this._formData) {\n this._formData = new root.FormData();\n }\n\n return this._formData;\n};\n\n/**\n * Invoke the callback with `err` and `res`\n * and handle arity check.\n *\n * @param {Error} err\n * @param {Response} res\n * @api private\n */\n\nRequest.prototype.callback = function (err, res) {\n if (this._shouldRetry(err, res)) {\n return this._retry();\n }\n\n const fn = this._callback;\n this.clearTimeout();\n\n if (err) {\n if (this._maxRetries) err.retries = this._retries - 1;\n this.emit('error', err);\n }\n\n fn(err, res);\n};\n\n/**\n * Invoke callback with x-domain error.\n *\n * @api private\n */\n\nRequest.prototype.crossDomainError = function () {\n const err = new Error(\n 'Request has been terminated\\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.'\n );\n err.crossDomain = true;\n\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n\n this.callback(err);\n};\n\n// This only warns, because the request is still likely to work\nRequest.prototype.agent = function () {\n console.warn('This is not supported in browser version of superagent');\n return this;\n};\n\nRequest.prototype.ca = Request.prototype.agent;\nRequest.prototype.buffer = Request.prototype.ca;\n\n// This throws, because it can't send/receive data as expected\nRequest.prototype.write = () => {\n throw new Error(\n 'Streaming is not supported in browser version of superagent'\n );\n};\n\nRequest.prototype.pipe = Request.prototype.write;\n\n/**\n * Check if `obj` is a host object,\n * we don't want to serialize these :)\n *\n * @param {Object} obj host object\n * @return {Boolean} is a host object\n * @api private\n */\nRequest.prototype._isHost = function (obj) {\n // Native objects stringify to [object File], [object Blob], [object FormData], etc.\n return (\n obj &&\n typeof obj === 'object' &&\n !Array.isArray(obj) &&\n Object.prototype.toString.call(obj) !== '[object Object]'\n );\n};\n\n/**\n * Initiate request, invoking callback `fn(res)`\n * with an instanceof `Response`.\n *\n * @param {Function} fn\n * @return {Request} for chaining\n * @api public\n */\n\nRequest.prototype.end = function (fn) {\n if (this._endCalled) {\n console.warn(\n 'Warning: .end() was called twice. This is not supported in superagent'\n );\n }\n\n this._endCalled = true;\n\n // store callback\n this._callback = fn || noop;\n\n // querystring\n this._finalizeQueryString();\n\n this._end();\n};\n\nRequest.prototype._setUploadTimeout = function () {\n const self = this;\n\n // upload timeout it's wokrs only if deadline timeout is off\n if (this._uploadTimeout && !this._uploadTimeoutTimer) {\n this._uploadTimeoutTimer = setTimeout(() => {\n self._timeoutError(\n 'Upload timeout of ',\n self._uploadTimeout,\n 'ETIMEDOUT'\n );\n }, this._uploadTimeout);\n }\n};\n\n// eslint-disable-next-line complexity\nRequest.prototype._end = function () {\n if (this._aborted)\n return this.callback(\n new Error('The request has been aborted even before .end() was called')\n );\n\n const self = this;\n this.xhr = request.getXHR();\n const { xhr } = this;\n let data = this._formData || this._data;\n\n this._setTimeouts();\n\n // state change\n xhr.onreadystatechange = () => {\n const { readyState } = xhr;\n if (readyState >= 2 && self._responseTimeoutTimer) {\n clearTimeout(self._responseTimeoutTimer);\n }\n\n if (readyState !== 4) {\n return;\n }\n\n // In IE9, reads to any property (e.g. status) off of an aborted XHR will\n // result in the error \"Could not complete the operation due to error c00c023f\"\n let status;\n try {\n status = xhr.status;\n } catch {\n status = 0;\n }\n\n if (!status) {\n if (self.timedout || self._aborted) return;\n return self.crossDomainError();\n }\n\n self.emit('end');\n };\n\n // progress\n const handleProgress = (direction, e) => {\n if (e.total > 0) {\n e.percent = (e.loaded / e.total) * 100;\n\n if (e.percent === 100) {\n clearTimeout(self._uploadTimeoutTimer);\n }\n }\n\n e.direction = direction;\n self.emit('progress', e);\n };\n\n if (this.hasListeners('progress')) {\n try {\n xhr.addEventListener('progress', handleProgress.bind(null, 'download'));\n if (xhr.upload) {\n xhr.upload.addEventListener(\n 'progress',\n handleProgress.bind(null, 'upload')\n );\n }\n } catch {\n // Accessing xhr.upload fails in IE from a web worker, so just pretend it doesn't exist.\n // Reported here:\n // https://connect.microsoft.com/IE/feedback/details/837245/xmlhttprequest-upload-throws-invalid-argument-when-used-from-web-worker-context\n }\n }\n\n if (xhr.upload) {\n this._setUploadTimeout();\n }\n\n // initiate request\n try {\n if (this.username && this.password) {\n xhr.open(this.method, this.url, true, this.username, this.password);\n } else {\n xhr.open(this.method, this.url, true);\n }\n } catch (err) {\n // see #1149\n return this.callback(err);\n }\n\n // CORS\n if (this._withCredentials) xhr.withCredentials = true;\n\n // body\n if (\n !this._formData &&\n this.method !== 'GET' &&\n this.method !== 'HEAD' &&\n typeof data !== 'string' &&\n !this._isHost(data)\n ) {\n // serialize stuff\n const contentType = this._header['content-type'];\n let serialize =\n this._serializer ||\n request.serialize[contentType ? contentType.split(';')[0] : ''];\n if (!serialize && isJSON(contentType)) {\n serialize = request.serialize['application/json'];\n }\n\n if (serialize) data = serialize(data);\n }\n\n // set header fields\n for (const field in this.header) {\n if (this.header[field] === null) continue;\n\n if (Object.prototype.hasOwnProperty.call(this.header, field))\n xhr.setRequestHeader(field, this.header[field]);\n }\n\n if (this._responseType) {\n xhr.responseType = this._responseType;\n }\n\n // send stuff\n this.emit('request', this);\n\n // IE11 xhr.send(undefined) sends 'undefined' string as POST payload (instead of nothing)\n // We need null here if data is undefined\n xhr.send(typeof data === 'undefined' ? null : data);\n};\n\nrequest.agent = () => new Agent();\n\n['GET', 'POST', 'OPTIONS', 'PATCH', 'PUT', 'DELETE'].forEach((method) => {\n Agent.prototype[method.toLowerCase()] = function (url, fn) {\n const req = new request.Request(method, url);\n this._setDefaults(req);\n if (fn) {\n req.end(fn);\n }\n\n return req;\n };\n});\n\nAgent.prototype.del = Agent.prototype.delete;\n\n/**\n * GET `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.get = (url, data, fn) => {\n const req = request('GET', url);\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * HEAD `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.head = (url, data, fn) => {\n const req = request('HEAD', url);\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.query(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * OPTIONS query to `url` with optional callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.options = (url, data, fn) => {\n const req = request('OPTIONS', url);\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * DELETE `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nfunction del(url, data, fn) {\n const req = request('DELETE', url);\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n}\n\nrequest.del = del;\nrequest.delete = del;\n\n/**\n * PATCH `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.patch = (url, data, fn) => {\n const req = request('PATCH', url);\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * POST `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed} [data]\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.post = (url, data, fn) => {\n const req = request('POST', url);\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n\n/**\n * PUT `url` with optional `data` and callback `fn(res)`.\n *\n * @param {String} url\n * @param {Mixed|Function} [data] or fn\n * @param {Function} [fn]\n * @return {Request}\n * @api public\n */\n\nrequest.put = (url, data, fn) => {\n const req = request('PUT', url);\n if (typeof data === 'function') {\n fn = data;\n data = null;\n }\n\n if (data) req.send(data);\n if (fn) req.end(fn);\n return req;\n};\n","/**\n * Check if `obj` is an object.\n *\n * @param {Object} obj\n * @return {Boolean}\n * @api private\n */\n\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n\nmodule.exports = isObject;\n","/**\n * Module of mixed-in functions shared between node and client code\n */\nconst isObject = require('./is-object');\n\n/**\n * Expose `RequestBase`.\n */\n\nmodule.exports = RequestBase;\n\n/**\n * Initialize a new `RequestBase`.\n *\n * @api public\n */\n\nfunction RequestBase(object) {\n if (object) return mixin(object);\n}\n\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(object) {\n for (const key in RequestBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(RequestBase.prototype, key))\n object[key] = RequestBase.prototype[key];\n }\n\n return object;\n}\n\n/**\n * Clear previous timeout.\n *\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.clearTimeout = function () {\n clearTimeout(this._timer);\n clearTimeout(this._responseTimeoutTimer);\n clearTimeout(this._uploadTimeoutTimer);\n delete this._timer;\n delete this._responseTimeoutTimer;\n delete this._uploadTimeoutTimer;\n return this;\n};\n\n/**\n * Override default response body parser\n *\n * This function will be called to convert incoming data into request.body\n *\n * @param {Function}\n * @api public\n */\n\nRequestBase.prototype.parse = function (fn) {\n this._parser = fn;\n return this;\n};\n\n/**\n * Set format of binary response body.\n * In browser valid formats are 'blob' and 'arraybuffer',\n * which return Blob and ArrayBuffer, respectively.\n *\n * In Node all values result in Buffer.\n *\n * Examples:\n *\n * req.get('/')\n * .responseType('blob')\n * .end(callback);\n *\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.responseType = function (value) {\n this._responseType = value;\n return this;\n};\n\n/**\n * Override default request body serializer\n *\n * This function will be called to convert data set via .send or .attach into payload to send\n *\n * @param {Function}\n * @api public\n */\n\nRequestBase.prototype.serialize = function (fn) {\n this._serializer = fn;\n return this;\n};\n\n/**\n * Set timeouts.\n *\n * - response timeout is time between sending request and receiving the first byte of the response. Includes DNS and connection time.\n * - deadline is the time from start of the request to receiving response body in full. If the deadline is too short large files may not load at all on slow connections.\n * - upload is the time since last bit of data was sent or received. This timeout works only if deadline timeout is off\n *\n * Value of 0 or false means no timeout.\n *\n * @param {Number|Object} ms or {response, deadline}\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.timeout = function (options) {\n if (!options || typeof options !== 'object') {\n this._timeout = options;\n this._responseTimeout = 0;\n this._uploadTimeout = 0;\n return this;\n }\n\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option)) {\n switch (option) {\n case 'deadline':\n this._timeout = options.deadline;\n break;\n case 'response':\n this._responseTimeout = options.response;\n break;\n case 'upload':\n this._uploadTimeout = options.upload;\n break;\n default:\n console.warn('Unknown timeout option', option);\n }\n }\n }\n\n return this;\n};\n\n/**\n * Set number of retry attempts on error.\n *\n * Failed requests will be retried 'count' times if timeout or err.code >= 500.\n *\n * @param {Number} count\n * @param {Function} [fn]\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.retry = function (count, fn) {\n // Default to 1 if no count passed or true\n if (arguments.length === 0 || count === true) count = 1;\n if (count <= 0) count = 0;\n this._maxRetries = count;\n this._retries = 0;\n this._retryCallback = fn;\n return this;\n};\n\n//\n// NOTE: we do not include ESOCKETTIMEDOUT because that is from `request` package\n// \n//\n// NOTE: we do not include EADDRINFO because it was removed from libuv in 2014\n// \n// \n//\n//\n// TODO: expose these as configurable defaults\n//\nconst ERROR_CODES = new Set([\n 'ETIMEDOUT',\n 'ECONNRESET',\n 'EADDRINUSE',\n 'ECONNREFUSED',\n 'EPIPE',\n 'ENOTFOUND',\n 'ENETUNREACH',\n 'EAI_AGAIN'\n]);\n\nconst STATUS_CODES = new Set([\n 408,\n 413,\n 429,\n 500,\n 502,\n 503,\n 504,\n 521,\n 522,\n 524\n]);\n\n// TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n// const METHODS = new Set(['GET', 'PUT', 'HEAD', 'DELETE', 'OPTIONS', 'TRACE']);\n\n/**\n * Determine if a request should be retried.\n * (Inspired by https://github.com/sindresorhus/got#retry)\n *\n * @param {Error} err an error\n * @param {Response} [res] response\n * @returns {Boolean} if segment should be retried\n */\nRequestBase.prototype._shouldRetry = function (err, res) {\n if (!this._maxRetries || this._retries++ >= this._maxRetries) {\n return false;\n }\n\n if (this._retryCallback) {\n try {\n const override = this._retryCallback(err, res);\n if (override === true) return true;\n if (override === false) return false;\n // undefined falls back to defaults\n } catch (err_) {\n console.error(err_);\n }\n }\n\n // TODO: we would need to make this easily configurable before adding it in (e.g. some might want to add POST)\n /*\n if (\n this.req &&\n this.req.method &&\n !METHODS.has(this.req.method.toUpperCase())\n )\n return false;\n */\n if (res && res.status && STATUS_CODES.has(res.status)) return true;\n if (err) {\n if (err.code && ERROR_CODES.has(err.code)) return true;\n // Superagent timeout\n if (err.timeout && err.code === 'ECONNABORTED') return true;\n if (err.crossDomain) return true;\n }\n\n return false;\n};\n\n/**\n * Retry request\n *\n * @return {Request} for chaining\n * @api private\n */\n\nRequestBase.prototype._retry = function () {\n this.clearTimeout();\n\n // node\n if (this.req) {\n this.req = null;\n this.req = this.request();\n }\n\n this._aborted = false;\n this.timedout = false;\n this.timedoutError = null;\n\n return this._end();\n};\n\n/**\n * Promise support\n *\n * @param {Function} resolve\n * @param {Function} [reject]\n * @return {Request}\n */\n\nRequestBase.prototype.then = function (resolve, reject) {\n if (!this._fullfilledPromise) {\n const self = this;\n if (this._endCalled) {\n console.warn(\n 'Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises'\n );\n }\n\n this._fullfilledPromise = new Promise((resolve, reject) => {\n self.on('abort', () => {\n if (this._maxRetries && this._maxRetries > this._retries) {\n return;\n }\n\n if (this.timedout && this.timedoutError) {\n reject(this.timedoutError);\n return;\n }\n\n const err = new Error('Aborted');\n err.code = 'ABORTED';\n err.status = this.status;\n err.method = this.method;\n err.url = this.url;\n reject(err);\n });\n self.end((err, res) => {\n if (err) reject(err);\n else resolve(res);\n });\n });\n }\n\n return this._fullfilledPromise.then(resolve, reject);\n};\n\nRequestBase.prototype.catch = function (cb) {\n return this.then(undefined, cb);\n};\n\n/**\n * Allow for extension\n */\n\nRequestBase.prototype.use = function (fn) {\n fn(this);\n return this;\n};\n\nRequestBase.prototype.ok = function (cb) {\n if (typeof cb !== 'function') throw new Error('Callback required');\n this._okCallback = cb;\n return this;\n};\n\nRequestBase.prototype._isResponseOK = function (res) {\n if (!res) {\n return false;\n }\n\n if (this._okCallback) {\n return this._okCallback(res);\n }\n\n return res.status >= 200 && res.status < 300;\n};\n\n/**\n * Get request header `field`.\n * Case-insensitive.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\nRequestBase.prototype.get = function (field) {\n return this._header[field.toLowerCase()];\n};\n\n/**\n * Get case-insensitive header `field` value.\n * This is a deprecated internal API. Use `.get(field)` instead.\n *\n * (getHeader is no longer used internally by the superagent code base)\n *\n * @param {String} field\n * @return {String}\n * @api private\n * @deprecated\n */\n\nRequestBase.prototype.getHeader = RequestBase.prototype.get;\n\n/**\n * Set header `field` to `val`, or multiple fields with one object.\n * Case-insensitive.\n *\n * Examples:\n *\n * req.get('/')\n * .set('Accept', 'application/json')\n * .set('X-API-Key', 'foobar')\n * .end(callback);\n *\n * req.get('/')\n * .set({ Accept: 'application/json', 'X-API-Key': 'foobar' })\n * .end(callback);\n *\n * @param {String|Object} field\n * @param {String} val\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.set = function (field, value) {\n if (isObject(field)) {\n for (const key in field) {\n if (Object.prototype.hasOwnProperty.call(field, key))\n this.set(key, field[key]);\n }\n\n return this;\n }\n\n this._header[field.toLowerCase()] = value;\n this.header[field] = value;\n return this;\n};\n\n/**\n * Remove header `field`.\n * Case-insensitive.\n *\n * Example:\n *\n * req.get('/')\n * .unset('User-Agent')\n * .end(callback);\n *\n * @param {String} field field name\n */\nRequestBase.prototype.unset = function (field) {\n delete this._header[field.toLowerCase()];\n delete this.header[field];\n return this;\n};\n\n/**\n * Write the field `name` and `val`, or multiple fields with one object\n * for \"multipart/form-data\" request bodies.\n *\n * ``` js\n * request.post('/upload')\n * .field('foo', 'bar')\n * .end(callback);\n *\n * request.post('/upload')\n * .field({ foo: 'bar', baz: 'qux' })\n * .end(callback);\n * ```\n *\n * @param {String|Object} name name of field\n * @param {String|Blob|File|Buffer|fs.ReadStream} val value of field\n * @return {Request} for chaining\n * @api public\n */\nRequestBase.prototype.field = function (name, value) {\n // name should be either a string or an object.\n if (name === null || undefined === name) {\n throw new Error('.field(name, val) name can not be empty');\n }\n\n if (this._data) {\n throw new Error(\n \".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()\"\n );\n }\n\n if (isObject(name)) {\n for (const key in name) {\n if (Object.prototype.hasOwnProperty.call(name, key))\n this.field(key, name[key]);\n }\n\n return this;\n }\n\n if (Array.isArray(value)) {\n for (const i in value) {\n if (Object.prototype.hasOwnProperty.call(value, i))\n this.field(name, value[i]);\n }\n\n return this;\n }\n\n // val should be defined now\n if (value === null || undefined === value) {\n throw new Error('.field(name, val) val can not be empty');\n }\n\n if (typeof value === 'boolean') {\n value = String(value);\n }\n\n this._getFormData().append(name, value);\n return this;\n};\n\n/**\n * Abort the request, and clear potential timeout.\n *\n * @return {Request} request\n * @api public\n */\nRequestBase.prototype.abort = function () {\n if (this._aborted) {\n return this;\n }\n\n this._aborted = true;\n if (this.xhr) this.xhr.abort(); // browser\n if (this.req) this.req.abort(); // node\n this.clearTimeout();\n this.emit('abort');\n return this;\n};\n\nRequestBase.prototype._auth = function (user, pass, options, base64Encoder) {\n switch (options.type) {\n case 'basic':\n this.set('Authorization', `Basic ${base64Encoder(`${user}:${pass}`)}`);\n break;\n\n case 'auto':\n this.username = user;\n this.password = pass;\n break;\n\n case 'bearer': // usage would be .auth(accessToken, { type: 'bearer' })\n this.set('Authorization', `Bearer ${user}`);\n break;\n default:\n break;\n }\n\n return this;\n};\n\n/**\n * Enable transmission of cookies with x-domain requests.\n *\n * Note that for this to work the origin must not be\n * using \"Access-Control-Allow-Origin\" with a wildcard,\n * and also must set \"Access-Control-Allow-Credentials\"\n * to \"true\".\n *\n * @api public\n */\n\nRequestBase.prototype.withCredentials = function (on) {\n // This is browser-only functionality. Node side is no-op.\n if (on === undefined) on = true;\n this._withCredentials = on;\n return this;\n};\n\n/**\n * Set the max redirects to `n`. Does nothing in browser XHR implementation.\n *\n * @param {Number} n\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.redirects = function (n) {\n this._maxRedirects = n;\n return this;\n};\n\n/**\n * Maximum size of buffered response body, in bytes. Counts uncompressed size.\n * Default 200MB.\n *\n * @param {Number} n number of bytes\n * @return {Request} for chaining\n */\nRequestBase.prototype.maxResponseSize = function (n) {\n if (typeof n !== 'number') {\n throw new TypeError('Invalid argument');\n }\n\n this._maxResponseSize = n;\n return this;\n};\n\n/**\n * Convert to a plain javascript object (not JSON string) of scalar properties.\n * Note as this method is designed to return a useful non-this value,\n * it cannot be chained.\n *\n * @return {Object} describing method, url, and data of this request\n * @api public\n */\n\nRequestBase.prototype.toJSON = function () {\n return {\n method: this.method,\n url: this.url,\n data: this._data,\n headers: this._header\n };\n};\n\n/**\n * Send `data` as the request body, defaulting the `.type()` to \"json\" when\n * an object is given.\n *\n * Examples:\n *\n * // manual json\n * request.post('/user')\n * .type('json')\n * .send('{\"name\":\"tj\"}')\n * .end(callback)\n *\n * // auto json\n * request.post('/user')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // manual x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send('name=tj')\n * .end(callback)\n *\n * // auto x-www-form-urlencoded\n * request.post('/user')\n * .type('form')\n * .send({ name: 'tj' })\n * .end(callback)\n *\n * // defaults to x-www-form-urlencoded\n * request.post('/user')\n * .send('name=tobi')\n * .send('species=ferret')\n * .end(callback)\n *\n * @param {String|Object} data\n * @return {Request} for chaining\n * @api public\n */\n\n// eslint-disable-next-line complexity\nRequestBase.prototype.send = function (data) {\n const isObject_ = isObject(data);\n let type = this._header['content-type'];\n\n if (this._formData) {\n throw new Error(\n \".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()\"\n );\n }\n\n if (isObject_ && !this._data) {\n if (Array.isArray(data)) {\n this._data = [];\n } else if (!this._isHost(data)) {\n this._data = {};\n }\n } else if (data && this._data && this._isHost(this._data)) {\n throw new Error(\"Can't merge these send calls\");\n }\n\n // merge\n if (isObject_ && isObject(this._data)) {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key))\n this._data[key] = data[key];\n }\n } else if (typeof data === 'string') {\n // default to x-www-form-urlencoded\n if (!type) this.type('form');\n type = this._header['content-type'];\n if (type) type = type.toLowerCase().trim();\n if (type === 'application/x-www-form-urlencoded') {\n this._data = this._data ? `${this._data}&${data}` : data;\n } else {\n this._data = (this._data || '') + data;\n }\n } else {\n this._data = data;\n }\n\n if (!isObject_ || this._isHost(data)) {\n return this;\n }\n\n // default to json\n if (!type) this.type('json');\n return this;\n};\n\n/**\n * Sort `querystring` by the sort function\n *\n *\n * Examples:\n *\n * // default order\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery()\n * .end(callback)\n *\n * // customized sort function\n * request.get('/user')\n * .query('name=Nick')\n * .query('search=Manny')\n * .sortQuery(function(a, b){\n * return a.length - b.length;\n * })\n * .end(callback)\n *\n *\n * @param {Function} sort\n * @return {Request} for chaining\n * @api public\n */\n\nRequestBase.prototype.sortQuery = function (sort) {\n // _sort default to true but otherwise can be a function or boolean\n this._sort = typeof sort === 'undefined' ? true : sort;\n return this;\n};\n\n/**\n * Compose querystring to append to req.url\n *\n * @api private\n */\nRequestBase.prototype._finalizeQueryString = function () {\n const query = this._query.join('&');\n if (query) {\n this.url += (this.url.includes('?') ? '&' : '?') + query;\n }\n\n this._query.length = 0; // Makes the call idempotent\n\n if (this._sort) {\n const index = this.url.indexOf('?');\n if (index >= 0) {\n const queryArray = this.url.slice(index + 1).split('&');\n if (typeof this._sort === 'function') {\n queryArray.sort(this._sort);\n } else {\n queryArray.sort();\n }\n\n this.url = this.url.slice(0, index) + '?' + queryArray.join('&');\n }\n }\n};\n\n// For backwards compat only\nRequestBase.prototype._appendQueryString = () => {\n console.warn('Unsupported');\n};\n\n/**\n * Invoke callback with timeout error.\n *\n * @api private\n */\n\nRequestBase.prototype._timeoutError = function (reason, timeout, errno) {\n if (this._aborted) {\n return;\n }\n\n const err = new Error(`${reason + timeout}ms exceeded`);\n err.timeout = timeout;\n err.code = 'ECONNABORTED';\n err.errno = errno;\n this.timedout = true;\n this.timedoutError = err;\n this.abort();\n this.callback(err);\n};\n\nRequestBase.prototype._setTimeouts = function () {\n const self = this;\n\n // deadline\n if (this._timeout && !this._timer) {\n this._timer = setTimeout(() => {\n self._timeoutError('Timeout of ', self._timeout, 'ETIME');\n }, this._timeout);\n }\n\n // response timeout\n if (this._responseTimeout && !this._responseTimeoutTimer) {\n this._responseTimeoutTimer = setTimeout(() => {\n self._timeoutError(\n 'Response timeout of ',\n self._responseTimeout,\n 'ETIMEDOUT'\n );\n }, this._responseTimeout);\n }\n};\n","/**\n * Module dependencies.\n */\n\nconst utils = require('./utils');\n\n/**\n * Expose `ResponseBase`.\n */\n\nmodule.exports = ResponseBase;\n\n/**\n * Initialize a new `ResponseBase`.\n *\n * @api public\n */\n\nfunction ResponseBase(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the prototype properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (const key in ResponseBase.prototype) {\n if (Object.prototype.hasOwnProperty.call(ResponseBase.prototype, key))\n obj[key] = ResponseBase.prototype[key];\n }\n\n return obj;\n}\n\n/**\n * Get case-insensitive `field` value.\n *\n * @param {String} field\n * @return {String}\n * @api public\n */\n\nResponseBase.prototype.get = function (field) {\n return this.header[field.toLowerCase()];\n};\n\n/**\n * Set header related properties:\n *\n * - `.type` the content type without params\n *\n * A response of \"Content-Type: text/plain; charset=utf-8\"\n * will provide you with a `.type` of \"text/plain\".\n *\n * @param {Object} header\n * @api private\n */\n\nResponseBase.prototype._setHeaderProperties = function (header) {\n // TODO: moar!\n // TODO: make this a util\n\n // content-type\n const ct = header['content-type'] || '';\n this.type = utils.type(ct);\n\n // params\n const params = utils.params(ct);\n for (const key in params) {\n if (Object.prototype.hasOwnProperty.call(params, key))\n this[key] = params[key];\n }\n\n this.links = {};\n\n // links\n try {\n if (header.link) {\n this.links = utils.parseLinks(header.link);\n }\n } catch {\n // ignore\n }\n};\n\n/**\n * Set flags such as `.ok` based on `status`.\n *\n * For example a 2xx response will give you a `.ok` of __true__\n * whereas 5xx will be __false__ and `.error` will be __true__. The\n * `.clientError` and `.serverError` are also available to be more\n * specific, and `.statusType` is the class of error ranging from 1..5\n * sometimes useful for mapping respond colors etc.\n *\n * \"sugar\" properties are also defined for common cases. Currently providing:\n *\n * - .noContent\n * - .badRequest\n * - .unauthorized\n * - .notAcceptable\n * - .notFound\n *\n * @param {Number} status\n * @api private\n */\n\nResponseBase.prototype._setStatusProperties = function (status) {\n const type = (status / 100) | 0;\n\n // status / class\n this.statusCode = status;\n this.status = this.statusCode;\n this.statusType = type;\n\n // basics\n this.info = type === 1;\n this.ok = type === 2;\n this.redirect = type === 3;\n this.clientError = type === 4;\n this.serverError = type === 5;\n this.error = type === 4 || type === 5 ? this.toError() : false;\n\n // sugar\n this.created = status === 201;\n this.accepted = status === 202;\n this.noContent = status === 204;\n this.badRequest = status === 400;\n this.unauthorized = status === 401;\n this.notAcceptable = status === 406;\n this.forbidden = status === 403;\n this.notFound = status === 404;\n this.unprocessableEntity = status === 422;\n};\n","/**\n * Return the mime type for the given `str`.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nexports.type = (str) => str.split(/ *; */).shift();\n\n/**\n * Return header field parameters.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nexports.params = (val) => {\n const obj = {};\n for (const str of val.split(/ *; */)) {\n const parts = str.split(/ *= */);\n const key = parts.shift();\n const val = parts.shift();\n\n if (key && val) obj[key] = val;\n }\n\n return obj;\n};\n\n/**\n * Parse Link header fields.\n *\n * @param {String} str\n * @return {Object}\n * @api private\n */\n\nexports.parseLinks = (val) => {\n const obj = {};\n for (const str of val.split(/ *, */)) {\n const parts = str.split(/ *; */);\n const url = parts[0].slice(1, -1);\n const rel = parts[1].split(/ *= */)[1].slice(1, -1);\n obj[rel] = url;\n }\n\n return obj;\n};\n\n/**\n * Strip content related fields from `header`.\n *\n * @param {Object} header\n * @return {Object} header\n * @api private\n */\n\nexports.cleanHeader = (header, changesOrigin) => {\n delete header['content-type'];\n delete header['content-length'];\n delete header['transfer-encoding'];\n delete header.host;\n // secuirty\n if (changesOrigin) {\n delete header.authorization;\n delete header.cookie;\n }\n\n return header;\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** Alignment along the horizontal axis. */\nexport const Alignment = {\n CENTER: \"center\" as \"center\",\n LEFT: \"left\" as \"left\",\n RIGHT: \"right\" as \"right\",\n};\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type Alignment = typeof Alignment[keyof typeof Alignment];\n","/*\n * Copyright 2018 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// tslint:disable:object-literal-sort-keys\nexport const Elevation = {\n ZERO: 0 as 0,\n ONE: 1 as 1,\n TWO: 2 as 2,\n THREE: 3 as 3,\n FOUR: 4 as 4,\n};\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type Elevation = typeof Elevation[keyof typeof Elevation];\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// tslint:disable:object-literal-sort-keys\n\n/**\n * The four basic intents.\n */\nexport const Intent = {\n NONE: \"none\" as \"none\",\n PRIMARY: \"primary\" as \"primary\",\n SUCCESS: \"success\" as \"success\",\n WARNING: \"warning\" as \"warning\",\n DANGER: \"danger\" as \"danger\",\n};\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type Intent = typeof Intent[keyof typeof Intent];\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const Position = {\n BOTTOM: \"bottom\" as \"bottom\",\n BOTTOM_LEFT: \"bottom-left\" as \"bottom-left\",\n BOTTOM_RIGHT: \"bottom-right\" as \"bottom-right\",\n LEFT: \"left\" as \"left\",\n LEFT_BOTTOM: \"left-bottom\" as \"left-bottom\",\n LEFT_TOP: \"left-top\" as \"left-top\",\n RIGHT: \"right\" as \"right\",\n RIGHT_BOTTOM: \"right-bottom\" as \"right-bottom\",\n RIGHT_TOP: \"right-top\" as \"right-top\",\n TOP: \"top\" as \"top\",\n TOP_LEFT: \"top-left\" as \"top-left\",\n TOP_RIGHT: \"top-right\" as \"top-right\",\n};\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport type Position = typeof Position[keyof typeof Position];\n\nexport function isPositionHorizontal(position: Position) {\n /* istanbul ignore next */\n return (\n position === Position.TOP ||\n position === Position.TOP_LEFT ||\n position === Position.TOP_RIGHT ||\n position === Position.BOTTOM ||\n position === Position.BOTTOM_LEFT ||\n position === Position.BOTTOM_RIGHT\n );\n}\n\nexport function isPositionVertical(position: Position) {\n /* istanbul ignore next */\n return (\n position === Position.LEFT ||\n position === Position.LEFT_TOP ||\n position === Position.LEFT_BOTTOM ||\n position === Position.RIGHT ||\n position === Position.RIGHT_TOP ||\n position === Position.RIGHT_BOTTOM\n );\n}\n\nexport function getPositionIgnoreAngles(position: Position) {\n if (position === Position.TOP || position === Position.TOP_LEFT || position === Position.TOP_RIGHT) {\n return Position.TOP;\n } else if (\n position === Position.BOTTOM ||\n position === Position.BOTTOM_LEFT ||\n position === Position.BOTTOM_RIGHT\n ) {\n return Position.BOTTOM;\n } else if (position === Position.LEFT || position === Position.LEFT_TOP || position === Position.LEFT_BOTTOM) {\n return Position.LEFT;\n } else {\n return Position.RIGHT;\n }\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Alignment } from \"./alignment\";\nimport { Elevation } from \"./elevation\";\nimport { Intent } from \"./intent\";\nimport { Position } from \"./position\";\n\nconst NS = process.env.BLUEPRINT_NAMESPACE || process.env.REACT_APP_BLUEPRINT_NAMESPACE || \"bp3\";\n\n// modifiers\nexport const ACTIVE = `${NS}-active`;\nexport const ALIGN_LEFT = `${NS}-align-left`;\nexport const ALIGN_RIGHT = `${NS}-align-right`;\nexport const DARK = `${NS}-dark`;\nexport const DISABLED = `${NS}-disabled`;\nexport const FILL = `${NS}-fill`;\nexport const FIXED = `${NS}-fixed`;\nexport const FIXED_TOP = `${NS}-fixed-top`;\nexport const INLINE = `${NS}-inline`;\nexport const INTERACTIVE = `${NS}-interactive`;\nexport const LARGE = `${NS}-large`;\nexport const LOADING = `${NS}-loading`;\nexport const MINIMAL = `${NS}-minimal`;\nexport const OUTLINED = `${NS}-outlined`;\nexport const MULTILINE = `${NS}-multiline`;\nexport const ROUND = `${NS}-round`;\nexport const SMALL = `${NS}-small`;\nexport const VERTICAL = `${NS}-vertical`;\nexport const POSITION_TOP = positionClass(Position.TOP);\nexport const POSITION_BOTTOM = positionClass(Position.BOTTOM);\nexport const POSITION_LEFT = positionClass(Position.LEFT);\nexport const POSITION_RIGHT = positionClass(Position.RIGHT);\n\nexport const ELEVATION_0 = elevationClass(Elevation.ZERO);\nexport const ELEVATION_1 = elevationClass(Elevation.ONE);\nexport const ELEVATION_2 = elevationClass(Elevation.TWO);\nexport const ELEVATION_3 = elevationClass(Elevation.THREE);\nexport const ELEVATION_4 = elevationClass(Elevation.FOUR);\n\nexport const INTENT_PRIMARY = intentClass(Intent.PRIMARY)!;\nexport const INTENT_SUCCESS = intentClass(Intent.SUCCESS)!;\nexport const INTENT_WARNING = intentClass(Intent.WARNING)!;\nexport const INTENT_DANGER = intentClass(Intent.DANGER)!;\n\nexport const FOCUS_DISABLED = `${NS}-focus-disabled`;\n\n// text utilities\nexport const UI_TEXT = `${NS}-ui-text`;\nexport const RUNNING_TEXT = `${NS}-running-text`;\nexport const MONOSPACE_TEXT = `${NS}-monospace-text`;\nexport const TEXT_LARGE = `${NS}-text-large`;\nexport const TEXT_SMALL = `${NS}-text-small`;\nexport const TEXT_MUTED = `${NS}-text-muted`;\nexport const TEXT_DISABLED = `${NS}-text-disabled`;\nexport const TEXT_OVERFLOW_ELLIPSIS = `${NS}-text-overflow-ellipsis`;\n\n// textual elements\nexport const BLOCKQUOTE = `${NS}-blockquote`;\nexport const CODE = `${NS}-code`;\nexport const CODE_BLOCK = `${NS}-code-block`;\nexport const HEADING = `${NS}-heading`;\nexport const LIST = `${NS}-list`;\nexport const LIST_UNSTYLED = `${NS}-list-unstyled`;\nexport const RTL = `${NS}-rtl`;\n\n// layout utilities\n/** @see https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block */\nexport const FIXED_POSITIONING_CONTAINING_BLOCK = `${NS}-fixed-positioning-containing-block`;\n\n// components\nexport const ALERT = `${NS}-alert`;\nexport const ALERT_BODY = `${ALERT}-body`;\nexport const ALERT_CONTENTS = `${ALERT}-contents`;\nexport const ALERT_FOOTER = `${ALERT}-footer`;\n\nexport const BREADCRUMB = `${NS}-breadcrumb`;\nexport const BREADCRUMB_CURRENT = `${BREADCRUMB}-current`;\nexport const BREADCRUMBS = `${BREADCRUMB}s`;\nexport const BREADCRUMBS_COLLAPSED = `${BREADCRUMB}s-collapsed`;\n\nexport const BUTTON = `${NS}-button`;\nexport const BUTTON_GROUP = `${BUTTON}-group`;\nexport const BUTTON_SPINNER = `${BUTTON}-spinner`;\nexport const BUTTON_TEXT = `${BUTTON}-text`;\n\nexport const CALLOUT = `${NS}-callout`;\nexport const CALLOUT_ICON = `${CALLOUT}-icon`;\n\nexport const CARD = `${NS}-card`;\n\nexport const COLLAPSE = `${NS}-collapse`;\nexport const COLLAPSE_BODY = `${COLLAPSE}-body`;\n\nexport const COLLAPSIBLE_LIST = `${NS}-collapse-list`;\n\nexport const CONTEXT_MENU = `${NS}-context-menu`;\nexport const CONTEXT_MENU_POPOVER_TARGET = `${CONTEXT_MENU}-popover-target`;\n\nexport const CONTROL_GROUP = `${NS}-control-group`;\n\nexport const DIALOG = `${NS}-dialog`;\nexport const DIALOG_CONTAINER = `${DIALOG}-container`;\nexport const DIALOG_BODY = `${DIALOG}-body`;\nexport const DIALOG_CLOSE_BUTTON = `${DIALOG}-close-button`;\nexport const DIALOG_FOOTER = `${DIALOG}-footer`;\nexport const DIALOG_FOOTER_ACTIONS = `${DIALOG}-footer-actions`;\nexport const DIALOG_HEADER = `${DIALOG}-header`;\n\nexport const DIALOG_STEP = `${NS}-dialog-step`;\nexport const DIALOG_STEP_CONTAINER = `${DIALOG_STEP}-container`;\nexport const DIALOG_STEP_TITLE = `${DIALOG_STEP}-title`;\nexport const DIALOG_STEP_ICON = `${DIALOG_STEP}-icon`;\nexport const DIALOG_STEP_VIEWED = `${DIALOG_STEP}-viewed`;\n\nexport const DIVIDER = `${NS}-divider`;\n\nexport const DRAWER = `${NS}-drawer`;\nexport const DRAWER_BODY = `${DRAWER}-body`;\nexport const DRAWER_FOOTER = `${DRAWER}-footer`;\nexport const DRAWER_HEADER = `${DRAWER}-header`;\n\nexport const EDITABLE_TEXT = `${NS}-editable-text`;\nexport const EDITABLE_TEXT_CONTENT = `${EDITABLE_TEXT}-content`;\nexport const EDITABLE_TEXT_EDITING = `${EDITABLE_TEXT}-editing`;\nexport const EDITABLE_TEXT_INPUT = `${EDITABLE_TEXT}-input`;\nexport const EDITABLE_TEXT_PLACEHOLDER = `${EDITABLE_TEXT}-placeholder`;\n\nexport const FLEX_EXPANDER = `${NS}-flex-expander`;\n\nexport const HTML_SELECT = `${NS}-html-select`;\n/** @deprecated prefer `` component */\nexport const SELECT = `${NS}-select`;\n\nexport const HTML_TABLE = `${NS}-html-table`;\nexport const HTML_TABLE_BORDERED = `${HTML_TABLE}-bordered`;\nexport const HTML_TABLE_CONDENSED = `${HTML_TABLE}-condensed`;\nexport const HTML_TABLE_STRIPED = `${HTML_TABLE}-striped`;\n\nexport const INPUT = `${NS}-input`;\nexport const INPUT_GHOST = `${INPUT}-ghost`;\nexport const INPUT_GROUP = `${INPUT}-group`;\nexport const INPUT_LEFT_CONTAINER = `${INPUT}-left-container`;\nexport const INPUT_ACTION = `${INPUT}-action`;\n\nexport const CONTROL = `${NS}-control`;\nexport const CONTROL_INDICATOR = `${CONTROL}-indicator`;\nexport const CONTROL_INDICATOR_CHILD = `${CONTROL_INDICATOR}-child`;\nexport const CHECKBOX = `${NS}-checkbox`;\nexport const RADIO = `${NS}-radio`;\nexport const SWITCH = `${NS}-switch`;\nexport const SWITCH_INNER_TEXT = `${SWITCH}-inner-text`;\nexport const FILE_INPUT = `${NS}-file-input`;\nexport const FILE_INPUT_HAS_SELECTION = `${NS}-file-input-has-selection`;\nexport const FILE_UPLOAD_INPUT = `${NS}-file-upload-input`;\nexport const FILE_UPLOAD_INPUT_CUSTOM_TEXT = `${NS}-file-upload-input-custom-text`;\n\nexport const KEY = `${NS}-key`;\nexport const KEY_COMBO = `${KEY}-combo`;\nexport const MODIFIER_KEY = `${NS}-modifier-key`;\n\nexport const HOTKEY = `${NS}-hotkey`;\nexport const HOTKEY_LABEL = `${HOTKEY}-label`;\nexport const HOTKEY_COLUMN = `${HOTKEY}-column`;\nexport const HOTKEY_DIALOG = `${HOTKEY}-dialog`;\n\nexport const LABEL = `${NS}-label`;\nexport const FORM_GROUP = `${NS}-form-group`;\nexport const FORM_CONTENT = `${NS}-form-content`;\nexport const FORM_HELPER_TEXT = `${NS}-form-helper-text`;\n\nexport const MENU = `${NS}-menu`;\nexport const MENU_ITEM = `${MENU}-item`;\nexport const MENU_ITEM_LABEL = `${MENU_ITEM}-label`;\nexport const MENU_SUBMENU = `${NS}-submenu`;\nexport const MENU_DIVIDER = `${MENU}-divider`;\nexport const MENU_HEADER = `${MENU}-header`;\n\nexport const MULTISTEP_DIALOG = `${NS}-multistep-dialog`;\nexport const MULTISTEP_DIALOG_PANELS = `${MULTISTEP_DIALOG}-panels`;\nexport const MULTISTEP_DIALOG_LEFT_PANEL = `${MULTISTEP_DIALOG}-left-panel`;\nexport const MULTISTEP_DIALOG_RIGHT_PANEL = `${MULTISTEP_DIALOG}-right-panel`;\nexport const MULTISTEP_DIALOG_FOOTER = `${MULTISTEP_DIALOG}-footer`;\n\nexport const NAVBAR = `${NS}-navbar`;\nexport const NAVBAR_GROUP = `${NAVBAR}-group`;\nexport const NAVBAR_HEADING = `${NAVBAR}-heading`;\nexport const NAVBAR_DIVIDER = `${NAVBAR}-divider`;\n\nexport const NON_IDEAL_STATE = `${NS}-non-ideal-state`;\nexport const NON_IDEAL_STATE_VISUAL = `${NON_IDEAL_STATE}-visual`;\n\nexport const NUMERIC_INPUT = `${NS}-numeric-input`;\n\nexport const OVERFLOW_LIST = `${NS}-overflow-list`;\nexport const OVERFLOW_LIST_SPACER = `${OVERFLOW_LIST}-spacer`;\n\nexport const OVERLAY = `${NS}-overlay`;\nexport const OVERLAY_BACKDROP = `${OVERLAY}-backdrop`;\nexport const OVERLAY_CONTAINER = `${OVERLAY}-container`;\nexport const OVERLAY_CONTENT = `${OVERLAY}-content`;\nexport const OVERLAY_INLINE = `${OVERLAY}-inline`;\nexport const OVERLAY_OPEN = `${OVERLAY}-open`;\nexport const OVERLAY_SCROLL_CONTAINER = `${OVERLAY}-scroll-container`;\n\nexport const PANEL_STACK = `${NS}-panel-stack`;\nexport const PANEL_STACK_HEADER = `${PANEL_STACK}-header`;\nexport const PANEL_STACK_HEADER_BACK = `${PANEL_STACK}-header-back`;\nexport const PANEL_STACK_VIEW = `${PANEL_STACK}-view`;\n\nexport const PANEL_STACK2 = `${NS}-panel-stack2`;\nexport const PANEL_STACK2_HEADER = `${PANEL_STACK}-header`;\nexport const PANEL_STACK2_HEADER_BACK = `${PANEL_STACK}-header-back`;\nexport const PANEL_STACK2_VIEW = `${PANEL_STACK}-view`;\n\nexport const POPOVER = `${NS}-popover`;\nexport const POPOVER_ARROW = `${POPOVER}-arrow`;\nexport const POPOVER_BACKDROP = `${POPOVER}-backdrop`;\nexport const POPOVER_CAPTURING_DISMISS = `${POPOVER}-capturing-dismiss`;\nexport const POPOVER_CONTENT = `${POPOVER}-content`;\nexport const POPOVER_CONTENT_SIZING = `${POPOVER_CONTENT}-sizing`;\nexport const POPOVER_DISMISS = `${POPOVER}-dismiss`;\nexport const POPOVER_DISMISS_OVERRIDE = `${POPOVER_DISMISS}-override`;\nexport const POPOVER_OPEN = `${POPOVER}-open`;\nexport const POPOVER_TARGET = `${POPOVER}-target`;\nexport const POPOVER_WRAPPER = `${POPOVER}-wrapper`;\nexport const TRANSITION_CONTAINER = `${NS}-transition-container`;\n\nexport const PROGRESS_BAR = `${NS}-progress-bar`;\nexport const PROGRESS_METER = `${NS}-progress-meter`;\nexport const PROGRESS_NO_STRIPES = `${NS}-no-stripes`;\nexport const PROGRESS_NO_ANIMATION = `${NS}-no-animation`;\n\nexport const PORTAL = `${NS}-portal`;\n\nexport const SKELETON = `${NS}-skeleton`;\n\nexport const SLIDER = `${NS}-slider`;\nexport const SLIDER_AXIS = `${SLIDER}-axis`;\nexport const SLIDER_HANDLE = `${SLIDER}-handle`;\nexport const SLIDER_LABEL = `${SLIDER}-label`;\nexport const SLIDER_TRACK = `${SLIDER}-track`;\nexport const SLIDER_PROGRESS = `${SLIDER}-progress`;\nexport const START = `${NS}-start`;\nexport const END = `${NS}-end`;\n\nexport const SPINNER = `${NS}-spinner`;\nexport const SPINNER_ANIMATION = `${SPINNER}-animation`;\nexport const SPINNER_HEAD = `${SPINNER}-head`;\nexport const SPINNER_NO_SPIN = `${NS}-no-spin`;\nexport const SPINNER_TRACK = `${SPINNER}-track`;\n\nexport const TAB = `${NS}-tab`;\nexport const TAB_INDICATOR = `${TAB}-indicator`;\nexport const TAB_INDICATOR_WRAPPER = `${TAB_INDICATOR}-wrapper`;\nexport const TAB_LIST = `${TAB}-list`;\nexport const TAB_PANEL = `${TAB}-panel`;\nexport const TABS = `${TAB}s`;\n\nexport const TAG = `${NS}-tag`;\nexport const TAG_REMOVE = `${TAG}-remove`;\n\nexport const TAG_INPUT = `${NS}-tag-input`;\nexport const TAG_INPUT_ICON = `${TAG_INPUT}-icon`;\nexport const TAG_INPUT_VALUES = `${TAG_INPUT}-values`;\n\nexport const TOAST = `${NS}-toast`;\nexport const TOAST_CONTAINER = `${TOAST}-container`;\nexport const TOAST_MESSAGE = `${TOAST}-message`;\n\nexport const TOOLTIP = `${NS}-tooltip`;\nexport const TOOLTIP_INDICATOR = `${TOOLTIP}-indicator`;\n\nexport const TREE = `${NS}-tree`;\nexport const TREE_NODE = `${NS}-tree-node`;\nexport const TREE_NODE_CARET = `${TREE_NODE}-caret`;\nexport const TREE_NODE_CARET_CLOSED = `${TREE_NODE_CARET}-closed`;\nexport const TREE_NODE_CARET_NONE = `${TREE_NODE_CARET}-none`;\nexport const TREE_NODE_CARET_OPEN = `${TREE_NODE_CARET}-open`;\nexport const TREE_NODE_CONTENT = `${TREE_NODE}-content`;\nexport const TREE_NODE_EXPANDED = `${TREE_NODE}-expanded`;\nexport const TREE_NODE_ICON = `${TREE_NODE}-icon`;\nexport const TREE_NODE_LABEL = `${TREE_NODE}-label`;\nexport const TREE_NODE_LIST = `${TREE_NODE}-list`;\nexport const TREE_NODE_SECONDARY_LABEL = `${TREE_NODE}-secondary-label`;\nexport const TREE_NODE_SELECTED = `${TREE_NODE}-selected`;\nexport const TREE_ROOT = `${NS}-tree-root`;\n\nexport const ICON = `${NS}-icon`;\n/** @deprecated use components and iconName prop APIs instead */\nexport const ICON_STANDARD = `${ICON}-standard`;\n/** @deprecated use components and iconName prop APIs instead */\nexport const ICON_LARGE = `${ICON}-large`;\n\n/**\n * Returns the namespace prefix for all Blueprint CSS classes.\n * Customize this namespace at build time with the `process.env.BLUEPRINT_NAMESPACE` environment variable.\n */\nexport function getClassNamespace() {\n return NS;\n}\n\n/** Return CSS class for alignment. */\nexport function alignmentClass(alignment: Alignment | undefined) {\n switch (alignment) {\n case Alignment.LEFT:\n return ALIGN_LEFT;\n case Alignment.RIGHT:\n return ALIGN_RIGHT;\n default:\n return undefined;\n }\n}\n\nexport function elevationClass(elevation: Elevation): string;\nexport function elevationClass(elevation: undefined): undefined;\nexport function elevationClass(elevation: Elevation | undefined): string | undefined;\nexport function elevationClass(elevation: Elevation | undefined) {\n if (elevation === undefined) {\n return undefined;\n }\n return `${NS}-elevation-${elevation}`;\n}\n\n/**\n * Returns CSS class for icon name.\n *\n * @deprecated These CSS classes rely on Blueprint's icon fonts, which are a legacy feature and will be\n * removed the next major version (4.x). Use the `` React component and `iconName` string enum prop\n * APIs instead – they render SVGs, which do not suffer from the blurriness of icon fonts and have\n * equivalent browser support.\n */\nexport function iconClass(iconName: string): string;\nexport function iconClass(iconName: undefined): undefined;\nexport function iconClass(iconName: string | undefined): string | undefined;\nexport function iconClass(iconName: string | undefined) {\n if (iconName == null) {\n return undefined;\n }\n return iconName.indexOf(`${NS}-icon-`) === 0 ? iconName : `${NS}-icon-${iconName}`;\n}\n\n/** Return CSS class for intent. */\nexport function intentClass(intent: Intent): string;\nexport function intentClass(intent: typeof Intent.NONE | undefined): undefined;\nexport function intentClass(intent: Intent | undefined): Intent | undefined;\nexport function intentClass(intent: Intent | undefined) {\n if (intent == null || intent === Intent.NONE) {\n return undefined;\n }\n return `${NS}-intent-${intent.toLowerCase()}`;\n}\n\nexport function positionClass(position: Position): string;\nexport function positionClass(position: undefined): undefined;\nexport function positionClass(position: Position | undefined): string | undefined;\nexport function positionClass(position: Position | undefined) {\n if (position === undefined) {\n return undefined;\n }\n return `${NS}-position-${position}`;\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst TAB_KEY_CODE = 9;\n\n/* istanbul ignore next */\n\n/**\n * A nifty little class that maintains event handlers to add a class to the container element\n * when entering \"mouse mode\" (on a `mousedown` event) and remove it when entering \"keyboard mode\"\n * (on a `tab` key `keydown` event).\n */\nexport class InteractionModeEngine {\n private isRunning = false;\n\n constructor(private container: Element, private className: string) {}\n\n /** Returns whether the engine is currently running. */\n public isActive() {\n return this.isRunning;\n }\n\n /** Enable behavior which applies the given className when in mouse mode. */\n public start() {\n this.container.addEventListener(\"mousedown\", this.handleMouseDown);\n this.isRunning = true;\n }\n\n /** Disable interaction mode behavior and remove className from container. */\n public stop() {\n this.reset();\n this.isRunning = false;\n }\n\n private reset() {\n this.container.classList.remove(this.className);\n // HACKHACK: see https://github.com/palantir/blueprint/issues/4342\n this.container.removeEventListener(\"keydown\", this.handleKeyDown as EventListener);\n this.container.removeEventListener(\"mousedown\", this.handleMouseDown);\n }\n\n private handleKeyDown = (e: KeyboardEvent) => {\n // HACKHACK: https://github.com/palantir/blueprint/issues/4165\n // eslint-disable-next-line deprecation/deprecation\n if (e.which === TAB_KEY_CODE) {\n this.reset();\n this.container.addEventListener(\"mousedown\", this.handleMouseDown);\n }\n };\n\n private handleMouseDown = () => {\n this.reset();\n this.container.classList.add(this.className);\n // HACKHACK: see https://github.com/palantir/blueprint/issues/4342\n this.container.addEventListener(\"keydown\", this.handleKeyDown as EventListener);\n };\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FOCUS_DISABLED } from \"../common/classes\";\nimport { InteractionModeEngine } from \"../common/interactionMode\";\n\n/* istanbul ignore next */\nconst fakeFocusEngine = {\n isActive: () => true,\n start: () => true,\n stop: () => true,\n};\n\nconst focusEngine =\n typeof document !== \"undefined\"\n ? new InteractionModeEngine(document.documentElement, FOCUS_DISABLED)\n : fakeFocusEngine;\n\nexport const FocusStyleManager = {\n alwaysShowFocus: () => focusEngine.stop(),\n isActive: () => focusEngine.isActive(),\n onlyShowFocusOnTabs: () => focusEngine.start(),\n};\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as React from \"react\";\n\nimport { IconName } from \"@blueprintjs/icons\";\n\nimport { Intent } from \"./intent\";\nimport { IRef } from \"./refs\";\n\nexport const DISPLAYNAME_PREFIX = \"Blueprint3\";\n\n/**\n * Alias for all valid HTML props for `
    ` element.\n * Does not include React's `ref` or `key`.\n */\nexport type HTMLDivProps = React.HTMLAttributes;\n\n/**\n * Alias for all valid HTML props for `` element.\n * Does not include React's `ref` or `key`.\n */\nexport type HTMLInputProps = React.InputHTMLAttributes;\n\n/**\n * Alias for a `JSX.Element` or a value that renders nothing.\n *\n * In React, `boolean`, `null`, and `undefined` do not produce any output.\n */\nexport type MaybeElement = JSX.Element | false | null | undefined;\n\n/**\n * A shared base interface for all Blueprint component props.\n *\n * @deprecated use Props\n */\nexport interface IProps {\n /** A space-delimited list of class names to pass along to a child element. */\n className?: string;\n}\n// eslint-disable-next-line deprecation/deprecation\nexport type Props = IProps;\n\n/** @deprecated use IntentProps */\nexport interface IIntentProps {\n /** Visual intent color to apply to element. */\n intent?: Intent;\n}\n// eslint-disable-next-line deprecation/deprecation\nexport type IntentProps = IIntentProps;\n\n/**\n * Interface for a clickable action, such as a button or menu item.\n * These props can be spready directly to a `
    \n );\n };\n\n private renderTarget = (referenceProps: ReferenceChildrenProps) => {\n const { fill, openOnTargetFocus, targetClassName, targetProps = {} } = this.props;\n const { isOpen } = this.state;\n const isControlled = this.isControlled();\n const isHoverInteractionKind = this.isHoverInteractionKind();\n let { targetTagName } = this.props;\n if (fill) {\n targetTagName = \"div\";\n }\n\n const finalTargetProps: React.HTMLProps = isHoverInteractionKind\n ? {\n // HOVER handlers\n onBlur: this.handleTargetBlur,\n onFocus: this.handleTargetFocus,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n }\n : {\n // CLICK needs only one handler\n onClick: this.handleTargetClick,\n };\n finalTargetProps.className = classNames(\n Classes.POPOVER_TARGET,\n { [Classes.POPOVER_OPEN]: isOpen },\n targetProps.className,\n targetClassName,\n );\n finalTargetProps.ref = referenceProps.ref;\n\n const rawTarget = Utils.ensureElement(this.understandChildren().target);\n\n if (rawTarget === undefined) {\n return null;\n }\n\n const rawTabIndex = rawTarget.props.tabIndex;\n // ensure target is focusable if relevant prop enabled\n const tabIndex = rawTabIndex == null && openOnTargetFocus && isHoverInteractionKind ? 0 : rawTabIndex;\n const clonedTarget: JSX.Element = React.cloneElement(rawTarget, {\n className: classNames(rawTarget.props.className, {\n // this class is mainly useful for button targets; we should only apply it for uncontrolled popovers\n // when they are opened by a user interaction\n [Classes.ACTIVE]: isOpen && !isControlled && !isHoverInteractionKind,\n }),\n // force disable single Tooltip child when popover is open (BLUEPRINT-552)\n /* eslint-disable-next-line deprecation/deprecation */\n disabled: isOpen && Utils.isElementOfType(rawTarget, Tooltip) ? true : rawTarget.props.disabled,\n tabIndex,\n });\n const target = React.createElement(\n targetTagName!,\n {\n ...targetProps,\n ...finalTargetProps,\n },\n clonedTarget,\n );\n\n return {target};\n };\n\n // content and target can be specified as props or as children. this method\n // normalizes the two approaches, preferring child over prop.\n private understandChildren() {\n const { children, content: contentProp, target: targetProp } = this.props;\n // #validateProps asserts that 1 <= children.length <= 2 so content is optional\n const [targetChild, contentChild] = React.Children.toArray(children);\n return {\n content: contentChild == null ? contentProp : contentChild,\n target: targetChild == null ? targetProp : targetChild,\n };\n }\n\n private isControlled = () => this.props.isOpen !== undefined;\n\n private getIsOpen(props: IPopoverProps) {\n // disabled popovers should never be allowed to open.\n if (props.disabled) {\n return false;\n } else if (props.isOpen != null) {\n return props.isOpen;\n } else {\n return props.defaultIsOpen!;\n }\n }\n\n private getPopperModifiers(): PopperModifiers {\n const { boundary, modifiers } = this.props;\n const { flip = {}, preventOverflow = {} } = modifiers!;\n return {\n ...modifiers,\n arrowOffset: {\n enabled: this.isArrowEnabled(),\n fn: arrowOffsetModifier,\n order: 510,\n },\n flip: { boundariesElement: boundary, ...flip },\n preventOverflow: { boundariesElement: boundary, ...preventOverflow },\n updatePopoverState: {\n enabled: true,\n fn: this.updatePopoverState,\n order: 900,\n },\n };\n }\n\n private handleTargetFocus = (e: React.FocusEvent) => {\n if (this.props.openOnTargetFocus && this.isHoverInteractionKind()) {\n if (e.relatedTarget == null && !this.lostFocusOnSamePage) {\n // ignore this focus event -- the target was already focused but the page itself\n // lost focus (e.g. due to switching tabs).\n return;\n }\n this.handleMouseEnter((e as unknown) as React.MouseEvent);\n }\n this.props.targetProps?.onFocus?.(e);\n };\n\n private handleTargetBlur = (e: React.FocusEvent) => {\n if (this.props.openOnTargetFocus && this.isHoverInteractionKind()) {\n // if the next element to receive focus is within the popover, we'll want to leave the\n // popover open. e.relatedTarget ought to tell us the next element to receive focus, but if the user just\n // clicked on an element which is not focusable (either by default or with a tabIndex attribute),\n // it won't be set. So, we filter those out here and assume that a click handler somewhere else will\n // close the popover if necessary.\n if (e.relatedTarget != null && !this.isElementInPopover(e.relatedTarget as HTMLElement)) {\n this.handleMouseLeave((e as unknown) as React.MouseEvent);\n }\n }\n this.lostFocusOnSamePage = e.relatedTarget != null;\n this.props.targetProps?.onBlur?.(e);\n };\n\n private handleMouseEnter = (e: React.MouseEvent) => {\n this.isMouseInTargetOrPopover = true;\n\n // if we're entering the popover, and the mode is set to be HOVER_TARGET_ONLY, we want to manually\n // trigger the mouse leave event, as hovering over the popover shouldn't count.\n if (\n !this.props.usePortal &&\n this.isElementInPopover(e.target as Element) &&\n this.props.interactionKind === PopoverInteractionKind.HOVER_TARGET_ONLY &&\n !this.props.openOnTargetFocus\n ) {\n this.handleMouseLeave(e);\n } else if (!this.props.disabled) {\n // only begin opening popover when it is enabled\n this.setOpenState(true, e, this.props.hoverOpenDelay);\n }\n this.props.targetProps?.onMouseEnter?.(e);\n };\n\n private handleMouseLeave = (e: React.MouseEvent) => {\n this.isMouseInTargetOrPopover = false;\n\n // wait until the event queue is flushed, because we want to leave the\n // popover open if the mouse entered the popover immediately after\n // leaving the target (or vice versa).\n this.setTimeout(() => {\n if (this.isMouseInTargetOrPopover) {\n return;\n }\n // user-configurable closing delay is helpful when moving mouse from target to popover\n this.setOpenState(false, e, this.props.hoverCloseDelay);\n });\n this.props.targetProps?.onMouseLeave?.(e);\n };\n\n private handlePopoverClick = (e: React.MouseEvent) => {\n const eventTarget = e.target as HTMLElement;\n const eventPopover = eventTarget.closest(`.${Classes.POPOVER}`);\n const isEventFromSelf = eventPopover === this.popoverRef.current;\n const isEventPopoverCapturing = eventPopover?.classList.contains(Classes.POPOVER_CAPTURING_DISMISS);\n // an OVERRIDE inside a DISMISS does not dismiss, and a DISMISS inside an OVERRIDE will dismiss.\n const dismissElement = eventTarget.closest(`.${Classes.POPOVER_DISMISS}, .${Classes.POPOVER_DISMISS_OVERRIDE}`);\n const shouldDismiss = dismissElement != null && dismissElement.classList.contains(Classes.POPOVER_DISMISS);\n const isDisabled = eventTarget.closest(`:disabled, .${Classes.DISABLED}`) != null;\n if (shouldDismiss && !isDisabled && (!isEventPopoverCapturing || isEventFromSelf)) {\n this.setOpenState(false, e);\n }\n };\n\n private handleOverlayClose = (e?: React.SyntheticEvent) => {\n if (this.targetElement === null || e === undefined) {\n return;\n }\n\n const eventTarget = e.target as HTMLElement;\n // if click was in target, target event listener will handle things, so don't close\n if (!Utils.elementIsOrContains(this.targetElement, eventTarget) || e.nativeEvent instanceof KeyboardEvent) {\n this.setOpenState(false, e);\n }\n };\n\n private handleTargetClick = (e: React.MouseEvent) => {\n // ensure click did not originate from within inline popover before closing\n if (!this.props.disabled && !this.isElementInPopover(e.target as HTMLElement)) {\n if (this.props.isOpen == null) {\n this.setState(prevState => ({ isOpen: !prevState.isOpen }));\n } else {\n this.setOpenState(!this.props.isOpen, e);\n }\n }\n this.props.targetProps?.onClick?.(e);\n };\n\n // a wrapper around setState({isOpen}) that will call props.onInteraction instead when in controlled mode.\n // starts a timeout to delay changing the state if a non-zero duration is provided.\n private setOpenState(isOpen: boolean, e?: React.SyntheticEvent, timeout?: number) {\n // cancel any existing timeout because we have new state\n this.cancelOpenTimeout?.();\n if (timeout !== undefined && timeout > 0) {\n this.cancelOpenTimeout = this.setTimeout(() => this.setOpenState(isOpen, e), timeout);\n } else {\n if (this.props.isOpen == null) {\n this.setState({ isOpen });\n } else {\n this.props.onInteraction?.(isOpen, e);\n }\n if (!isOpen) {\n // non-null assertion because the only time `e` is undefined is when in controlled mode\n // or the rare special case in uncontrolled mode when the `disabled` flag is toggled true\n this.props.onClose?.(e!);\n }\n }\n }\n\n private isArrowEnabled() {\n const { minimal, modifiers } = this.props;\n // omitting `arrow` from `modifiers` uses Popper default, which does show an arrow.\n return !minimal && (modifiers?.arrow == null || modifiers.arrow.enabled);\n }\n\n private isElementInPopover(element: Element) {\n return this.popoverElement?.contains(element);\n }\n\n private isHoverInteractionKind() {\n return (\n this.props.interactionKind === PopoverInteractionKind.HOVER ||\n this.props.interactionKind === PopoverInteractionKind.HOVER_TARGET_ONLY\n );\n }\n\n /** Popper modifier that updates React state (for style properties) based on latest data. */\n private updatePopoverState: ModifierFn = data => {\n // always set string; let shouldComponentUpdate determine if update is necessary\n this.setState({ transformOrigin: getTransformOrigin(data) });\n return data;\n };\n}\n","/*\n * Copyright 2017 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\n\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { DISPLAYNAME_PREFIX, Props } from \"../../common/props\";\n\n// eslint-disable-next-line deprecation/deprecation\nexport type TextProps = ITextProps;\n/** @deprecated use TextProps */\nexport interface ITextProps extends Props {\n /**\n * Indicates that this component should be truncated with an ellipsis if it overflows its container.\n * The `title` attribute will also be added when content overflows to show the full text of the children on hover.\n *\n * @default false\n */\n ellipsize?: boolean;\n\n /**\n * HTML tag name to use for rendered element.\n *\n * @default \"div\"\n */\n tagName?: keyof JSX.IntrinsicElements;\n\n /**\n * HTML title of the element\n */\n title?: string;\n}\n\nexport interface ITextState {\n textContent: string;\n isContentOverflowing: boolean;\n}\n\n@polyfill\nexport class Text extends AbstractPureComponent2 {\n public static displayName = `${DISPLAYNAME_PREFIX}.Text`;\n\n public static defaultProps: Partial = {\n ellipsize: false,\n tagName: \"div\",\n };\n\n public state: ITextState = {\n isContentOverflowing: false,\n textContent: \"\",\n };\n\n private textRef: HTMLElement | null = null;\n\n public componentDidMount() {\n this.update();\n }\n\n public componentDidUpdate() {\n this.update();\n }\n\n public render() {\n const classes = classNames(\n {\n [Classes.TEXT_OVERFLOW_ELLIPSIS]: this.props.ellipsize,\n },\n this.props.className,\n );\n const { children, tagName, title } = this.props;\n\n return React.createElement(\n tagName!,\n {\n className: classes,\n ref: (ref: HTMLElement | null) => (this.textRef = ref),\n title: title ?? (this.state.isContentOverflowing ? this.state.textContent : undefined),\n },\n children,\n );\n }\n\n private update() {\n if (this.textRef?.textContent == null) {\n return;\n }\n const newState = {\n isContentOverflowing: this.props.ellipsize! && this.textRef.scrollWidth > this.textRef.clientWidth,\n textContent: this.textRef.textContent,\n };\n this.setState(newState);\n }\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport { Modifiers } from \"popper.js\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\n\nimport { AbstractPureComponent2, Classes, Position } from \"../../common\";\nimport { DISPLAYNAME_PREFIX, ActionProps, LinkProps } from \"../../common/props\";\nimport { Icon } from \"../icon/icon\";\nimport { IPopoverProps, Popover, PopoverInteractionKind } from \"../popover/popover\";\nimport { Text } from \"../text/text\";\n// this cyclic import can be removed in v4.0 (https://github.com/palantir/blueprint/issues/3829)\n// eslint-disable-next-line import/no-cycle\nimport { Menu } from \"./menu\";\n\n// eslint-disable-next-line deprecation/deprecation\nexport type MenuItemProps = IMenuItemProps;\n/** @deprecated use MenuItemProps */\nexport interface IMenuItemProps extends ActionProps, LinkProps {\n // override from IActionProps to make it required\n /** Item text, required for usability. */\n text: React.ReactNode;\n\n /** Whether this menu item should appear with an active state. */\n active?: boolean;\n\n /**\n * Children of this component will be rendered in a __submenu__ that appears when hovering or\n * clicking on this menu item.\n *\n * Use `text` prop for the content of the menu item itself.\n */\n children?: React.ReactNode;\n\n /**\n * Whether this menu item is non-interactive. Enabling this prop will ignore `href`, `tabIndex`,\n * and mouse event handlers (in particular click, down, enter, leave).\n */\n disabled?: boolean;\n\n /**\n * Right-aligned label text content, useful for displaying hotkeys.\n *\n * This prop actually supports JSX elements, but TypeScript will throw an error because\n * `HTMLAttributes` only allows strings. Use `labelElement` to supply a JSX element in TypeScript.\n */\n label?: string;\n\n /**\n * A space-delimited list of class names to pass along to the right-aligned label wrapper element.\n */\n labelClassName?: string;\n\n /**\n * Right-aligned label content, useful for displaying hotkeys.\n */\n labelElement?: React.ReactNode;\n\n /**\n * Whether the text should be allowed to wrap to multiple lines.\n * If `false`, text will be truncated with an ellipsis when it reaches `max-width`.\n *\n * @default false\n */\n multiline?: boolean;\n\n /**\n * Props to spread to `Popover`. Note that `content` and `minimal` cannot be\n * changed and `usePortal` defaults to `false` so all submenus will live in\n * the same container.\n */\n popoverProps?: Partial;\n\n /**\n * Whether an enabled item without a submenu should automatically close its parent popover when clicked.\n *\n * @default true\n */\n shouldDismissPopover?: boolean;\n\n /**\n * Name of the HTML tag that wraps the MenuItem.\n *\n * @default \"a\"\n */\n tagName?: keyof JSX.IntrinsicElements;\n\n /**\n * A space-delimited list of class names to pass along to the text wrapper element.\n */\n textClassName?: string;\n\n /**\n * HTML title to be passed to the component\n */\n htmlTitle?: string;\n}\n\n@polyfill\nexport class MenuItem extends AbstractPureComponent2> {\n public static defaultProps: MenuItemProps = {\n disabled: false,\n multiline: false,\n popoverProps: {},\n shouldDismissPopover: true,\n text: \"\",\n };\n\n public static displayName = `${DISPLAYNAME_PREFIX}.MenuItem`;\n\n public render() {\n const {\n active,\n className,\n children,\n disabled,\n icon,\n intent,\n labelClassName,\n labelElement,\n multiline,\n popoverProps,\n shouldDismissPopover,\n text,\n textClassName,\n tagName = \"a\",\n htmlTitle,\n ...htmlProps\n } = this.props;\n const hasSubmenu = children != null;\n\n const intentClass = Classes.intentClass(intent);\n const anchorClasses = classNames(\n Classes.MENU_ITEM,\n intentClass,\n {\n [Classes.ACTIVE]: active,\n [Classes.INTENT_PRIMARY]: active && intentClass == null,\n [Classes.DISABLED]: disabled,\n // prevent popover from closing when clicking on submenu trigger or disabled item\n [Classes.POPOVER_DISMISS]: shouldDismissPopover && !disabled && !hasSubmenu,\n },\n className,\n );\n\n const target = React.createElement(\n tagName,\n {\n ...htmlProps,\n ...(disabled ? DISABLED_PROPS : {}),\n className: anchorClasses,\n },\n ,\n \n {text}\n ,\n this.maybeRenderLabel(labelElement),\n hasSubmenu ? : undefined,\n );\n\n const liClasses = classNames({ [Classes.MENU_SUBMENU]: hasSubmenu });\n return
  • {this.maybeRenderPopover(target, children)}
  • ;\n }\n\n private maybeRenderLabel(labelElement?: React.ReactNode) {\n const { label, labelClassName } = this.props;\n if (label == null && labelElement == null) {\n return null;\n }\n return (\n \n {label}\n {labelElement}\n \n );\n }\n\n private maybeRenderPopover(target: JSX.Element, children?: React.ReactNode) {\n if (children == null) {\n return target;\n }\n const { disabled, popoverProps } = this.props;\n return (\n /* eslint-disable-next-line deprecation/deprecation */\n {children}}\n minimal={true}\n popoverClassName={classNames(Classes.MENU_SUBMENU, popoverProps?.popoverClassName)}\n target={target}\n />\n );\n }\n}\n\nconst SUBMENU_POPOVER_MODIFIERS: Modifiers = {\n // 20px padding - scrollbar width + a bit\n flip: { boundariesElement: \"viewport\", padding: 20 },\n // shift popover up 5px so MenuItems align\n offset: { offset: -5 },\n preventOverflow: { boundariesElement: \"viewport\", padding: 20 },\n};\n\n// props to ignore when disabled\nconst DISABLED_PROPS: React.AnchorHTMLAttributes = {\n href: undefined,\n onClick: undefined,\n onMouseDown: undefined,\n onMouseEnter: undefined,\n onMouseLeave: undefined,\n tabIndex: -1,\n};\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\n\nimport { AbstractPureComponent2, Classes, IRef } from \"../../common\";\nimport { DISPLAYNAME_PREFIX, Props } from \"../../common/props\";\nimport { MenuDivider } from \"./menuDivider\";\n// this cyclic import can be removed in v4.0 (https://github.com/palantir/blueprint/issues/3829)\n// eslint-disable-next-line import/no-cycle\nimport { MenuItem } from \"./menuItem\";\n\n// eslint-disable-next-line deprecation/deprecation\nexport type MenuProps = IMenuProps;\n/** @deprecated use MenuProps */\nexport interface IMenuProps extends Props, React.HTMLAttributes {\n /** Whether the menu items in this menu should use a large appearance. */\n large?: boolean;\n\n /** Ref handler that receives the HTML `
      ` element backing this component. */\n ulRef?: IRef;\n}\n\n@polyfill\nexport class Menu extends AbstractPureComponent2 {\n public static displayName = `${DISPLAYNAME_PREFIX}.Menu`;\n\n /** @deprecated use MenuDivider */\n public static Divider = MenuDivider;\n\n /** @deprecated use MenuItem*/\n public static Item = MenuItem;\n\n public render() {\n const { className, children, large, ulRef, ...htmlProps } = this.props;\n const classes = classNames(Classes.MENU, { [Classes.LARGE]: large }, className);\n return (\n
        \n {children}\n
      \n );\n }\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport { polyfill } from \"react-lifecycles-compat\";\n\nimport { AbstractPureComponent2, Classes } from \"../../common\";\nimport { DISPLAYNAME_PREFIX, ActionProps, IntentProps, LinkProps, Props, MaybeElement } from \"../../common/props\";\nimport { ButtonGroup } from \"../button/buttonGroup\";\nimport { AnchorButton, Button } from \"../button/buttons\";\nimport { Icon, IconName } from \"../icon/icon\";\n\nexport type ToastProps = IToastProps;\nexport interface IToastProps extends Props, IntentProps {\n /**\n * Action rendered as a minimal `AnchorButton`. The toast is dismissed automatically when the\n * user clicks the action button. Note that the `intent` prop is ignored (the action button\n * cannot have its own intent color that might conflict with the toast's intent). Omit this\n * prop to omit the action button.\n */\n action?: ActionProps & LinkProps;\n\n /** Name of a Blueprint UI icon (or an icon element) to render before the message. */\n icon?: IconName | MaybeElement;\n\n /** Message to display in the body of the toast. */\n message: React.ReactNode;\n\n /**\n * Callback invoked when the toast is dismissed, either by the user or by the timeout.\n * The value of the argument indicates whether the toast was closed because the timeout expired.\n */\n onDismiss?: (didTimeoutExpire: boolean) => void;\n\n /**\n * Milliseconds to wait before automatically dismissing toast.\n * Providing a value less than or equal to 0 will disable the timeout (this is discouraged).\n *\n * @default 5000\n */\n timeout?: number;\n}\n\n@polyfill\nexport class Toast extends AbstractPureComponent2 {\n public static defaultProps: IToastProps = {\n className: \"\",\n message: \"\",\n timeout: 5000,\n };\n\n public static displayName = `${DISPLAYNAME_PREFIX}.Toast`;\n\n public render(): JSX.Element {\n const { className, icon, intent, message } = this.props;\n return (\n \n \n {message}\n \n {this.maybeRenderActionButton()}\n
    \n );\n }\n\n public componentDidMount() {\n this.startTimeout();\n }\n\n public componentDidUpdate(prevProps: IToastProps) {\n if (prevProps.timeout !== this.props.timeout) {\n if (this.props.timeout! > 0) {\n this.startTimeout();\n } else {\n this.clearTimeouts();\n }\n }\n }\n\n public componentWillUnmount() {\n this.clearTimeouts();\n }\n\n private maybeRenderActionButton() {\n const { action } = this.props;\n if (action == null) {\n return undefined;\n } else {\n return ;\n }\n }\n\n private handleActionClick = (e: React.MouseEvent) => {\n this.props.action?.onClick?.(e);\n this.triggerDismiss(false);\n };\n\n private handleCloseClick = () => this.triggerDismiss(false);\n\n private triggerDismiss(didTimeoutExpire: boolean) {\n this.clearTimeouts();\n this.props.onDismiss?.(didTimeoutExpire);\n }\n\n private startTimeout = () => {\n this.clearTimeouts();\n if (this.props.timeout! > 0) {\n this.setTimeout(() => this.triggerDismiss(true), this.props.timeout);\n }\n };\n}\n","/*\n * Copyright 2016 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classNames from \"classnames\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { polyfill } from \"react-lifecycles-compat\";\n\nimport { AbstractPureComponent2, Classes, Position } from \"../../common\";\nimport { TOASTER_CREATE_NULL, TOASTER_MAX_TOASTS_INVALID, TOASTER_WARN_INLINE } from \"../../common/errors\";\nimport { ESCAPE } from \"../../common/keys\";\nimport { DISPLAYNAME_PREFIX, Props } from \"../../common/props\";\nimport { isNodeEnv } from \"../../common/utils\";\nimport { Overlay } from \"../overlay/overlay\";\nimport { IToastProps, Toast } from \"./toast\";\n\nexport type IToastOptions = IToastProps & { key: string };\nexport type ToasterPosition =\n | typeof Position.TOP\n | typeof Position.TOP_LEFT\n | typeof Position.TOP_RIGHT\n | typeof Position.BOTTOM\n | typeof Position.BOTTOM_LEFT\n | typeof Position.BOTTOM_RIGHT;\n\n/** Instance methods available on a `` component instance. */\nexport interface IToaster {\n /**\n * Shows a new toast to the user, or updates an existing toast corresponding to the provided key (optional).\n *\n * Returns the unique key of the toast.\n */\n show(props: IToastProps, key?: string): string;\n\n /** Dismiss the given toast instantly. */\n dismiss(key: string): void;\n\n /** Dismiss all toasts instantly. */\n clear(): void;\n\n /** Returns the props for all current toasts. */\n getToasts(): IToastOptions[];\n}\n\n/**\n * Props supported by the `` component.\n * These props can be passed as an argument to the static `Toaster.create(props?, container?)` method.\n */\nexport interface IToasterProps extends Props {\n /**\n * Whether a toast should acquire application focus when it first opens.\n * This is disabled by default so that toasts do not interrupt the user's flow.\n * Note that `enforceFocus` is always disabled for `Toaster`s.\n *\n * @default false\n */\n autoFocus?: boolean;\n\n /**\n * Whether pressing the `esc` key should clear all active toasts.\n *\n * @default true\n */\n canEscapeKeyClear?: boolean;\n\n /**\n * Whether the toaster should be rendered into a new element attached to `document.body`.\n * If `false`, then positioning will be relative to the parent element.\n *\n * This prop is ignored by `Toaster.create()` as that method always appends a new element\n * to the container.\n *\n * @default true\n */\n usePortal?: boolean;\n\n /**\n * Position of `Toaster` within its container.\n *\n * @default Position.TOP\n */\n position?: ToasterPosition;\n\n /**\n * The maximum number of active toasts that can be displayed at once.\n *\n * When the limit is about to be exceeded, the oldest active toast is removed.\n *\n * @default undefined\n */\n maxToasts?: number;\n}\n\nexport interface IToasterState {\n toasts: IToastOptions[];\n}\n\n@polyfill\nexport class Toaster extends AbstractPureComponent2 implements IToaster {\n public static displayName = `${DISPLAYNAME_PREFIX}.Toaster`;\n\n public static defaultProps: IToasterProps = {\n autoFocus: false,\n canEscapeKeyClear: true,\n position: Position.TOP,\n usePortal: true,\n };\n\n /**\n * Create a new `Toaster` instance that can be shared around your application.\n * The `Toaster` will be rendered into a new element appended to the given container.\n */\n public static create(props?: IToasterProps, container = document.body): IToaster {\n if (props != null && props.usePortal != null && !isNodeEnv(\"production\")) {\n console.warn(TOASTER_WARN_INLINE);\n }\n const containerElement = document.createElement(\"div\");\n container.appendChild(containerElement);\n const toaster = ReactDOM.render(\n ,\n containerElement,\n ) as Toaster;\n if (toaster == null) {\n throw new Error(TOASTER_CREATE_NULL);\n }\n return toaster;\n }\n\n public state: IToasterState = {\n toasts: [],\n };\n\n // auto-incrementing identifier for un-keyed toasts\n private toastId = 0;\n\n public show(props: IToastProps, key?: string) {\n if (this.props.maxToasts) {\n // check if active number of toasts are at the maxToasts limit\n this.dismissIfAtLimit();\n }\n const options = this.createToastOptions(props, key);\n if (key === undefined || this.isNewToastKey(key)) {\n this.setState(prevState => ({\n toasts: [options, ...prevState.toasts],\n }));\n } else {\n this.setState(prevState => ({\n toasts: prevState.toasts.map(t => (t.key === key ? options : t)),\n }));\n }\n return options.key;\n }\n\n public dismiss(key: string, timeoutExpired = false) {\n this.setState(({ toasts }) => ({\n toasts: toasts.filter(t => {\n const matchesKey = t.key === key;\n if (matchesKey) {\n t.onDismiss?.(timeoutExpired);\n }\n return !matchesKey;\n }),\n }));\n }\n\n public clear() {\n this.state.toasts.forEach(t => t.onDismiss?.(false));\n this.setState({ toasts: [] });\n }\n\n public getToasts() {\n return this.state.toasts;\n }\n\n public render() {\n const classes = classNames(Classes.TOAST_CONTAINER, this.getPositionClasses(), this.props.className);\n return (\n 0 || this.props.children != null}\n onClose={this.handleClose}\n // $pt-transition-duration * 3 + $pt-transition-duration / 2\n transitionDuration={350}\n transitionName={Classes.TOAST}\n usePortal={this.props.usePortal}\n >\n {this.state.toasts.map(this.renderToast, this)}\n {this.props.children}\n \n );\n }\n\n protected validateProps({ maxToasts }: IToasterProps) {\n // maximum number of toasts should not be a number less than 1\n if (maxToasts !== undefined && maxToasts < 1) {\n throw new Error(TOASTER_MAX_TOASTS_INVALID);\n }\n }\n\n private isNewToastKey(key: string) {\n return this.state.toasts.every(toast => toast.key !== key);\n }\n\n private dismissIfAtLimit() {\n if (this.state.toasts.length === this.props.maxToasts) {\n // dismiss the oldest toast to stay within the maxToasts limit\n this.dismiss(this.state.toasts[this.state.toasts.length - 1].key!);\n }\n }\n\n private renderToast = (toast: IToastOptions) => {\n return ;\n };\n\n private createToastOptions(props: IToastProps, key = `toast-${this.toastId++}`) {\n // clone the object before adding the key prop to avoid leaking the mutation\n return { ...props, key };\n }\n\n private getPositionClasses() {\n const positions = this.props.position!.split(\"-\");\n // NOTE that there is no -center class because that's the default style\n return [\n ...positions.map(p => `${Classes.TOAST_CONTAINER}-${p.toLowerCase()}`),\n `${Classes.TOAST_CONTAINER}-${this.props.usePortal ? \"in-portal\" : \"inline\"}`,\n ];\n }\n\n private getDismissHandler = (toast: IToastOptions) => (timeoutExpired: boolean) => {\n this.dismiss(toast.key, timeoutExpired);\n };\n\n private handleClose = (e: React.SyntheticEvent) => {\n // NOTE that `e` isn't always a KeyboardEvent but that's the only type we care about\n // HACKHACK: https://github.com/palantir/blueprint/issues/4165\n /* eslint-disable-next-line deprecation/deprecation */\n if ((e as React.KeyboardEvent).which === ESCAPE) {\n this.clear();\n }\n };\n}\n\nexport const OverlayToaster = Toaster;\nexport type OverlayToasterProps = IToasterProps;\n","/// \nimport * as SuperAgent from 'superagent';\nimport * as Blueprint from '@blueprintjs/core';\n\nlet toaster: Blueprint.IToaster;\n\nexport function success(message: string, timeout?: number): string {\n\tif (timeout === undefined) {\n\t\ttimeout = 5000;\n\t}\n\n\treturn toaster.show({\n\t\tintent: Blueprint.Intent.SUCCESS,\n\t\tmessage: message,\n\t\ttimeout: timeout,\n\t});\n}\n\nexport function info(message: string, timeout?: number): string {\n\tif (timeout === undefined) {\n\t\ttimeout = 5000;\n\t}\n\n\treturn toaster.show({\n\t\tintent: Blueprint.Intent.PRIMARY,\n\t\tmessage: message,\n\t\ttimeout: timeout,\n\t});\n}\n\nexport function warning(message: string, timeout?: number): string {\n\tif (timeout === undefined) {\n\t\ttimeout = 5000;\n\t}\n\n\treturn toaster.show({\n\t\tintent: Blueprint.Intent.WARNING,\n\t\tmessage: message,\n\t\ttimeout: timeout,\n\t});\n}\n\nexport function error(message: string, timeout?: number): string {\n\tif (timeout === undefined) {\n\t\ttimeout = 5000;\n\t}\n\n\treturn toaster.show({\n\t\tintent: Blueprint.Intent.DANGER,\n\t\tmessage: message,\n\t\ttimeout: timeout,\n\t});\n}\n\nexport function errorRes(res: SuperAgent.Response, message: string,\n\t\t\t\t\t\t\t\t\t\t\t\t timeout?: number): string {\n\tif (timeout === undefined) {\n\t\ttimeout = 5000;\n\t}\n\n\ttry {\n\t\tmessage = res.body.error_msg || message;\n\t} catch(err) {\n\t}\n\n\treturn toaster.show({\n\t\tintent: Blueprint.Intent.DANGER,\n\t\tmessage: message,\n\t\ttimeout: timeout,\n\t});\n}\n\nexport function dismiss(key: string) {\n\ttoaster.dismiss(key);\n}\n\nexport function init() {\n\tif (toaster) {\n\t\treturn;\n\t}\n\n\tif (Blueprint.Toaster) {\n\t\ttoaster = Blueprint.Toaster.create({\n\t\t\tposition: Blueprint.Position.BOTTOM,\n\t\t}, document.getElementById('toaster'));\n\t} else {\n\t\tconsole.error('Failed to load toaster')\n\t}\n}\n","/// \nimport * as SuperAgent from 'superagent';\nimport * as Alert from './Alert';\nimport * as Csrf from './Csrf';\n\nexport let oracle = false;\n\nexport function save(): Promise {\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/license')\n\t\t\t.send({\n\t\t\t\toracle: oracle,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save license state');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function setOracle(state: boolean): void {\n\toracle = state;\n}\n","/// \nimport * as SuperAgent from 'superagent';\nimport * as License from './License';\nimport * as Theme from './Theme';\n\nexport let token = '';\n\nexport function load(): Promise {\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/csrf')\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\ttoken = res.body.token;\n\n\t\t\t\tLicense.setOracle(!!res.body.oracle_license);\n\n\t\t\t\tif (res.body.theme === 'light') {\n\t\t\t\t\tTheme.light();\n\t\t\t\t} else {\n\t\t\t\t\tTheme.dark();\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n","/// \nimport * as SuperAgent from 'superagent';\nimport * as Alert from './Alert';\nimport * as Csrf from './Csrf';\n\nexport interface Callback {\n\t(): void;\n}\n\nlet callbacks: Set = new Set();\nexport let theme = 'dark';\n\nexport function save(): Promise {\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/theme')\n\t\t\t.send({\n\t\t\t\ttheme: theme,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save theme');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function light(): void {\n\ttheme = 'light';\n\tdocument.body.className = '';\n\tcallbacks.forEach((callback: Callback): void => {\n\t\tcallback();\n\t});\n}\n\nexport function dark(): void {\n\ttheme = 'dark';\n\tdocument.body.className = 'bp3-dark';\n\tcallbacks.forEach((callback: Callback): void => {\n\t\tcallback();\n\t});\n}\n\nexport function toggle(): void {\n\tif (theme === 'light') {\n\t\tdark();\n\t} else {\n\t\tlight();\n\t}\n}\n\nexport function editorTheme(): string {\n\tif (theme === \"light\") {\n\t\treturn \"eclipse\";\n\t} else {\n\t\treturn \"dracula\";\n\t}\n}\n\nexport function addChangeListener(callback: Callback): void {\n\tcallbacks.add(callback);\n}\n\nexport function removeChangeListener(callback: () => void): void {\n\tcallbacks.delete(callback);\n}\n","/// \nimport * as MobileDetect from 'mobile-detect';\n\nlet md = new MobileDetect(window.navigator.userAgent);\n\nexport const user: boolean = !!(window as any).user;\n\nexport const mobile = !!md.mobile();\nexport const mobileOs = md.os();\n\nexport const loadDelay = 700;\n\nexport const u2fErrorCodes: {[index: number]: string} = {\n\t0: 'ok',\n\t1: 'other',\n\t2: 'bad request',\n\t3: 'configuration unsupported',\n\t4: 'device ineligible',\n\t5: 'timed out',\n};\n\nexport const sessionTypes: {[key: string]: string} = {\n\tadmin: 'Admin',\n\tproxy: 'Service',\n\tuser: 'User',\n};\n\nexport const operatingSystems: {[key: string]: string} = {\n\tlinux: 'Linux',\n\tmacos_1010: 'macOS 10.10',\n\tmacos_1011: 'macOS 10.11',\n\tmacos_1012: 'macOS 10.12',\n\tmacos_1013: 'macOS 10.13',\n\tmacos_1014: 'macOS 10.14',\n\tmacos_1015: 'macOS 10.15',\n\tmacos11: 'macOS 11',\n\tmacos12: 'macOS 12',\n\tmacos13: 'macOS 13',\n\tmacos14: 'macOS 14',\n\twindows_xp: 'Windows XP',\n\twindows_7: 'Windows 7',\n\twindows_vista: 'Windows Vista',\n\twindows_8: 'Windows 8',\n\twindows_10: 'Windows 10',\n\twindows_11: 'Windows 11',\n\tchrome_os: 'Chrome OS',\n\tios_8: 'iOS 8',\n\tios_9: 'iOS 9',\n\tios_10: 'iOS 10',\n\tios_11: 'iOS 11',\n\tios_12: 'iOS 12',\n\tios_13: 'iOS 13',\n\tios_14: 'iOS 14',\n\tios_15: 'iOS 15',\n\tios_16: 'iOS 16',\n\tios_17: 'iOS 17',\n\tios_18: 'iOS 18',\n\tandroid_4: 'Android KitKat 4.4',\n\tandroid_5: 'Android Lollipop 5',\n\tandroid_6: 'Android Marshmallow 6',\n\tandroid_7: 'Android Nougat 7',\n\tandroid_8: 'Android Oreo 8',\n\tandroid_9: 'Android Pie 9',\n\tandroid_10: 'Android 10',\n\tandroid_11: 'Android 11',\n\tandroid_12: 'Android 12',\n\tandroid_13: 'Android 13',\n\tandroid_14: 'Android 14',\n\tblackberry_10: 'Blackerry 10',\n\twindows_phone: 'Windows Phone',\n\tfirefox_os: 'Firefox OS',\n\tkindle: 'Kindle',\n};\n\nexport const browsers: {[key: string]: string} = {\n\tchrome: 'Chrome',\n\tchrome_mobile: 'Chrome Mobile',\n\tsafari: 'Safari',\n\tsafari_mobile: 'Safari Mobile',\n\tfirefox: 'Firefox',\n\tfirefox_mobile: 'Firefox Mobile',\n\tedge: 'Microsoft Edge',\n\tinternet_explorer: 'Internet Explorer',\n\tinternet_explorer_mobile: 'Internet Explorer Mobile',\n\topera: 'Opera',\n\topera_mobile: 'Opera Mobile',\n};\n\nexport const locations: {[key: string]: string} = {\n\tUS: 'United States',\n\tUS_AL: 'Alabama, US',\n\tUS_AK: 'Alaska, US',\n\tUS_AZ: 'Arizona, US',\n\tUS_AR: 'Arkansas, US',\n\tUS_CA: 'California, US',\n\tUS_CO: 'Colorado, US',\n\tUS_CT: 'Connecticut, US',\n\tUS_DE: 'Delaware, US',\n\tUS_FL: 'Florida, US',\n\tUS_GA: 'Georgia, US',\n\tUS_HI: 'Hawaii, US',\n\tUS_ID: 'Idaho, US',\n\tUS_IL: 'Illinois, US',\n\tUS_IN: 'Indiana, US',\n\tUS_IA: 'Iowa, US',\n\tUS_KS: 'Kansas, US',\n\tUS_KY: 'Kentucky, US',\n\tUS_LA: 'Louisiana, US',\n\tUS_ME: 'Maine, US',\n\tUS_MD: 'Maryland, US',\n\tUS_MA: 'Massachusetts, US',\n\tUS_MI: 'Michigan, US',\n\tUS_MN: 'Minnesota, US',\n\tUS_MS: 'Mississippi, US',\n\tUS_MO: 'Missouri, US',\n\tUS_MT: 'Montana, US',\n\tUS_NE: 'Nebraska, US',\n\tUS_NV: 'Nevada, US',\n\tUS_NH: 'New Hampshire, US',\n\tUS_NJ: 'New Jersey, US',\n\tUS_NM: 'New Mexico, US',\n\tUS_NY: 'New York, US',\n\tUS_NC: 'North Carolina, US',\n\tUS_ND: 'North Dakota, US',\n\tUS_OH: 'Ohio, US',\n\tUS_OK: 'Oklahoma, US',\n\tUS_OR: 'Oregon, US',\n\tUS_PA: 'Pennsylvania, US',\n\tUS_RI: 'Rhode Island, US',\n\tUS_SC: 'South Carolina, US',\n\tUS_SD: 'South Dakota, US',\n\tUS_TN: 'Tennessee, US',\n\tUS_TX: 'Texas, US',\n\tUS_UT: 'Utah, US',\n\tUS_VT: 'Vermont, US',\n\tUS_VA: 'Virginia, US',\n\tUS_WA: 'Washington, US',\n\tUS_DC: 'Washington DC, US',\n\tUS_WV: 'West Virginia, US',\n\tUS_WI: 'Wisconsin, US',\n\tUS_WY: 'Wyoming, US',\n\tAF: 'Afghanistan',\n\tAX: 'Åland Islands',\n\tAL: 'Albania',\n\tDZ: 'Algeria',\n\tAS: 'American Samoa',\n\tAD: 'Andorra',\n\tAO: 'Angola',\n\tAI: 'Anguilla',\n\tAQ: 'Antarctica',\n\tAG: 'Antigua and Barbuda',\n\tAR: 'Argentina',\n\tAM: 'Armenia',\n\tAW: 'Aruba',\n\tAU: 'Australia',\n\tAT: 'Austria',\n\tAZ: 'Azerbaijan',\n\tBS: 'Bahamas',\n\tBH: 'Bahrain',\n\tBD: 'Bangladesh',\n\tBB: 'Barbados',\n\tBY: 'Belarus',\n\tBE: 'Belgium',\n\tBZ: 'Belize',\n\tBJ: 'Benin',\n\tBM: 'Bermuda',\n\tBT: 'Bhutan',\n\tBO: 'Bolivia',\n\tBQ: 'Bonaire',\n\tBA: 'Bosnia and Herzegovina',\n\tBW: 'Botswana',\n\tBV: 'Bouvet Island',\n\tBR: 'Brazil',\n\tIO: 'British Indian Ocean Territory',\n\tBN: 'Brunei Darussalam',\n\tBG: 'Bulgaria',\n\tBF: 'Burkina Faso',\n\tBI: 'Burundi',\n\tCV: 'Cabo Verde',\n\tKH: 'Cambodia',\n\tCM: 'Cameroon',\n\tCA: 'Canada',\n\tKY: 'Cayman Islands',\n\tCF: 'Central African Republic',\n\tTD: 'Chad',\n\tCL: 'Chile',\n\tCN: 'China',\n\tCX: 'Christmas Island',\n\tCC: 'Cocos Islands',\n\tCO: 'Colombia',\n\tKM: 'Comoros',\n\tCG: 'Congo',\n\tCD: 'Congo Democratic Republic',\n\tCK: 'Cook Islands',\n\tCR: 'Costa Rica',\n\tCI: 'Côte dIvoire',\n\tHR: 'Croatia',\n\tCU: 'Cuba',\n\tCW: 'Curaçao',\n\tCY: 'Cyprus',\n\tCZ: 'Czechia',\n\tDK: 'Denmark',\n\tDJ: 'Djibouti',\n\tDM: 'Dominica',\n\tDO: 'Dominican Republic',\n\tEC: 'Ecuador',\n\tEG: 'Egypt',\n\tSV: 'El Salvador',\n\tGQ: 'Equatorial Guinea',\n\tER: 'Eritrea',\n\tEE: 'Estonia',\n\tET: 'Ethiopia',\n\tFK: 'Falkland Islands',\n\tFO: 'Faroe Islands',\n\tFJ: 'Fiji',\n\tFI: 'Finland',\n\tFR: 'France',\n\tGF: 'French Guiana',\n\tPF: 'French Polynesia',\n\tTF: 'French Southern Territories',\n\tGA: 'Gabon',\n\tGM: 'Gambia',\n\tGE: 'Georgia',\n\tDE: 'Germany',\n\tGH: 'Ghana',\n\tGI: 'Gibraltar',\n\tGR: 'Greece',\n\tGL: 'Greenland',\n\tGD: 'Grenada',\n\tGP: 'Guadeloupe',\n\tGU: 'Guam',\n\tGT: 'Guatemala',\n\tGG: 'Guernsey',\n\tGN: 'Guinea',\n\tGW: 'Guinea-Bissau',\n\tGY: 'Guyana',\n\tHT: 'Haiti',\n\tHM: 'Heard Island and McDonald Islands',\n\tVA: 'Holy See',\n\tHN: 'Honduras',\n\tHK: 'Hong Kong',\n\tHU: 'Hungary',\n\tIS: 'Iceland',\n\tIN: 'India',\n\tID: 'Indonesia',\n\tIR: 'Iran',\n\tIQ: 'Iraq',\n\tIE: 'Ireland',\n\tIM: 'Isle of Man',\n\tIL: 'Israel',\n\tIT: 'Italy',\n\tJM: 'Jamaica',\n\tJP: 'Japan',\n\tJE: 'Jersey',\n\tJO: 'Jordan',\n\tKZ: 'Kazakhstan',\n\tKE: 'Kenya',\n\tKI: 'Kiribati',\n\tKP: 'North Korea',\n\tKR: 'South Korea',\n\tKW: 'Kuwait',\n\tKG: 'Kyrgyzstan',\n\tLA: 'Lao Peoples',\n\tLV: 'Latvia',\n\tLB: 'Lebanon',\n\tLS: 'Lesotho',\n\tLR: 'Liberia',\n\tLY: 'Libya',\n\tLI: 'Liechtenstein',\n\tLT: 'Lithuania',\n\tLU: 'Luxembourg',\n\tMO: 'Macao',\n\tMK: 'Macedonia',\n\tMG: 'Madagascar',\n\tMW: 'Malawi',\n\tMY: 'Malaysia',\n\tMV: 'Maldives',\n\tML: 'Mali',\n\tMT: 'Malta',\n\tMH: 'Marshall Islands',\n\tMQ: 'Martinique',\n\tMR: 'Mauritania',\n\tMU: 'Mauritius',\n\tYT: 'Mayotte',\n\tMX: 'Mexico',\n\tFM: 'Micronesia',\n\tMD: 'Moldova',\n\tMC: 'Monaco',\n\tMN: 'Mongolia',\n\tME: 'Montenegro',\n\tMS: 'Montserrat',\n\tMA: 'Morocco',\n\tMZ: 'Mozambique',\n\tMM: 'Myanmar',\n\tNA: 'Namibia',\n\tNR: 'Nauru',\n\tNP: 'Nepal',\n\tNL: 'Netherlands',\n\tNC: 'New Caledonia',\n\tNZ: 'New Zealand',\n\tNI: 'Nicaragua',\n\tNE: 'Niger',\n\tNG: 'Nigeria',\n\tNU: 'Niue',\n\tNF: 'Norfolk Island',\n\tMP: 'Northern Mariana Islands',\n\tNO: 'Norway',\n\tOM: 'Oman',\n\tPK: 'Pakistan',\n\tPW: 'Palau',\n\tPS: 'Palestine, State of',\n\tPA: 'Panama',\n\tPG: 'Papua New Guinea',\n\tPY: 'Paraguay',\n\tPE: 'Peru',\n\tPH: 'Philippines',\n\tPN: 'Pitcairn',\n\tPL: 'Poland',\n\tPT: 'Portugal',\n\tPR: 'Puerto Rico',\n\tQA: 'Qatar',\n\tRE: 'Réunion',\n\tRO: 'Romania',\n\tRU: 'Russian Federation',\n\tRW: 'Rwanda',\n\tBL: 'Saint Barthélemy',\n\tSH: 'Saint Helena',\n\tKN: 'Saint Kitts and Nevis',\n\tLC: 'Saint Lucia',\n\tMF: 'Saint Martin',\n\tPM: 'Saint Pierre and Miquelon',\n\tVC: 'Saint Vincent and the Grenadines',\n\tWS: 'Samoa',\n\tSM: 'San Marino',\n\tST: 'Sao Tome and Principe',\n\tSA: 'Saudi Arabia',\n\tSN: 'Senegal',\n\tRS: 'Serbia',\n\tSC: 'Seychelles',\n\tSL: 'Sierra Leone',\n\tSG: 'Singapore',\n\tSX: 'Sint Maarten',\n\tSK: 'Slovakia',\n\tSI: 'Slovenia',\n\tSB: 'Solomon Islands',\n\tSO: 'Somalia',\n\tZA: 'South Africa',\n\tGS: 'South Georgia and the South Sandwich Islands',\n\tSS: 'South Sudan',\n\tES: 'Spain',\n\tLK: 'Sri Lanka',\n\tSD: 'Sudan',\n\tSR: 'Suriname',\n\tSJ: 'Svalbard and Jan Mayen',\n\tSZ: 'Swaziland',\n\tSE: 'Sweden',\n\tCH: 'Switzerland',\n\tSY: 'Syrian Arab Republic',\n\tTW: 'Taiwan',\n\tTJ: 'Tajikistan',\n\tTZ: 'Tanzania',\n\tTH: 'Thailand',\n\tTL: 'Timor-Leste',\n\tTG: 'Togo',\n\tTK: 'Tokelau',\n\tTO: 'Tonga',\n\tTT: 'Trinidad and Tobago',\n\tTN: 'Tunisia',\n\tTR: 'Turkey',\n\tTM: 'Turkmenistan',\n\tTC: 'Turks and Caicos Islands',\n\tTV: 'Tuvalu',\n\tUG: 'Uganda',\n\tUA: 'Ukraine',\n\tAE: 'United Arab Emirates',\n\tGB: 'United Kingdom',\n\tUM: 'United States Minor Outlying Islands',\n\tUY: 'Uruguay',\n\tUZ: 'Uzbekistan',\n\tVU: 'Vanuatu',\n\tVE: 'Venezuela',\n\tVN: 'Viet Nam',\n\tVG: 'British Virgin Islands',\n\tVI: 'US Virgin Islands',\n\tWF: 'Wallis and Futuna',\n\tEH: 'Western Sahara',\n\tYE: 'Yemen',\n\tZM: 'Zambia',\n\tZW: 'Zimbabwe',\n};\n","/// \nimport * as Flux from 'flux';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass Dispatcher extends Flux.Dispatcher {}\nexport default new Dispatcher();\n","/// \nimport * as Events from 'events';\n\nexport default class EventEmitter extends Events.EventEmitter {\n\temitDefer(event: string | symbol, ...args: any[]): void {\n\t\tsetTimeout((): void => {\n\t\t\tthis.emit(event, ...args);\n\t\t});\n\t}\n}\n","/// \nexport const SYNC = 'subscription.sync';\nexport const CHANGE = 'subscription.change';\n\nexport interface Subscription {\n\tactive?: boolean;\n\tstatus?: string;\n\tplan?: string;\n\tquantity?: number;\n\tamount?: number;\n\tperiod_end?: string;\n\ttrial_end?: string;\n\tcancel_at_period_end?: boolean;\n\tbalance?: number;\n\turl_key?: string;\n}\n\nexport type SubscriptionRo = Readonly;\n\nexport interface SubscriptionDispatch {\n\ttype: string;\n\tdata?: Subscription;\n}\n","/// \nexport const CHANGE = 'change';\nexport const RESET = 'reset';\nexport const RELOAD = 'reload';\n\nexport interface Dispatch {\n\ttype: string;\n\tdata?: any;\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as SubscriptionTypes from '../types/SubscriptionTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass SubscriptionStore extends EventEmitter {\n\t_subscription: SubscriptionTypes.SubscriptionRo;\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\tget subscription(): SubscriptionTypes.SubscriptionRo {\n\t\treturn this._subscription;\n\t}\n\n\tget subscriptionM(): SubscriptionTypes.Subscription {\n\t\tif (this._subscription) {\n\t\t\treturn {\n\t\t\t\t...this._subscription,\n\t\t\t};\n\t\t}\n\t\treturn undefined;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(subscription: SubscriptionTypes.Subscription): void {\n\t\tthis._subscription = Object.freeze(subscription);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: SubscriptionTypes.SubscriptionDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase SubscriptionTypes.SYNC:\n\t\t\t\tthis._sync(action.data);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new SubscriptionStore();\n","/// \nexport const SYNC = 'organization.sync';\nexport const CHANGE = 'organization.change';\nexport const CURRENT = 'organization.current';\n\nexport interface Organization {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\troles?: string[];\n}\n\nexport type Organizations = Organization[];\n\nexport type OrganizationRo = Readonly;\nexport type OrganizationsRo = ReadonlyArray;\n\nexport interface OrganizationDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\torganization?: Organization;\n\t\torganizations?: Organizations;\n\t\tcurrent?: string;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as Constants from '../Constants';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass OrganizationsStore extends EventEmitter {\n\t_current: string;\n\t_organizations: OrganizationTypes.OrganizationsRo = Object.freeze([]);\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(current: string): void {\n\t\tthis._current = current;\n\t\tthis.emitChange();\n\t}\n\n\tget current(): string {\n\t\treturn this._current;\n\t}\n\n\tget organizations(): OrganizationTypes.OrganizationsRo {\n\t\treturn this._organizations;\n\t}\n\n\tget organizationsM(): OrganizationTypes.Organizations {\n\t\tlet organizations: OrganizationTypes.Organizations = [];\n\t\tthis._organizations.forEach((\n\t\t\t\torganization: OrganizationTypes.OrganizationRo): void => {\n\t\t\torganizations.push({\n\t\t\t\t...organization,\n\t\t\t});\n\t\t});\n\t\treturn organizations;\n\t}\n\n\torganization(id: string): OrganizationTypes.OrganizationRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._organizations[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(organizations: OrganizationTypes.Organization[]): void {\n\t\tif (Constants.user && !this._current) {\n\t\t\tif (organizations.length) {\n\t\t\t\tthis._current = organizations[0].id;\n\t\t\t} else {\n\t\t\t\tthis._current = null;\n\t\t\t}\n\t\t}\n\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < organizations.length; i++) {\n\t\t\torganizations[i] = Object.freeze(organizations[i]);\n\t\t\tthis._map[organizations[i].id] = i;\n\t\t}\n\n\t\tthis._organizations = Object.freeze(organizations);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: OrganizationTypes.OrganizationDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset(action.data.current);\n\t\t\t\tbreak;\n\n\t\t\tcase GlobalTypes.RELOAD:\n\t\t\t\twindow.location.hash = '#/reload';\n\t\t\t\tbreak;\n\n\t\t\tcase OrganizationTypes.SYNC:\n\t\t\t\tthis._sync(action.data.organizations);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new OrganizationsStore();\n","/// \nexport const ADD = 'loading.add';\nexport const DONE = 'loading.done';\n\nexport interface LoadingDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as LoadingTypes from '../types/LoadingTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass LoadingStore extends EventEmitter {\n\t_loaders: Set = new Set();\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\tget loading(): boolean {\n\t\treturn !!this._loaders.size;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_add(id: string): void {\n\t\tthis._loaders.add(id);\n\t\tthis.emitChange();\n\t}\n\n\t_done(id: string): void {\n\t\tthis._loaders.delete(id);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: LoadingTypes.LoadingDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase LoadingTypes.ADD:\n\t\t\t\tthis._add(action.data.id);\n\t\t\t\tbreak;\n\n\t\t\tcase LoadingTypes.DONE:\n\t\t\t\tthis._done(action.data.id);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new LoadingStore();\n","/// \nimport * as React from 'react';\nimport LoadingStore from '../stores/LoadingStore';\n\ninterface Props {\n\tstyle?: React.CSSProperties;\n\tsize?: string;\n\tintent?: string;\n}\n\ninterface State {\n\tloading: boolean;\n}\n\nconst css = {\n\tprogress: {\n\t\twidth: '100%',\n\t\theight: '4px',\n\t\tborderRadius: 0,\n\t} as React.CSSProperties,\n\tprogressBar: {\n\t\twidth: '50%',\n\t\tborderRadius: 0,\n\t} as React.CSSProperties,\n};\n\nexport default class LoadingBar extends React.Component {\n\tconstructor(props: Props, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tloading: LoadingStore.loading,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tLoadingStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tLoadingStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\tloading: LoadingStore.loading,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet progress: JSX.Element;\n\n\t\tif (!this.state.loading) {\n\t\t\tprogress =
    ;\n\t\t} else {\n\t\t\tlet className = 'bp3-progress-bar bp3-no-stripes bp3-no-animation ';\n\t\t\tif (this.props.intent) {\n\t\t\t\tclassName += ' bp3-intent-' + this.props.intent;\n\t\t\t}\n\n\t\t\tprogress =
    \n\t\t\t\t\n\t\t\t
    ;\n\t\t}\n\n\t\treturn
    \n\t\t\t{progress}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as Flux from 'flux';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass EventDispatcher extends Flux.Dispatcher {}\nexport default new EventDispatcher();\n","/// \nexport function uuid(): string {\n\treturn (+new Date() + Math.floor(Math.random() * 999999)).toString(36);\n}\n\nexport function objectIdNil(objId: string): boolean {\n\treturn !objId || objId == '000000000000000000000000';\n}\n\nexport function zeroPad(num: number, width: number): string {\n\tif (num < Math.pow(10, width)) {\n\t\treturn ('0'.repeat(width - 1) + num).slice(-width);\n\t}\n\treturn num.toString();\n}\n\nexport function capitalize(str: string): string {\n\treturn str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nexport function formatAmount(amount: number): string {\n\tif (!amount) {\n\t\treturn '-';\n\t}\n\treturn '$' + (amount / 100).toFixed(2);\n}\n\nexport function formatDate(dateStr: string): string {\n\tif (!dateStr || dateStr === '0001-01-01T00:00:00Z') {\n\t\treturn '';\n\t}\n\n\tlet date = new Date(dateStr);\n\tlet str = '';\n\n\tlet hours = date.getHours();\n\tlet period = 'AM';\n\n\tif (hours > 12) {\n\t\tperiod = 'PM';\n\t\thours -= 12;\n\t} else if (hours === 0) {\n\t\thours = 12;\n\t}\n\n\tlet day;\n\tswitch (date.getDay()) {\n\t\tcase 0:\n\t\t\tday = 'Sun';\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tday = 'Mon';\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tday = 'Tue';\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tday = 'Wed';\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tday = 'Thu';\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tday = 'Fri';\n\t\t\tbreak;\n\t\tcase 6:\n\t\t\tday = 'Sat';\n\t\t\tbreak;\n\t}\n\n\tlet month;\n\tswitch (date.getMonth()) {\n\t\tcase 0:\n\t\t\tmonth = 'Jan';\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tmonth = 'Feb';\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tmonth = 'Mar';\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tmonth = 'Apr';\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tmonth = 'May';\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tmonth = 'Jun';\n\t\t\tbreak;\n\t\tcase 6:\n\t\t\tmonth = 'Jul';\n\t\t\tbreak;\n\t\tcase 7:\n\t\t\tmonth = 'Aug';\n\t\t\tbreak;\n\t\tcase 8:\n\t\t\tmonth = 'Sep';\n\t\t\tbreak;\n\t\tcase 9:\n\t\t\tmonth = 'Oct';\n\t\t\tbreak;\n\t\tcase 10:\n\t\t\tmonth = 'Nov';\n\t\t\tbreak;\n\t\tcase 11:\n\t\t\tmonth = 'Dec';\n\t\t\tbreak;\n\t}\n\n\tstr += day + ' ';\n\tstr += date.getDate() + ' ';\n\tstr += month + ' ';\n\tstr += date.getFullYear() + ', ';\n\tstr += hours + ':';\n\tstr += zeroPad(date.getMinutes(), 2) + ':';\n\tstr += zeroPad(date.getSeconds(), 2) + ' ';\n\tstr += period;\n\n\treturn str;\n}\n\nexport function formatDateShort(dateStr: string): string {\n\tif (!dateStr || dateStr === '0001-01-01T00:00:00Z') {\n\t\treturn '';\n\t}\n\n\tlet date = new Date(dateStr);\n\tlet curDate = new Date();\n\n\tlet month;\n\tswitch (date.getMonth()) {\n\t\tcase 0:\n\t\t\tmonth = 'Jan';\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tmonth = 'Feb';\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tmonth = 'Mar';\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tmonth = 'Apr';\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tmonth = 'May';\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tmonth = 'Jun';\n\t\t\tbreak;\n\t\tcase 6:\n\t\t\tmonth = 'Jul';\n\t\t\tbreak;\n\t\tcase 7:\n\t\t\tmonth = 'Aug';\n\t\t\tbreak;\n\t\tcase 8:\n\t\t\tmonth = 'Sep';\n\t\t\tbreak;\n\t\tcase 9:\n\t\t\tmonth = 'Oct';\n\t\t\tbreak;\n\t\tcase 10:\n\t\t\tmonth = 'Nov';\n\t\t\tbreak;\n\t\tcase 11:\n\t\t\tmonth = 'Dec';\n\t\t\tbreak;\n\t}\n\n\tlet str = month + ' ' + date.getDate();\n\n\tif (date.getFullYear() !== curDate.getFullYear()) {\n\t\tstr += ' ' + date.getFullYear();\n\t}\n\n\treturn str;\n}\n\nexport function formatDateShortTime(dateStr: string): string {\n\tif (!dateStr || dateStr === '0001-01-01T00:00:00Z') {\n\t\treturn '';\n\t}\n\n\tlet date = new Date(dateStr);\n\tlet curDate = new Date();\n\n\tlet month;\n\tswitch (date.getMonth()) {\n\t\tcase 0:\n\t\t\tmonth = 'Jan';\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\tmonth = 'Feb';\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tmonth = 'Mar';\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tmonth = 'Apr';\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\tmonth = 'May';\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\tmonth = 'Jun';\n\t\t\tbreak;\n\t\tcase 6:\n\t\t\tmonth = 'Jul';\n\t\t\tbreak;\n\t\tcase 7:\n\t\t\tmonth = 'Aug';\n\t\t\tbreak;\n\t\tcase 8:\n\t\t\tmonth = 'Sep';\n\t\t\tbreak;\n\t\tcase 9:\n\t\t\tmonth = 'Oct';\n\t\t\tbreak;\n\t\tcase 10:\n\t\t\tmonth = 'Nov';\n\t\t\tbreak;\n\t\tcase 11:\n\t\t\tmonth = 'Dec';\n\t\t\tbreak;\n\t}\n\n\tlet str = month + ' ' + date.getDate();\n\n\tif (date.getFullYear() !== curDate.getFullYear()) {\n\t\tstr += ' ' + date.getFullYear();\n\t} else if (date.getMonth() === curDate.getMonth() &&\n\t\t\tdate.getDate() === curDate.getDate()) {\n\t\tlet hours = date.getHours();\n\t\tlet period = 'AM';\n\n\t\tif (hours > 12) {\n\t\t\tperiod = 'PM';\n\t\t\thours -= 12;\n\t\t} else if (hours === 0) {\n\t\t\thours = 12;\n\t\t}\n\n\t\tstr = hours + ':';\n\t\tstr += zeroPad(date.getMinutes(), 2) + ':';\n\t\tstr += zeroPad(date.getSeconds(), 2) + ' ';\n\t\tstr += period;\n\t}\n\n\treturn str;\n}\n","/// \nimport Dispatcher from './dispatcher/Dispatcher';\nimport * as LoadingTypes from './types/LoadingTypes';\nimport * as MiscUtils from './utils/MiscUtils';\n\nexport default class Loader {\n\t_id: string;\n\n\tconstructor() {\n\t\tthis._id = MiscUtils.uuid();\n\t}\n\n\tloading(): Loader {\n\t\tDispatcher.dispatch({\n\t\t\ttype: LoadingTypes.ADD,\n\t\t\tdata: {\n\t\t\t\tid: this._id,\n\t\t\t},\n\t\t});\n\t\treturn this;\n\t}\n\n\tdone(): Loader {\n\t\tDispatcher.dispatch({\n\t\t\ttype: LoadingTypes.DONE,\n\t\t\tdata: {\n\t\t\t\tid: this._id,\n\t\t\t},\n\t\t});\n\t\treturn this;\n\t}\n}\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as SubscriptionTypes from '../types/SubscriptionTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as Constants from \"../Constants\";\n\nlet syncId: string;\n\nexport function sync(update: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/subscription' + (update ? '/update' : ''))\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to sync subscription');\n\t\t\t\t\treject(err);\n\n\t\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\t\ttype: SubscriptionTypes.SYNC,\n\t\t\t\t\t\tdata: {},\n\t\t\t\t\t});\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: SubscriptionTypes.SYNC,\n\t\t\t\t\tdata: res.body,\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function activate(license: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/subscription')\n\t\t\t.send({\n\t\t\t\tlicense: license,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to activate subscription');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: SubscriptionTypes.SYNC,\n\t\t\t\t\tdata: res.body,\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function checkout(plan: string, card: string,\n\t\temail: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('https://app.pritunl.com/subscription')\n\t\t\t.send({\n\t\t\t\tplan: plan,\n\t\t\t\tcard: card,\n\t\t\t\temail: email,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve('');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to checkout');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve(res.body.msg);\n\n\t\t\t\tsync(true);\n\t\t\t});\n\t});\n}\n\nexport function payment(key: string, plan: string, card: string,\n\t\temail: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('https://app.pritunl.com/subscription')\n\t\t\t.send({\n\t\t\t\tkey: key,\n\t\t\t\tplan: plan,\n\t\t\t\tcard: card,\n\t\t\t\temail: email,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to update payment');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\n\t\t\t\tsync(true);\n\t\t\t});\n\t});\n}\n\nexport function cancel(key: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('https://app.pritunl.com/subscription')\n\t\t\t.send({\n\t\t\t\tkey: key,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to cancel subscription');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\n\t\t\t\tsync(true);\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: SubscriptionTypes.SubscriptionDispatch) => {\n\tswitch (action.type) {\n\t\tcase SubscriptionTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\tsync(false);\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as Blueprint from '@blueprintjs/core';\nimport * as Constants from '../Constants';\nimport * as MiscUtils from '../utils/MiscUtils';\n\ninterface Props {\n\tstyle?: React.CSSProperties;\n\tgrouped?: boolean;\n\tclassName?: string;\n\tdialogClassName?: string;\n\thidden?: boolean;\n\tprogressClassName?: string;\n\tlabel?: string;\n\tdialogLabel?: string;\n\tconfirmMsg?: string;\n\tconfirmInput?: boolean;\n\titems?: string[];\n\tdisabled?: boolean;\n\tsafe?: boolean;\n\tonConfirm?: () => void;\n}\n\ninterface State {\n\tinput: string;\n\tdialog: boolean;\n\tconfirm: number;\n\tconfirming: string;\n}\n\nconst css = {\n\tbox: {\n\t\tdisplay: 'inline-flex',\n\t\tverticalAlign: 'middle',\n\t} as React.CSSProperties,\n\tactionProgress: {\n\t\tposition: 'absolute',\n\t\tbottom: 0,\n\t\tleft: 0,\n\t\tborderRadius: 0,\n\t\tborderBottomLeftRadius: '3px',\n\t\tborderBottomRightRadius: '3px',\n\t\twidth: '100%',\n\t\theight: '4px',\n\t} as React.CSSProperties,\n\tsquareActionProgress: {\n\t\tposition: 'absolute',\n\t\tbottom: 0,\n\t\tleft: 0,\n\t\tborderRadius: 0,\n\t\tborderBottomLeftRadius: '1px',\n\t\tborderBottomRightRadius: '3px',\n\t\twidth: '100%',\n\t\theight: '4px',\n\t} as React.CSSProperties,\n\tdialog: {\n\t\twidth: '340px',\n\t\tposition: 'absolute',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '220px',\n\t\tmargin: '18px 0 0 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n};\n\nexport default class ConfirmButton extends React.Component {\n\tconstructor(props: Props, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tinput: '',\n\t\t\tdialog: false,\n\t\t\tconfirm: 0,\n\t\t\tconfirming: null,\n\t\t};\n\t}\n\n\topenDialog = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdialog: true,\n\t\t});\n\t}\n\n\tcloseDialog = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdialog: false,\n\t\t\tinput: '',\n\t\t});\n\t}\n\n\tcloseDialogConfirm = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdialog: false,\n\t\t\tinput: '',\n\t\t});\n\t\tif (this.props.onConfirm) {\n\t\t\tthis.props.onConfirm();\n\t\t}\n\t}\n\n\tconfirm = (evt: React.MouseEvent<{}>): void => {\n\t\tlet confirmId = MiscUtils.uuid();\n\n\t\tif (evt.shiftKey) {\n\t\t\tif (this.props.onConfirm) {\n\t\t\t\tthis.props.onConfirm();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tconfirming: confirmId,\n\t\t});\n\n\t\tlet i = 10;\n\t\tlet id = setInterval(() => {\n\t\t\tif (i > 100) {\n\t\t\t\tclearInterval(id);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (this.state.confirming === confirmId) {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\tconfirm: 0,\n\t\t\t\t\t\t\tconfirming: null,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (this.props.onConfirm) {\n\t\t\t\t\t\t\tthis.props.onConfirm();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, 250);\n\t\t\t\treturn;\n\t\t\t} else if (!this.state.confirming) {\n\t\t\t\tclearInterval(id);\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tconfirm: 0,\n\t\t\t\t\tconfirming: null,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (i % 10 === 0) {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tconfirm: i / 10,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ti += 2;\n\t\t}, 8);\n\t}\n\n\tclearConfirm = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tconfirm: 0,\n\t\t\tconfirming: null,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet dialog = Constants.mobile || this.props.safe;\n\n\t\tlet style = {\n\t\t\t...this.props.style,\n\t\t};\n\t\tstyle.position = 'relative';\n\n\t\tlet className = this.props.className || '';\n\t\tif (!this.props.label) {\n\t\t\tclassName += ' bp3-button-empty';\n\t\t}\n\n\t\tlet dialogClassName = this.props.dialogClassName ||\n\t\t\tthis.props.className || '';\n\t\tif (!this.props.label && !this.props.dialogLabel) {\n\t\t\tdialogClassName += ' bp3-button-empty';\n\t\t}\n\n\t\tlet confirmInput: JSX.Element;\n\t\tif (this.props.confirmInput) {\n\t\t\tconfirmInput = \n\t\t\t\tEnter \"delete\" to confirm:\n\t\t\t\t {\n\t\t\t\t\t\tif (evt.key === \"Enter\" && this.state.input === 'delete') {\n\t\t\t\t\t\t\tthis.closeDialogConfirm();\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tonChange={(evt): void => {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\tinput: evt.target.value,\n\t\t\t\t\t\t});\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t;\n\t\t}\n\n\t\tif (dialog) {\n\t\t\tlet confirmMsg = this.props.confirmMsg ? this.props.confirmMsg :\n\t\t\t\t'Confirm ' + (this.props.label || '');\n\t\t\tlet itemsList: JSX.Element;\n\t\t\tif (this.props.items) {\n\t\t\t\tlet items: JSX.Element[] = [];\n\t\t\t\tfor (let item of this.props.items) {\n\t\t\t\t\titems.push(
  • {item}
  • );\n\t\t\t\t}\n\t\t\t\titemsList =
      {items}
    ;\n\t\t\t}\n\n\t\t\treturn
    \n\t\t\t\t\n\t\t\t\t\t{this.props.label}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{confirmMsg}\n\t\t\t\t\t\t{itemsList}\n\t\t\t\t\t\t{confirmInput}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tCancel\n\t\t\t\t\t\t\t{this.props.dialogLabel || this.props.label}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t} else {\n\t\t\tlet confirmElem: JSX.Element;\n\n\t\t\tif (this.state.confirming) {\n\t\t\t\tlet confirmStyle = {\n\t\t\t\t\twidth: this.state.confirm * 10 + '%',\n\t\t\t\t\tbackgroundColor: style.color,\n\t\t\t\t\tborderRadius: 0,\n\t\t\t\t\tleft: 0,\n\t\t\t\t};\n\n\t\t\t\tlet progressStyle: React.CSSProperties;\n\t\t\t\tif (this.props.grouped) {\n\t\t\t\t\tprogressStyle = css.squareActionProgress;\n\t\t\t\t} else {\n\t\t\t\t\tprogressStyle = css.actionProgress;\n\t\t\t\t}\n\n\t\t\t\tconfirmElem = \n\t\t\t\t\t
    \n\t\t\t\t
    ;\n\t\t\t}\n\n\t\t\treturn \n\t\t\t\t{this.props.label}\n\t\t\t\t{confirmElem}\n\t\t\t;\n\t\t}\n\t}\n}\n","/// \nimport * as React from 'react';\nimport ReactStripeCheckout from 'react-stripe-checkout';\nimport * as SubscriptionActions from '../actions/SubscriptionActions';\nimport * as SubscriptionTypes from '../types/SubscriptionTypes';\nimport SubscriptionStore from '../stores/SubscriptionStore';\nimport * as Alert from '../Alert';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport ConfirmButton from './ConfirmButton';\n\ninterface State {\n\tsubscription: SubscriptionTypes.SubscriptionRo;\n\tupdate: boolean;\n\tmessage: string;\n\tlicense: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\tcard: {\n\t\tpadding: '10px',\n\t\tminWidth: '310px',\n\t\tmaxWidth: '350px',\n\t\twidth: 'calc(100% - 20px)',\n\t\tmargin: '30px auto',\n\t} as React.CSSProperties,\n\tcard2: {\n\t\tpadding: '5px',\n\t\tminWidth: '310px',\n\t\tmaxWidth: '380px',\n\t\twidth: 'calc(100% - 20px)',\n\t\tmargin: '30px auto',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\twidth: '180px',\n\t\tmargin: '20px auto',\n\t\tfontSize: '16px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '2px 0',\n\t} as React.CSSProperties,\n\tmessage: {\n\t\tmargin: '0 0 10px 0',\n\t} as React.CSSProperties,\n\tlicense: {\n\t\twidth: '100%',\n\t\theight: '130px',\n\t\tmargin: '0 0 10px 0',\n\t\tresize: 'none',\n\t\tfontFamily: '\"Lucida Console\", Monaco, monospace',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tbutton2: {\n\t\twidth: '160px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tbutton3: {\n\t\twidth: '195px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmargin: '0 auto',\n\t} as React.CSSProperties,\n};\n\nexport default class Subscription extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tsubscription: SubscriptionStore.subscription,\n\t\t\tupdate: false,\n\t\t\tmessage: '',\n\t\t\tlicense: '',\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tSubscriptionStore.addChangeListener(this.onChange);\n\t\tif (!this.state.subscription.active) {\n\t\t\tSubscriptionActions.sync(true);\n\t\t}\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tSubscriptionStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tsubscription: SubscriptionStore.subscription,\n\t\t});\n\t}\n\n\tupdate(): JSX.Element {\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{this.state.message}\n\t\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\tlicense: evt.target.value,\n\t\t\t\t\t\t});\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tupdate: false,\n\t\t\t\t\t\t\t\tlicense: '',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>Cancel\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tSubscriptionActions.activate(\n\t\t\t\t\t\t\t\tthis.state.license,\n\t\t\t\t\t\t\t).then((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\tupdate: false,\n\t\t\t\t\t\t\t\t\tlicense: '',\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>Update License\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    ;\n\t}\n\n\tactivate(): JSX.Element {\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{this.state.message}\n\t\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\tlicense: evt.target.value,\n\t\t\t\t\t\t});\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tSubscriptionActions.activate(\n\t\t\t\t\t\t\t\tthis.state.license,\n\t\t\t\t\t\t\t).then((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>Activate License\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tSubscriptionActions.checkout(\n\t\t\t\t\t\t\t\t'cloud',\n\t\t\t\t\t\t\t\ttoken.id,\n\t\t\t\t\t\t\t\ttoken.email,\n\t\t\t\t\t\t\t).then((message: string): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\tmessage: message,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonScriptError={(err): void => {\n\t\t\t\t\t\t\tAlert.error('Failed to load Stripe Checkout');\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tstripeKey=\"pk_live_plmoOl3lS3k5dMNQViZWGfVR\"\n\t\t\t\t\t>\n\t\t\t\t\t\tSubscribe\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    ;\n\t}\n\n\treactivate(): JSX.Element {\n\t\tlet sub = this.state.subscription;\n\t\tlet canceling = sub.cancel_at_period_end || sub.status === 'canceled';\n\t\tlet status = sub.cancel_at_period_end ? 'canceled' : sub.status;\n\t\tlet periodEnd = MiscUtils.formatDateShort(sub.period_end);\n\t\tlet trialEnd = MiscUtils.formatDateShort(sub.trial_end);\n\n\t\tlet balance: string;\n\t\tlet balanceLabel: string;\n\t\tif (sub.balance < 0) {\n\t\t\tbalance = MiscUtils.formatAmount(sub.balance * -1);\n\t\t\tbalanceLabel = 'Credit';\n\t\t} else {\n\t\t\tbalance = MiscUtils.formatAmount(sub.balance);\n\t\t\tbalanceLabel = 'Balance';\n\t\t}\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{this.state.message}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Status:
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{MiscUtils.capitalize(status)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Plan:
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{MiscUtils.capitalize(sub.plan)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Amount:
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{MiscUtils.formatAmount(sub.amount)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Quantity:
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{sub.quantity}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t
    {balanceLabel}:
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{balance}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{canceling ? 'Ends' : 'Renew'}:\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{periodEnd}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t
    Trial Ends:
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{trialEnd}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tSubscriptionActions.cancel(\n\t\t\t\t\t\t\t\tthis.state.subscription.url_key,\n\t\t\t\t\t\t\t).then((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tSubscriptionActions.payment(\n\t\t\t\t\t\t\t\tthis.state.subscription.url_key,\n\t\t\t\t\t\t\t\t'cloud',\n\t\t\t\t\t\t\t\ttoken.id,\n\t\t\t\t\t\t\t\ttoken.email,\n\t\t\t\t\t\t\t).then((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonScriptError={(err): void => {\n\t\t\t\t\t\t\tAlert.error('Failed to load Stripe Checkout');\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tstripeKey=\"pk_live_plmoOl3lS3k5dMNQViZWGfVR\"\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{canceling ? 'Reactivate Subscription' : 'Update Payment'}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tSubscriptionActions.activate('').then((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tupdate: true,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>Update License\n\t\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.state.update) {\n\t\t\treturn this.update();\n\t\t} else if (this.state.subscription.status) {\n\t\t\treturn this.reactivate();\n\t\t} else {\n\t\t\treturn this.activate();\n\t\t}\n\t}\n}\n","/// \nexport const SYNC = 'user.sync';\nexport const TRAVERSE = 'user.traverse';\nexport const FILTER = 'user.filter';\nexport const LOAD = 'user.load';\nexport const UNLOAD = 'user.unload';\nexport const CHANGE = 'user.change';\n\nexport interface User {\n\tid?: string;\n\ttype?: string;\n\tusername?: string;\n\tpassword?: string;\n\tcomment?: string;\n\ttoken?: string;\n\tsecret?: string;\n\tlast_active?: string;\n\troles?: string[];\n\tadministrator?: string;\n\tgenerate_secret?: boolean;\n\tdisabled?: boolean;\n\tactive_until?: string;\n\tpermissions?: string[];\n}\n\nexport interface Filter {\n\tid?: string;\n\tusername?: string;\n\ttype?: string;\n\tadministrator?: boolean;\n\tdisabled?: boolean;\n\trole?: string;\n}\n\nexport type Users = User[];\n\nexport type UserRo = Readonly;\nexport type UsersRo = ReadonlyArray;\n\nexport interface UserDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tuser?: User;\n\t\tusers?: Users;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as UserTypes from '../types/UserTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass UsersStore extends EventEmitter {\n\t_users: UserTypes.UsersRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: UserTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._users = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis.emitChange();\n\t}\n\n\tget users(): UserTypes.UsersRo {\n\t\treturn this._users;\n\t}\n\n\tget usersM(): UserTypes.Users {\n\t\tlet users: UserTypes.Users = [];\n\t\tthis._users.forEach((user: UserTypes.UserRo): void => {\n\t\t\tusers.push({\n\t\t\t\t...user,\n\t\t\t});\n\t\t});\n\t\treturn users;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 50;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): UserTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tuser(id: string): UserTypes.UserRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._users[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: UserTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.type !== this._filter.type ||\n\t\t\t\t\tfilter.administrator !== this._filter.administrator ||\n\t\t\t\t\tfilter.disabled !== this._filter.disabled ||\n\t\t\t\t\tfilter.role !== this._filter.role\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(users: UserTypes.User[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < users.length; i++) {\n\t\t\tusers[i] = Object.freeze(users[i]);\n\t\t\tthis._map[users[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._users = Object.freeze(users);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: UserTypes.UserDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase UserTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase UserTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase UserTypes.SYNC:\n\t\t\t\tthis._sync(action.data.users, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new UsersStore();\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as UserTypes from '../types/UserTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass UserStore extends EventEmitter {\n\t_user: UserTypes.UserRo;\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._user = undefined;\n\t\tthis.emitChange();\n\t}\n\n\tget user(): UserTypes.UserRo {\n\t\treturn this._user;\n\t}\n\n\tget userM(): UserTypes.User {\n\t\tif (this._user) {\n\t\t\treturn {\n\t\t\t\t...this._user,\n\t\t\t};\n\t\t}\n\t\treturn undefined;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_load(user: UserTypes.User): void {\n\t\tthis._user = Object.freeze(user);\n\t\tthis.emitChange();\n\t}\n\n\t_unload(): void {\n\t\tthis._user = null;\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: UserTypes.UserDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase UserTypes.LOAD:\n\t\t\t\tthis._load(action.data.user);\n\t\t\t\tbreak;\n\n\t\t\tcase UserTypes.UNLOAD:\n\t\t\t\tthis._unload();\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new UserStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as UserTypes from '../types/UserTypes';\nimport UserStore from '../stores/UserStore';\nimport UsersStore from '../stores/UsersStore';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as Constants from \"../Constants\";\n\nlet syncId: string;\n\nexport function load(userId: string): Promise {\n\tif (!userId) {\n\t\tlet user: UserTypes.User = {\n\t\t\tid: null,\n\t\t\ttype: 'local',\n\t\t\troles: [],\n\t\t\tpermissions: [],\n\t\t};\n\n\t\tDispatcher.dispatch({\n\t\t\ttype: UserTypes.LOAD,\n\t\t\tdata: {\n\t\t\t\tuser: user,\n\t\t\t},\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/user/' + userId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load user');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: UserTypes.LOAD,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tuser: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function reload(): Promise {\n\treturn load(UserStore.user ? UserStore.user.id : null);\n}\n\nexport function unload(): void {\n\tDispatcher.dispatch({\n\t\ttype: UserTypes.UNLOAD,\n\t});\n}\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/user')\n\t\t\t.query({\n\t\t\t\t...UsersStore.filter,\n\t\t\t\tpage: UsersStore.page,\n\t\t\t\tpage_count: UsersStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load users');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: UserTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tusers: res.body.users,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: UserTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: UserTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: UserTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(user: UserTypes.User): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/user/' + user.id)\n\t\t\t.send(user)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save user');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: UserTypes.LOAD,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tuser: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(user: UserTypes.User): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/user')\n\t\t\t.send(user)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create user');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(userIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/user')\n\t\t\t.send(userIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete users');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: UserTypes.UserDispatch) => {\n\tswitch (action.type) {\n\t\tcase UserTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\tsync();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as AgentTypes from './AgentTypes';\n\nexport const SYNC = 'audit.sync';\nexport const TRAVERSE = 'audit.traverse';\nexport const CHANGE = 'audit.change';\n\nexport interface Audit {\n\tid?: string;\n\tuser?: string;\n\ttimestamp?: string;\n\ttype?: string;\n\tfields?: {[key: string]: string};\n\tagent?: AgentTypes.Agent;\n}\n\nexport type Audits = Audit[];\n\nexport type AuditRo = Readonly;\nexport type AuditsRo = ReadonlyArray;\n\nexport interface AuditDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tuserId?: string;\n\t\taudit?: Audit;\n\t\taudits?: Audits;\n\t\tpage?: number;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as AuditTypes from '../types/AuditTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass AuditsStore extends EventEmitter {\n\t_userId: string;\n\t_audits: AuditTypes.AuditsRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_count: number;\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._userId = undefined;\n\t\tthis._audits = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._count = undefined;\n\t\tthis.emitChange();\n\t}\n\n\tget userId(): string {\n\t\treturn this._userId;\n\t}\n\n\tget audits(): AuditTypes.AuditsRo {\n\t\treturn this._audits;\n\t}\n\n\tget auditsM(): AuditTypes.Audits {\n\t\tlet audits: AuditTypes.Audits = [];\n\t\tthis._audits.forEach((audit: AuditTypes.Audit): void => {\n\t\t\taudits.push({\n\t\t\t\t...audit,\n\t\t\t});\n\t\t});\n\t\treturn audits;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 10;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_sync(userId: string, audits: AuditTypes.Audit[], count: number): void {\n\t\tthis._userId = userId;\n\n\t\tfor (let i = 0; i < audits.length; i++) {\n\t\t\taudits[i] = Object.freeze(audits[i]);\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._audits = Object.freeze(audits);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: AuditTypes.AuditDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase AuditTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase AuditTypes.SYNC:\n\t\t\t\tthis._sync(action.data.userId, action.data.audits, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new AuditsStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport * as Constants from '../Constants';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as AuditTypes from '../types/AuditTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport AuditsStore from '../stores/AuditsStore';\n\nlet syncId: string;\n\nexport function load(userId: string): Promise {\n\tif (!userId) {\n\t\treturn Promise.resolve();\n\t}\n\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/audit/' + userId)\n\t\t\t.query({\n\t\t\t\tpage: AuditsStore.page,\n\t\t\t\tpage_count: AuditsStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load audits');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: AuditTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tuserId: userId,\n\t\t\t\t\t\taudits: res.body.audits,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function reload(): Promise {\n\treturn load(AuditsStore.userId);\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: AuditTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn reload();\n}\n\nEventDispatcher.register((action: AuditTypes.AuditDispatch) => {\n\tswitch (action.type) {\n\t\tcase AuditTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\treload();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as ReactRouter from 'react-router-dom';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as UserTypes from '../types/UserTypes';\n\ninterface Props {\n\tuser: UserTypes.UserRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t} as React.CSSProperties,\n\tlastActivity: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\tnameLink: {\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n};\n\nexport default class User extends React.Component {\n\trender(): JSX.Element {\n\t\tlet user = this.props.user;\n\t\tlet roles: JSX.Element[] = [];\n\n\t\tfor (let role of (user.roles || [])) {\n\t\t\troles.push(\n\t\t\t\t\n\t\t\t\t\t{role}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\t\tif (user.disabled) {\n\t\t\tcardStyle.opacity = 0.6;\n\t\t}\n\n\t\tlet userType: string;\n\t\tswitch (user.type) {\n\t\t\tcase 'local':\n\t\t\t\tuserType = 'Local';\n\t\t\t\tbreak;\n\t\t\tcase 'google':\n\t\t\t\tuserType = 'Google';\n\t\t\t\tbreak;\n\t\t\tcase 'onelogin':\n\t\t\t\tuserType = 'OneLogin';\n\t\t\t\tbreak;\n\t\t\tcase 'okta':\n\t\t\t\tuserType = 'Okta';\n\t\t\t\tbreak;\n\t\t\tcase 'authzero':\n\t\t\t\tuserType = 'Auth0';\n\t\t\t\tbreak;\n\t\t\tcase 'azure':\n\t\t\t\tuserType = 'Azure';\n\t\t\t\tbreak;\n\t\t\tcase 'jumpcloud':\n\t\t\t\tuserType = 'JumpCloud';\n\t\t\t\tbreak;\n\t\t\tcase 'api':\n\t\t\t\tuserType = 'API';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tuserType = user.type;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{user.username}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{userType}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{MiscUtils.formatDateShortTime(user.last_active) || 'Inactive'}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\tadmin\n\t\t\t\t\n\t\t\t\t{roles}\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\n\ntype OnChange = (val: string) => void;\n\ninterface Props {\n\tstyle: React.CSSProperties;\n\tplaceholder: string;\n\tvalue: string;\n\tonChange: OnChange;\n}\n\nexport default class SearchInput extends React.Component {\n\trender(): JSX.Element {\n\t\treturn
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.props.onChange(evt.target.value);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\n\ntype OnToggle = () => void;\n\ninterface Props {\n\tstyle?: React.CSSProperties;\n\tlabel: string;\n\tchecked: boolean;\n\tonToggle: OnToggle;\n}\n\nexport default class SwitchNull extends React.Component {\n\trender(): JSX.Element {\n\t\tlet style: React.CSSProperties = {\n\t\t\t...this.props.style,\n\t\t};\n\n\t\tif (this.props.checked === null || this.props.checked === undefined) {\n\t\t\tstyle.opacity = 0.5;\n\t\t}\n\n\t\treturn ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as UserTypes from '../types/UserTypes';\nimport SearchInput from './SearchInput';\nimport SwitchNull from './SwitchNull';\n\ninterface Props {\n\tfilter: UserTypes.Filter;\n\tonFilter: (filter: UserTypes.Filter) => void;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class UsersFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.username = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.username;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.role = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.role;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.type;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.type = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (filter.administrator === undefined) {\n\t\t\t\t\t\tfilter.administrator = true;\n\t\t\t\t\t} else if (filter.administrator === true) {\n\t\t\t\t\t\tfilter.administrator = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.administrator;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (filter.disabled === undefined) {\n\t\t\t\t\t\tfilter.disabled = true;\n\t\t\t\t\t} else if (filter.disabled === true) {\n\t\t\t\t\t\tfilter.disabled = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.disabled;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\n\ninterface Props {\n\twide?: boolean;\n}\n\nconst css = {\n\tpage: {\n\t\tmargin: '0 auto',\n\t\tpadding: '30px 20px',\n\t\tminWidth: '200px',\n\t\tmaxWidth: '1100px',\n\t} as React.CSSProperties,\n\tpageWide: {\n\t\tmargin: '0 auto',\n\t\tpadding: '30px 20px',\n\t\tminWidth: '200px',\n\t\tmaxWidth: '1250px',\n\t} as React.CSSProperties,\n};\n\nexport default class Page extends React.Component {\n\trender(): JSX.Element {\n\t\treturn
    \n\t\t\t{this.props.children}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\n\ninterface Props {\n\tlabel?: string;\n}\n\nconst css = {\n\theader: {\n\t\tfontSize: '24px',\n\t\tpaddingBottom: '8px',\n\t\tmarginBottom: '20px',\n\t\tborderBottomStyle: 'solid',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\tmargin: 0,\n\t} as React.CSSProperties,\n};\n\nexport default class PageHeader extends React.Component {\n\trender(): JSX.Element {\n\t\tlet label: JSX.Element;\n\t\tif (this.props.label) {\n\t\t\tlabel =

    {this.props.label}

    ;\n\t\t}\n\n\t\treturn
    \n\t\t\t{label}\n\t\t\t{this.props.children}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport UsersStore from '../stores/UsersStore';\nimport * as UserActions from '../actions/UserActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class UsersPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: UsersStore.page,\n\t\t\tpageCount: UsersStore.pageCount,\n\t\t\tpages: UsersStore.pages,\n\t\t\tcount: UsersStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tUsersStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tUsersStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: UsersStore.page,\n\t\t\tpageCount: UsersStore.pageCount,\n\t\t\tpages: UsersStore.pages,\n\t\t\tcount: UsersStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tUserActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tUserActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tUserActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tUserActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tUserActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as ReactRouter from 'react-router-dom';\nimport * as UserTypes from '../types/UserTypes';\nimport UsersStore from '../stores/UsersStore';\nimport * as UserActions from '../actions/UserActions';\nimport * as AuditActions from '../actions/AuditActions';\nimport User from './User';\nimport UsersFilter from './UsersFilter';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport UsersPage from './UsersPage';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tusers: UserTypes.UsersRo;\n\tfilter: UserTypes.Filter;\n\tselected: Selected;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\tusers: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\tusersBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Users extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tusers: UsersStore.users,\n\t\t\tfilter: UsersStore.filter,\n\t\t\tselected: {},\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\tfor (let key in this.state.selected) {\n\t\t\tif (this.state.selected[key]) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tUsersStore.addChangeListener(this.onChange);\n\t\tAuditActions.traverse(0);\n\t\tUserActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tUsersStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet users = UsersStore.users;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\n\t\tusers.forEach((user: UserTypes.User): void => {\n\t\t\tif (curSelected[user.id]) {\n\t\t\t\tselected[user.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tusers: users,\n\t\t\tfilter: UsersStore.filter,\n\t\t\tselected: selected,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tUserActions.remove(Object.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet usersDom: JSX.Element[] = [];\n\n\t\tthis.state.users.forEach((user: UserTypes.UserRo): void => {\n\t\t\tusersDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet users = this.state.users;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < users.length; i++) {\n\t\t\t\t\t\t\tlet usr = users[i];\n\n\t\t\t\t\t\t\tif (usr.id === user.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[users[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: user.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[user.id]) {\n\t\t\t\t\t\tdelete selected[user.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[user.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: user.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let userId of Object.keys(this.state.selected)) {\n\t\t\tlet user = UsersStore.user(userId);\n\t\t\tif (user) {\n\t\t\t\tselectedNames.push(user.username || userId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(userId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Users

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tUserActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tUserActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tNew\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tUserActions.filter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{usersDom}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as AgentTypes from './AgentTypes';\n\nexport const SYNC = 'session.sync';\nexport const CHANGE = 'session.change';\nexport const SHOW_REMOVED = 'session.show_removed';\n\nexport interface Session {\n\tid?: string;\n\ttype?: string;\n\tuser?: string;\n\ttimestamp?: string;\n\tlast_active?: string;\n\tremoved?: boolean;\n\tagent?: AgentTypes.Agent;\n}\n\nexport type Sessions = Session[];\n\nexport type SessionRo = Readonly;\nexport type SessionsRo = ReadonlyArray;\n\nexport interface SessionDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tuserId?: string;\n\t\tsession?: Session;\n\t\tsessions?: Sessions;\n\t\tshowRemoved?: boolean;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as SessionTypes from '../types/SessionTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass SessionsStore extends EventEmitter {\n\t_userId: string;\n\t_showRemoved: boolean;\n\t_sessions: SessionTypes.SessionsRo = Object.freeze([]);\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._userId = undefined;\n\t\tthis._showRemoved = undefined;\n\t\tthis._sessions = Object.freeze([]);\n\t\tthis.emitChange();\n\t}\n\n\tget userId(): string {\n\t\treturn this._userId;\n\t}\n\n\tget sessions(): SessionTypes.SessionsRo {\n\t\treturn this._sessions;\n\t}\n\n\tget sessionsM(): SessionTypes.Sessions {\n\t\tlet sessions: SessionTypes.Sessions = [];\n\t\tthis._sessions.forEach((session: SessionTypes.SessionRo): void => {\n\t\t\tsessions.push({\n\t\t\t\t...session,\n\t\t\t});\n\t\t});\n\t\treturn sessions;\n\t}\n\n\tget showRemoved(): boolean {\n\t\treturn this._showRemoved;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(userId: string, sessions: SessionTypes.Session[]): void {\n\t\tthis._userId = userId;\n\n\t\tfor (let i = 0; i < sessions.length; i++) {\n\t\t\tsessions[i] = Object.freeze(sessions[i]);\n\t\t}\n\n\t\tthis._sessions = Object.freeze(sessions);\n\t\tthis.emitChange();\n\t}\n\n\t_setShowRemoved(state: boolean): void {\n\t\tthis._showRemoved = state;\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: SessionTypes.SessionDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase SessionTypes.SYNC:\n\t\t\t\tthis._sync(action.data.userId, action.data.sessions);\n\t\t\t\tbreak;\n\t\t\tcase SessionTypes.SHOW_REMOVED:\n\t\t\t\tthis._setShowRemoved(action.data.showRemoved);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new SessionsStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport * as Constants from \"../Constants\";\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as SessionTypes from '../types/SessionTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport SessionsStore from '../stores/SessionsStore';\n\nlet syncId: string;\n\nexport function _load(userId: string): Promise {\n\tif (!userId) {\n\t\treturn Promise.resolve();\n\t}\n\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/session/' + userId)\n\t\t\t.query({\n\t\t\t\tshow_removed: SessionsStore.showRemoved,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load sessions');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: SessionTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tuserId: userId,\n\t\t\t\t\t\tsessions: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function load(userId: string): Promise {\n\tDispatcher.dispatch({\n\t\ttype: SessionTypes.SHOW_REMOVED,\n\t\tdata: {\n\t\t\tshowRemoved: false,\n\t\t},\n\t});\n\n\treturn _load(userId);\n}\n\nexport function reload(): Promise {\n\treturn _load(SessionsStore.userId);\n}\n\nexport function showRemoved(state: boolean): Promise {\n\tDispatcher.dispatch({\n\t\ttype: SessionTypes.SHOW_REMOVED,\n\t\tdata: {\n\t\t\tshowRemoved: state,\n\t\t},\n\t});\n\n\treturn reload();\n}\n\nexport function remove(sessionId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/session/' + sessionId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete session');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: SessionTypes.SessionDispatch) => {\n\tswitch (action.type) {\n\t\tcase SessionTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\treload();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\n\ninterface Props {\n\thidden: boolean;\n\ticonClass: string;\n\ttitle: string;\n\tdescription?: string;\n}\n\ninterface State {\n\tinitialized: boolean;\n}\n\nconst css = {\n\tstate: {\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n};\n\nexport default class NonState extends React.Component {\n\ttimeout: number;\n\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tinitialized: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tthis.timeout = window.setTimeout((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tinitialized: true,\n\t\t\t});\n\t\t}, Constants.loadDelay);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tif (this.timeout) {\n\t\t\twindow.clearTimeout(this.timeout);\n\t\t}\n\t}\n\n\trender(): JSX.Element {\n\t\tlet description: JSX.Element;\n\t\tif (this.props.description) {\n\t\t\tdescription =
    \n\t\t\t\t{this.props.description}\n\t\t\t
    ;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\t

    {this.props.title}

    \n\t\t\t{description}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as AgentTypes from '../types/AgentTypes';\n\nexport function formatContinent(agent: AgentTypes.Agent): string {\n\treturn agent.continent && agent.continent_code ?\n\t\tagent.continent + ((agent.continent_code &&\n\t\tagent.continent_code !== 'XX') ? ' (' + agent.continent_code + ')' : '') :\n\t\tagent.continent || agent.continent_code || 'Unknown';\n}\n\nexport function formatLocation(agent: AgentTypes.Agent): string {\n\treturn ((agent.city && agent.city !== 'Unknown') ? agent.city + ', ' : '') +\n\t\t(agent.region || 'Unknown') +\n\t\t((agent.region_code && agent.region_code !== 'XX') ?\n\t\t\t' (' + agent.region_code + ')' : '');\n}\n\nexport function formatCountry(agent: AgentTypes.Agent): string {\n\treturn (agent.country || 'Unknown') +\n\t\t((agent.country_code && agent.country_code !== 'XX') ?\n\t\t\t' (' + agent.country_code + ')' : '');\n}\n\nexport function formatCoordinates(agent: AgentTypes.Agent): string {\n\treturn agent.latitude && agent.longitude ?\n\t\tagent.latitude + ', ' + agent.longitude : 'Unknown';\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from \"../Constants\";\n\ninterface Props {\n\tvalue: string;\n}\n\ninterface State {\n\thover: boolean;\n\tclick: boolean;\n\tcopied: boolean;\n}\n\nconst css = {\n\tcopy: {\n\t\tcursor: 'pointer',\n\t\tmarginLeft: '3px',\n\t} as React.CSSProperties,\n\tcopyHover: {\n\t\tcursor: 'pointer',\n\t\tmarginLeft: '3px',\n\t\topacity: 0.7,\n\t} as React.CSSProperties,\n\tcopyClicked: {\n\t\tcursor: 'pointer',\n\t\tmarginLeft: '3px',\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class CopyButton extends React.Component {\n\telem: HTMLSpanElement;\n\n\tconstructor(props: Props, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\thover: false,\n\t\t\tclick: false,\n\t\t\tcopied: false,\n\t\t};\n\t}\n\trender(): JSX.Element {\n\t\tlet style: React.CSSProperties;\n\t\tif (this.state.click && !this.state.copied) {\n\t\t\tstyle = css.copyClicked;\n\t\t} else if (this.state.hover && !this.state.copied) {\n\t\t\tstyle = css.copyHover;\n\t\t} else {\n\t\t\tstyle = css.copy;\n\t\t}\n\n\t\tlet className = 'bp3-icon-standard';\n\t\tif (this.state.copied) {\n\t\t\tclassName += ' bp3-icon-tick bp3-intent-success';\n\t\t} else {\n\t\t\tclassName += ' bp3-icon-clipboard';\n\t\t}\n\n\t\treturn this.elem = elem}\n\t\t\tclassName={className}\n\t\t\tstyle={style}\n\t\t\tonMouseEnter={() => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\thover: true,\n\t\t\t\t});\n\t\t\t}}\n\t\t\tonMouseLeave={() => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\thover: false,\n\t\t\t\t\tclick: false,\n\t\t\t\t});\n\t\t\t}}\n\t\t\tonMouseDown={() => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tclick: true,\n\t\t\t\t});\n\t\t\t}}\n\t\t\tonMouseUp={() => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tclick: false,\n\t\t\t\t});\n\t\t\t}}\n\t\t\tonClick={() => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tcopied: true,\n\t\t\t\t});\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tcopied: false,\n\t\t\t\t\t});\n\t\t\t\t}, 1200);\n\n\t\t\t\tlet elem = document.createElement('input');\n\t\t\t\telem.contentEditable = 'true';\n\t\t\t\telem.readOnly = true;\n\t\t\t\telem.style.position = 'absolute';\n\t\t\t\telem.style.width = '1px';\n\t\t\t\telem.style.height = '1px';\n\t\t\t\telem.style.padding = '0px';\n\t\t\t\telem.style.border = 'none';\n\t\t\t\telem.style.opacity = '0';\n\t\t\t\telem.value = this.props.value;\n\t\t\t\tthis.elem.parentElement.append(elem);\n\n\t\t\t\tif (Constants.mobileOs === 'iOS') {\n\t\t\t\t\tlet range = document.createRange();\n\t\t\t\t\trange.selectNodeContents(elem);\n\n\t\t\t\t\tlet selection = window.getSelection();\n\t\t\t\t\tselection.removeAllRanges();\n\t\t\t\t\tselection.addRange(range);\n\t\t\t\t\telem.setSelectionRange(0, 999999);\n\t\t\t\t} else {\n\t\t\t\t\telem.select();\n\t\t\t\t}\n\n\t\t\t\tdocument.execCommand('copy');\n\t\t\t\telem.remove();\n\t\t\t}}\n\t\t/>;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport CopyButton from './CopyButton';\n\nexport interface Field {\n\tvalueClass?: string;\n\tvalueClasses?: string[];\n\tlabel: string;\n\tvalue: string | number | string[];\n\tcopy?: boolean;\n}\n\nexport interface Bar {\n\tprogressClass?: string;\n\tlabel: string;\n\tvalue: number;\n\tcolor?: string;\n}\n\nexport interface Props {\n\tstyle?: React.CSSProperties;\n\thidden?: boolean;\n\tfields?: Field[];\n\tbars?: Bar[];\n}\n\nconst css = {\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '320px',\n\t} as React.CSSProperties,\n\tvalue: {\n\t\twordWrap: 'break-word',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tcopy: {\n\t\tcursor: 'pointer',\n\t\tmarginLeft: '3px',\n\t} as React.CSSProperties,\n\tcopyHover: {\n\t\tcursor: 'pointer',\n\t\tmarginLeft: '3px',\n\t\topacity: 0.7,\n\t} as React.CSSProperties,\n};\n\nexport default class PageInfo extends React.Component {\n\trender(): JSX.Element {\n\t\tlet fields: JSX.Element[] = [];\n\t\tlet bars: JSX.Element[] = [];\n\n\t\tfor (let field of this.props.fields || []) {\n\t\t\tif (field == null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet value: string | JSX.Element[];\n\t\t\tlet copyBtn: JSX.Element;\n\n\t\t\tif (typeof field.value === 'string') {\n\t\t\t\tvalue = field.value;\n\t\t\t\tif (field.copy) {\n\t\t\t\t\tcopyBtn = ;\n\t\t\t\t}\n\t\t\t} else if (typeof field.value === 'number') {\n\t\t\t\tvalue = field.value.toString();\n\t\t\t\tif (field.copy) {\n\t\t\t\t\tcopyBtn = ;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvalue = [];\n\t\t\t\tfor (let i = 0; i < field.value.length; i++) {\n\t\t\t\t\tlet copyItemBtn: JSX.Element;\n\n\t\t\t\t\tif (field.copy) {\n\t\t\t\t\t\tcopyItemBtn = ;\n\t\t\t\t\t}\n\n\t\t\t\t\tvalue.push(\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{field.value[i]}{copyItemBtn}\n\t\t\t\t\t\t
    \n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfields.push(\n\t\t\t\t
    \n\t\t\t\t\t{field.label}\n\t\t\t\t\t\n\t\t\t\t\t\t{value}{copyBtn}\n\t\t\t\t\t
    \n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tfor (let bar of this.props.bars || []) {\n\t\t\tlet style: React.CSSProperties = {\n\t\t\t\twidth: (bar.value || 0) + '%',\n\t\t\t};\n\n\t\t\tif (bar.color) {\n\t\t\t\tstyle.backgroundColor = bar.color;\n\t\t\t}\n\n\t\t\tbars.push(\n\t\t\t\t
    \n\t\t\t\t\t{bar.label}\n\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet labelStyle: React.CSSProperties;\n\t\tif (this.props.style) {\n\t\t\tlabelStyle = {\n\t\t\t\t...css.label,\n\t\t\t\t...this.props.style,\n\t\t\t};\n\t\t} else {\n\t\t\tlabelStyle = css.label;\n\t\t}\n\n\t\treturn \n\t\t\t{fields}\n\t\t\t{bars}\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as SessionTypes from '../types/SessionTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as AgentUtils from '../utils/AgentUtils';\nimport * as Constants from '../Constants';\nimport * as SessionActions from '../actions/SessionActions';\nimport PageInfo from './PageInfo';\n\ninterface Props {\n\tsession: SessionTypes.SessionRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tinfo: {\n\t\tmarginBottom: '-5px',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '290px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n};\n\nexport default class Session extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tSessionActions.remove(this.props.session.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet session = this.props.session;\n\t\tlet agent = session.agent || {};\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\t\tif (session.removed) {\n\t\t\tcardStyle.opacity = 0.6;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as SessionTypes from '../types/SessionTypes';\nimport SessionsStore from '../stores/SessionsStore';\nimport * as SessionActions from '../actions/SessionActions';\nimport NonState from './NonState';\nimport Session from './Session';\nimport PageHeader from './PageHeader';\n\ninterface Props {\n\tuserId: string;\n}\n\ninterface State {\n\tsessions: SessionTypes.SessionsRo;\n\tshowEnded: boolean;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '15px 0 -5px 0',\n\t} as React.CSSProperties,\n};\n\nexport default class Sessions extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tsessions: SessionsStore.sessions,\n\t\t\tshowEnded: false,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tSessionsStore.addChangeListener(this.onChange);\n\t\tif (this.props.userId) {\n\t\t\tSessionActions.load(this.props.userId);\n\t\t}\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tSessionsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tsessions: SessionsStore.sessions,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tif (!this.props.userId) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet sessions: JSX.Element[] = [];\n\n\t\tthis.state.sessions.forEach((\n\t\t\t\tsession: SessionTypes.SessionRo): void => {\n\t\t\tif (session.removed && !this.state.showEnded) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsessions.push();\n\t\t});\n\n\t\treturn
    \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    User Sessions

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tshowEnded: !this.state.showEnded,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tSessionActions.showRemoved(!this.state.showEnded);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{(this.state.showEnded ? 'Hide' : 'Show') + ' ended sessions'}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{sessions}\n\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","export type Base64urlString = string;\n\nexport function base64urlToBuffer(\n baseurl64String: Base64urlString,\n): ArrayBuffer {\n // Base64url to Base64\n const padding = \"==\".slice(0, (4 - (baseurl64String.length % 4)) % 4);\n const base64String =\n baseurl64String.replace(/-/g, \"+\").replace(/_/g, \"/\") + padding;\n\n // Base64 to binary string\n const str = atob(base64String);\n\n // Binary string to buffer\n const buffer = new ArrayBuffer(str.length);\n const byteView = new Uint8Array(buffer);\n for (let i = 0; i < str.length; i++) {\n byteView[i] = str.charCodeAt(i);\n }\n return buffer;\n}\n\nexport function bufferToBase64url(buffer: ArrayBuffer): Base64urlString {\n // Buffer to binary string\n const byteView = new Uint8Array(buffer);\n let str = \"\";\n for (const charCode of byteView) {\n str += String.fromCharCode(charCode);\n }\n\n // Binary string to base64\n const base64String = btoa(str);\n\n // Base64 to base64url\n // We assume that the base64url string is well-formed.\n const base64urlString = base64String\n .replace(/\\+/g, \"-\")\n .replace(/\\//g, \"_\")\n .replace(/=/g, \"\");\n return base64urlString;\n}\n","// We export these values in order so that they can be used to deduplicate\n// schema definitions in minified JS code.\n\nimport { Schema, SchemaProperty } from \"./schema-format\";\n\n// TODO: Parcel isn't deduplicating these values.\nexport const copyValue = \"copy\";\nexport const convertValue = \"convert\";\n\nexport function convert(\n conversionFn: (v: From) => To,\n schema: Schema,\n input: any,\n): any {\n if (schema === copyValue) {\n return input;\n }\n if (schema === convertValue) {\n return conversionFn(input);\n }\n if (schema instanceof Array) {\n return input.map((v: any) => convert(conversionFn, schema[0], v));\n }\n if (schema instanceof Object) {\n const output: any = {};\n for (const [key, schemaField] of Object.entries(schema)) {\n if (schemaField.deriveFn) {\n const v = schemaField.deriveFn(input);\n if (v !== undefined) {\n input[key] = v;\n }\n }\n\n if (!(key in input)) {\n if (schemaField.required) {\n throw new Error(`Missing key: ${key}`);\n }\n continue;\n }\n // Fields can be null (rather than missing or `undefined`), e.g. the\n // `userHandle` field of the `AuthenticatorAssertionResponse`:\n // https://www.w3.org/TR/webauthn/#iface-authenticatorassertionresponse\n if (input[key] == null) {\n output[key] = null;\n continue;\n }\n output[key] = convert(\n conversionFn,\n schemaField.schema,\n input[key],\n );\n }\n return output;\n }\n}\n\nexport function derived(\n schema: Schema,\n deriveFn: (v: any) => any,\n): SchemaProperty {\n return {\n required: true,\n schema,\n deriveFn,\n };\n}\n\nexport function required(schema: Schema): SchemaProperty {\n return {\n required: true,\n schema,\n };\n}\n\nexport function optional(schema: Schema): SchemaProperty {\n return {\n required: false,\n schema,\n };\n}\n","import { Schema } from \"../schema-format\";\nimport {\n convertValue as convert,\n copyValue as copy,\n derived,\n optional,\n required,\n} from \"../convert\";\n\n// Shared by `create()` and `get()`.\n\nconst publicKeyCredentialDescriptorSchema: Schema = {\n type: required(copy),\n id: required(convert),\n transports: optional(copy),\n};\n\nconst simplifiedExtensionsSchema: Schema = {\n appid: optional(copy),\n appidExclude: optional(copy),\n credProps: optional(copy),\n};\n\nconst simplifiedClientExtensionResultsSchema = {\n appid: optional(copy),\n appidExclude: optional(copy),\n credProps: optional(copy),\n};\n\n// `navigator.create()` request\n\nexport const credentialCreationOptions: Schema = {\n publicKey: required({\n rp: required(copy),\n user: required({\n id: required(convert),\n name: required(copy),\n displayName: required(copy),\n }),\n\n challenge: required(convert),\n pubKeyCredParams: required(copy),\n\n timeout: optional(copy),\n excludeCredentials: optional([publicKeyCredentialDescriptorSchema]),\n authenticatorSelection: optional(copy),\n attestation: optional(copy),\n extensions: optional(simplifiedExtensionsSchema),\n }),\n signal: optional(copy),\n};\n\n// `navigator.create()` response\n\nexport const publicKeyCredentialWithAttestation: Schema = {\n type: required(copy),\n id: required(copy),\n rawId: required(convert),\n response: required({\n clientDataJSON: required(convert),\n attestationObject: required(convert),\n transports: derived(\n copy,\n (response: any) => response.getTransports?.() || [],\n ),\n }),\n clientExtensionResults: derived(\n simplifiedClientExtensionResultsSchema,\n (pkc: PublicKeyCredential) => pkc.getClientExtensionResults(),\n ),\n};\n\n// `navigator.get()` request\n\nexport const credentialRequestOptions: Schema = {\n mediation: optional(copy),\n publicKey: required({\n challenge: required(convert),\n timeout: optional(copy),\n rpId: optional(copy),\n allowCredentials: optional([publicKeyCredentialDescriptorSchema]),\n userVerification: optional(copy),\n extensions: optional(simplifiedExtensionsSchema),\n }),\n signal: optional(copy),\n};\n\n// `navigator.get()` response\n\nexport const publicKeyCredentialWithAssertion: Schema = {\n type: required(copy),\n id: required(copy),\n rawId: required(convert),\n response: required({\n clientDataJSON: required(convert),\n authenticatorData: required(convert),\n signature: required(convert),\n userHandle: required(convert),\n }),\n clientExtensionResults: derived(\n simplifiedClientExtensionResultsSchema,\n (pkc: PublicKeyCredential) => pkc.getClientExtensionResults(),\n ),\n};\n\nexport const schema: { [s: string]: Schema } = {\n credentialCreationOptions,\n publicKeyCredentialWithAttestation,\n credentialRequestOptions,\n publicKeyCredentialWithAssertion,\n};\n","import { base64urlToBuffer, bufferToBase64url } from \"../base64url\";\nimport { convert } from \"../convert\";\nimport {\n CredentialCreationOptionsJSON,\n CredentialRequestOptionsJSON,\n PublicKeyCredentialWithAssertionJSON,\n PublicKeyCredentialWithAttestationJSON,\n} from \"./json\";\nimport {\n credentialCreationOptions,\n credentialRequestOptions,\n publicKeyCredentialWithAssertion,\n publicKeyCredentialWithAttestation,\n} from \"./schema\";\n\nexport function createRequestFromJSON(\n requestJSON: CredentialCreationOptionsJSON,\n): CredentialCreationOptions {\n return convert(base64urlToBuffer, credentialCreationOptions, requestJSON);\n}\n\nexport function createResponseToJSON(\n credential: PublicKeyCredential,\n): PublicKeyCredentialWithAttestationJSON {\n return convert(\n bufferToBase64url,\n publicKeyCredentialWithAttestation,\n credential,\n );\n}\n\nexport async function create(\n requestJSON: CredentialCreationOptionsJSON,\n): Promise {\n const credential = (await navigator.credentials.create(\n createRequestFromJSON(requestJSON),\n )) as PublicKeyCredential;\n return createResponseToJSON(credential);\n}\n\nexport function getRequestFromJSON(\n requestJSON: CredentialRequestOptionsJSON,\n): CredentialRequestOptions {\n return convert(base64urlToBuffer, credentialRequestOptions, requestJSON);\n}\n\nexport function getResponseToJSON(\n credential: PublicKeyCredential,\n): PublicKeyCredentialWithAssertionJSON {\n return convert(\n bufferToBase64url,\n publicKeyCredentialWithAssertion,\n credential,\n );\n}\n\nexport async function get(\n requestJSON: CredentialRequestOptionsJSON,\n): Promise {\n const credential = (await navigator.credentials.get(\n getRequestFromJSON(requestJSON),\n )) as PublicKeyCredential;\n return getResponseToJSON(credential);\n}\n\ndeclare global {\n interface Window {\n PublicKeyCredential: PublicKeyCredential | undefined;\n }\n}\n","/// \nexport const SYNC = 'device.sync';\nexport const CHANGE = 'device.change';\n\nexport interface Device {\n\tid?: string;\n\tuser?: string;\n\tname?: string;\n\ttype?: string;\n\tmode?: string;\n\talert_levels?: number[];\n\ttimestamp?: string;\n\tdisabled?: boolean;\n\tactive_until?: string;\n\tnumber?: string;\n\tlast_active?: string;\n\twan_rp_id?: string;\n}\n\nexport type Devices = Device[];\n\nexport type DeviceRo = Readonly;\nexport type DevicesRo = ReadonlyArray;\n\nexport interface DeviceDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tuserId?: string;\n\t\tdevice?: Device;\n\t\tdevices?: Devices;\n\t\tshowRemoved?: boolean;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as DeviceTypes from '../types/DeviceTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass DevicesStore extends EventEmitter {\n\t_userId: string;\n\t_devices: DeviceTypes.DevicesRo = Object.freeze([]);\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\tget userId(): string {\n\t\treturn this._userId;\n\t}\n\n\tget devices(): DeviceTypes.DevicesRo {\n\t\treturn this._devices;\n\t}\n\n\tget devicesM(): DeviceTypes.Devices {\n\t\tlet devices: DeviceTypes.Devices = [];\n\t\tthis._devices.forEach((device: DeviceTypes.DeviceRo): void => {\n\t\t\tdevices.push({\n\t\t\t\t...device,\n\t\t\t});\n\t\t});\n\t\treturn devices;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(userId: string, devices: DeviceTypes.Device[]): void {\n\t\tthis._userId = userId;\n\n\t\tfor (let i = 0; i < devices.length; i++) {\n\t\t\tdevices[i] = Object.freeze(devices[i]);\n\t\t}\n\n\t\tthis._devices = Object.freeze(devices);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: DeviceTypes.DeviceDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase DeviceTypes.SYNC:\n\t\t\t\tthis._sync(action.data.userId, action.data.devices);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new DevicesStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as DeviceTypes from '../types/DeviceTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport DevicesStore from '../stores/DevicesStore';\nimport * as PolicyTypes from \"../types/PolicyTypes\";\n\nlet syncId: string;\n\nexport function load(userId: string): Promise {\n\tif (!userId) {\n\t\treturn Promise.resolve();\n\t}\n\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/device/' + userId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load devices');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: DeviceTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tuserId: userId,\n\t\t\t\t\t\tdevices: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function reload(): Promise {\n\treturn load(DevicesStore.userId);\n}\n\nexport function create(device: DeviceTypes.Device): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/device')\n\t\t\t.send(device)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create device');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function testAlert(deviceId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/device/' + deviceId + '/alert')\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to send test alert');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function commit(device: DeviceTypes.Device): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/device/' + device.id)\n\t\t\t.send(device)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save device');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(deviceId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/device/' + deviceId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete device');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: DeviceTypes.DeviceDispatch) => {\n\tswitch (action.type) {\n\t\tcase DeviceTypes.CHANGE:\n\t\t\treload();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as Blueprint from '@blueprintjs/core';\n\ninterface Props {\n\ttitle: string;\n\tcontent: string;\n\texamples?: string[];\n}\n\ninterface State {\n\tpopover: boolean;\n}\n\nconst css = {\n\tbox: {\n\t\tposition: 'relative',\n\t\tdisplay: 'inline',\n\t} as React.CSSProperties,\n\tcontent: {\n\t\tpadding: '20px',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tposition: 'absolute',\n\t\ttop: '-7px',\n\t\tleft: '-2px',\n\t\tpadding: '7px',\n\t\tbackground: 'none',\n\t\topacity: 0.3,\n\t} as React.CSSProperties,\n\tpopover: {\n\t\twidth: '230px',\n\t} as React.CSSProperties,\n\tpopoverTarget: {\n\t\ttop: '9px',\n\t\tleft: '18px',\n\t} as React.CSSProperties,\n\tdialog: {\n\t\tmaxWidth: '400px',\n\t\tmargin: '30px 20px',\n\t} as React.CSSProperties,\n\tinputFirst: {\n\t\twidth: '100%',\n\t\tmarginTop: '15px',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '100%',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n};\n\nlet dialog = true;\n\nexport default class Help extends React.Component {\n\tconstructor(props: Props, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpopover: false,\n\t\t};\n\t}\n\n\tautoSelect = (evt: React.MouseEvent): void => {\n\t\tevt.currentTarget.select();\n\t}\n\n\trender(): JSX.Element {\n\t\tlet examplesElem: JSX.Element[] = [];\n\t\tfor (let i = 0; i < (this.props.examples || []).length; i++) {\n\t\t\texamplesElem.push(\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\tlet helpElm: JSX.Element;\n\t\tif (this.state.popover) {\n\t\t\tif (dialog) {\n\t\t\t\thelpElm = {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\tpopover: false,\n\t\t\t\t\t\t});\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t
    \n\t\t\t\t\t\t{this.props.content}\n\t\t\t\t\t\t{examplesElem}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tpopover: !this.state.popover,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>Close\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t;\n\t\t\t} else {\n\t\t\t\thelpElm = \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    {this.props.title}
    \n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t{this.props.content}\n\t\t\t\t\t\t\t\t\t\t{examplesElem}\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\n\t\t\t;\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tpopover: !this.state.popover,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{helpElm}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport Help from './Help';\n\ninterface Props {\n\thidden?: boolean;\n\tdisabled?: boolean;\n\tlabel: string;\n\thelp: string;\n\tchecked: boolean;\n\tonToggle: () => void;\n}\n\nconst css = {\n\tlabel: {\n\t\tdisplay: 'inline-block',\n\t} as React.CSSProperties,\n};\n\nexport default class PageSwitch extends React.Component {\n\trender(): JSX.Element {\n\t\treturn ;\n\t}\n}\n","/// \nimport * as React from 'react';\n\ninterface Props {\n\tstyle?: React.CSSProperties;\n\tmessage: string;\n\tchanged: boolean;\n\tdisabled: boolean;\n\twrap?: boolean;\n\thidden?: boolean;\n\tlight?: boolean;\n\tonCancel: () => void;\n\tonSave: () => void;\n}\n\nconst css = {\n\tmessage: {\n\t\tmarginTop: '6px',\n\t} as React.CSSProperties,\n\tmessageWrap: {\n\t\tmarginTop: '6px',\n\t\tmarginRight: '10px',\n\t} as React.CSSProperties,\n\tbox: {\n\t\tmarginTop: '15px',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmarginLeft: '10px',\n\t} as React.CSSProperties,\n\tbuttonWrap: {\n\t\tmarginLeft: '10px',\n\t\tmarginBottom: '10px',\n\t} as React.CSSProperties,\n\tbuttonWrapFirst: {\n\t\tmarginBottom: '10px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tflexShrink: 0,\n\t} as React.CSSProperties,\n};\n\nexport default class PageSave extends React.Component {\n\trender(): JSX.Element {\n\t\tlet style: React.CSSProperties = this.props.light ? null : css.box;\n\n\t\tif (this.props.style) {\n\t\t\tstyle = {\n\t\t\t\t...style,\n\t\t\t\t...this.props.style,\n\t\t\t};\n\t\t}\n\n\t\tlet containerClass = 'layout horizontal';\n\t\tlet buttonStyle: React.CSSProperties;\n\t\tlet buttonStyleFirst: React.CSSProperties;\n\t\tlet messageStyle: React.CSSProperties;\n\t\tif (this.props.wrap) {\n\t\t\tbuttonStyle = css.buttonWrap;\n\t\t\tbuttonStyleFirst = css.buttonWrapFirst;\n\t\t\tmessageStyle = css.messageWrap;\n\t\t} else {\n\t\t\tbuttonStyle = css.button;\n\t\t\tbuttonStyleFirst = css.button;\n\t\t\tmessageStyle = css.message;\n\t\t}\n\n\t\treturn \n\t\t\t{this.props.children}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\tCancel\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tSave\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport Help from './Help';\n\ninterface Props {\n\thidden?: boolean;\n\tdisabled?: boolean;\n\treadOnly?: boolean;\n\tautoSelect?: boolean;\n\tnarrow?: boolean;\n\tlabel: string;\n\thelp: string;\n\ttype: string;\n\tplaceholder: string;\n\tvalue: string | number;\n\tonChange?: (val: string) => void;\n}\n\nconst css = {\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tlabelNarrow: {\n\t\twidth: '100%',\n\t\tmaxWidth: '220px',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n};\n\nexport default class PageInput extends React.Component {\n\tautoSelect = (evt: React.MouseEvent): void => {\n\t\tevt.currentTarget.select();\n\t}\n\n\trender(): JSX.Element {\n\t\tlet value: any = this.props.value;\n\t\tvalue = isNaN(value) ? this.props.value || '' : this.props.value;\n\n\t\treturn \n\t\t\t{this.props.label}\n\t\t\t\n\t\t\t {\n\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\tthis.props.onChange(evt.target.value);\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as DeviceTypes from '../types/DeviceTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as DeviceActions from '../actions/DeviceActions';\nimport * as PageInfos from './PageInfo';\nimport PageInfo from './PageInfo';\nimport ConfirmButton from './ConfirmButton';\nimport * as Alert from '../Alert';\nimport PageSwitch from \"./PageSwitch\";\nimport PageSave from \"./PageSave\";\nimport PageInput from \"./PageInput\";\n\ninterface Props {\n\tdevice: DeviceTypes.DeviceRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tdevice: DeviceTypes.Device;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tinfo: {\n\t\tmarginBottom: '-5px',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '250px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\tmarginBottom: '11px',\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\tcontrolButton: {\n\t\tmarginRight: '10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingTop: '10px',\n\t} as React.CSSProperties,\n};\n\nexport default class Device extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tdevice: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet device: any;\n\n\t\tif (this.state.changed) {\n\t\t\tdevice = {\n\t\t\t\t...this.state.device,\n\t\t\t};\n\t\t} else {\n\t\t\tdevice = {\n\t\t\t\t...this.props.device,\n\t\t\t};\n\t\t}\n\n\t\tdevice[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdevice: device,\n\t\t});\n\t}\n\n\ttoggleLevel(level: number) {\n\t\tlet device: any;\n\n\t\tif (this.state.changed) {\n\t\t\tdevice = {\n\t\t\t\t...this.state.device,\n\t\t\t};\n\t\t} else {\n\t\t\tdevice = {\n\t\t\t\t...this.props.device,\n\t\t\t};\n\t\t}\n\n\t\tlet levels: number[] = Object.assign([], (device.alert_levels || []));\n\t\tlet index = levels.indexOf(level);\n\n\t\tif (index !== -1) {\n\t\t\tlevels.splice(index, 1);\n\t\t} else {\n\t\t\tlevels.push(level);\n\t\t}\n\n\t\tdevice.alert_levels = levels;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdevice: device,\n\t\t});\n\t}\n\n\tonTestAlert = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDeviceActions.testAlert(this.props.device.id).then((): void => {\n\t\t\tAlert.success('Test alert sent');\n\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDeviceActions.commit(this.state.device).then((): void => {\n\t\t\tAlert.success('Device name updated');\n\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t\tchanged: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tdevice: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDeviceActions.remove(this.props.device.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet device: DeviceTypes.Device = this.state.device ||\n\t\t\tthis.props.device;\n\n\t\tlet isPhone: boolean = this.props.device.mode === 'phone';\n\n\t\tlet deviceType = 'Unknown';\n\t\tswitch (device.type) {\n\t\t\tcase 'webauthn':\n\t\t\t\tdeviceType = 'WebAuthn';\n\t\t\t\tbreak;\n\t\t\tcase 'u2f':\n\t\t\t\tdeviceType = 'U2F';\n\t\t\t\tbreak;\n\t\t\tcase 'call':\n\t\t\t\tdeviceType = 'Call';\n\t\t\t\tbreak;\n\t\t\tcase 'message':\n\t\t\t\tdeviceType = 'SMS';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet deviceMode = 'Unknown';\n\t\tswitch (device.mode) {\n\t\t\tcase 'secondary':\n\t\t\t\tdeviceMode = 'Secondary';\n\t\t\t\tbreak;\n\t\t\tcase 'phone':\n\t\t\t\tdeviceMode = 'Phone';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet deviceOther: PageInfos.Field;\n\t\tif (device.wan_rp_id) {\n\t\t\tdeviceOther = {\n\t\t\t\tlabel: 'WebAuthn Domain',\n\t\t\t\tvalue: device.wan_rp_id,\n\t\t\t};\n\t\t} else if (device.type === 'call' || device.type === 'message') {\n\t\t\tdeviceOther = {\n\t\t\t\tlabel: 'Phone Number',\n\t\t\t\tvalue: device.number,\n\t\t\t};\n\t\t}\n\n\t\tlet alertIcon = 'bp3-icon-phone';\n\t\tif (device.type === 'message') {\n\t\t\talertIcon = 'bp3-icon-mobile-phone';\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\t\tif (device.disabled) {\n\t\t\tcardStyle.opacity = 0.6;\n\t\t}\n\n\t\tlet fields1: PageInfos.Field[];\n\t\tlet fields2: PageInfos.Field[];\n\n\t\tif (isPhone) {\n\t\t\tfields1 = [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'ID',\n\t\t\t\t\tvalue: device.id || 'None',\n\t\t\t\t},\n\t\t\t];\n\t\t\tfields2 = [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Type',\n\t\t\t\t\tvalue: deviceType,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Mode',\n\t\t\t\t\tvalue: deviceMode,\n\t\t\t\t},\n\t\t\t\tdeviceOther,\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Registered',\n\t\t\t\t\tvalue: MiscUtils.formatDate(device.timestamp) || 'Unknown',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Last Active',\n\t\t\t\t\tvalue: MiscUtils.formatDate(device.last_active) || 'Unknown',\n\t\t\t\t},\n\t\t\t];\n\t\t} else {\n\t\t\tfields1 = [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'ID',\n\t\t\t\t\tvalue: device.id || 'None',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Type',\n\t\t\t\t\tvalue: deviceType,\n\t\t\t\t},\n\t\t\t\tdeviceOther,\n\t\t\t];\n\t\t\tfields2 = [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Mode',\n\t\t\t\t\tvalue: deviceMode,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Registered',\n\t\t\t\t\tvalue: MiscUtils.formatDate(device.timestamp) || 'Unknown',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Last Active',\n\t\t\t\t\tvalue: MiscUtils.formatDate(device.last_active) || 'Unknown',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tlet testButton: JSX.Element;\n\t\tif (isPhone) {\n\t\t\ttestButton = {\n\t\t\t\t\tthis.onTestAlert();\n\t\t\t\t}}\n\t\t\t/>;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleLevel(1);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleLevel(5);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleLevel(10);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tdevice: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t>\n\t\t\t\t{testButton}\n\t\t\t\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as SuperAgent from 'superagent';\nimport * as WebAuthn from '@github/webauthn-json';\nimport * as DeviceTypes from '../types/DeviceTypes';\nimport DevicesStore from '../stores/DevicesStore';\nimport * as DeviceActions from '../actions/DeviceActions';\nimport * as Constants from \"../Constants\";\nimport NonState from './NonState';\nimport Device from './Device';\nimport PageHeader from './PageHeader';\nimport Loader from \"../Loader\";\nimport * as Csrf from \"../Csrf\";\nimport * as Alert from \"../Alert\";\n\ninterface Props {\n\tuserId: string;\n}\n\ninterface State {\n\tdevices: DeviceTypes.DevicesRo;\n\tdeviceType: string;\n\tdeviceName: string;\n\tdevicePubKey: string;\n\tdevicePhoneNumber: string;\n\tshowEnded: boolean;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '15px 0 -5px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tmarginTop: '18px',\n\t} as React.CSSProperties,\n\tgroupBox: {\n\t} as React.CSSProperties,\n\tinputBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class Devices extends React.Component {\n\talertKey: string;\n\tu2fToken: string;\n\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdevices: DevicesStore.devices,\n\t\t\tdeviceName: '',\n\t\t\tdeviceType: '',\n\t\t\tdevicePubKey: '',\n\t\t\tdevicePhoneNumber: '',\n\t\t\tshowEnded: false,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tDevicesStore.addChangeListener(this.onChange);\n\t\tif (this.props.userId) {\n\t\t\tDeviceActions.load(this.props.userId);\n\t\t}\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tDevicesStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdevices: DevicesStore.devices,\n\t\t});\n\t}\n\n\twanRegister = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\n\t\tlet loader = new Loader().loading();\n\n\t\tSuperAgent\n\t\t\t.get('/device/' + DevicesStore.userId + '/webauthn/register')\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to request device registration');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.wanCreate(res.body.token, res.body.options);\n\t\t\t});\n\t}\n\n\twanCreate = (token: string, options: any): void => {\n\t\tWebAuthn.create(options).then((cred: any): void => {\n\t\t\tcred.name = this.state.deviceName;\n\t\t\tcred.token = token;\n\t\t\tthis.wanRespond(cred);\n\t\t}).catch((err: any): void => {\n\t\t\tAlert.errorRes(err, 'Failed to register device');\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\twanRespond = (cred: any): void => {\n\t\tlet loader = new Loader().loading();\n\n\t\tSuperAgent\n\t\t\t.post('/device/' + DevicesStore.userId + '/webauthn/register')\n\t\t\t.send(cred)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t\tdeviceName: '',\n\t\t\t\t});\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to register device');\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tAlert.success('Successfully registered device');\n\t\t\t});\n\t}\n\n\taddDevice = (): void => {\n\t\tif (this.state.deviceType === 'phone_call' ||\n\t\t\tthis.state.deviceType === 'phone_message') {\n\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: true,\n\t\t\t});\n\n\t\t\tlet deviceTypes = this.state.deviceType.split('_');\n\t\t\tlet deviceMode = deviceTypes[0];\n\t\t\tlet deviceType = deviceTypes[1];\n\n\t\t\tDeviceActions.create({\n\t\t\t\tid: null,\n\t\t\t\tuser: this.props.userId,\n\t\t\t\tname: this.state.deviceName,\n\t\t\t\ttype: deviceType,\n\t\t\t\tmode: deviceMode,\n\t\t\t\tnumber: this.state.devicePhoneNumber,\n\t\t\t}).then((): void => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t\tdeviceName: '',\n\t\t\t\t\tdevicePubKey: '',\n\t\t\t\t\tdevicePhoneNumber: '',\n\t\t\t\t});\n\n\t\t\t\tAlert.success('Successfully registered device');\n\t\t\t}).catch((): void => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tthis.wanRegister();\n\t\t}\n\t}\n\n\trender(): JSX.Element {\n\t\tif (!this.props.userId) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet devices: JSX.Element[] = [];\n\n\t\tthis.state.devices.forEach((device: DeviceTypes.DeviceRo): void => {\n\t\t\tdevices.push();\n\t\t});\n\n\t\treturn
    \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    User Devices

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tdeviceType: evt.target.value,\n\t\t\t\t\t\t\t\t\t\t\tdevicePubKey: '',\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tdeviceName: evt.target.value,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonKeyPress={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tif (this.state.deviceType !== 'smart_card' &&\n\t\t\t\t\t\t\t\t\t\t\t\tevt.key === 'Enter') {\n\t\t\t\t\t\t\t\t\t\t\tthis.addDevice();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tdevicePhoneNumber: evt.target.value,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonKeyPress={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tif (evt.key === 'Enter') {\n\t\t\t\t\t\t\t\t\t\t\tthis.addDevice();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\tAdd Device\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{devices}\n\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AuditTypes from '../types/AuditTypes';\nimport * as Constants from '../Constants';\nimport * as AgentUtils from '../utils/AgentUtils';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport PageInfo from './PageInfo';\n\ninterface Props {\n\taudit: AuditTypes.AuditRo;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tinfo: {\n\t\tmarginBottom: '-5px',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '290px',\n\t} as React.CSSProperties,\n};\n\nexport default class Audit extends React.Component {\n\trender(): JSX.Element {\n\t\tlet audit = this.props.audit;\n\t\tlet agent = audit.agent || {};\n\n\t\tlet fields: string[] = [];\n\t\tfor (let key in audit.fields) {\n\t\t\tif (!audit.fields.hasOwnProperty(key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tfields.push(key + ': ' + audit.fields[key]);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport AuditsStore from '../stores/AuditsStore';\nimport * as AuditActions from '../actions/AuditActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class AuditsPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: AuditsStore.page,\n\t\t\tpageCount: AuditsStore.pageCount,\n\t\t\tpages: AuditsStore.pages,\n\t\t\tcount: AuditsStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tAuditsStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tAuditsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: AuditsStore.page,\n\t\t\tpageCount: AuditsStore.pageCount,\n\t\t\tpages: AuditsStore.pages,\n\t\t\tcount: AuditsStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tAuditActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tAuditActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tAuditActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tAuditActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tAuditActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AuditTypes from '../types/AuditTypes';\nimport AuditsStore from '../stores/AuditsStore';\nimport * as AuditActions from '../actions/AuditActions';\nimport NonState from './NonState';\nimport Audit from './Audit';\nimport PageHeader from './PageHeader';\nimport AuditsPage from './AuditsPage';\n\ninterface Props {\n\tuserId: string;\n}\n\ninterface State {\n\taudits: AuditTypes.AuditsRo;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n};\n\nexport default class Audits extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\taudits: AuditsStore.audits,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tAuditsStore.addChangeListener(this.onChange);\n\t\tif (this.props.userId) {\n\t\t\tAuditActions.load(this.props.userId);\n\t\t}\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tAuditsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\taudits: AuditsStore.audits,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tif (!this.props.userId) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet audits: JSX.Element[] = [];\n\n\t\tthis.state.audits.forEach((\n\t\t\t\taudit: AuditTypes.AuditRo): void => {\n\t\t\taudits.push();\n\t\t});\n\n\t\treturn
    \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    User Audit Events

    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{audits}\n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\n\ninterface Props {\n\tclassName?: string;\n\thidden?: boolean;\n}\n\nconst css = {\n\tpanel: {\n\t\tflex: 1,\n\t\tminWidth: '250px',\n\t\tpadding: '0 10px',\n\t} as React.CSSProperties,\n};\n\nexport default class PagePanel extends React.Component {\n\trender(): JSX.Element {\n\t\treturn \n\t\t\t{this.props.children}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\n\nexport default class PageSplit extends React.Component<{}, {}> {\n\trender(): JSX.Element {\n\t\treturn
    \n\t\t\t{this.props.children}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport Help from './Help';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Props {\n\tbuttonClass?: string;\n\thidden?: boolean;\n\tdisabled?: boolean;\n\tbuttonConfirm?: boolean;\n\tbuttonDisabled?: boolean;\n\treadOnly?: boolean;\n\tautoSelect?: boolean;\n\tlabel?: string;\n\tlabelTop?: boolean;\n\tlistStyle?: boolean;\n\thelp?: string;\n\ttype: string;\n\tplaceholder?: string;\n\tvalue: string;\n\tonChange?: (val: string) => void;\n\tonSubmit: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\tmarginBottom: '15px',\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tgroupList: {\n\t\tmarginTop: '5px',\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tgroupTop: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tinputBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tbuttonTop: {\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n};\n\nexport default class PageInputButton extends React.Component {\n\tautoSelect = (evt: React.MouseEvent): void => {\n\t\tevt.currentTarget.select();\n\t}\n\n\trender(): JSX.Element {\n\t\tlet buttonClass = 'bp3-button';\n\t\tif (this.props.buttonClass) {\n\t\t\tbuttonClass += ' ' + this.props.buttonClass;\n\t\t}\n\n\t\tlet buttonLabel = '';\n\t\tlet buttonStyle: React.CSSProperties;\n\t\tif (this.props.labelTop) {\n\t\t\tbuttonStyle = css.buttonTop;\n\t\t} else {\n\t\t\tbuttonLabel = this.props.label || '';\n\t\t}\n\n\t\tlet button: JSX.Element;\n\t\tif (this.props.buttonConfirm) {\n\t\t\tbutton = ;\n\t\t} else {\n\t\t\tbutton = {buttonLabel};\n\t\t}\n\n\t\tif (this.props.labelTop) {\n\t\t\treturn \n\t\t\t\t{this.props.label}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\t\t\tthis.props.onChange(evt.target.value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonKeyPress={(evt): void => {\n\t\t\t\t\t\t\t\tif (evt.key === 'Enter') {\n\t\t\t\t\t\t\t\t\tthis.props.onSubmit();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{button}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t;\n\t\t} else {\n\t\t\treturn \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\t\tthis.props.onChange(evt.target.value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonKeyPress={(evt): void => {\n\t\t\t\t\t\t\tif (evt.key === 'Enter') {\n\t\t\t\t\t\t\t\tthis.props.onSubmit();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{button}\n\t\t\t\t
    \n\t\t\t
    ;\n\t\t}\n\t}\n}\n","/// \nimport * as React from 'react';\nimport Help from './Help';\n\ninterface Props {\n\thidden?: boolean;\n\tdisabled?: boolean;\n\tlabel: string;\n\thelp: string;\n\tvalue: string;\n\tonChange: (val: string) => void;\n}\n\nconst css = {\n\tlabel: {\n\t\tdisplay: 'inline-block',\n\t} as React.CSSProperties,\n};\n\nexport default class PageSelect extends React.Component {\n\trender(): JSX.Element {\n\t\treturn ;\n\t}\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Classes } from \"@blueprintjs/core\";\n\nconst NS = Classes.getClassNamespace();\n\nexport const DATEINPUT = `${NS}-dateinput`;\nexport const DATEINPUT_POPOVER = `${DATEINPUT}-popover`;\n\nexport const DATEPICKER = `${NS}-datepicker`;\nexport const DATEPICKER_CAPTION = `${DATEPICKER}-caption`;\nexport const DATEPICKER_CAPTION_CARET = `${DATEPICKER_CAPTION}-caret`;\nexport const DATEPICKER_CAPTION_MEASURE = `${DATEPICKER_CAPTION}-measure`;\nexport const DATEPICKER_CAPTION_SELECT = `${DATEPICKER_CAPTION}-select`;\nexport const DATEPICKER_DAY = \"DayPicker-Day\";\nexport const DATEPICKER_DAY_DISABLED = `${DATEPICKER_DAY}--disabled`;\nexport const DATEPICKER_DAY_OUTSIDE = `${DATEPICKER_DAY}--outside`;\nexport const DATEPICKER_DAY_SELECTED = `${DATEPICKER_DAY}--selected`;\nexport const DATEPICKER_DAY_IS_TODAY = `${DATEPICKER_DAY}--isToday`;\nexport const DATEPICKER_DAY_WRAPPER = `${DATEPICKER}-day-wrapper`;\nexport const DATEPICKER_FOOTER = `${DATEPICKER}-footer`;\nexport const DATEPICKER_MONTH_SELECT = `${DATEPICKER}-month-select`;\nexport const DATEPICKER_YEAR_SELECT = `${DATEPICKER}-year-select`;\nexport const DATEPICKER_NAVBAR = `${DATEPICKER}-navbar`;\nexport const DATEPICKER_NAVBUTTON = `DayPicker-NavButton`;\nexport const DATEPICKER_TIMEPICKER_WRAPPER = `${DATEPICKER}-timepicker-wrapper`;\n\nexport const DATERANGEPICKER = `${NS}-daterangepicker`;\nexport const DATERANGEPICKER_CONTIGUOUS = `${DATERANGEPICKER}-contiguous`;\nexport const DATERANGEPICKER_SINGLE_MONTH = `${DATERANGEPICKER}-single-month`;\nexport const DATERANGEPICKER_DAY_SELECTED_RANGE = `${DATEPICKER_DAY}--selected-range`;\nexport const DATERANGEPICKER_DAY_HOVERED_RANGE = `${DATEPICKER_DAY}--hovered-range`;\nexport const DATERANGEPICKER_SHORTCUTS = `${DATERANGEPICKER}-shortcuts`;\nexport const DATERANGEPICKER_TIMEPICKERS = `${DATERANGEPICKER}-timepickers`;\n\nexport const DATETIMEPICKER = `${NS}-datetimepicker`;\n\nexport const TIMEPICKER = `${NS}-timepicker`;\nexport const TIMEPICKER_ARROW_BUTTON = `${TIMEPICKER}-arrow-button`;\nexport const TIMEPICKER_ARROW_ROW = `${TIMEPICKER}-arrow-row`;\nexport const TIMEPICKER_DIVIDER_TEXT = `${TIMEPICKER}-divider-text`;\nexport const TIMEPICKER_HOUR = `${TIMEPICKER}-hour`;\nexport const TIMEPICKER_INPUT = `${TIMEPICKER}-input`;\nexport const TIMEPICKER_INPUT_ROW = `${TIMEPICKER}-input-row`;\nexport const TIMEPICKER_MILLISECOND = `${TIMEPICKER}-millisecond`;\nexport const TIMEPICKER_MINUTE = `${TIMEPICKER}-minute`;\nexport const TIMEPICKER_SECOND = `${TIMEPICKER}-second`;\nexport const TIMEPICKER_AMPM_SELECT = `${TIMEPICKER}-ampm-select`;\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DateRange } from \"./dateRange\";\nimport { Months } from \"./months\";\n\nexport function isDateValid(date: Date | false | null): date is Date {\n return date instanceof Date && !isNaN(date.valueOf());\n}\n\nexport function areEqual(date1: Date, date2: Date) {\n if (date1 == null && date2 == null) {\n return true;\n } else if (date1 == null || date2 == null) {\n return false;\n } else {\n return date1.getTime() === date2.getTime();\n }\n}\n\nexport function areRangesEqual(dateRange1: DateRange, dateRange2: DateRange) {\n if (dateRange1 == null && dateRange2 == null) {\n return true;\n } else if (dateRange1 == null || dateRange2 == null) {\n return false;\n } else {\n const [start1, end1] = dateRange1;\n const [start2, end2] = dateRange2;\n const areStartsEqual = (start1 == null && start2 == null) || areSameDay(start1, start2);\n const areEndsEqual = (end1 == null && end2 == null) || areSameDay(end1, end2);\n return areStartsEqual && areEndsEqual;\n }\n}\n\nexport function areSameDay(date1: Date, date2: Date) {\n return areSameMonth(date1, date2) && date1.getDate() === date2.getDate();\n}\n\nexport function areSameMonth(date1: Date, date2: Date) {\n return (\n date1 != null &&\n date2 != null &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n );\n}\n\nexport function areSameTime(date1: Date, date2: Date) {\n return (\n date1 != null &&\n date2 != null &&\n date1.getHours() === date2.getHours() &&\n date1.getMinutes() === date2.getMinutes() &&\n date1.getSeconds() === date2.getSeconds() &&\n date1.getMilliseconds() === date2.getMilliseconds()\n );\n}\n\nexport function clone(d: Date) {\n return new Date(d.getTime());\n}\n\nexport function isDayInRange(date: Date, dateRange: DateRange, exclusive = false) {\n if (date == null) {\n return false;\n }\n\n const day = clone(date);\n const start = clone(dateRange[0]);\n const end = clone(dateRange[1]);\n\n day.setHours(0, 0, 0, 0);\n start.setHours(0, 0, 0, 0);\n end.setHours(0, 0, 0, 0);\n\n return start <= day && day <= end && (!exclusive || (!areSameDay(start, day) && !areSameDay(day, end)));\n}\n\nexport function isDayRangeInRange(innerRange: DateRange, outerRange: DateRange) {\n return (\n (innerRange[0] == null || isDayInRange(innerRange[0], outerRange)) &&\n (innerRange[1] == null || isDayInRange(innerRange[1], outerRange))\n );\n}\n\nexport function isMonthInRange(date: Date, dateRange: DateRange) {\n if (date == null) {\n return false;\n }\n\n const day = clone(date);\n const start = clone(dateRange[0]);\n const end = clone(dateRange[1]);\n\n day.setDate(1);\n start.setDate(1);\n end.setDate(1);\n day.setHours(0, 0, 0, 0);\n start.setHours(0, 0, 0, 0);\n end.setHours(0, 0, 0, 0);\n\n return start <= day && day <= end;\n}\n\nexport const isTimeEqualOrGreaterThan = (time: Date, timeToCompare: Date) => time.getTime() >= timeToCompare.getTime();\nexport const isTimeEqualOrSmallerThan = (time: Date, timeToCompare: Date) => time.getTime() <= timeToCompare.getTime();\n\nexport function isTimeInRange(date: Date, minDate: Date, maxDate: Date): boolean {\n const time = getDateOnlyWithTime(date);\n const minTime = getDateOnlyWithTime(minDate);\n const maxTime = getDateOnlyWithTime(maxDate);\n\n const isTimeGreaterThanMinTime = isTimeEqualOrGreaterThan(time, minTime);\n const isTimeSmallerThanMaxTime = isTimeEqualOrSmallerThan(time, maxTime);\n\n if (isTimeEqualOrSmallerThan(maxTime, minTime)) {\n return isTimeGreaterThanMinTime || isTimeSmallerThanMaxTime;\n }\n\n return isTimeGreaterThanMinTime && isTimeSmallerThanMaxTime;\n}\n\nexport function getTimeInRange(time: Date, minTime: Date, maxTime: Date) {\n if (areSameTime(minTime, maxTime)) {\n return maxTime;\n } else if (isTimeInRange(time, minTime, maxTime)) {\n return time;\n } else if (isTimeSameOrAfter(time, maxTime)) {\n return maxTime;\n }\n\n return minTime;\n}\n\n/**\n * Returns true if the time part of `date` is later than or equal to the time\n * part of `dateToCompare`. The day, month, and year parts will not be compared.\n */\nexport function isTimeSameOrAfter(date: Date, dateToCompare: Date): boolean {\n const time = getDateOnlyWithTime(date);\n const timeToCompare = getDateOnlyWithTime(dateToCompare);\n\n return isTimeEqualOrGreaterThan(time, timeToCompare);\n}\n\n/**\n * @returns a Date at the exact time-wise midpoint between startDate and endDate\n */\nexport function getDateBetween(dateRange: DateRange) {\n const start = dateRange[0].getTime();\n const end = dateRange[1].getTime();\n const middle = start + (end - start) * 0.5;\n return new Date(middle);\n}\n\nexport function getDateTime(date: Date | null, time?: Date | null) {\n if (date == null) {\n return null;\n } else if (time == null) {\n // cannot use default argument because `null` is a common value in this package.\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0);\n } else {\n return new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n time.getHours(),\n time.getMinutes(),\n time.getSeconds(),\n time.getMilliseconds(),\n );\n }\n}\n\nexport function getDateOnlyWithTime(date: Date): Date {\n return new Date(0, 0, 0, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n}\n\nexport function getDatePreviousMonth(date: Date): Date {\n if (date.getMonth() === Months.JANUARY) {\n return new Date(date.getFullYear() - 1, Months.DECEMBER);\n } else {\n return new Date(date.getFullYear(), date.getMonth() - 1);\n }\n}\n\nexport function getDateNextMonth(date: Date): Date {\n if (date.getMonth() === Months.DECEMBER) {\n return new Date(date.getFullYear() + 1, Months.JANUARY);\n } else {\n return new Date(date.getFullYear(), date.getMonth() + 1);\n }\n}\n\nexport function convert24HourMeridiem(hour: number, toPm: boolean): number {\n if (hour < 0 || hour > 23) {\n throw new Error(`hour must be between [0,23] inclusive: got ${hour}`);\n }\n return toPm ? (hour % 12) + 12 : hour % 12;\n}\n\nexport function getIsPmFrom24Hour(hour: number): boolean {\n if (hour < 0 || hour > 23) {\n throw new Error(`hour must be between [0,23] inclusive: got ${hour}`);\n }\n return hour >= 12;\n}\n\nexport function get12HourFrom24Hour(hour: number): number {\n if (hour < 0 || hour > 23) {\n throw new Error(`hour must be between [0,23] inclusive: got ${hour}`);\n }\n const newHour = hour % 12;\n return newHour === 0 ? 12 : newHour;\n}\n\nexport function get24HourFrom12Hour(hour: number, isPm: boolean): number {\n if (hour < 1 || hour > 12) {\n throw new Error(`hour must be between [1,12] inclusive: got ${hour}`);\n }\n const newHour = hour === 12 ? 0 : hour;\n return isPm ? newHour + 12 : newHour;\n}\n\nexport function isToday(date: Date): boolean {\n return areSameDay(date, new Date());\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst ns = \"[Blueprint]\";\n\nexport const DATEPICKER_DEFAULT_VALUE_INVALID =\n ns + ` defaultValue must be within minDate and maxDate bounds.`;\nexport const DATEPICKER_INITIAL_MONTH_INVALID =\n ns + ` initialMonth must be within minDate and maxDate bounds.`;\nexport const DATEPICKER_MAX_DATE_INVALID = ns + ` maxDate must be later than minDate.`;\nexport const DATEPICKER_VALUE_INVALID = ns + ` value prop must be within minDate and maxDate bounds.`;\n\nexport const DATERANGEPICKER_DEFAULT_VALUE_INVALID = DATEPICKER_DEFAULT_VALUE_INVALID.replace(\n \"DatePicker\",\n \"DateRangePicker\",\n);\nexport const DATERANGEPICKER_INITIAL_MONTH_INVALID = DATEPICKER_INITIAL_MONTH_INVALID.replace(\n \"DatePicker\",\n \"DateRangePicker\",\n);\nexport const DATERANGEPICKER_MAX_DATE_INVALID = DATEPICKER_MAX_DATE_INVALID.replace(\"DatePicker\", \"DateRangePicker\");\nexport const DATERANGEPICKER_VALUE_INVALID = DATEPICKER_VALUE_INVALID.replace(\"DatePicker\", \"DateRangePicker\");\nexport const DATERANGEPICKER_PREFERRED_BOUNDARY_TO_MODIFY_INVALID =\n \" preferredBoundaryToModify must be a valid Boundary if defined.\";\n\nexport const DATERANGEINPUT_NULL_VALUE =\n ns +\n ` value cannot be null. Pass undefined to clear the value and operate in` +\n \" uncontrolled mode, or pass [null, null] to clear the value and continue operating in controlled mode.\";\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Measure width in pixels of a string displayed with styles provided by `className`.\n * Should only be used if measuring can't be done with existing DOM elements.\n */\nexport function measureTextWidth(text: string, className = \"\", containerElement = document.body) {\n if (containerElement == null) {\n return 0;\n }\n const span = document.createElement(\"span\");\n span.classList.add(className);\n span.textContent = text;\n\n containerElement.appendChild(span);\n const spanWidth = span.offsetWidth;\n span.remove();\n\n return spanWidth;\n}\n\nexport function padWithZeroes(str: string, minLength: number) {\n if (str.length < minLength) {\n return `${stringRepeat(\"0\", minLength - str.length)}${str}`;\n } else {\n return str;\n }\n}\n\nfunction stringRepeat(str: string, numTimes: number) {\n return new Array(numTimes + 1).join(str);\n}\n","/*\n * Copyright 2015 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as React from \"react\";\nimport { CaptionElementProps } from \"react-day-picker\";\nimport { polyfill } from \"react-lifecycles-compat\";\n\nimport { AbstractPureComponent2, Divider, HTMLSelect, Icon, OptionProps } from \"@blueprintjs/core\";\n\nimport * as Classes from \"./common/classes\";\nimport { clone } from \"./common/dateUtils\";\nimport { measureTextWidth } from \"./common/utils\";\n\nexport interface IDatePickerCaptionProps extends CaptionElementProps {\n maxDate: Date;\n minDate: Date;\n onMonthChange?: (month: number) => void;\n onYearChange?: (year: number) => void;\n /** Callback invoked when the month or year `\n\t\t\t\t\n\t\t\t\n\t\t\t{this.props.label}\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Blueprint from '@blueprintjs/core';\nimport Help from './Help';\n\ninterface Props {\n\thidden?: boolean;\n\tdisabled?: boolean;\n\tmin?: number;\n\tmax?: number;\n\tminorStepSize?: number;\n\tstepSize?: number;\n\tmajorStepSize?: number;\n\tselectAllOnFocus?: true;\n\tlabel: string;\n\thelp: string;\n\tvalue: number;\n\tonChange: (val: number) => void;\n}\n\nconst css = {\n\tlabel: {\n\t\tdisplay: 'inline-block',\n\t} as React.CSSProperties,\n};\n\nexport default class PageNumInput extends React.Component {\n\trender(): JSX.Element {\n\t\treturn ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as BlockTypes from '../types/BlockTypes';\n\ninterface Props {\n\tipv6?: boolean;\n\tinterfaces?: string[];\n\tblocks: BlockTypes.BlocksRo;\n\tblock: NodeTypes.BlockAttachment;\n\tonChange: (state: NodeTypes.BlockAttachment) => void;\n\tonAdd: () => void;\n\tonRemove: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tsourceGroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '219px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tcontrol: {\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tportBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tother: {\n\t\tflex: '0 1 auto',\n\t\twidth: '52px',\n\t\tborderRadius: '0 3px 3px 0',\n\t} as React.CSSProperties,\n};\n\nexport default class NodeBlock extends React.Component {\n\tclone(): NodeTypes.BlockAttachment {\n\t\treturn {\n\t\t\t...this.props.block,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tlet block = this.props.block;\n\n\t\tlet ifaceMatch = false;\n\t\tlet ifacesSelect: JSX.Element[] = [];\n\t\tfor (let iface of (this.props.interfaces || [])) {\n\t\t\tif (block.interface === iface) {\n\t\t\t\tifaceMatch = true;\n\t\t\t}\n\n\t\t\tifacesSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tif (!ifaceMatch) {\n\t\t\tifacesSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet blocksSelect: JSX.Element[] = [];\n\t\tfor (let blck of (this.props.blocks || [])) {\n\t\t\tif (!this.props.ipv6 && blck.type === 'ipv6') {\n\t\t\t\tcontinue;\n\t\t\t} else if (this.props.ipv6 && blck.type !== 'ipv6') {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tblocksSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tif (blocksSelect.length === 0) {\n\t\t\tblocksSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.interface = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ifacesSelect}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.block = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{blocksSelect}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onAdd();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as DatacenterTypes from \"../types/DatacenterTypes\";\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport * as NodeActions from '../actions/NodeActions';\nimport * as BlockTypes from '../types/BlockTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as PageInfos from './PageInfo';\nimport CertificatesStore from '../stores/CertificatesStore';\nimport NodeDeploy from './NodeDeploy';\nimport PageInput from './PageInput';\nimport PageSwitch from './PageSwitch';\nimport PageInputSwitch from './PageInputSwitch';\nimport PageSelect from './PageSelect';\nimport PageSelectButton from './PageSelectButton';\nimport PageInputButton from './PageInputButton';\nimport PageTextArea from './PageTextArea';\nimport PageNumInput from './PageNumInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport NodeBlock from './NodeBlock';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\n\ninterface Props {\n\tnode: NodeTypes.NodeRo;\n\tcertificates: CertificateTypes.CertificatesRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tzones: ZoneTypes.ZonesRo;\n\tblocks: BlockTypes.BlocksRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tdatacenter: string;\n\tzone: string;\n\tchanged: boolean;\n\tmessage: string;\n\tnode: NodeTypes.Node;\n\taddExternalIface: string;\n\taddInternalIface: string;\n\taddOracleSubnet: string;\n\taddCert: string;\n\taddNetworkRole: string;\n\taddDrive: string;\n\tforwardedChecked: boolean;\n\tforwardedProtoChecked: boolean;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\twordBreak: 'break-all',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\trestart: {\n\t\tmarginRight: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tminWidth: '90px',\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tminWidth: '120px',\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\tblocks: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n};\n\nexport default class NodeDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tdatacenter: '',\n\t\t\tzone: '',\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tnode: null,\n\t\t\taddExternalIface: null,\n\t\t\taddInternalIface: null,\n\t\t\taddOracleSubnet: null,\n\t\t\taddCert: null,\n\t\t\taddNetworkRole: null,\n\t\t\taddDrive: null,\n\t\t\tforwardedChecked: false,\n\t\t\tforwardedProtoChecked: false,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet node: any;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tnode[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\ttoggleFirewall(): void {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tnode.firewall = !node.firewall;\n\t\tif (!node.firewall) {\n\t\t\tnode.network_roles = [];\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\ttoggleType(typ: string): void {\n\t\tlet node: NodeTypes.Node = this.state.node || this.props.node;\n\n\t\tlet vals = node.types;\n\n\t\tlet i = vals.indexOf(typ);\n\t\tif (i === -1) {\n\t\t\tvals.push(typ);\n\t\t} else {\n\t\t\tvals.splice(i, 1);\n\t\t}\n\n\t\tvals = vals.filter((val): boolean => {\n\t\t\treturn !!val;\n\t\t});\n\n\t\tvals.sort();\n\n\t\tthis.set('types', vals);\n\t}\n\n\tifaces(): string[] {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet zoneId = node.zone;\n\t\tif (this.state.zone) {\n\t\t\tzoneId = this.state.zone;\n\t\t}\n\n\t\tlet vxlan = false;\n\t\tfor (let zne of this.props.zones) {\n\t\t\tif (zne.id === zoneId) {\n\t\t\t\tif (zne.network_mode === 'vxlan_vlan') {\n\t\t\t\t\tvxlan = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (vxlan) {\n\t\t\treturn node.available_bridges.concat(node.available_interfaces);\n\t\t} else {\n\t\t\treturn node.available_bridges.concat(node.available_interfaces);\n\t\t}\n\t}\n\n\tsubnetLabel(subnetId: string): string {\n\t\tfor (let vpc of (this.props.node.available_vpcs || [])) {\n\t\t\tfor (let subnet of (vpc.subnets || [])) {\n\t\t\t\tif (subnet.id === subnetId) {\n\t\t\t\t\treturn vpc.name + ' - ' + subnet.name;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn subnetId;\n\t}\n\n\tonAddNetworkRole = (): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (!this.state.addNetworkRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(node.network_roles || []),\n\t\t];\n\n\t\tif (networkRoles.indexOf(this.state.addNetworkRole) === -1) {\n\t\t\tnetworkRoles.push(this.state.addNetworkRole);\n\t\t}\n\n\t\tnetworkRoles.sort();\n\t\tnode.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveNetworkRole = (networkRole: string): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(node.network_roles || []),\n\t\t];\n\n\t\tlet i = networkRoles.indexOf(networkRole);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tnetworkRoles.splice(i, 1);\n\t\tnode.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\n\t\tlet node = {\n\t\t\t...this.state.node,\n\t\t};\n\n\t\tif (!this.props.node.zone) {\n\t\t\tlet zone = this.state.zone;\n\t\t\tif (!zone && this.props.datacenters.length &&\n\t\t\t\t\tthis.props.zones.length) {\n\t\t\t\tlet datacenter = this.state.datacenter ||\n\t\t\t\t\tthis.props.datacenters[0].id;\n\t\t\t\tfor (let zne of this.props.zones) {\n\t\t\t\t\tif (zne.datacenter === datacenter) {\n\t\t\t\t\t\tzone = zne.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (zone) {\n\t\t\t\tnode.zone = zone;\n\t\t\t}\n\t\t}\n\n\t\tNodeActions.commit(node).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tnode: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\toperation(state: string): void {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tNodeActions.operation(this.props.node.id, state).then((): void => {\n\t\t\tsetTimeout((): void => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t});\n\t\t\t}, 250);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tNodeActions.remove(this.props.node.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonAddExternalIface = (): void => {\n\t\tlet node: NodeTypes.Node;\n\t\tlet availableIfaces = this.ifaces();\n\n\t\tif (!this.state.addExternalIface && !availableIfaces.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet index = this.state.addExternalIface || availableIfaces[0];\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet ifaces = [\n\t\t\t...(node.external_interfaces || []),\n\t\t];\n\n\t\tif (ifaces.indexOf(index) === -1) {\n\t\t\tifaces.push(index);\n\t\t}\n\n\t\tifaces.sort();\n\n\t\tnode.external_interfaces = ifaces;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveExternalIface = (iface: string): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet ifaces = [\n\t\t\t...(node.external_interfaces || []),\n\t\t];\n\n\t\tlet i = ifaces.indexOf(iface);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tifaces.splice(i, 1);\n\n\t\tnode.external_interfaces = ifaces;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonAddInternalIface = (): void => {\n\t\tlet node: NodeTypes.Node;\n\t\tlet availableIfaces = this.ifaces();\n\n\t\tif (!this.state.addInternalIface && !availableIfaces.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet index = this.state.addInternalIface || availableIfaces[0];\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet ifaces = [\n\t\t\t...(node.internal_interfaces || []),\n\t\t];\n\n\t\tif (ifaces.indexOf(index) === -1) {\n\t\t\tifaces.push(index);\n\t\t}\n\n\t\tifaces.sort();\n\n\t\tnode.internal_interfaces = ifaces;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveInternalIface = (iface: string): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet ifaces = [\n\t\t\t...(node.internal_interfaces || []),\n\t\t];\n\n\t\tlet i = ifaces.indexOf(iface);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tifaces.splice(i, 1);\n\n\t\tnode.internal_interfaces = ifaces;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonAddCert = (): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (!this.state.addCert && !this.props.certificates.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet certId = this.state.addCert;\n\t\tif (!certId) {\n\t\t\tfor (let certificate of this.props.certificates) {\n\t\t\t\tif (certificate.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcertId = certificate.id;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tlet certificates = [\n\t\t\t...(node.certificates || []),\n\t\t];\n\n\t\tif (certificates.indexOf(certId) === -1) {\n\t\t\tcertificates.push(certId);\n\t\t}\n\n\t\tcertificates.sort();\n\n\t\tnode.certificates = certificates;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveCert = (certId: string): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet certificates = [\n\t\t\t...(node.certificates || []),\n\t\t];\n\n\t\tlet i = certificates.indexOf(certId);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tcertificates.splice(i, 1);\n\n\t\tnode.certificates = certificates;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tnewBlock = (ipv6: boolean): NodeTypes.BlockAttachment => {\n\t\tlet defBlock = '';\n\n\t\tfor (let block of (this.props.blocks || [])) {\n\t\t\tif ((ipv6 && block.type === 'ipv6') ||\n\t\t\t\t\t(!ipv6 && block.type === 'ipv4')) {\n\t\t\t\tdefBlock = block.id;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tinterface: this.props.node.available_bridges.concat(\n\t\t\t\tthis.props.node.available_interfaces)[0],\n\t\t\tblock: defBlock,\n\t\t} as NodeTypes.BlockAttachment;\n\t}\n\n\tonNetworkMode = (mode: string): void => {\n\t\tlet node: any;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tif (mode === 'static' && (node.blocks || []).length === 0) {\n\t\t\tnode.blocks = [\n\t\t\t\tthis.newBlock(false),\n\t\t\t];\n\t\t}\n\n\t\tnode.network_mode = mode;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonNetworkMode6 = (mode: string): void => {\n\t\tlet node: any;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tif (mode === 'static' && (node.blocks6 || []).length === 0) {\n\t\t\tnode.blocks6 = [\n\t\t\t\tthis.newBlock(true),\n\t\t\t];\n\t\t}\n\n\t\tnode.network_mode6 = mode;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonAddOracleSubnet = (): void => {\n\t\tlet node: NodeTypes.Node;\n\t\tlet availabeVpcs = this.props.node.available_vpcs || [];\n\n\t\tif (!this.state.addOracleSubnet && !availabeVpcs.length &&\n\t\t\t\t!availabeVpcs[0].subnets.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet addOracleSubnet = this.state.addOracleSubnet;\n\t\tif (!addOracleSubnet) {\n\t\t\taddOracleSubnet = availabeVpcs[0].subnets[0].id;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet nodeOracleSubnets = [\n\t\t\t...(node.oracle_subnets || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < nodeOracleSubnets.length; i++) {\n\t\t\tif (nodeOracleSubnets[i] === addOracleSubnet) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (index === -1) {\n\t\t\tnodeOracleSubnets.push(addOracleSubnet);\n\t\t}\n\n\t\tnode.oracle_subnets = nodeOracleSubnets;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveOracleSubnet = (device: string): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet nodeOracleSubnets = [\n\t\t\t...(node.oracle_subnets || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < nodeOracleSubnets.length; i++) {\n\t\t\tif (nodeOracleSubnets[i] === device) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tnodeOracleSubnets.splice(index, 1);\n\t\tnode.oracle_subnets = nodeOracleSubnets;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonAddBlock = (i: number): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet blocks = [\n\t\t\t...node.blocks,\n\t\t];\n\n\t\tblocks.splice(i + 1, 0, this.newBlock(false));\n\t\tnode.blocks = blocks;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonChangeBlock(i: number, block: NodeTypes.BlockAttachment): void {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet blocks = [\n\t\t\t...node.blocks,\n\t\t];\n\n\t\tblocks[i] = block;\n\n\t\tnode.blocks = blocks;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveBlock(i: number): void {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet blocks = [\n\t\t\t...node.blocks,\n\t\t];\n\n\t\tblocks.splice(i, 1);\n\n\t\tif (!blocks.length) {\n\t\t\tblocks = [\n\t\t\t\tthis.newBlock(false),\n\t\t\t];\n\t\t}\n\n\t\tnode.blocks = blocks;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonAddBlock6 = (i: number): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet blocks = [\n\t\t\t...node.blocks6,\n\t\t];\n\n\t\tblocks.splice(i + 1, 0, this.newBlock(true));\n\t\tnode.blocks6 = blocks;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonChangeBlock6(i: number, block: NodeTypes.BlockAttachment): void {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet blocks = [\n\t\t\t...node.blocks6,\n\t\t];\n\n\t\tblocks[i] = block;\n\n\t\tnode.blocks6 = blocks;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveBlock6(i: number): void {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet blocks = [\n\t\t\t...node.blocks6,\n\t\t];\n\n\t\tblocks.splice(i, 1);\n\n\t\tif (!blocks.length) {\n\t\t\tblocks = [\n\t\t\t\tthis.newBlock(true),\n\t\t\t];\n\t\t}\n\n\t\tnode.blocks6 = blocks;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonAddDrive = (): void => {\n\t\tlet node: NodeTypes.Node;\n\t\tlet availabeDrives = this.props.node.available_drives || [];\n\n\t\tif (!this.state.addDrive && !availabeDrives.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet addDrive = this.state.addDrive;\n\t\tif (!addDrive) {\n\t\t\taddDrive = availabeDrives[0].id;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet instanceDrives = [\n\t\t\t...(node.instance_drives || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < instanceDrives.length; i++) {\n\t\t\tlet dev = instanceDrives[i];\n\t\t\tif (dev.id === addDrive) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (index === -1) {\n\t\t\tinstanceDrives.push({\n\t\t\t\tid: addDrive,\n\t\t\t});\n\t\t}\n\n\t\tnode.instance_drives = instanceDrives;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\tonRemoveDrive = (device: string): void => {\n\t\tlet node: NodeTypes.Node;\n\n\t\tif (this.state.changed) {\n\t\t\tnode = {\n\t\t\t\t...this.state.node,\n\t\t\t};\n\t\t} else {\n\t\t\tnode = {\n\t\t\t\t...this.props.node,\n\t\t\t};\n\t\t}\n\n\t\tlet instanceDrives = [\n\t\t\t...(node.instance_drives || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < instanceDrives.length; i++) {\n\t\t\tlet dev = instanceDrives[i];\n\t\t\tif (dev.id === device) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tinstanceDrives.splice(index, 1);\n\t\tnode.instance_drives = instanceDrives;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tnode: node,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet node: NodeTypes.Node = this.state.node || this.props.node;\n\t\tlet active = node.requests_min !== 0 || node.memory !== 0 ||\n\t\t\t\tnode.load1 !== 0 || node.load5 !== 0 || node.load15 !== 0;\n\t\tlet types = node.types || [];\n\n\t\tlet publicIps: any = this.props.node.public_ips;\n\t\tif (!publicIps || !publicIps.length) {\n\t\t\tpublicIps = 'None';\n\t\t}\n\n\t\tlet publicIps6: any = this.props.node.public_ips6;\n\t\tif (!publicIps6 || !publicIps6.length) {\n\t\t\tpublicIps6 = 'None';\n\t\t}\n\n\t\tlet resourceBars: PageInfos.Bar[] = [\n\t\t\t{\n\t\t\t\tprogressClass: 'bp3-no-stripes bp3-intent-success',\n\t\t\t\tlabel: 'Load1',\n\t\t\t\tvalue: this.props.node.load1 || 0,\n\t\t\t},\n\t\t\t{\n\t\t\t\tprogressClass: 'bp3-no-stripes bp3-intent-warning',\n\t\t\t\tlabel: 'Load5',\n\t\t\t\tvalue: this.props.node.load5 || 0,\n\t\t\t},\n\t\t\t{\n\t\t\t\tprogressClass: 'bp3-no-stripes bp3-intent-danger',\n\t\t\t\tlabel: 'Load15',\n\t\t\t\tvalue: this.props.node.load15 || 0,\n\t\t\t},\n\t\t\t{\n\t\t\t\tprogressClass: 'bp3-no-stripes bp3-intent-primary',\n\t\t\t\tlabel: 'Memory',\n\t\t\t\tvalue: this.props.node.memory || 0,\n\t\t\t},\n\t\t];\n\t\tif (this.props.node.hugepages) {\n\t\t\tresourceBars.push({\n\t\t\t\tprogressClass: 'bp3-no-stripes bp3-intent-primary',\n\t\t\t\tlabel: 'HugePages',\n\t\t\t\tvalue: this.props.node.hugepages_used || 0,\n\t\t\t\tcolor: '#7207d4',\n\t\t\t});\n\t\t}\n\n\t\tlet externalIfaces: JSX.Element[] = [];\n\t\tfor (let iface of (node.external_interfaces || [])) {\n\t\t\texternalIfaces.push(\n\t\t\t\t\n\t\t\t\t\t{iface}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveExternalIface(iface);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet internalIfaces: JSX.Element[] = [];\n\t\tfor (let iface of (node.internal_interfaces || [])) {\n\t\t\tinternalIfaces.push(\n\t\t\t\t\n\t\t\t\t\t{iface}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveInternalIface(iface);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet availableIfaces = this.ifaces();\n\t\tlet externalIfacesSelect: JSX.Element[] = [];\n\t\tfor (let iface of (availableIfaces || [])) {\n\t\t\texternalIfacesSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet internalIfacesSelect: JSX.Element[] = [];\n\t\tfor (let iface of (availableIfaces || [])) {\n\t\t\tinternalIfacesSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet oracleSubnets: JSX.Element[] = [];\n\t\tfor (let subnetId of (node.oracle_subnets || [])) {\n\t\t\toracleSubnets.push(\n\t\t\t\t\n\t\t\t\t\t{this.subnetLabel(subnetId)}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveOracleSubnet(subnetId);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet availableSubnetsSelect: JSX.Element[] = [];\n\t\tfor (let vpc of (node.available_vpcs || [])) {\n\t\t\tfor (let subnet of (vpc.subnets || [])) {\n\t\t\t\tavailableSubnetsSelect.push(\n\t\t\t\t\t,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet hostBlocksSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tfor (let blck of (this.props.blocks || [])) {\n\t\t\tif (blck.type !== 'ipv4') {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\thostBlocksSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet availableDrives: JSX.Element[] = [];\n\t\tfor (let device of (node.instance_drives || [])) {\n\t\t\tavailableDrives.push(\n\t\t\t\t\n\t\t\t\t\t{device.id}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveDrive(device.id);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet availableDrivesSelect: JSX.Element[] = [];\n\t\tfor (let device of (node.available_drives || [])) {\n\t\t\tavailableDrivesSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet certificates: JSX.Element[] = [];\n\t\tfor (let certId of (node.certificates || [])) {\n\t\t\tlet cert = CertificatesStore.certificate(certId);\n\t\t\tif (!cert) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcertificates.push(\n\t\t\t\t\n\t\t\t\t\t{cert.name}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveCert(cert.id);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet hasCertificates = false;\n\t\tlet certificatesSelect: JSX.Element[] = [];\n\t\tif (this.props.certificates.length) {\n\t\t\tfor (let certificate of this.props.certificates) {\n\t\t\t\tif (certificate.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\thasCertificates = true;\n\n\t\t\t\tcertificatesSelect.push(\n\t\t\t\t\t,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasCertificates) {\n\t\t\tcertificatesSelect = [\n\t\t\t\t,\n\t\t\t];\n\t\t}\n\n\t\tlet defaultDatacenter = '';\n\t\tlet hasDatacenters = false;\n\t\tlet datacentersSelect: JSX.Element[] = [];\n\t\tif (this.props.datacenters.length) {\n\t\t\thasDatacenters = true;\n\t\t\tdefaultDatacenter = this.props.datacenters[0].id;\n\t\t\tfor (let datacenter of this.props.datacenters) {\n\t\t\t\tdatacentersSelect.push(\n\t\t\t\t\t{datacenter.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasDatacenters) {\n\t\t\tdatacentersSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\tlet datacenter = this.state.datacenter || defaultDatacenter;\n\t\tlet hasZones = false;\n\t\tlet zonesSelect: JSX.Element[] = [];\n\t\tif (this.props.zones.length) {\n\t\t\tzonesSelect.push();\n\n\t\t\tfor (let zone of this.props.zones) {\n\t\t\t\tif (!this.props.node.zone && zone.datacenter !== datacenter) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\thasZones = true;\n\n\t\t\t\tzonesSelect.push(\n\t\t\t\t\t{zone.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasZones) {\n\t\t\tzonesSelect = [];\n\t\t}\n\n\t\tlet hasRenders = false;\n\t\tlet rendersSelect: JSX.Element[] = [];\n\t\tif (this.props.node.available_renders &&\n\t\t\tthis.props.node.available_renders.length) {\n\t\t\trendersSelect.push();\n\n\t\t\tfor (let render of this.props.node.available_renders) {\n\t\t\t\thasRenders = true;\n\n\t\t\t\trendersSelect.push(\n\t\t\t\t\t{render},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasRenders) {\n\t\t\trendersSelect = [];\n\t\t}\n\n\t\tlet networkRoles: JSX.Element[] = [];\n\t\tfor (let networkRole of (node.network_roles || [])) {\n\t\t\tnetworkRoles.push(\n\t\t\t\t\n\t\t\t\t\t{networkRole}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveNetworkRole(networkRole);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet nodeBlocks = node.blocks || [];\n\t\tlet blocks: JSX.Element[] = [];\n\t\tfor (let i = 0; i < nodeBlocks.length; i++) {\n\t\t\tlet index = i;\n\n\t\t\tblocks.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeBlock(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonAdd={(): void => {\n\t\t\t\t\t\tthis.onAddBlock(index);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveBlock(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\tlet nodeBlocks6 = node.blocks6 || [];\n\t\tlet blocks6: JSX.Element[] = [];\n\t\tfor (let i = 0; i < nodeBlocks6.length; i++) {\n\t\t\tlet index = i;\n\n\t\t\tblocks6.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeBlock6(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonAdd={(): void => {\n\t\t\t\t\t\tthis.onAddBlock6(index);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveBlock6(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleType('admin');\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleType('user');\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleType('balancer');\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleType('hypervisor');\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('admin_domain', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('user_domain', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('webauthn_domain', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('no_redirect_server', !node.no_redirect_server);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tif (this.state.changed) {\n\t\t\t\t\t\t\t\tnode = {\n\t\t\t\t\t\t\t\t\t...this.state.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnode = {\n\t\t\t\t\t\t\t\t\t...this.props.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tchanged: true,\n\t\t\t\t\t\t\t\tnode: node,\n\t\t\t\t\t\t\t\tdatacenter: val,\n\t\t\t\t\t\t\t\tzone: '',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{datacentersSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet node: NodeTypes.Node;\n\t\t\t\t\t\t\tif (this.state.changed) {\n\t\t\t\t\t\t\t\tnode = {\n\t\t\t\t\t\t\t\t\t...this.state.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnode = {\n\t\t\t\t\t\t\t\t\t...this.props.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tchanged: true,\n\t\t\t\t\t\t\t\tnode: node,\n\t\t\t\t\t\t\t\tzone: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{zonesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onNetworkMode(val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onNetworkMode6(val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tExternal Interfaces\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{externalIfaces}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddExternalIface: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddExternalIface}\n\t\t\t\t\t>\n\t\t\t\t\t\t{externalIfacesSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tInternal Interfaces\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{internalIfaces}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddInternalIface: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddInternalIface}\n\t\t\t\t\t>\n\t\t\t\t\t\t{internalIfacesSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tExternal IPv4 Block Attachments\n\t\t\t\t\t\t{blocks}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tExternal IPv6 Block Attachments\n\t\t\t\t\t\t{blocks6}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tOracle Cloud Subnets\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{oracleSubnets}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddOracleSubnet: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddOracleSubnet}\n\t\t\t\t\t>\n\t\t\t\t\t\t{availableSubnetsSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('host_block', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{hostBlocksSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('host_nat', !node.host_nat);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('oracle_host_route', !node.oracle_host_route);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('oracle_user', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('oracle_public_key', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('default_no_public_address',\n\t\t\t\t\t\t\t\t!node.default_no_public_address);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('default_no_public_address6',\n\t\t\t\t\t\t\t\t!node.default_no_public_address6);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('jumbo_frames', !node.jumbo_frames);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('jumbo_frames_internal', !node.jumbo_frames_internal);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('iscsi', !node.iscsi);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('pci_passthrough', !node.pci_passthrough);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('usb_passthrough', !node.usb_passthrough);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('hugepages', !node.hugepages);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('hugepages_size', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={node.hugepages_size}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggleFirewall();\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('gui', !node.gui);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('gui', !node.gui);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('gui_mode', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('gui_user', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('hypervisor', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('vga', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('vga_render', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{rendersSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tInstance Passthrough Disks\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{availableDrives}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddDrive: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddDrive}\n\t\t\t\t\t>\n\t\t\t\t\t\t{availableDrivesSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddNetworkRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddNetworkRole}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tCertificates\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{certificates}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddCert: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddCert}\n\t\t\t\t\t>\n\t\t\t\t\t\t{certificatesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet nde: NodeTypes.Node;\n\n\t\t\t\t\t\t\tif (this.state.changed) {\n\t\t\t\t\t\t\t\tnde = {\n\t\t\t\t\t\t\t\t\t...this.state.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnde = {\n\t\t\t\t\t\t\t\t\t...this.props.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tnde.forwarded_for_header = val;\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tchanged: true,\n\t\t\t\t\t\t\t\tforwardedChecked: state,\n\t\t\t\t\t\t\t\tnode: nde,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet nde: NodeTypes.Node;\n\n\t\t\t\t\t\t\tif (this.state.changed) {\n\t\t\t\t\t\t\t\tnde = {\n\t\t\t\t\t\t\t\t\t...this.state.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tnde = {\n\t\t\t\t\t\t\t\t\t...this.props.node,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tnde.forwarded_proto_header = val;\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tchanged: true,\n\t\t\t\t\t\t\t\tforwardedProtoChecked: state,\n\t\t\t\t\t\t\t\tnode: nde,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tforwardedChecked: false,\n\t\t\t\t\t\tforwardedProtoChecked: false,\n\t\t\t\t\t\tnode: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport * as BlockTypes from '../types/BlockTypes';\nimport NodeDetailed from './NodeDetailed';\n\ninterface Props {\n\tnode: NodeTypes.NodeRo;\n\tcertificates: CertificateTypes.CertificatesRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tzones: ZoneTypes.ZonesRo;\n\tblocks: BlockTypes.BlocksRo;\n\tselected: boolean;\n\topen: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n};\n\nexport default class Node extends React.Component {\n\trender(): JSX.Element {\n\t\tlet node = this.props.node;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t;\n\t\t}\n\n\t\tlet active = node.requests_min !== 0 || node.memory !== 0 ||\n\t\t\tnode.load1 !== 0 || node.load5 !== 0 || node.load15 !== 0;\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\t\tif (!active) {\n\t\t\tcardStyle.opacity = 0.6;\n\t\t}\n\n\t\tlet memoryStyle: React.CSSProperties = {\n\t\t\twidth: (node.memory || 0) + '%',\n\t\t};\n\t\tlet hugepagesStyle: React.CSSProperties = {\n\t\t\twidth: (node.hugepages_used || 0) + '%',\n\t\t\tbackgroundColor: '#7207d4',\n\t\t};\n\t\tlet load1Style: React.CSSProperties = {\n\t\t\twidth: (node.load1 || 0) + '%',\n\t\t};\n\t\tlet load5Style: React.CSSProperties = {\n\t\t\twidth: (node.load5 || 0) + '%',\n\t\t};\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{node.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{node.requests_min + '/min'}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{MiscUtils.formatDateShortTime(node.timestamp) || 'Inactive'}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as NodeTypes from '../types/NodeTypes';\nimport SearchInput from './SearchInput';\nimport SwitchNull from './SwitchNull';\nimport * as ZoneTypes from \"../types/ZoneTypes\";\n\ninterface Props {\n\tfilter: NodeTypes.Filter;\n\tonFilter: (filter: NodeTypes.Filter) => void;\n\tzones: ZoneTypes.ZonesRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class NodesFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet zonesSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.zones && this.props.zones.length) {\n\t\t\tfor (let zone of this.props.zones) {\n\t\t\t\tzonesSelect.push(\n\t\t\t\t\t{zone.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.network_role = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.network_role;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.zone;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.zone = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{zonesSelect}\n\t\t\t\t\n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (filter.admin === undefined) {\n\t\t\t\t\t\tfilter.admin = true;\n\t\t\t\t\t} else if (filter.admin === true) {\n\t\t\t\t\t\tfilter.admin = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.admin;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (filter.user === undefined) {\n\t\t\t\t\t\tfilter.user = true;\n\t\t\t\t\t} else if (filter.user === true) {\n\t\t\t\t\t\tfilter.user = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.user;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (filter.hypervisor === undefined) {\n\t\t\t\t\t\tfilter.hypervisor = true;\n\t\t\t\t\t} else if (filter.hypervisor === true) {\n\t\t\t\t\t\tfilter.hypervisor = false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.hypervisor;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport NodesStore from '../stores/NodesStore';\nimport * as NodeActions from '../actions/NodeActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class NodesPages extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: NodesStore.page,\n\t\t\tpageCount: NodesStore.pageCount,\n\t\t\tpages: NodesStore.pages,\n\t\t\tcount: NodesStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tNodesStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tNodesStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: NodesStore.page,\n\t\t\tpageCount: NodesStore.pageCount,\n\t\t\tpages: NodesStore.pages,\n\t\t\tcount: NodesStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tNodeActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tNodeActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tNodeActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tNodeActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tNodeActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as DatacenterTypes from \"../types/DatacenterTypes\";\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport * as BlockTypes from '../types/BlockTypes';\nimport NodesStore from '../stores/NodesStore';\nimport CertificatesStore from '../stores/CertificatesStore';\nimport DatacentersStore from '../stores/DatacentersStore';\nimport ZonesStore from '../stores/ZonesStore';\nimport BlocksStore from '../stores/BlocksStore';\nimport * as NodeActions from '../actions/NodeActions';\nimport * as CertificateActions from '../actions/CertificateActions';\nimport * as DatacenterActions from '../actions/DatacenterActions';\nimport * as ZoneActions from '../actions/ZoneActions';\nimport * as BlockActions from '../actions/BlockActions';\nimport Node from './Node';\nimport NodesFilter from './NodesFilter';\nimport NodesPage from './NodesPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tnodes: NodeTypes.NodesRo;\n\tfilter: NodeTypes.Filter;\n\tcertificates: CertificateTypes.CertificatesRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tzones: ZoneTypes.ZonesRo;\n\tblocks: BlockTypes.BlocksRo;\n\tselected: Selected;\n\topened: Opened;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Nodes extends React.Component<{}, State> {\n\tinterval: NodeJS.Timer;\n\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tnodes: NodesStore.nodes,\n\t\t\tfilter: NodesStore.filter,\n\t\t\tcertificates: CertificatesStore.certificates,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tzones: ZonesStore.zones,\n\t\t\tblocks: BlocksStore.blocks,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tNodesStore.addChangeListener(this.onChange);\n\t\tCertificatesStore.addChangeListener(this.onChange);\n\t\tDatacentersStore.addChangeListener(this.onChange);\n\t\tZonesStore.addChangeListener(this.onChange);\n\t\tBlocksStore.addChangeListener(this.onChange);\n\t\tNodeActions.sync();\n\t\tCertificateActions.sync();\n\t\tDatacenterActions.sync();\n\t\tZoneActions.sync();\n\t\tBlockActions.sync();\n\n\t\tthis.interval = setInterval(() => {\n\t\t\tNodeActions.sync(true);\n\t\t}, 1000);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tNodesStore.removeChangeListener(this.onChange);\n\t\tCertificatesStore.removeChangeListener(this.onChange);\n\t\tDatacentersStore.removeChangeListener(this.onChange);\n\t\tZonesStore.removeChangeListener(this.onChange);\n\t\tBlocksStore.removeChangeListener(this.onChange);\n\t\tclearInterval(this.interval);\n\t}\n\n\tonChange = (): void => {\n\t\tlet nodes = NodesStore.nodes;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tnodes.forEach((node: NodeTypes.Node): void => {\n\t\t\tif (curSelected[node.id]) {\n\t\t\t\tselected[node.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[node.id]) {\n\t\t\t\topened[node.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tnodes: nodes,\n\t\t\tfilter: NodesStore.filter,\n\t\t\tcertificates: CertificatesStore.certificates,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tzones: ZonesStore.zones,\n\t\t\tblocks: BlocksStore.blocks,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet nodesDom: JSX.Element[] = [];\n\n\t\tthis.state.nodes.forEach((node: NodeTypes.NodeRo): void => {\n\t\t\tnodesDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet nodes = this.state.nodes;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < nodes.length; i++) {\n\t\t\t\t\t\t\tlet usr = nodes[i];\n\n\t\t\t\t\t\t\tif (usr.id === node.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[nodes[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: node.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[node.id]) {\n\t\t\t\t\t\tdelete selected[node.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[node.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: node.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[node.id]) {\n\t\t\t\t\t\tdelete opened[node.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[node.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Nodes

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tNodeActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tNodeActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tNodeActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\tzones={this.state.zones}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{nodesDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nexport const SYNC = 'policy.sync';\nexport const CHANGE = 'policy.change';\n\nexport interface Rule {\n\ttype?: string;\n\tdisable?: boolean;\n\tvalues?: string[];\n}\n\nexport interface Policy {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\tdisabled?: boolean;\n\troles?: string[];\n\trules?: {[key: string]: Rule};\n\tadmin_secondary?: string;\n\tuser_secondary?: string;\n\tadmin_device_secondary?: boolean;\n\tuser_device_secondary?: boolean;\n}\n\nexport type Policies = Policy[];\n\nexport type PolicyRo = Readonly;\nexport type PoliciesRo = ReadonlyArray;\n\nexport interface PolicyDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tpolicy?: Policy;\n\t\tpolicies?: Policies;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as PolicyTypes from '../types/PolicyTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass PoliciesStore extends EventEmitter {\n\t_policies: PolicyTypes.PoliciesRo = Object.freeze([]);\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._policies = Object.freeze([]);\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget policies(): PolicyTypes.PoliciesRo {\n\t\treturn this._policies;\n\t}\n\n\tget policiesM(): PolicyTypes.Policies {\n\t\tlet policies: PolicyTypes.Policies = [];\n\t\tthis._policies.forEach((\n\t\t\t\tpolicy: PolicyTypes.PolicyRo): void => {\n\t\t\tpolicies.push({\n\t\t\t\t...policy,\n\t\t\t});\n\t\t});\n\t\treturn policies;\n\t}\n\n\tpolicy(id: string): PolicyTypes.PolicyRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._policies[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(policies: PolicyTypes.Policy[]): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < policies.length; i++) {\n\t\t\tpolicies[i] = Object.freeze(policies[i]);\n\t\t\tthis._map[policies[i].id] = i;\n\t\t}\n\n\t\tthis._policies = Object.freeze(policies);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: PolicyTypes.PolicyDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase PolicyTypes.SYNC:\n\t\t\t\tthis._sync(action.data.policies);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new PoliciesStore();\n","/// \nexport const SYNC = 'settings.sync';\nexport const CHANGE = 'settings.change';\n\nexport interface Provider {\n\tid?: string;\n\ttype?: string;\n\tlabel?: string;\n\tdefault_roles?: string[];\n\tauto_create?: boolean;\n\trole_management?: string;\n}\n\nexport interface AzureProvider extends Provider {\n\ttenant?: string;\n\tclient_id?: string;\n\tclient_secret?: string;\n}\n\nexport interface GoogleProvider extends Provider {\n\tdomain?: string;\n\tgoogle_key?: string;\n\tgoogle_email?: string;\n}\n\nexport interface SamlProvider extends Provider {\n\tissuer_url?: string;\n\tsaml_url?: string;\n\tsaml_cert?: string;\n}\n\nexport interface JumpCloudProvider extends Provider {\n\tissuer_url?: string;\n\tsaml_url?: string;\n\tsaml_cert?: string;\n\tjumpcloud_app_id?: string;\n\tjumpcloud_secret?: string;\n}\n\nexport type ProviderAny = Provider & AzureProvider & GoogleProvider &\n\tSamlProvider & JumpCloudProvider;\nexport type Providers = ProviderAny[];\n\nexport interface SecondaryProvider {\n\tid?: string;\n\ttype?: string;\n\tlabel?: string;\n\tname?: string;\n}\n\nexport interface DuoProvider extends SecondaryProvider {\n\tduo_hostname?: string;\n\tduo_key?: string;\n\tduo_secret?: string;\n\tpush_factor?: boolean;\n\tphone_factor?: boolean;\n\tpasscode_factor?: boolean;\n\tsms_factor?: boolean;\n}\n\nexport interface OneLoginProvider extends SecondaryProvider {\n\tone_login_region?: string;\n\tone_login_id?: string;\n\tone_login_secret?: string;\n\tpush_factor?: boolean;\n\tpasscode_factor?: boolean;\n}\n\nexport interface OktaProvider extends SecondaryProvider {\n\tokta_domain?: string;\n\tokta_token?: string;\n\tpush_factor?: boolean;\n\tpasscode_factor?: boolean;\n}\n\nexport type SecondaryProviderAny = SecondaryProvider & DuoProvider &\n\tOneLoginProvider & OktaProvider;\nexport type SecondaryProviders = SecondaryProviderAny[];\n\nexport interface Settings {\n\tauth_providers: Providers;\n\tauth_secondary_providers: SecondaryProviders;\n\tauth_admin_expire: number;\n\tauth_admin_max_duration: number;\n\tauth_user_expire: number;\n\tauth_user_max_duration: number;\n}\n\nexport type SettingsRo = Readonly;\n\nexport interface SettingsDispatch {\n\ttype: string;\n\tdata?: Settings;\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as SettingsTypes from '../types/SettingsTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass SettingsStore extends EventEmitter {\n\t_settings: SettingsTypes.SettingsRo;\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._settings = undefined;\n\t\tthis.emitChange();\n\t}\n\n\tget settings(): SettingsTypes.SettingsRo {\n\t\treturn this._settings;\n\t}\n\n\tget settingsM(): SettingsTypes.Settings {\n\t\tif (this._settings) {\n\t\t\treturn {\n\t\t\t\t...this._settings,\n\t\t\t};\n\t\t}\n\t\treturn undefined;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(settings: SettingsTypes.Settings): void {\n\t\tthis._settings = Object.freeze(settings);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: SettingsTypes.SettingsDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase SettingsTypes.SYNC:\n\t\t\t\tthis._sync(action.data);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new SettingsStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as PolicyTypes from '../types/PolicyTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as Constants from \"../Constants\";\n\nlet syncId: string;\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/policy')\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load policies');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: PolicyTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tpolicies: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function commit(cert: PolicyTypes.Policy): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/policy/' + cert.id)\n\t\t\t.send(cert)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save policy');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(cert: PolicyTypes.Policy): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/policy')\n\t\t\t.send(cert)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create policy');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(certId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/policy/' + certId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete policies');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: PolicyTypes.PolicyDispatch) => {\n\tswitch (action.type) {\n\t\tcase PolicyTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\tsync();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as SettingsTypes from '../types/SettingsTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as Constants from \"../Constants\";\n\nlet syncId: string;\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/settings')\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to sync builds');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: SettingsTypes.SYNC,\n\t\t\t\t\tdata: res.body,\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function commit(\n\t\tsettings: SettingsTypes.Settings): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/settings')\n\t\t\t.send(settings)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to commit settings');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: SettingsTypes.SYNC,\n\t\t\t\t\tdata: res.body,\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: SettingsTypes.SettingsDispatch) => {\n\tswitch (action.type) {\n\t\tcase SettingsTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\tsync();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as PolicyTypes from '../types/PolicyTypes';\nimport * as Constants from '../Constants';\nimport PageSwitch from './PageSwitch';\nimport PageInputButton from './PageInputButton';\nimport PageSelectButton from './PageSelectButton';\nimport Help from './Help';\n\ninterface Props {\n\trule: PolicyTypes.Rule;\n\tonChange: (state: PolicyTypes.Rule) => void;\n}\n\ninterface State {\n\taddValue: string;\n}\n\nconst css = {\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class PolicyRule extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\taddValue: '',\n\t\t};\n\t}\n\n\tclone(): PolicyTypes.Rule {\n\t\treturn {\n\t\t\t...this.props.rule,\n\t\t};\n\t}\n\n\tonAddValue = (value: string): void => {\n\t\tif (!value) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet rule = this.clone();\n\n\t\tlet values = [\n\t\t\t...rule.values,\n\t\t];\n\n\t\tif (values.indexOf(value) === -1) {\n\t\t\tvalues.push(value);\n\t\t}\n\n\t\tvalues.sort();\n\n\t\trule.values = values;\n\n\t\tthis.props.onChange(rule);\n\t}\n\n\tonRemoveValue(value: string): void {\n\t\tlet rule = this.clone();\n\n\t\tlet values = [\n\t\t\t...rule.values,\n\t\t];\n\n\t\tlet i = values.indexOf(value);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tvalues.splice(i, 1);\n\n\t\trule.values = values;\n\n\t\tthis.props.onChange(rule);\n\t}\n\n\trender(): JSX.Element {\n\t\tlet rule = this.props.rule;\n\t\tlet defaultOption: string;\n\n\t\tlet label: string;\n\t\tlet selectLabel: string;\n\t\tlet selectPlaceholder: string;\n\t\tlet options: {[key: string]: string};\n\t\tswitch (this.props.rule.type) {\n\t\t\tcase 'operating_system':\n\t\t\t\tlabel = 'Permitted Operating Systems';\n\t\t\t\tselectLabel = 'Operating system policies';\n\t\t\t\toptions = Constants.operatingSystems;\n\t\t\t\tbreak;\n\t\t\tcase 'browser':\n\t\t\t\tlabel = 'Permitted Browsers';\n\t\t\t\tselectLabel = 'Browser policies';\n\t\t\t\toptions = Constants.browsers;\n\t\t\t\tbreak;\n\t\t\tcase 'location':\n\t\t\t\tlabel = 'Permitted Locations';\n\t\t\t\tselectLabel = 'Location policies';\n\t\t\t\toptions = Constants.locations;\n\t\t\t\tbreak;\n\t\t\tcase 'whitelist_networks':\n\t\t\t\tlabel = 'Permitted Networks';\n\t\t\t\tselectLabel = 'Permitted network policies';\n\t\t\t\tselectPlaceholder = 'Add network';\n\t\t\t\tbreak;\n\t\t\tcase 'blacklist_networks':\n\t\t\t\tlabel = 'Blocked Networks';\n\t\t\t\tselectLabel = 'Blocked network policies';\n\t\t\t\tselectPlaceholder = 'Add network';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet optionsSelect: JSX.Element[] = [];\n\t\tfor (let option in options) {\n\t\t\tif (!options.hasOwnProperty(option)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!defaultOption) {\n\t\t\t\tdefaultOption = option;\n\t\t\t}\n\n\t\t\toptionsSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet values: JSX.Element[] = [];\n\t\tfor (let value of rule.values || []) {\n\t\t\tvalues.push(\n\t\t\t\t\n\t\t\t\t\t{options ? options[value] || value : value}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveValue(value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet inputElem: JSX.Element;\n\t\tif (options) {\n\t\t\tinputElem = {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\taddValue: val,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSubmit={(): void => {\n\t\t\t\t\tthis.onAddValue(this.state.addValue || defaultOption);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{optionsSelect}\n\t\t\t;\n\t\t} else {\n\t\t\tinputElem = {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\taddValue: val,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSubmit={(): void => {\n\t\t\t\t\tthis.onAddValue(this.state.addValue);\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\taddValue: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>;\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.values = rule.values == null ? [] : null;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.disable = !state.disable;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t\t\t{label}\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t{values}\n\t\t\t\t
    \n\t\t\t\n\t\t\t{inputElem}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as PolicyTypes from '../types/PolicyTypes';\nimport * as SettingsTypes from '../types/SettingsTypes';\nimport * as PolicyActions from '../actions/PolicyActions';\nimport PolicyRule from './PolicyRule';\nimport PageInput from './PageInput';\nimport PageSwitch from './PageSwitch';\nimport PageSelect from './PageSelect';\nimport PageInputButton from './PageInputButton';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport * as Alert from '../Alert';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\tpolicy: PolicyTypes.PolicyRo;\n\tproviders: SettingsTypes.SecondaryProviders;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tpolicy: PolicyTypes.Policy;\n\taddRole: string;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class Policy extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tpolicy: null,\n\t\t\taddRole: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet policy: any;\n\n\t\tif (this.state.changed) {\n\t\t\tpolicy = {\n\t\t\t\t...this.state.policy,\n\t\t\t};\n\t\t} else {\n\t\t\tpolicy = {\n\t\t\t\t...this.props.policy,\n\t\t\t};\n\t\t}\n\n\t\tpolicy[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tpolicy: policy,\n\t\t});\n\t}\n\n\tsetRule(name: string, rule: PolicyTypes.Rule): void {\n\t\tlet policy: any;\n\n\t\tif (this.state.changed) {\n\t\t\tpolicy = {\n\t\t\t\t...this.state.policy,\n\t\t\t};\n\t\t} else {\n\t\t\tpolicy = {\n\t\t\t\t...this.props.policy,\n\t\t\t};\n\t\t}\n\n\t\tlet rules = {\n\t\t\t...(policy.rules || {}),\n\t\t};\n\n\t\tif (rule.values == null) {\n\t\t\tdelete rules[name];\n\t\t} else {\n\t\t\trules[name] = rule;\n\t\t}\n\n\t\tpolicy.rules = rules;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tpolicy: policy,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tPolicyActions.commit(this.state.policy).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tpolicy: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tPolicyActions.remove(this.props.policy.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonAddRole = (): void => {\n\t\tlet policy: PolicyTypes.Policy;\n\n\t\tif (this.state.changed) {\n\t\t\tpolicy = {\n\t\t\t\t...this.state.policy,\n\t\t\t};\n\t\t} else {\n\t\t\tpolicy = {\n\t\t\t\t...this.props.policy,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...(policy.roles || []),\n\t\t];\n\n\t\tif (!this.state.addRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (roles.indexOf(this.state.addRole) === -1) {\n\t\t\troles.push(this.state.addRole);\n\t\t}\n\n\t\troles.sort();\n\n\t\tpolicy.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\tpolicy: policy,\n\t\t});\n\t}\n\n\tonRemoveRole(role: string): void {\n\t\tlet policy: PolicyTypes.Policy;\n\n\t\tif (this.state.changed) {\n\t\t\tpolicy = {\n\t\t\t\t...this.state.policy,\n\t\t\t};\n\t\t} else {\n\t\t\tpolicy = {\n\t\t\t\t...this.props.policy,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...(policy.roles || []),\n\t\t];\n\n\t\tlet i = roles.indexOf(role);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\troles.splice(i, 1);\n\n\t\tpolicy.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\tpolicy: policy,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet policy: PolicyTypes.Policy = this.state.policy ||\n\t\t\tthis.props.policy;\n\n\t\tlet roles: JSX.Element[] = [];\n\t\tfor (let role of (policy.roles || [])) {\n\t\t\troles.push(\n\t\t\t\t\n\t\t\t\t\t{role}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveRole(role);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet rules = policy.rules || {};\n\t\tlet operatingSystem = rules.operating_system || {\n\t\t\ttype: 'operating_system',\n\t\t};\n\t\tlet browser = rules.browser || {\n\t\t\ttype: 'browser',\n\t\t};\n\t\tlet location = rules.location || {\n\t\t\ttype: 'location',\n\t\t};\n\t\tlet whitelistNetworks = rules.whitelist_networks || {\n\t\t\ttype: 'whitelist_networks',\n\t\t};\n\t\tlet blacklistNetworks = rules.blacklist_networks || {\n\t\t\ttype: 'blacklist_networks',\n\t\t};\n\n\t\tlet providerIds: string[] = [];\n\t\tlet adminProviders: JSX.Element[] = [];\n\t\tlet userProviders: JSX.Element[] = [];\n\t\tif (this.props.providers.length) {\n\t\t\tfor (let provider of this.props.providers) {\n\t\t\t\tproviderIds.push(provider.id);\n\t\t\t\tadminProviders.push({provider.name});\n\t\t\t\tuserProviders.push({provider.name});\n\t\t\t}\n\t\t} else {\n\t\t\tadminProviders.push(None);\n\t\t\tuserProviders.push(None);\n\t\t}\n\t\tlet adminProvider = policy.admin_secondary &&\n\t\t\tproviderIds.indexOf(policy.admin_secondary) !== -1;\n\t\tlet userProvider = policy.user_secondary &&\n\t\t\tproviderIds.indexOf(policy.user_secondary) !== -1;\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddRole}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tif (adminProvider) {\n\t\t\t\t\t\t\t\tthis.set('admin_secondary', null);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (this.props.providers.length === 0) {\n\t\t\t\t\t\t\t\t\tAlert.warning(\n\t\t\t\t\t\t\t\t\t\t'No two-factor authentication providers exist');\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.set('admin_secondary', this.props.providers[0].id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('admin_secondary', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{adminProviders}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tif (userProvider) {\n\t\t\t\t\t\t\t\tthis.set('user_secondary', null);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (this.props.providers.length === 0) {\n\t\t\t\t\t\t\t\t\tAlert.warning(\n\t\t\t\t\t\t\t\t\t\t'No two-factor authentication providers exist');\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.set('user_secondary', this.props.providers[0].id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('user_secondary', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{userProviders}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setRule('whitelist_networks', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setRule('blacklist_networks', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('disabled', !policy.disabled)\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setRule('location', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setRule('operating_system', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setRule('browser', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('admin_device_secondary',\n\t\t\t\t\t\t\t\t!policy.admin_device_secondary)\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('user_device_secondary',\n\t\t\t\t\t\t\t\t!policy.user_device_secondary)\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tpolicy: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as PolicyTypes from '../types/PolicyTypes';\nimport * as SettingsTypes from '../types/SettingsTypes';\nimport PoliciesStore from '../stores/PoliciesStore';\nimport SettingsStore from '../stores/SettingsStore';\nimport * as PolicyActions from '../actions/PolicyActions';\nimport * as SettingsActions from '../actions/SettingsActions';\nimport NonState from './NonState';\nimport Policy from './Policy';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface State {\n\tpolicies: PolicyTypes.PoliciesRo;\n\tproviders: SettingsTypes.SecondaryProviders;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Policies extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpolicies: PoliciesStore.policies,\n\t\t\tproviders: SettingsStore.settings ?\n\t\t\t\tSettingsStore.settings.auth_secondary_providers : [],\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tPoliciesStore.addChangeListener(this.onChange);\n\t\tSettingsStore.addChangeListener(this.onChange);\n\t\tPolicyActions.sync();\n\t\tSettingsActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tPoliciesStore.removeChangeListener(this.onChange);\n\t\tSettingsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpolicies: PoliciesStore.policies,\n\t\t\tproviders: SettingsStore.settings ?\n\t\t\t\tSettingsStore.settings.auth_secondary_providers : [],\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet policiesDom: JSX.Element[] = [];\n\n\t\tthis.state.policies.forEach((policy: PolicyTypes.PolicyRo): void => {\n\t\t\tpoliciesDom.push();\n\t\t});\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Policies

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tPolicyActions.create(null).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{policiesDom}\n\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n}\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as GlobalTypes from '../types/GlobalTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/organization')\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load organizations');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: OrganizationTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\torganizations: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function commit(org: OrganizationTypes.Organization): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/organization/' + org.id)\n\t\t\t.send(org)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save organization');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(org: OrganizationTypes.Organization): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/organization')\n\t\t\t.send(org)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create organization');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(orgId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/organization/' + orgId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete organizations');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function setCurrent(current: string): void {\n\tDispatcher.dispatch({\n\t\ttype: GlobalTypes.RESET,\n\t\tdata: {\n\t\t\tcurrent: current,\n\t\t},\n\t});\n\tDispatcher.dispatch({\n\t\ttype: GlobalTypes.RELOAD,\n\t\tdata: {\n\t\t\tcurrent: current,\n\t\t},\n\t});\n}\n\nEventDispatcher.register((action: OrganizationTypes.OrganizationDispatch) => {\n\tswitch (action.type) {\n\t\tcase OrganizationTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\n\ninterface Props {\n\tdomain: string;\n\tdisabled: boolean;\n\tonChange: (state: string) => void;\n\tonRemove: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tdomain: {\n\t\twidth: '100%',\n\t\tborderRadius: '0 3px 3px 0',\n\t} as React.CSSProperties,\n\tdomainBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class CertificateDomain extends React.Component {\n\trender(): JSX.Element {\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onChange(evt.target.value);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as CertificateActions from '../actions/CertificateActions';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport CertificateDomain from './CertificateDomain';\nimport PageInput from './PageInput';\nimport PageSelect from './PageSelect';\nimport PageInfo from './PageInfo';\nimport PageTextArea from './PageTextArea';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport * as Constants from \"../Constants\";\n\ninterface Props {\n\tcertificate: CertificateTypes.CertificateRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tcertificate: CertificateTypes.Certificate;\n\taddDomain: string;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\tdomain: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n};\n\nexport default class Certificate extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tcertificate: null,\n\t\t\taddDomain: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet certificate: any;\n\n\t\tif (this.state.changed) {\n\t\t\tcertificate = {\n\t\t\t\t...this.state.certificate,\n\t\t\t};\n\t\t} else {\n\t\t\tcertificate = {\n\t\t\t\t...this.props.certificate,\n\t\t\t};\n\t\t}\n\n\t\tcertificate[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tcertificate: certificate,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tCertificateActions.commit(this.state.certificate).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tcertificate: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tCertificateActions.remove(this.props.certificate.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonAddDomain = (): void => {\n\t\tlet cert: CertificateTypes.Certificate;\n\n\t\tif (this.state.changed) {\n\t\t\tcert = {\n\t\t\t\t...this.state.certificate,\n\t\t\t};\n\t\t} else {\n\t\t\tcert = {\n\t\t\t\t...this.props.certificate,\n\t\t\t};\n\t\t}\n\n\t\tlet acmeDomains = [\n\t\t\t...cert.acme_domains,\n\t\t\t'',\n\t\t];\n\n\t\tcert.acme_domains = acmeDomains;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddDomain: '',\n\t\t\tcertificate: cert,\n\t\t});\n\t}\n\n\tonChangeDomain(i: number, state: string): void {\n\t\tlet cert: CertificateTypes.Certificate;\n\n\t\tif (this.state.changed) {\n\t\t\tcert = {\n\t\t\t\t...this.state.certificate,\n\t\t\t};\n\t\t} else {\n\t\t\tcert = {\n\t\t\t\t...this.props.certificate,\n\t\t\t};\n\t\t}\n\n\t\tlet acmeDomains = [\n\t\t\t...cert.acme_domains,\n\t\t];\n\n\t\tacmeDomains[i] = state;\n\n\t\tcert.acme_domains = acmeDomains;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tcertificate: cert,\n\t\t});\n\t}\n\n\tonRemoveDomain(i: number): void {\n\t\tlet cert: CertificateTypes.Certificate;\n\n\t\tif (this.state.changed) {\n\t\t\tcert = {\n\t\t\t\t...this.state.certificate,\n\t\t\t};\n\t\t} else {\n\t\t\tcert = {\n\t\t\t\t...this.props.certificate,\n\t\t\t};\n\t\t}\n\n\t\tlet acmeDomains = [\n\t\t\t...cert.acme_domains,\n\t\t];\n\n\t\tacmeDomains.splice(i, 1);\n\n\t\tcert.acme_domains = acmeDomains;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddDomain: '',\n\t\t\tcertificate: cert,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet cert: CertificateTypes.Certificate = this.state.certificate ||\n\t\t\tthis.props.certificate;\n\n\t\tlet info: CertificateTypes.Info = this.props.certificate.info || {};\n\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\torganizationsSelect.push(\n\t\t\t,\n\t\t);\n\t\tif (this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet domains: JSX.Element[] = [];\n\t\tfor (let i = 0; i < cert.acme_domains.length; i++) {\n\t\t\tlet index = i;\n\n\t\t\tdomains.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeDomain(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveDomain(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('key', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('certificate', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tLetsEncrypt Domains\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tAdd Domain\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('type', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('organization', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tcertificate: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport CertificatesStore from '../stores/CertificatesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as CertificateActions from '../actions/CertificateActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport NonState from './NonState';\nimport Certificate from './Certificate';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface State {\n\tcertificates: CertificateTypes.CertificatesRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\tnoCerts: {\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n};\n\nexport default class Certificates extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tcertificates: CertificatesStore.certificates,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tCertificatesStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tCertificateActions.sync();\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tCertificatesStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tcertificates: CertificatesStore.certificates,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet certsDom: JSX.Element[] = [];\n\n\t\tthis.state.certificates.forEach((\n\t\t\t\tcert: CertificateTypes.CertificateRo): void => {\n\t\t\tcertsDom.push();\n\t\t});\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Certificates

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tCertificateActions.create(null).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{certsDom}\n\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport PageInputButton from './PageInputButton';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\torganization: OrganizationTypes.OrganizationRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\taddRole: string;\n\torganization: OrganizationTypes.Organization;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n};\n\nexport default class Organization extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\torganization: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet organization: any;\n\n\t\tif (this.state.changed) {\n\t\t\torganization = {\n\t\t\t\t...this.state.organization,\n\t\t\t};\n\t\t} else {\n\t\t\torganization = {\n\t\t\t\t...this.props.organization,\n\t\t\t};\n\t\t}\n\n\t\torganization[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\torganization: organization,\n\t\t});\n\t}\n\n\tonAddRole = (): void => {\n\t\tlet organization: OrganizationTypes.Organization;\n\n\t\tif (this.state.changed) {\n\t\t\torganization = {\n\t\t\t\t...this.state.organization,\n\t\t\t};\n\t\t} else {\n\t\t\torganization = {\n\t\t\t\t...this.props.organization,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...organization.roles,\n\t\t];\n\n\t\tif (!this.state.addRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (roles.indexOf(this.state.addRole) === -1) {\n\t\t\troles.push(this.state.addRole);\n\t\t}\n\n\t\troles.sort();\n\n\t\torganization.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\torganization: organization,\n\t\t});\n\t}\n\n\tonRemoveRole(role: string): void {\n\t\tlet organization: OrganizationTypes.Organization;\n\n\t\tif (this.state.changed) {\n\t\t\torganization = {\n\t\t\t\t...this.state.organization,\n\t\t\t};\n\t\t} else {\n\t\t\torganization = {\n\t\t\t\t...this.props.organization,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...organization.roles,\n\t\t];\n\n\t\tlet i = roles.indexOf(role);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\troles.splice(i, 1);\n\n\t\torganization.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\torganization: organization,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tOrganizationActions.commit(this.state.organization).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\torganization: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tOrganizationActions.remove(this.props.organization.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet org: OrganizationTypes.Organization = this.state.organization ||\n\t\t\tthis.props.organization;\n\n\t\tlet roles: JSX.Element[] = [];\n\t\tfor (let role of (org.roles || [])) {\n\t\t\troles.push(\n\t\t\t\t\n\t\t\t\t\t{role}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveRole(role);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddRole}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\torganization: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport NonState from './NonState';\nimport Organization from './Organization';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface State {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\tnoCerts: {\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n};\n\nexport default class Organizations extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet orgsDom: JSX.Element[] = [];\n\n\t\tthis.state.organizations.forEach((\n\t\t\t\torg: OrganizationTypes.OrganizationRo): void => {\n\t\t\torgsDom.push();\n\t\t});\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Organizations

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tOrganizationActions.create(null).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{orgsDom}\n\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n}\n","/// \nexport const SYNC = 'storage.sync';\nexport const CHANGE = 'storage.change';\n\nexport interface Storage {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\ttype?: string;\n\tendpoint?: string;\n\tbucket?: string;\n\taccess_key?: string;\n\tsecret_key?: string;\n\tinsecure?: boolean;\n}\n\nexport type Storages = Storage[];\n\nexport type StorageRo = Readonly;\nexport type StoragesRo = ReadonlyArray;\n\nexport interface StorageDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tstorage?: Storage;\n\t\tstorages?: Storages;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as StorageTypes from '../types/StorageTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass StoragesStore extends EventEmitter {\n\t_storages: StorageTypes.StoragesRo = Object.freeze([]);\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._storages = Object.freeze([]);\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget storages(): StorageTypes.StoragesRo {\n\t\treturn this._storages;\n\t}\n\n\tget storagesM(): StorageTypes.Storages {\n\t\tlet storages: StorageTypes.Storages = [];\n\t\tthis._storages.forEach((\n\t\t\t\tstorage: StorageTypes.StorageRo): void => {\n\t\t\tstorages.push({\n\t\t\t\t...storage,\n\t\t\t});\n\t\t});\n\t\treturn storages;\n\t}\n\n\tstorage(id: string): StorageTypes.StorageRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._storages[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(storages: StorageTypes.Storage[]): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < storages.length; i++) {\n\t\t\tstorages[i] = Object.freeze(storages[i]);\n\t\t\tthis._map[storages[i].id] = i;\n\t\t}\n\n\t\tthis._storages = Object.freeze(storages);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: StorageTypes.StorageDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase StorageTypes.SYNC:\n\t\t\t\tthis._sync(action.data.storages);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new StoragesStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as StorageTypes from '../types/StorageTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as Constants from \"../Constants\";\n\nlet syncId: string;\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/storage')\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load storages');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: StorageTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tstorages: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function commit(storage: StorageTypes.Storage): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/storage/' + storage.id)\n\t\t\t.send(storage)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save storage');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(storage: StorageTypes.Storage): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/storage')\n\t\t\t.send(storage)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create storage');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(storageId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/storage/' + storageId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete storages');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: StorageTypes.StorageDispatch) => {\n\tswitch (action.type) {\n\t\tcase StorageTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\tsync();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport * as StorageTypes from '../types/StorageTypes';\nimport * as DatacenterActions from '../actions/DatacenterActions';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport StoragesStore from '../stores/StoragesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSelect from './PageSelect';\nimport PageSelectButton from './PageSelectButton';\nimport PageSwitch from './PageSwitch';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\tdatacenter: DatacenterTypes.DatacenterRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tstorages: StorageTypes.StoragesRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tdatacenter: DatacenterTypes.Datacenter;\n\taddStorage: string;\n\taddOrganization: string;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class Datacenter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tdatacenter: null,\n\t\t\taddStorage: '',\n\t\t\taddOrganization: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet datacenter: any;\n\n\t\tif (this.state.changed) {\n\t\t\tdatacenter = {\n\t\t\t\t...this.state.datacenter,\n\t\t\t};\n\t\t} else {\n\t\t\tdatacenter = {\n\t\t\t\t...this.props.datacenter,\n\t\t\t};\n\t\t}\n\n\t\tdatacenter[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdatacenter: datacenter,\n\t\t});\n\t}\n\n\ttoggle(name: string): void {\n\t\tlet datacenter: any;\n\n\t\tif (this.state.changed) {\n\t\t\tdatacenter = {\n\t\t\t\t...this.state.datacenter,\n\t\t\t};\n\t\t} else {\n\t\t\tdatacenter = {\n\t\t\t\t...this.props.datacenter,\n\t\t\t};\n\t\t}\n\n\t\tdatacenter[name] = !datacenter[name];\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdatacenter: datacenter,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDatacenterActions.commit(this.state.datacenter).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tdatacenter: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDatacenterActions.remove(this.props.datacenter.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonAddStorage = (): void => {\n\t\tlet datacenter: DatacenterTypes.Datacenter;\n\n\t\tif (!this.state.addStorage && !this.props.storages.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet storageId = this.state.addStorage ||\n\t\t\tthis.props.storages[0].id;\n\n\t\tif (this.state.changed) {\n\t\t\tdatacenter = {\n\t\t\t\t...this.state.datacenter,\n\t\t\t};\n\t\t} else {\n\t\t\tdatacenter = {\n\t\t\t\t...this.props.datacenter,\n\t\t\t};\n\t\t}\n\n\t\tlet publicStorages = [\n\t\t\t...(datacenter.public_storages || []),\n\t\t];\n\n\t\tif (publicStorages.indexOf(storageId) === -1) {\n\t\t\tpublicStorages.push(storageId);\n\t\t}\n\n\t\tpublicStorages.sort();\n\n\t\tdatacenter.public_storages = publicStorages;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdatacenter: datacenter,\n\t\t});\n\t}\n\n\tonRemoveStorage = (storage: string): void => {\n\t\tlet datacenter: DatacenterTypes.Datacenter;\n\n\t\tif (this.state.changed) {\n\t\t\tdatacenter = {\n\t\t\t\t...this.state.datacenter,\n\t\t\t};\n\t\t} else {\n\t\t\tdatacenter = {\n\t\t\t\t...this.props.datacenter,\n\t\t\t};\n\t\t}\n\n\t\tlet publicStorages = [\n\t\t\t...(datacenter.public_storages || []),\n\t\t];\n\n\t\tlet i = publicStorages.indexOf(storage);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tpublicStorages.splice(i, 1);\n\n\t\tdatacenter.public_storages = publicStorages;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdatacenter: datacenter,\n\t\t});\n\t}\n\n\tonAddOrganization = (): void => {\n\t\tlet datacenter: DatacenterTypes.Datacenter;\n\n\t\tif (!this.state.addOrganization && !this.props.organizations.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet organizationId = this.state.addOrganization ||\n\t\t\tthis.props.organizations[0].id;\n\n\t\tif (this.state.changed) {\n\t\t\tdatacenter = {\n\t\t\t\t...this.state.datacenter,\n\t\t\t};\n\t\t} else {\n\t\t\tdatacenter = {\n\t\t\t\t...this.props.datacenter,\n\t\t\t};\n\t\t}\n\n\t\tlet organizations = [\n\t\t\t...(datacenter.organizations || []),\n\t\t];\n\n\t\tif (organizations.indexOf(organizationId) === -1) {\n\t\t\torganizations.push(organizationId);\n\t\t}\n\n\t\torganizations.sort();\n\n\t\tdatacenter.organizations = organizations;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdatacenter: datacenter,\n\t\t});\n\t}\n\n\tonRemoveOrganization = (organization: string): void => {\n\t\tlet datacenter: DatacenterTypes.Datacenter;\n\n\t\tif (this.state.changed) {\n\t\t\tdatacenter = {\n\t\t\t\t...this.state.datacenter,\n\t\t\t};\n\t\t} else {\n\t\t\tdatacenter = {\n\t\t\t\t...this.props.datacenter,\n\t\t\t};\n\t\t}\n\n\t\tlet organizations = [\n\t\t\t...(datacenter.organizations || []),\n\t\t];\n\n\t\tlet i = organizations.indexOf(organization);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\torganizations.splice(i, 1);\n\n\t\tdatacenter.organizations = organizations;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdatacenter: datacenter,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet datacenter: DatacenterTypes.Datacenter = this.state.datacenter ||\n\t\t\tthis.props.datacenter;\n\n\t\tlet organizations: JSX.Element[] = [];\n\t\tfor (let organizationId of (datacenter.organizations || [])) {\n\t\t\tlet organization = OrganizationsStore.organization(organizationId);\n\t\t\tif (!organization) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\torganizations.push(\n\t\t\t\t\n\t\t\t\t\t{organization.name}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveOrganization(organization.id);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\tif (this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\torganizationsSelect.push();\n\t\t}\n\n\t\tlet publicStorages: JSX.Element[] = [];\n\t\tfor (let storageId of (datacenter.public_storages || [])) {\n\t\t\tlet storage = StoragesStore.storage(storageId);\n\t\t\tif (!storage) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpublicStorages.push(\n\t\t\t\t\n\t\t\t\t\t{storage.name}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveStorage(storage.id);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet hasStorages = false;\n\t\tlet privateStoragesSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tlet backupStoragesSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tlet publicStoragesSelect: JSX.Element[] = [];\n\t\tif (this.props.storages.length) {\n\t\t\tfor (let storage of this.props.storages) {\n\t\t\t\tif (storage.type === 'public') {\n\t\t\t\t\thasStorages = true;\n\t\t\t\t\tpublicStoragesSelect.push(\n\t\t\t\t\t\t{storage.name},\n\t\t\t\t\t);\n\t\t\t\t} else if (storage.type === 'private') {\n\t\t\t\t\tprivateStoragesSelect.push(\n\t\t\t\t\t\t{storage.name},\n\t\t\t\t\t);\n\t\t\t\t\tbackupStoragesSelect.push(\n\t\t\t\t\t\t{storage.name},\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!hasStorages) {\n\t\t\tpublicStoragesSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('private_storage', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{privateStoragesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('private_storage_class', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('backup_storage', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{backupStoragesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('backup_storage_class', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tPublic Storages\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{publicStorages}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddStorage: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddStorage}\n\t\t\t\t\t>\n\t\t\t\t\t\t{publicStoragesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.toggle('match_organizations');\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tOrganizations\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{organizations}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddOrganization: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddOrganization}\n\t\t\t\t\t>\n\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tdatacenter: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport * as StorageTypes from '../types/StorageTypes';\nimport DatacentersStore from '../stores/DatacentersStore';\nimport StoragesStore from '../stores/StoragesStore';\nimport OrganizationsStore from \"../stores/OrganizationsStore\";\nimport * as DatacenterActions from '../actions/DatacenterActions';\nimport * as StorageActions from '../actions/StorageActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport NonState from './NonState';\nimport Datacenter from './Datacenter';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface State {\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tstorages: StorageTypes.StoragesRo;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\tnoCerts: {\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n};\n\nexport default class Datacenters extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tstorages: StoragesStore.storages,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tDatacentersStore.addChangeListener(this.onChange);\n\t\tStoragesStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tDatacenterActions.sync();\n\t\tStorageActions.sync();\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tDatacentersStore.removeChangeListener(this.onChange);\n\t\tStoragesStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tstorages: StoragesStore.storages,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet datacentersDom: JSX.Element[] = [];\n\n\t\tthis.state.datacenters.forEach((\n\t\t\t\tdatacenter: DatacenterTypes.DatacenterRo): void => {\n\t\t\tdatacentersDom.push();\n\t\t});\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Datacenters

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tDatacenterActions.create(null).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{datacentersDom}\n\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n}\n","/// \nexport const SYNC = 'alert.sync';\nexport const SYNC_NAMES = 'alert.sync_names';\nexport const TRAVERSE = 'alert.traverse';\nexport const FILTER = 'alert.filter';\nexport const CHANGE = 'alert.change';\n\nexport interface Alert {\n\tid: string;\n\tname?: string;\n\torganization?: string;\n\troles?: string[];\n\tresource?: string;\n\tlevel?: number;\n\tfrequency?: number;\n\tignores?: string[];\n\tvalue_int?: number;\n\tvalue_str?: string;\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\trole?: string;\n\torganization?: string;\n}\n\nexport type Alerts = Alert[];\n\nexport type AlertRo = Readonly;\nexport type AlertsRo = ReadonlyArray;\n\nexport interface AlertDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\talert?: Alert;\n\t\talerts?: Alerts;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as AlertTypes from '../types/AlertTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass AlertsStore extends EventEmitter {\n\t_alerts: AlertTypes.AlertsRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: AlertTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\tget alerts(): AlertTypes.AlertsRo {\n\t\treturn this._alerts;\n\t}\n\n\tget alertsM(): AlertTypes.Alerts {\n\t\tlet alerts: AlertTypes.Alerts = [];\n\t\tthis._alerts.forEach((alert: AlertTypes.AlertRo): void => {\n\t\t\talerts.push({\n\t\t\t\t...alert,\n\t\t\t});\n\t\t});\n\t\treturn alerts;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): AlertTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\talert(id: string): AlertTypes.AlertRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._alerts[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: AlertTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(alerts: AlertTypes.Alert[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < alerts.length; i++) {\n\t\t\talerts[i] = Object.freeze(alerts[i]);\n\t\t\tthis._map[alerts[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._alerts = Object.freeze(alerts);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: AlertTypes.AlertDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase AlertTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase AlertTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase AlertTypes.SYNC:\n\t\t\t\tthis._sync(action.data.alerts, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new AlertsStore();\n","/// \nexport const SYNC = 'authority.sync';\nexport const TRAVERSE = 'authority.traverse';\nexport const FILTER = 'authority.filter';\nexport const CHANGE = 'authority.change';\n\nexport interface Authority {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\ttype?: string;\n\torganization?: string;\n\tnetwork_roles?: string[];\n\tkey?: string;\n\troles?: string[];\n\tcertificate?: string;\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\trole?: string;\n\tnetwork_role?: string;\n\torganization?: string;\n}\n\nexport type Authorities = Authority[];\n\nexport type AuthorityRo = Readonly;\nexport type AuthoritiesRo = ReadonlyArray;\n\nexport interface AuthorityDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tauthority?: Authority;\n\t\tauthorities?: Authorities;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass AuthoritiesStore extends EventEmitter {\n\t_authorities: AuthorityTypes.AuthoritiesRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: AuthorityTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._authorities = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget authorities(): AuthorityTypes.AuthoritiesRo {\n\t\treturn this._authorities;\n\t}\n\n\tget authoritiesM(): AuthorityTypes.Authorities {\n\t\tlet authorities: AuthorityTypes.Authorities = [];\n\t\tthis._authorities.forEach((\n\t\t\t\tauthority: AuthorityTypes.AuthorityRo): void => {\n\t\t\tauthorities.push({\n\t\t\t\t...authority,\n\t\t\t});\n\t\t});\n\t\treturn authorities;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): AuthorityTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tauthority(id: string): AuthorityTypes.AuthorityRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._authorities[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: AuthorityTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(authorities: AuthorityTypes.Authority[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < authorities.length; i++) {\n\t\t\tauthorities[i] = Object.freeze(authorities[i]);\n\t\t\tthis._map[authorities[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._authorities = Object.freeze(authorities);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: AuthorityTypes.AuthorityDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase AuthorityTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase AuthorityTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase AuthorityTypes.SYNC:\n\t\t\t\tthis._sync(action.data.authorities, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new AuthoritiesStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport AlertsStore from '../stores/AlertsStore';\nimport * as AlertTypes from '../types/AlertTypes';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/alert')\n\t\t\t.query({\n\t\t\t\t...AlertsStore.filter,\n\t\t\t\tpage: AlertsStore.page,\n\t\t\t\tpage_count: AlertsStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load alerts');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: AlertTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\talerts: res.body.alerts,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: AlertTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: AlertTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: AlertTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(alert: AlertTypes.Alert): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/alert/' + alert.id)\n\t\t\t.send(alert)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save alert');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(alert: AlertTypes.Alert): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/alert')\n\t\t\t.send(alert)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create alert');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(alertId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/alert/' + alertId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete alerts');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(alertIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/alert')\n\t\t\t.send(alertIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete alerts');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: AlertTypes.AlertDispatch) => {\n\tswitch (action.type) {\n\t\tcase AlertTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport AuthoritiesStore from '../stores/AuthoritiesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as Constants from \"../Constants\";\n\nlet syncId: string;\n\nexport function sync(noLoading?: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader: Loader;\n\tif (!noLoading) {\n\t\tloader = new Loader().loading();\n\t}\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/authority')\n\t\t\t.query({\n\t\t\t\t...AuthoritiesStore.filter,\n\t\t\t\tpage: AuthoritiesStore.page,\n\t\t\t\tpage_count: AuthoritiesStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (loader) {\n\t\t\t\t\tloader.done();\n\t\t\t\t}\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load authorities');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: AuthorityTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tauthorities: res.body.authorities,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: AuthorityTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: AuthorityTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: AuthorityTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(authority: AuthorityTypes.Authority): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/authority/' + authority.id)\n\t\t\t.send(authority)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save authority');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(authority: AuthorityTypes.Authority): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/authority')\n\t\t\t.send(authority)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create authority');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(authorityId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/authority/' + authorityId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete authority');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(authorityIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/authority')\n\t\t\t.send(authorityIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete authorities');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: AuthorityTypes.AuthorityDispatch) => {\n\tswitch (action.type) {\n\t\tcase AuthorityTypes.CHANGE:\n\t\t\tif (!Constants.user) {\n\t\t\t\tsync();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as AlertTypes from '../types/AlertTypes';\nimport * as AuthorityTypes from \"../types/AuthorityTypes\";\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport * as AlertActions from '../actions/AlertActions';\nimport * as PageInfos from './PageInfo';\nimport PageInput from './PageInput';\nimport PageSave from './PageSave';\nimport PageInfo from './PageInfo';\nimport ConfirmButton from './ConfirmButton';\nimport PageInputButton from './PageInputButton';\nimport Help from './Help';\nimport PageSwitch from \"./PageSwitch\";\nimport PageSelect from \"./PageSelect\";\nimport * as Constants from \"../Constants\";\n\ninterface Props {\n\talert: AlertTypes.AlertRo;\n\tauthorities: AuthorityTypes.AuthoritiesRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\taddRole: string;\n\taddIgnore: string;\n\talert: AlertTypes.Alert;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '250px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tcontrolButton: {\n\t\tmarginRight: '10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\theader: {\n\t\tfontSize: '20px',\n\t\tmarginTop: '-10px',\n\t\tpaddingBottom: '2px',\n\t\tmarginBottom: '10px',\n\t\tborderBottomStyle: 'solid',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\talertsButtons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\talertsAdd: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n};\n\nexport default class AlertDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\taddIgnore: '',\n\t\t\talert: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet alert: any;\n\n\t\tif (this.state.changed) {\n\t\t\talert = {\n\t\t\t\t...this.state.alert,\n\t\t\t};\n\t\t} else {\n\t\t\talert = {\n\t\t\t\t...this.props.alert,\n\t\t\t};\n\t\t}\n\n\t\talert[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\talert: alert,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tAlertActions.commit(this.state.alert).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\talert: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tAlertActions.remove(this.props.alert.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonAddRole = (): void => {\n\t\tlet alert: AlertTypes.Alert;\n\n\t\tif (this.state.changed) {\n\t\t\talert = {\n\t\t\t\t...this.state.alert,\n\t\t\t};\n\t\t} else {\n\t\t\talert = {\n\t\t\t\t...this.props.alert,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...alert.roles,\n\t\t];\n\n\t\tif (!this.state.addRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (roles.indexOf(this.state.addRole) === -1) {\n\t\t\troles.push(this.state.addRole);\n\t\t}\n\n\t\troles.sort();\n\n\t\talert.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\talert: alert,\n\t\t});\n\t}\n\n\tonRemoveRole(role: string): void {\n\t\tlet alert: AlertTypes.Alert;\n\n\t\tif (this.state.changed) {\n\t\t\talert = {\n\t\t\t\t...this.state.alert,\n\t\t\t};\n\t\t} else {\n\t\t\talert = {\n\t\t\t\t...this.props.alert,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...alert.roles,\n\t\t];\n\n\t\tlet i = roles.indexOf(role);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\troles.splice(i, 1);\n\n\t\talert.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\talert: alert,\n\t\t});\n\t}\n\n\tonAddIgnore = (): void => {\n\t\tlet alert: AlertTypes.Alert;\n\n\t\tif (this.state.changed) {\n\t\t\talert = {\n\t\t\t\t...this.state.alert,\n\t\t\t};\n\t\t} else {\n\t\t\talert = {\n\t\t\t\t...this.props.alert,\n\t\t\t};\n\t\t}\n\n\t\tlet ignores = [\n\t\t\t...(alert.ignores || []),\n\t\t];\n\n\t\tif (!this.state.addIgnore) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (ignores.indexOf(this.state.addIgnore) === -1) {\n\t\t\tignores.push(this.state.addIgnore);\n\t\t}\n\n\t\tignores.sort();\n\n\t\talert.ignores = ignores;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddIgnore: '',\n\t\t\talert: alert,\n\t\t});\n\t}\n\n\tonRemoveIgnore(ignore: string): void {\n\t\tlet alert: AlertTypes.Alert;\n\n\t\tif (this.state.changed) {\n\t\t\talert = {\n\t\t\t\t...this.state.alert,\n\t\t\t};\n\t\t} else {\n\t\t\talert = {\n\t\t\t\t...this.props.alert,\n\t\t\t};\n\t\t}\n\n\t\tlet ignores = [\n\t\t\t...(alert.ignores || []),\n\t\t];\n\n\t\tlet i = ignores.indexOf(ignore);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tignores.splice(i, 1);\n\n\t\talert.ignores = ignores;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddIgnore: '',\n\t\t\talert: alert,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet alert: AlertTypes.Alert = this.state.alert ||\n\t\t\tthis.props.alert;\n\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\torganizationsSelect.push(\n\t\t\t);\n\t\tif (this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet fields: PageInfos.Field[] = [\n\t\t\t{\n\t\t\t\tlabel: 'ID',\n\t\t\t\tvalue: this.props.alert.id || 'None',\n\t\t\t},\n\t\t];\n\n\t\tlet roles: JSX.Element[] = [];\n\t\tfor (let role of alert.roles) {\n\t\t\troles.push(\n\t\t\t\t\n\t\t\t\t\t{role}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveRole(role);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet ignores: JSX.Element[] = [];\n\t\tfor (let ignore of (alert.ignores || [])) {\n\t\t\tignores.push(\n\t\t\t\t\n\t\t\t\t\t{ignore}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveRole(ignore);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet valueInt = false;\n\t\tlet valueStr = false;\n\t\tlet valueLabel = '';\n\t\tlet valueHelp = '';\n\t\tlet ignoreShow = false;\n\t\tlet ignoreLabel = '';\n\t\tlet ignoreTitle = '';\n\t\tlet ignoreHelp = '';\n\t\tswitch (alert.resource) {\n\t\t\tcase \"system_cpu_level\":\n\t\t\t\tvalueInt = true;\n\t\t\t\tvalueLabel = 'Usage Threshold';\n\t\t\t\tvalueHelp = 'Maximum percent CPU usage as integer ' +\n\t\t\t\t\t'before alert is triggered.';\n\t\t\t\tbreak;\n\t\t\tcase \"system_memory_level\":\n\t\t\t\tvalueInt = true;\n\t\t\t\tvalueLabel = 'Usage Threshold';\n\t\t\t\tvalueHelp = 'Maximum percent memory usage as integer ' +\n\t\t\t\t\t'before alert is triggered.';\n\t\t\t\tbreak;\n\t\t\tcase \"system_swap_level\":\n\t\t\t\tvalueInt = true;\n\t\t\t\tvalueLabel = 'Usage Threshold';\n\t\t\t\tvalueHelp = 'Maximum percent swap usage as integer ' +\n\t\t\t\t\t'before alert is triggered.';\n\t\t\t\tbreak;\n\t\t\tcase \"system_hugepages_level\":\n\t\t\t\tvalueInt = true;\n\t\t\t\tvalueLabel = 'Usage Threshold';\n\t\t\t\tvalueHelp = 'Maximum percent hugepages usage as integer ' +\n\t\t\t\t\t'before alert is triggered.';\n\t\t\t\tbreak;\n\t\t\tcase \"disk_usage_level\":\n\t\t\t\tvalueInt = true;\n\t\t\t\tvalueLabel = 'Usage Threshold';\n\t\t\t\tvalueHelp = 'Maximum percent disk space usage as integer ' +\n\t\t\t\t\t'before alert is triggered.';\n\t\t\t\tbreak;\n\t\t\tcase \"kmsg_keyword\":\n\t\t\t\tvalueStr = true;\n\t\t\t\tvalueLabel = 'Dmesg Keyword Match';\n\t\t\t\tvalueHelp = 'Case insensitive dmesg match string to trigger alert.';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddRole}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('resource', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tInstance Offline\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddIgnore: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddIgnore}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('organization', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('value_int', parseInt(val, 10));\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('value_str', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('level', parseInt(val, 10));\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('frequency', parseInt(val, 10));\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\talert: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AlertTypes from '../types/AlertTypes';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport AlertDetailed from './AlertDetailed';\n\ninterface Props {\n\talert: AlertTypes.AlertRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tauthorities: AuthorityTypes.AuthoritiesRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n};\n\nexport default class Alert extends React.Component {\n\trender(): JSX.Element {\n\t\tlet alert = this.props.alert;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t;\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet roles: JSX.Element[] = [];\n\n\t\tfor (let role of alert.roles) {\n\t\t\troles.push(\n\t\t\t\t\n\t\t\t\t\t{role}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{alert.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{roles}\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AlertTypes from '../types/AlertTypes';\nimport SearchInput from './SearchInput';\nimport * as AuthorityTypes from \"../types/AuthorityTypes\";\n\ninterface Props {\n\tfilter: AlertTypes.Filter;\n\tonFilter: (filter: AlertTypes.Filter) => void;\n\tauthorities: AuthorityTypes.AuthoritiesRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class AlertsFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.role = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.role;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport AlertsStore from '../stores/AlertsStore';\nimport * as AlertActions from '../actions/AlertActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class AlertsPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: AlertsStore.page,\n\t\t\tpageCount: AlertsStore.pageCount,\n\t\t\tpages: AlertsStore.pages,\n\t\t\tcount: AlertsStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tAlertsStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tAlertsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: AlertsStore.page,\n\t\t\tpageCount: AlertsStore.pageCount,\n\t\t\tpages: AlertsStore.pages,\n\t\t\tcount: AlertsStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tAlertActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tAlertActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tAlertActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tAlertActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tAlertActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AlertTypes from '../types/AlertTypes';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport AlertsStore from '../stores/AlertsStore';\nimport AuthoritiesStore from '../stores/AuthoritiesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as AlertActions from '../actions/AlertActions';\nimport * as AuthorityActions from '../actions/AuthorityActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport Alert from './Alert';\nimport AlertsFilter from './AlertsFilter';\nimport AlertsPage from './AlertsPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\talerts: AlertTypes.AlertsRo;\n\tfilter: AlertTypes.Filter;\n\tauthorities: AuthorityTypes.AuthoritiesRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Alerts extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\talerts: AlertsStore.alerts,\n\t\t\tfilter: AlertsStore.filter,\n\t\t\tauthorities: AuthoritiesStore.authorities,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tAlertsStore.addChangeListener(this.onChange);\n\t\tAuthoritiesStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tAlertActions.sync();\n\t\tAuthorityActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tAlertsStore.removeChangeListener(this.onChange);\n\t\tAuthoritiesStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet alerts = AlertsStore.alerts;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\talerts.forEach((alert: AlertTypes.Alert): void => {\n\t\t\tif (curSelected[alert.id]) {\n\t\t\t\tselected[alert.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[alert.id]) {\n\t\t\t\topened[alert.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\talerts: alerts,\n\t\t\tfilter: AlertsStore.filter,\n\t\t\tauthorities: AuthoritiesStore.authorities,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tAlertActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet alertsDom: JSX.Element[] = [];\n\n\t\tthis.state.alerts.forEach((\n\t\t\t\talert: AlertTypes.AlertRo): void => {\n\t\t\talertsDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet alerts = this.state.alerts;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < alerts.length; i++) {\n\t\t\t\t\t\t\tlet usr = alerts[i];\n\n\t\t\t\t\t\t\tif (usr.id === alert.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[alerts[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: alert.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[alert.id]) {\n\t\t\t\t\t\tdelete selected[alert.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[alert.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: alert.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[alert.id]) {\n\t\t\t\t\t\tdelete opened[alert.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[alert.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let instId of Object.keys(this.state.selected)) {\n\t\t\tlet inst = AlertsStore.alert(instId);\n\t\t\tif (inst) {\n\t\t\t\tselectedNames.push(inst.name || instId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(instId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Alerts

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tAlertActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tAlertActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tAlertActions.create({\n\t\t\t\t\t\t\t\t\tid: null,\n\t\t\t\t\t\t\t\t}).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tAlertActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\tauthorities={this.state.authorities}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{alertsDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport * as ZoneActions from '../actions/ZoneActions';\nimport DatacentersStore from '../stores/DatacentersStore';\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport PageSelect from './PageSelect';\nimport ConfirmButton from './ConfirmButton';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\tzone: ZoneTypes.ZoneRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tzone: ZoneTypes.Zone;\n\taddCert: string;\n\tforwardedChecked: boolean;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class Zone extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tzone: null,\n\t\t\taddCert: null,\n\t\t\tforwardedChecked: false,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet zone: any;\n\n\t\tif (this.state.changed) {\n\t\t\tzone = {\n\t\t\t\t...this.state.zone,\n\t\t\t};\n\t\t} else {\n\t\t\tzone = {\n\t\t\t\t...this.props.zone,\n\t\t\t};\n\t\t}\n\n\t\tzone[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tzone: zone,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tZoneActions.commit(this.state.zone).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tzone: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tZoneActions.remove(this.props.zone.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet zone: ZoneTypes.Zone = this.state.zone ||\n\t\t\tthis.props.zone;\n\n\t\tlet datacenter = DatacentersStore.datacenter(\n\t\t\tthis.props.zone.datacenter);\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('network_mode', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tforwardedChecked: false,\n\t\t\t\t\t\tzone: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport ZonesStore from '../stores/ZonesStore';\nimport DatacentersStore from \"../stores/DatacentersStore\";\nimport * as ZoneActions from '../actions/ZoneActions';\nimport * as DatacenterActions from '../actions/DatacenterActions';\nimport NonState from './NonState';\nimport Zone from './Zone';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface State {\n\tzones: ZoneTypes.ZonesRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tdatacenter: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tmargin: '15px 0 0 0',\n\t\twidth: '220px',\n\t} as React.CSSProperties,\n\tselect: {\n\t\twidth: '100%',\n\t\tborderTopLeftRadius: '3px',\n\t\tborderBottomLeftRadius: '3px',\n\t} as React.CSSProperties,\n\tselectInner: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tselectBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class Zones extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tzones: ZonesStore.zones,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tdatacenter: '',\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tZonesStore.addChangeListener(this.onChange);\n\t\tDatacentersStore.addChangeListener(this.onChange);\n\t\tZoneActions.sync();\n\t\tDatacenterActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tZonesStore.removeChangeListener(this.onChange);\n\t\tDatacentersStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tzones: ZonesStore.zones,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet zonesDom: JSX.Element[] = [];\n\n\t\tthis.state.zones.forEach((\n\t\t\t\tzone: ZoneTypes.ZoneRo): void => {\n\t\t\tzonesDom.push();\n\t\t});\n\n\t\tlet hasDatacenters = false;\n\t\tlet datacentersSelect: JSX.Element[] = [];\n\t\tif (this.state.datacenters.length) {\n\t\t\thasDatacenters = true;\n\t\t\tfor (let datacenter of this.state.datacenters) {\n\t\t\t\tdatacentersSelect.push(\n\t\t\t\t\t{datacenter.name},\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tdatacentersSelect.push(\n\t\t\t\tNo Datacenters,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Zones

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdatacenter: evt.target.value,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{datacentersSelect}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tZoneActions.create({\n\t\t\t\t\t\t\t\t\t\tid: null,\n\t\t\t\t\t\t\t\t\t\tnetwork_mode: 'vxlan_vlan',\n\t\t\t\t\t\t\t\t\t\tdatacenter: this.state.datacenter ||\n\t\t\t\t\t\t\t\t\t\t\tthis.state.datacenters[0].id,\n\t\t\t\t\t\t\t\t\t}).then((): void => {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>New\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{zonesDom}\n\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as BlockTypes from '../types/BlockTypes';\nimport * as BlockActions from '../actions/BlockActions';\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport PageInputButton from './PageInputButton';\nimport ConfirmButton from './ConfirmButton';\nimport * as Alert from \"../Alert\";\nimport Help from './Help';\nimport PageSelect from \"./PageSelect\";\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\tblock: BlockTypes.BlockRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\taddSubnet: string,\n\taddSubnet6: string,\n\taddExclude: string,\n\tblock: BlockTypes.Block;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tcontrolButton: {\n\t\tmarginRight: '10px',\n\t} as React.CSSProperties,\n};\n\nexport default class Block extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\taddSubnet: '',\n\t\t\taddSubnet6: '',\n\t\t\taddExclude: '',\n\t\t\tblock: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet block: any;\n\n\t\tif (this.state.changed) {\n\t\t\tblock = {\n\t\t\t\t...this.state.block,\n\t\t\t};\n\t\t} else {\n\t\t\tblock = {\n\t\t\t\t...this.props.block,\n\t\t\t};\n\t\t}\n\n\t\tblock[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tblock: block,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tBlockActions.commit(this.state.block).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tblock: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonSync = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tBlockActions.commit(this.props.block).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tAlert.success('Block sync started');\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tBlockActions.remove(this.props.block.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonAddSubnet = (): void => {\n\t\tlet block: BlockTypes.Block;\n\n\t\tif (!this.state.addSubnet) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tblock = {\n\t\t\t\t...this.state.block,\n\t\t\t};\n\t\t} else {\n\t\t\tblock = {\n\t\t\t\t...this.props.block,\n\t\t\t};\n\t\t}\n\n\t\tlet subnets = [\n\t\t\t...(block.subnets || []),\n\t\t];\n\n\t\tlet addSubnet = this.state.addSubnet.trim();\n\t\tif (subnets.indexOf(addSubnet) === -1) {\n\t\t\tsubnets.push(addSubnet);\n\t\t}\n\n\t\tsubnets.sort();\n\t\tblock.subnets = subnets;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddSubnet: '',\n\t\t\tblock: block,\n\t\t});\n\t}\n\n\tonRemoveSubnet = (subnet: string): void => {\n\t\tlet block: BlockTypes.Block;\n\n\t\tif (this.state.changed) {\n\t\t\tblock = {\n\t\t\t\t...this.state.block,\n\t\t\t};\n\t\t} else {\n\t\t\tblock = {\n\t\t\t\t...this.props.block,\n\t\t\t};\n\t\t}\n\n\t\tlet subnets = [\n\t\t\t...(block.subnets || []),\n\t\t];\n\n\t\tlet i = subnets.indexOf(subnet);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tsubnets.splice(i, 1);\n\t\tblock.subnets = subnets;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tblock: block,\n\t\t});\n\t}\n\n\tonAddSubnet6 = (): void => {\n\t\tlet block: BlockTypes.Block;\n\n\t\tif (!this.state.addSubnet6) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tblock = {\n\t\t\t\t...this.state.block,\n\t\t\t};\n\t\t} else {\n\t\t\tblock = {\n\t\t\t\t...this.props.block,\n\t\t\t};\n\t\t}\n\n\t\tlet subnets6 = [\n\t\t\t...(block.subnets6 || []),\n\t\t];\n\n\t\tlet addSubnet6 = this.state.addSubnet6.trim();\n\t\tif (subnets6.indexOf(addSubnet6) === -1) {\n\t\t\tsubnets6.push(addSubnet6);\n\t\t}\n\n\t\tsubnets6.sort();\n\t\tblock.subnets6 = subnets6;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddSubnet6: '',\n\t\t\tblock: block,\n\t\t});\n\t}\n\n\tonRemoveSubnet6 = (subnet: string): void => {\n\t\tlet block: BlockTypes.Block;\n\n\t\tif (this.state.changed) {\n\t\t\tblock = {\n\t\t\t\t...this.state.block,\n\t\t\t};\n\t\t} else {\n\t\t\tblock = {\n\t\t\t\t...this.props.block,\n\t\t\t};\n\t\t}\n\n\t\tlet subnets6 = [\n\t\t\t...(block.subnets6 || []),\n\t\t];\n\n\t\tlet i = subnets6.indexOf(subnet);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tsubnets6.splice(i, 1);\n\t\tblock.subnets6 = subnets6;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tblock: block,\n\t\t});\n\t}\n\n\tonAddExclude = (): void => {\n\t\tlet block: BlockTypes.Block;\n\n\t\tif (!this.state.addExclude) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tblock = {\n\t\t\t\t...this.state.block,\n\t\t\t};\n\t\t} else {\n\t\t\tblock = {\n\t\t\t\t...this.props.block,\n\t\t\t};\n\t\t}\n\n\t\tlet excludes = [\n\t\t\t...(block.excludes || []),\n\t\t];\n\n\t\tlet addExclude = this.state.addExclude.trim();\n\t\tif (excludes.indexOf(addExclude) === -1) {\n\t\t\texcludes.push(addExclude);\n\t\t}\n\n\t\texcludes.sort();\n\t\tblock.excludes = excludes;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddExclude: '',\n\t\t\tblock: block,\n\t\t});\n\t}\n\n\tonRemoveExclude = (exclude: string): void => {\n\t\tlet block: BlockTypes.Block;\n\n\t\tif (this.state.changed) {\n\t\t\tblock = {\n\t\t\t\t...this.state.block,\n\t\t\t};\n\t\t} else {\n\t\t\tblock = {\n\t\t\t\t...this.props.block,\n\t\t\t};\n\t\t}\n\n\t\tlet excludes = [\n\t\t\t...(block.excludes || []),\n\t\t];\n\n\t\tlet i = excludes.indexOf(exclude);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\texcludes.splice(i, 1);\n\t\tblock.excludes = excludes;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tblock: block,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet block: BlockTypes.Block = this.state.block ||\n\t\t\tthis.props.block;\n\n\t\tlet subnets: JSX.Element[] = [];\n\t\tfor (let subnet of (block.subnets || [])) {\n\t\t\tsubnets.push(\n\t\t\t\t\n\t\t\t\t\t{subnet}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveSubnet(subnet);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet subnets6: JSX.Element[] = [];\n\t\tfor (let subnet of (block.subnets6 || [])) {\n\t\t\tsubnets6.push(\n\t\t\t\t\n\t\t\t\t\t{subnet}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveSubnet6(subnet);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet excludes: JSX.Element[] = [];\n\t\tfor (let exclude of (block.excludes || [])) {\n\t\t\texcludes.push(\n\t\t\t\t\n\t\t\t\t\t{exclude}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveExclude(exclude);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('type', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('netmask', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tIP Addresses\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{subnets}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddSubnet: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddSubnet}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tIPv6 Addresses\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{subnets6}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddSubnet6: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddSubnet6}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('gateway', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('gateway6', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tIP Excludes\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{excludes}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddExclude: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddExclude}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tblock: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as BlockTypes from '../types/BlockTypes';\nimport BlocksStore from '../stores/BlocksStore';\nimport * as BlockActions from '../actions/BlockActions';\nimport NonState from './NonState';\nimport Block from './Block';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface State {\n\tblocks: BlockTypes.BlocksRo;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\tnoCerts: {\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n};\n\nexport default class Blocks extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tblocks: BlocksStore.blocks,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tBlocksStore.addChangeListener(this.onChange);\n\t\tBlockActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tBlocksStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tblocks: BlocksStore.blocks,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet blocksDom: JSX.Element[] = [];\n\n\t\tthis.state.blocks.forEach((\n\t\t\t\tblock: BlockTypes.BlockRo): void => {\n\t\t\tblocksDom.push();\n\t\t});\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Blocks

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tBlockActions.create(null).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{blocksDom}\n\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n}\n","/// \nexport const SYNC = 'vpc.sync';\nexport const SYNC_NAMES= 'vpc.sync_names';\nexport const TRAVERSE = 'vpc.traverse';\nexport const FILTER = 'vpc.filter';\nexport const CHANGE = 'vpc.change';\n\nexport interface Vpc {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\tvpc_id?: number;\n\tnetwork?: string;\n\tnetwork6?: string;\n\tsubnets?: Subnet[];\n\torganization?: string;\n\tdatacenter?: string;\n\troutes?: Route[];\n}\n\nexport interface Subnet {\n\tid?: string;\n\tname?: string;\n\tnetwork?: string;\n}\n\nexport interface Route {\n\tdestination?: string;\n\ttarget?: string;\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\tnetwork?: string;\n\torganization?: string;\n\tdatacenter?: string;\n}\n\nexport type Vpcs = Vpc[];\n\nexport type VpcRo = Readonly;\nexport type VpcsRo = ReadonlyArray;\n\nexport interface VpcDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tvpc?: Vpc;\n\t\tvpcs?: Vpcs;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass VpcsStore extends EventEmitter {\n\t_vpcs: VpcTypes.VpcsRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: VpcTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._vpcs = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget vpcs(): VpcTypes.VpcsRo {\n\t\treturn this._vpcs;\n\t}\n\n\tget vpcsM(): VpcTypes.Vpcs {\n\t\tlet vpcs: VpcTypes.Vpcs = [];\n\t\tthis._vpcs.forEach((vpc: VpcTypes.VpcRo): void => {\n\t\t\tvpcs.push({\n\t\t\t\t...vpc,\n\t\t\t});\n\t\t});\n\t\treturn vpcs;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): VpcTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tvpc(id: string): VpcTypes.VpcRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._vpcs[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: VpcTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(vpcs: VpcTypes.Vpc[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < vpcs.length; i++) {\n\t\t\tvpcs[i] = Object.freeze(vpcs[i]);\n\t\t\tthis._map[vpcs[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._vpcs = Object.freeze(vpcs);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: VpcTypes.VpcDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase VpcTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase VpcTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase VpcTypes.SYNC:\n\t\t\t\tthis._sync(action.data.vpcs, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new VpcsStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as VpcTypes from '../types/VpcTypes';\nimport VpcsStore from '../stores/VpcsStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\nlet syncNamesId: string;\n\nexport function sync(noLoading?: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader: Loader;\n\tif (!noLoading) {\n\t\tloader = new Loader().loading();\n\t}\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/vpc')\n\t\t\t.query({\n\t\t\t\t...VpcsStore.filter,\n\t\t\t\tpage: VpcsStore.page,\n\t\t\t\tpage_count: VpcsStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (loader) {\n\t\t\t\t\tloader.done();\n\t\t\t\t}\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load vpcs');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: VpcTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tvpcs: res.body.vpcs,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function syncNames(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncNamesId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/vpc')\n\t\t\t.query({\n\t\t\t\tnames: \"true\",\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncNamesId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load vpcs names');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: VpcTypes.SYNC_NAMES,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tvpcs: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: VpcTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: VpcTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: VpcTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(vpc: VpcTypes.Vpc): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/vpc/' + vpc.id)\n\t\t\t.send(vpc)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save vpc');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(vpc: VpcTypes.Vpc): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/vpc')\n\t\t\t.send(vpc)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create vpc');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(vpcId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/vpc/' + vpcId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete vpc');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(vpcIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/vpc')\n\t\t\t.send(vpcIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete vpcs');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: VpcTypes.VpcDispatch) => {\n\tswitch (action.type) {\n\t\tcase VpcTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as VpcTypes from '../types/VpcTypes';\n\ninterface Props {\n\tdisabled?: boolean;\n\troute: VpcTypes.Route;\n\tonChange?: (state: VpcTypes.Route) => void;\n\tonAdd: () => void;\n\tonRemove?: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tinputBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class VpcRoute extends React.Component {\n\tclone(): VpcTypes.Route {\n\t\treturn {\n\t\t\t...this.props.route,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tlet route = this.props.route;\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.destination = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.target = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onAdd();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as VpcTypes from '../types/VpcTypes';\n\ninterface Props {\n\tdisabled?: boolean;\n\tsubnet: VpcTypes.Subnet;\n\tonChange?: (state: VpcTypes.Subnet) => void;\n\tonAdd: () => void;\n\tonRemove?: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tinputBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class VpcSubnet extends React.Component {\n\tclone(): VpcTypes.Subnet {\n\t\treturn {\n\t\t\t...this.props.subnet,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tlet subnet = this.props.subnet;\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.name = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.network = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onAdd();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as VpcActions from '../actions/VpcActions';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport * as PageInfos from './PageInfo';\nimport DatacentersStore from \"../stores/DatacentersStore\";\nimport OrganizationsStore from \"../stores/OrganizationsStore\";\nimport VpcRoute from './VpcRoute';\nimport VpcSubnet from './VpcSubnet';\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tvpc: VpcTypes.VpcRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\taddNetworkRole: string;\n\taddVpc: string;\n\tvpc: VpcTypes.Vpc;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\tlist: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n};\n\nexport default class VpcDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: null,\n\t\t\taddVpc: null,\n\t\t\tvpc: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet vpc: any;\n\n\t\tif (this.state.changed) {\n\t\t\tvpc = {\n\t\t\t\t...this.state.vpc,\n\t\t\t};\n\t\t} else {\n\t\t\tvpc = {\n\t\t\t\t...this.props.vpc,\n\t\t\t};\n\t\t}\n\n\t\tvpc[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tvpc: vpc,\n\t\t});\n\t}\n\n\tonAddSubnet = (i: number): void => {\n\t\tlet vpc: VpcTypes.Vpc;\n\n\t\tif (this.state.changed) {\n\t\t\tvpc = {\n\t\t\t\t...this.state.vpc,\n\t\t\t};\n\t\t} else {\n\t\t\tvpc = {\n\t\t\t\t...this.props.vpc,\n\t\t\t};\n\t\t}\n\n\t\tlet subnets = [\n\t\t\t...(vpc.subnets || []),\n\t\t];\n\n\t\tif (subnets.length === 0) {\n\t\t\tsubnets = [{}];\n\t\t}\n\n\t\tsubnets.splice(i + 1, 0, {} as VpcTypes.Subnet);\n\t\tvpc.subnets = subnets;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tvpc: vpc,\n\t\t});\n\t}\n\n\tonChangeSubnet(i: number, subnet: VpcTypes.Subnet): void {\n\t\tlet vpc: VpcTypes.Vpc;\n\n\t\tif (this.state.changed) {\n\t\t\tvpc = {\n\t\t\t\t...this.state.vpc,\n\t\t\t};\n\t\t} else {\n\t\t\tvpc = {\n\t\t\t\t...this.props.vpc,\n\t\t\t};\n\t\t}\n\n\t\tlet subnets = [\n\t\t\t...(vpc.subnets || []),\n\t\t];\n\n\t\tif (subnets.length === 0) {\n\t\t\tsubnets = [{}];\n\t\t}\n\n\t\tsubnets[i] = subnet;\n\n\t\tvpc.subnets = subnets;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tvpc: vpc,\n\t\t});\n\t}\n\n\tonRemoveSubnet(i: number): void {\n\t\tlet vpc: VpcTypes.Vpc;\n\n\t\tif (this.state.changed) {\n\t\t\tvpc = {\n\t\t\t\t...this.state.vpc,\n\t\t\t};\n\t\t} else {\n\t\t\tvpc = {\n\t\t\t\t...this.props.vpc,\n\t\t\t};\n\t\t}\n\n\t\tlet subnets = [\n\t\t\t...(vpc.subnets || []),\n\t\t];\n\n\t\tif (subnets.length !== 0) {\n\t\t\tsubnets.splice(i, 1);\n\t\t}\n\n\t\tif (subnets.length === 0) {\n\t\t\tsubnets = [{}];\n\t\t}\n\n\t\tvpc.subnets = subnets;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tvpc: vpc,\n\t\t});\n\t}\n\n\tonAddRoute = (i: number): void => {\n\t\tlet vpc: VpcTypes.Vpc;\n\n\t\tif (this.state.changed) {\n\t\t\tvpc = {\n\t\t\t\t...this.state.vpc,\n\t\t\t};\n\t\t} else {\n\t\t\tvpc = {\n\t\t\t\t...this.props.vpc,\n\t\t\t};\n\t\t}\n\n\t\tlet routes = [\n\t\t\t...(vpc.routes || []),\n\t\t];\n\n\t\troutes.splice(i + 1, 0, {} as VpcTypes.Route);\n\t\tvpc.routes = routes;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tvpc: vpc,\n\t\t});\n\t}\n\n\tonChangeRoute(i: number, route: VpcTypes.Route): void {\n\t\tlet vpc: VpcTypes.Vpc;\n\n\t\tif (this.state.changed) {\n\t\t\tvpc = {\n\t\t\t\t...this.state.vpc,\n\t\t\t};\n\t\t} else {\n\t\t\tvpc = {\n\t\t\t\t...this.props.vpc,\n\t\t\t};\n\t\t}\n\n\t\tlet routes = [\n\t\t\t...vpc.routes,\n\t\t];\n\n\t\troutes[i] = route;\n\n\t\tvpc.routes = routes;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tvpc: vpc,\n\t\t});\n\t}\n\n\tonRemoveRoute(i: number): void {\n\t\tlet vpc: VpcTypes.Vpc;\n\n\t\tif (this.state.changed) {\n\t\t\tvpc = {\n\t\t\t\t...this.state.vpc,\n\t\t\t};\n\t\t} else {\n\t\t\tvpc = {\n\t\t\t\t...this.props.vpc,\n\t\t\t};\n\t\t}\n\n\t\tlet routes = [\n\t\t\t...vpc.routes,\n\t\t];\n\n\t\troutes.splice(i, 1);\n\n\t\tvpc.routes = routes;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tvpc: vpc,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tVpcActions.commit(this.state.vpc).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tvpc: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tVpcActions.remove(this.props.vpc.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet vpc: VpcTypes.Vpc = this.state.vpc ||\n\t\t\tthis.props.vpc;\n\n\t\tlet datacenter = DatacentersStore.datacenter(vpc.datacenter);\n\t\tlet datacenterName = datacenter ? datacenter.name : vpc.datacenter;\n\t\tlet org = OrganizationsStore.organization(this.props.vpc.organization);\n\n\t\tlet subnets = (vpc.subnets || []);\n\t\tif (subnets.length === 0) {\n\t\t\tsubnets.push({});\n\t\t}\n\n\t\tlet subnetsElem: JSX.Element[] = [];\n\t\tfor (let i = 0; i < subnets.length; i++) {\n\t\t\tlet index = i;\n\n\t\t\tsubnetsElem.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeSubnet(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonAdd={(): void => {\n\t\t\t\t\t\tthis.onAddSubnet(index);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveSubnet(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\tlet routes: JSX.Element[] = [\n\t\t\t {\n\t\t\t\t\tthis.onAddRoute(-1);\n\t\t\t\t}}\n\t\t\t/>,\n\t\t];\n\t\tif (vpc.routes) {\n\t\t\tfor (let i = 0; i < (vpc.routes || []).length; i++) {\n\t\t\t\tlet index = i;\n\n\t\t\t\troutes.push(\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onChangeRoute(index, state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonAdd={(): void => {\n\t\t\t\t\t\t\tthis.onAddRoute(index);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\t\tthis.onRemoveRoute(index);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet fields: PageInfos.Field[] = [\n\t\t\t{\n\t\t\t\tlabel: 'ID',\n\t\t\t\tvalue: this.props.vpc.id || 'Unknown',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Datacenter',\n\t\t\t\tvalue: datacenterName,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Organization',\n\t\t\t\tvalue: org ? org.name : this.props.vpc.organization,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'VLAN Number',\n\t\t\t\tvalue: this.props.vpc.vpc_id || 'Unknown',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Private IPv6 Network',\n\t\t\t\tvalue: this.props.vpc.network6 || 'Unknown',\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t];\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('network', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{subnetsElem}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{routes}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tvpc: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport DatacentersStore from '../stores/DatacentersStore';\nimport VpcDetailed from './VpcDetailed';\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tvpc: VpcTypes.VpcRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class Vpc extends React.Component {\n\trender(): JSX.Element {\n\t\tlet vpc = this.props.vpc;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    ;\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet orgName = '';\n\t\tif (vpc.organization) {\n\t\t\tlet org = OrganizationsStore.organization(vpc.organization);\n\t\t\torgName = org ? org.name : vpc.organization;\n\t\t} else {\n\t\t\torgName = 'Unknown';\n\t\t}\n\n\t\tlet datacenter = DatacentersStore.datacenter(vpc.datacenter);\n\t\tlet datacenterName = datacenter ? datacenter.name : vpc.datacenter;\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{vpc.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{orgName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{datacenterName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{vpc.network}\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as VpcTypes from '../types/VpcTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport * as DatacenterTypes from \"../types/DatacenterTypes\";\n\ninterface Props {\n\tfilter: VpcTypes.Filter;\n\tonFilter: (filter: VpcTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class VpcsFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet datacentersSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.datacenters && this.props.datacenters.length) {\n\t\t\tfor (let datacenter of this.props.datacenters) {\n\t\t\t\tdatacentersSelect.push(\n\t\t\t\t\t{datacenter.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.network = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.network;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.datacenter;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.datacenter = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{datacentersSelect}\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport VpcsStore from '../stores/VpcsStore';\nimport * as VpcActions from '../actions/VpcActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class VpcsPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: VpcsStore.page,\n\t\t\tpageCount: VpcsStore.pageCount,\n\t\t\tpages: VpcsStore.pages,\n\t\t\tcount: VpcsStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tVpcsStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tVpcsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: VpcsStore.page,\n\t\t\tpageCount: VpcsStore.pageCount,\n\t\t\tpages: VpcsStore.pages,\n\t\t\tcount: VpcsStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tVpcActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tVpcActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tVpcActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tVpcActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tVpcActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport VpcsStore from '../stores/VpcsStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as VpcActions from '../actions/VpcActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport Vpc from './Vpc';\nimport VpcsFilter from './VpcsFilter';\nimport VpcsPage from './VpcsPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport DatacentersStore from \"../stores/DatacentersStore\";\nimport * as DatacenterActions from \"../actions/DatacenterActions\";\nimport * as DatacenterTypes from \"../types/DatacenterTypes\";\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tvpcs: VpcTypes.VpcsRo;\n\tfilter: VpcTypes.Filter;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tnetwork: string;\n\tdatacenter: string;\n\torganization: string;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tgroupBox: {\n\t\tmargin: '16px 0 0 0',\n\t\twidth: '100%',\n\t\tmaxWidth: '420px',\n\t} as React.CSSProperties,\n\tgroupBoxUser: {\n\t\tmargin: '16px 0 0 0',\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '107px',\n\t} as React.CSSProperties,\n\tselect: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tselectFirst: {\n\t\twidth: '100%',\n\t\tborderTopLeftRadius: '3px',\n\t\tborderBottomLeftRadius: '3px',\n\t} as React.CSSProperties,\n\tselectInner: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tselectBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmargin: '8px 8px 0 0',\n\t} as React.CSSProperties,\n};\n\nexport default class Vpcs extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tvpcs: VpcsStore.vpcs,\n\t\t\tfilter: VpcsStore.filter,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tnetwork: '',\n\t\t\torganization: '',\n\t\t\tdatacenter: '',\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tVpcsStore.addChangeListener(this.onChange);\n\t\tDatacentersStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tVpcActions.sync();\n\t\tDatacenterActions.sync();\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tVpcsStore.removeChangeListener(this.onChange);\n\t\tDatacentersStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet vpcs = VpcsStore.vpcs;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tvpcs.forEach((vpc: VpcTypes.Vpc): void => {\n\t\t\tif (curSelected[vpc.id]) {\n\t\t\t\tselected[vpc.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[vpc.id]) {\n\t\t\t\topened[vpc.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tvpcs: vpcs,\n\t\t\tfilter: VpcsStore.filter,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tVpcActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet vpcsDom: JSX.Element[] = [];\n\n\t\tlet hasOrganizations = false;\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\tif (this.state.organizations.length) {\n\t\t\thasOrganizations = true;\n\t\t\tfor (let organization of this.state.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\torganizationsSelect.push(\n\t\t\t\tNo Organizations,\n\t\t\t);\n\t\t}\n\n\t\tlet hasDatacenters = false;\n\t\tlet datacentersSelect: JSX.Element[] = [];\n\t\tif (this.state.datacenters.length) {\n\t\t\thasDatacenters = true;\n\t\t\tfor (let datacenter of this.state.datacenters) {\n\t\t\t\tdatacentersSelect.push(\n\t\t\t\t\t{datacenter.name},\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tdatacentersSelect.push(\n\t\t\t\tNo Datacenters,\n\t\t\t);\n\t\t}\n\n\t\tthis.state.vpcs.forEach((\n\t\t\t\tvpc: VpcTypes.VpcRo): void => {\n\t\t\tvpcsDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet vpcs = this.state.vpcs;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < vpcs.length; i++) {\n\t\t\t\t\t\t\tlet usr = vpcs[i];\n\n\t\t\t\t\t\t\tif (usr.id === vpc.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[vpcs[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: vpc.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[vpc.id]) {\n\t\t\t\t\t\tdelete selected[vpc.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[vpc.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: vpc.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[vpc.id]) {\n\t\t\t\t\t\tdelete opened[vpc.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[vpc.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    VPCs

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tVpcActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tVpcActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tnetwork: evt.target.value,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdatacenter: evt.target.value,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{datacentersSelect}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tVpcActions.create({\n\t\t\t\t\t\t\t\t\t\tid: null,\n\t\t\t\t\t\t\t\t\t\tnetwork: this.state.network,\n\t\t\t\t\t\t\t\t\t\torganization: this.state.organization ||\n\t\t\t\t\t\t\t\t\t\t\tthis.state.organizations[0].id,\n\t\t\t\t\t\t\t\t\t\tdatacenter: this.state.datacenter ||\n\t\t\t\t\t\t\t\t\t\t\tthis.state.datacenters[0].id,\n\t\t\t\t\t\t\t\t\t}).then((): void => {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tnetwork: '',\n\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>New\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tVpcActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t\tdatacenters={this.state.datacenters}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{vpcsDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nexport const SYNC = 'domain.sync';\nexport const SYNC_NAME = 'domain.sync_name';\nexport const TRAVERSE = 'domain.traverse';\nexport const FILTER = 'domain.filter';\nexport const CHANGE = 'domain.change';\n\nexport interface Domain {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\torganization?: string;\n\ttype?: string;\n\taws_id?: string;\n\taws_secret?: string;\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\tnetwork_role?: string;\n\torganization?: string;\n}\n\nexport type Domains = Domain[];\n\nexport type DomainRo = Readonly;\nexport type DomainsRo = ReadonlyArray;\n\nexport interface DomainDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tdomain?: Domain;\n\t\tdomains?: Domains;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass DomainsStore extends EventEmitter {\n\t_domains: DomainTypes.DomainsRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: DomainTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._domains = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget domains(): DomainTypes.DomainsRo {\n\t\treturn this._domains;\n\t}\n\n\tget domainsM(): DomainTypes.Domains {\n\t\tlet domains: DomainTypes.Domains = [];\n\t\tthis._domains.forEach((domain: DomainTypes.DomainRo): void => {\n\t\t\tdomains.push({\n\t\t\t\t...domain,\n\t\t\t});\n\t\t});\n\t\treturn domains;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): DomainTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tdomain(id: string): DomainTypes.DomainRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._domains[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: DomainTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(domains: DomainTypes.Domain[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < domains.length; i++) {\n\t\t\tdomains[i] = Object.freeze(domains[i]);\n\t\t\tthis._map[domains[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._domains = Object.freeze(domains);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: DomainTypes.DomainDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase DomainTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase DomainTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase DomainTypes.SYNC:\n\t\t\t\tthis._sync(action.data.domains, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new DomainsStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as DomainTypes from '../types/DomainTypes';\nimport DomainsStore from '../stores/DomainsStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\nlet syncNamesId: string;\n\nexport function sync(noLoading?: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader: Loader;\n\tif (!noLoading) {\n\t\tloader = new Loader().loading();\n\t}\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/domain')\n\t\t\t.query({\n\t\t\t\t...DomainsStore.filter,\n\t\t\t\tpage: DomainsStore.page,\n\t\t\t\tpage_count: DomainsStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (loader) {\n\t\t\t\t\tloader.done();\n\t\t\t\t}\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load domains');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: DomainTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tdomains: res.body.domains,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function syncName(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncNamesId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/domain')\n\t\t\t.query({\n\t\t\t\tnames: true,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncNamesId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load domain names');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: DomainTypes.SYNC_NAME,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tdomains: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: DomainTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: DomainTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: DomainTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(domain: DomainTypes.Domain): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/domain/' + domain.id)\n\t\t\t.send(domain)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save domain');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(domain: DomainTypes.Domain): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/domain')\n\t\t\t.send(domain)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create domain');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(domainId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/domain/' + domainId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete domain');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(domainIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/domain')\n\t\t\t.send(domainIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete domains');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: DomainTypes.DomainDispatch) => {\n\tswitch (action.type) {\n\t\tcase DomainTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as DomainActions from '../actions/DomainActions';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport OrganizationsStore from \"../stores/OrganizationsStore\";\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport PageSelect from \"./PageSelect\";\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdomain: DomainTypes.DomainRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tdomain: DomainTypes.Domain;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\trules: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n};\n\nexport default class DomainDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tdomain: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet domain: any;\n\n\t\tif (this.state.changed) {\n\t\t\tdomain = {\n\t\t\t\t...this.state.domain,\n\t\t\t};\n\t\t} else {\n\t\t\tdomain = {\n\t\t\t\t...this.props.domain,\n\t\t\t};\n\t\t}\n\n\t\tdomain[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdomain: domain,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDomainActions.commit(this.state.domain).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tdomain: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDomainActions.remove(this.props.domain.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet domain: DomainTypes.Domain = this.state.domain ||\n\t\t\tthis.props.domain;\n\t\tlet org = OrganizationsStore.organization(this.props.domain.organization);\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('type', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('aws_id', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('aws_secret', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tdomain: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport DomainDetailed from './DomainDetailed';\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdomain: DomainTypes.DomainRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class Domain extends React.Component {\n\trender(): JSX.Element {\n\t\tlet domain = this.props.domain;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    ;\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet orgName = '';\n\t\tif (domain.organization) {\n\t\t\tlet org = OrganizationsStore.organization(domain.organization);\n\t\t\torgName = org ? org.name : domain.organization;\n\t\t} else {\n\t\t\torgName = 'Node Domain';\n\t\t}\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{domain.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{orgName}\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as DomainTypes from '../types/DomainTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\n\ninterface Props {\n\tfilter: DomainTypes.Filter;\n\tonFilter: (filter: DomainTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class DomainsFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport DomainsStore from '../stores/DomainsStore';\nimport * as DomainActions from '../actions/DomainActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class DomainsPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: DomainsStore.page,\n\t\t\tpageCount: DomainsStore.pageCount,\n\t\t\tpages: DomainsStore.pages,\n\t\t\tcount: DomainsStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tDomainsStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tDomainsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: DomainsStore.page,\n\t\t\tpageCount: DomainsStore.pageCount,\n\t\t\tpages: DomainsStore.pages,\n\t\t\tcount: DomainsStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tDomainActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tDomainActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tDomainActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tDomainActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tDomainActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from \"../Constants\";\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport DomainsStore from '../stores/DomainsStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as DomainActions from '../actions/DomainActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport Domain from './Domain';\nimport DomainsFilter from './DomainsFilter';\nimport DomainsPage from './DomainsPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tdomains: DomainTypes.DomainsRo;\n\tfilter: DomainTypes.Filter;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\torganization: string;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tgroupBox: {\n\t\tmargin: '16px 0 0 8px',\n\t\twidth: '100%',\n\t\tmaxWidth: '200px',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tselectFirst: {\n\t\twidth: '100%',\n\t\tborderTopLeftRadius: '3px',\n\t\tborderBottomLeftRadius: '3px',\n\t} as React.CSSProperties,\n\tselectInner: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tselectBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Domains extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdomains: DomainsStore.domains,\n\t\t\tfilter: DomainsStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\torganization: '',\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tDomainsStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tDomainActions.sync();\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tDomainsStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet domains = DomainsStore.domains;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tdomains.forEach((domain: DomainTypes.Domain): void => {\n\t\t\tif (curSelected[domain.id]) {\n\t\t\t\tselected[domain.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[domain.id]) {\n\t\t\t\topened[domain.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdomains: domains,\n\t\t\tfilter: DomainsStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDomainActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet domainsDom: JSX.Element[] = [];\n\n\t\tlet hasOrganizations = false;\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\tif (this.state.organizations.length) {\n\t\t\thasOrganizations = true;\n\t\t\tfor (let organization of this.state.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\torganizationsSelect.push(\n\t\t\t\tNo Organizations,\n\t\t\t);\n\t\t}\n\n\t\tthis.state.domains.forEach((\n\t\t\t\tdomain: DomainTypes.DomainRo): void => {\n\t\t\tdomainsDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet domains = this.state.domains;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < domains.length; i++) {\n\t\t\t\t\t\t\tlet usr = domains[i];\n\n\t\t\t\t\t\t\tif (usr.id === domain.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[domains[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: domain.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[domain.id]) {\n\t\t\t\t\t\tdelete selected[domain.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[domain.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: domain.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[domain.id]) {\n\t\t\t\t\t\tdelete opened[domain.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[domain.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let domainId of Object.keys(this.state.selected)) {\n\t\t\tlet domain = DomainsStore.domain(domainId);\n\t\t\tif (domain) {\n\t\t\t\tselectedNames.push(domain.name || domainId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(domainId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Domains

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tDomainActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tDomainActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tDomainActions.create({\n\t\t\t\t\t\t\t\t\tid: null,\n\t\t\t\t\t\t\t\t}).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tDomainActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{domainsDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nexport const SYNC = 'balancer.sync';\nexport const TRAVERSE = 'balancer.traverse';\nexport const FILTER = 'balancer.filter';\nexport const CHANGE = 'balancer.change';\n\nexport interface Domain {\n\tdomain?: string;\n\thost?: string;\n}\n\nexport interface Backend {\n\tprotocol?: string;\n\thostname?: string;\n\tport?: number;\n}\n\nexport interface State {\n\ttimestamp?: string;\n\trequests?: number;\n\tretries?: number;\n\twebsockets?: number;\n\tonline?: string[];\n\tunknown_high?: string[];\n\tunknown_mid?: string[];\n\tunknown_low?: string[];\n\toffline?: string[];\n}\n\nexport interface Balancer {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\tstate?: boolean;\n\ttype?: string;\n\torganization?: string;\n\tdatacenter?: string;\n\tcertificates?: string[];\n\twebsockets?: boolean;\n\tdomains?: Domain[];\n\tbackends?: Backend[];\n\tcheck_path?: string;\n\tstates?: {[key: string]: State};\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\torganization?: string;\n\tdatacenter?: string;\n}\n\nexport type Balancers = Balancer[];\n\nexport type BalancerRo = Readonly;\nexport type BalancersRo = ReadonlyArray;\n\nexport interface BalancerDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tbalancer?: Balancer;\n\t\tbalancers?: Balancers;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as BalancerTypes from '../types/BalancerTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass BalancersStore extends EventEmitter {\n\t_balancers: BalancerTypes.BalancersRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: BalancerTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._balancers = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget balancers(): BalancerTypes.BalancersRo {\n\t\treturn this._balancers;\n\t}\n\n\tget balancersM(): BalancerTypes.Balancers {\n\t\tlet balancers: BalancerTypes.Balancers = [];\n\t\tthis._balancers.forEach((balancer: BalancerTypes.BalancerRo): void => {\n\t\t\tbalancers.push({\n\t\t\t\t...balancer,\n\t\t\t});\n\t\t});\n\t\treturn balancers;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): BalancerTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tbalancer(id: string): BalancerTypes.BalancerRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._balancers[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: BalancerTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(balancers: BalancerTypes.Balancer[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < balancers.length; i++) {\n\t\t\tbalancers[i] = Object.freeze(balancers[i]);\n\t\t\tthis._map[balancers[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._balancers = Object.freeze(balancers);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: BalancerTypes.BalancerDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase BalancerTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase BalancerTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase BalancerTypes.SYNC:\n\t\t\t\tthis._sync(action.data.balancers, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new BalancersStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as BalancerTypes from '../types/BalancerTypes';\nimport BalancersStore from '../stores/BalancersStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(noLoading?: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader: Loader;\n\tif (!noLoading) {\n\t\tloader = new Loader().loading();\n\t}\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/balancer')\n\t\t\t.query({\n\t\t\t\t...BalancersStore.filter,\n\t\t\t\tpage: BalancersStore.page,\n\t\t\t\tpage_count: BalancersStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (loader) {\n\t\t\t\t\tloader.done();\n\t\t\t\t}\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load balancers');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: BalancerTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tbalancers: res.body.balancers,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: BalancerTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: BalancerTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: BalancerTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(balancer: BalancerTypes.Balancer): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/balancer/' + balancer.id)\n\t\t\t.send(balancer)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save balancer');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(balancer: BalancerTypes.Balancer): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/balancer')\n\t\t\t.send(balancer)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create balancer');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(balancerId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/balancer/' + balancerId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete balancer');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(balancerIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/balancer')\n\t\t\t.send(balancerIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete balancers');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: BalancerTypes.BalancerDispatch) => {\n\tswitch (action.type) {\n\t\tcase BalancerTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as BalancerTypes from '../types/BalancerTypes';\n\ninterface Props {\n\tdomain: BalancerTypes.Domain;\n\tonChange: (state: BalancerTypes.Domain) => void;\n\tonRemove: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tdomain: {\n\t\twidth: '100%',\n\t\tborderRadius: '0 3px 3px 0',\n\t} as React.CSSProperties,\n\tdomainBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class BalancerDomain extends React.Component {\n\tclone(): BalancerTypes.Domain {\n\t\treturn {\n\t\t\t...this.props.domain,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tlet domain = this.props.domain;\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\tstate.domain = evt.target.value;\n\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\tstate.host = evt.target.value;\n\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as BalancerTypes from '../types/BalancerTypes';\n\ninterface Props {\n\tbackend: BalancerTypes.Backend;\n\tonChange: (state: BalancerTypes.Backend) => void;\n\tonRemove: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\thostname: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\thostnameBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '0 1 auto',\n\t\twidth: '52px',\n\t\tborderRadius: '0 3px 3px 0',\n\t} as React.CSSProperties,\n};\n\nexport default class BalancerBackend extends React.Component {\n\tclone(): BalancerTypes.Backend {\n\t\treturn {\n\t\t\t...this.props.backend,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tlet backend = this.props.backend;\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\tstate.protocol = evt.target.value;\n\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\tstate.hostname = evt.target.value;\n\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.port = parseInt(evt.target.value, 10);\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as BalancerTypes from '../types/BalancerTypes';\nimport * as BalancerActions from '../actions/BalancerActions';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport BalancerDomain from './BalancerDomain';\nimport BalancerBackend from './BalancerBackend';\nimport CertificatesStore from '../stores/CertificatesStore';\nimport PageInput from './PageInput';\nimport PageSelect from './PageSelect';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport PageSelectButton from \"./PageSelectButton\";\nimport PageSwitch from \"./PageSwitch\";\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tcertificates: CertificateTypes.CertificatesRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tbalancer: BalancerTypes.BalancerRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tbalancer: BalancerTypes.Balancer;\n\taddCert: string;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\trules: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n};\n\nexport default class BalancerDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tbalancer: null,\n\t\t\taddCert: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet balancer: any;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tbalancer[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonAddBackend = (): void => {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet backends = [\n\t\t\t...balancer.backends,\n\t\t\t{\n\t\t\t\tprotocol: 'http',\n\t\t\t\thostname: '',\n\t\t\t\tport: 80,\n\t\t\t},\n\t\t];\n\n\t\tbalancer.backends = backends;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonChangeBackend(i: number, state: BalancerTypes.Backend): void {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet backends = [\n\t\t\t...balancer.backends,\n\t\t];\n\n\t\tbackends[i] = state;\n\n\t\tbalancer.backends = backends;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonRemoveBackend(i: number): void {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet backends = [\n\t\t\t...balancer.backends,\n\t\t];\n\n\t\tbackends.splice(i, 1);\n\n\t\tbalancer.backends = backends;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonAddCert = (): void => {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (!this.state.addCert && !this.props.certificates.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet certId = this.state.addCert;\n\t\tif (!certId) {\n\t\t\tfor (let certificate of this.props.certificates) {\n\t\t\t\tif (certificate.organization !== balancer.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tcertId = certificate.id;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tlet certificates = [\n\t\t\t...(balancer.certificates || []),\n\t\t];\n\n\t\tif (certificates.indexOf(certId) === -1) {\n\t\t\tcertificates.push(certId);\n\t\t}\n\n\t\tcertificates.sort();\n\n\t\tbalancer.certificates = certificates;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonRemoveCert = (certId: string): void => {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet certificates = [\n\t\t\t...(balancer.certificates || []),\n\t\t];\n\n\t\tlet i = certificates.indexOf(certId);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tcertificates.splice(i, 1);\n\n\t\tbalancer.certificates = certificates;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonAddDomain = (): void => {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet domains = [\n\t\t\t...balancer.domains,\n\t\t\t{},\n\t\t];\n\n\t\tbalancer.domains = domains;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonChangeDomain(i: number, state: BalancerTypes.Domain): void {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet domains = [\n\t\t\t...balancer.domains,\n\t\t];\n\n\t\tdomains[i] = state;\n\n\t\tbalancer.domains = domains;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonRemoveDomain(i: number): void {\n\t\tlet balancer: BalancerTypes.Balancer;\n\n\t\tif (this.state.changed) {\n\t\t\tbalancer = {\n\t\t\t\t...this.state.balancer,\n\t\t\t};\n\t\t} else {\n\t\t\tbalancer = {\n\t\t\t\t...this.props.balancer,\n\t\t\t};\n\t\t}\n\n\t\tlet domains = [\n\t\t\t...balancer.domains,\n\t\t];\n\n\t\tdomains.splice(i, 1);\n\n\t\tbalancer.domains = domains;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tbalancer: balancer,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tBalancerActions.commit(this.state.balancer).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tbalancer: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tBalancerActions.remove(this.props.balancer.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet balancer: BalancerTypes.Balancer = this.state.balancer ||\n\t\t\tthis.props.balancer;\n\n\t\tlet hasOrganizations = false;\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\tif (this.props.organizations.length) {\n\t\t\torganizationsSelect.push(\n\t\t\t\t,\n\t\t\t);\n\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\thasOrganizations = true;\n\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasOrganizations) {\n\t\t\torganizationsSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\tlet domains: JSX.Element[] = [];\n\t\tfor (let i = 0; i < balancer.domains.length; i++) {\n\t\t\tlet index = i;\n\n\t\t\tdomains.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeDomain(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveDomain(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\tlet backends: JSX.Element[] = [];\n\t\tfor (let i = 0; i < balancer.backends.length; i++) {\n\t\t\tlet index = i;\n\n\t\t\tbackends.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeBackend(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveBackend(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\tlet certificates: JSX.Element[] = [];\n\t\tfor (let certId of (balancer.certificates || [])) {\n\t\t\tlet cert = CertificatesStore.certificate(certId);\n\t\t\tif (!cert) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcertificates.push(\n\t\t\t\t\n\t\t\t\t\t{cert.name}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveCert(cert.id);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet hasCertificates = false;\n\t\tlet certificatesSelect: JSX.Element[] = [];\n\t\tif (this.props.certificates.length) {\n\t\t\tfor (let certificate of this.props.certificates) {\n\t\t\t\tif (certificate.organization !== balancer.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\thasCertificates = true;\n\n\t\t\t\tcertificatesSelect.push(\n\t\t\t\t\t,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasCertificates) {\n\t\t\tcertificatesSelect = [\n\t\t\t\t,\n\t\t\t];\n\t\t}\n\n\t\tlet hasDatacenters = false;\n\t\tlet datacentersSelect: JSX.Element[] = [];\n\t\tif (this.props.datacenters.length) {\n\t\t\tdatacentersSelect.push(\n\t\t\t\t);\n\n\t\t\thasDatacenters = true;\n\t\t\tfor (let datacenter of this.props.datacenters) {\n\t\t\t\tdatacentersSelect.push(\n\t\t\t\t\t{datacenter.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasDatacenters) {\n\t\t\tdatacentersSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\tlet requests = 0;\n\t\tlet retries = 0;\n\t\tlet websockets = 0;\n\t\tlet states: string[] = [];\n\t\tlet statesMap: {[index: string]: number} = {};\n\t\tlet online: string[] = [];\n\t\tlet unknownHigh: string[] = [];\n\t\tlet unknownMid: string[] = [];\n\t\tlet unknownLow: string[] = [];\n\t\tlet offline: string[] = [];\n\t\tlet backendsClasses: string[] = [];\n\n\t\tif (this.props.balancer.state && balancer.states) {\n\t\t\tfor (let key in balancer.states) {\n\t\t\t\tif (!balancer.states.hasOwnProperty(key)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet state = balancer.states[key];\n\n\t\t\t\trequests += state.requests || 0;\n\t\t\t\tretries += state.retries || 0;\n\t\t\t\twebsockets += state.websockets || 0;\n\n\t\t\t\tfor (let backend of state.offline) {\n\t\t\t\t\tlet curState = statesMap[backend];\n\t\t\t\t\tif (curState === undefined || curState > 1) {\n\t\t\t\t\t\tstatesMap[backend] = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let backend of state.unknown_low) {\n\t\t\t\t\tlet curState = statesMap[backend];\n\t\t\t\t\tif (curState === undefined || curState > 2) {\n\t\t\t\t\t\tstatesMap[backend] = 2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let backend of state.unknown_mid) {\n\t\t\t\t\tlet curState = statesMap[backend];\n\t\t\t\t\tif (curState === undefined || curState > 3) {\n\t\t\t\t\t\tstatesMap[backend] = 3;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let backend of state.unknown_high) {\n\t\t\t\t\tlet curState = statesMap[backend];\n\t\t\t\t\tif (curState === undefined || curState > 4) {\n\t\t\t\t\t\tstatesMap[backend] = 4;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (let backend of state.online) {\n\t\t\t\t\tlet curState = statesMap[backend];\n\t\t\t\t\tif (curState === undefined) {\n\t\t\t\t\t\tstatesMap[backend] = 5;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (let backend in statesMap) {\n\t\t\t\tif (!statesMap.hasOwnProperty(backend)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tlet state = statesMap[backend];\n\n\t\t\t\tswitch (state) {\n\t\t\t\t\tcase 5:\n\t\t\t\t\t\tonline.push(backend);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 4:\n\t\t\t\t\t\tunknownHigh.push(backend);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 3:\n\t\t\t\t\t\tunknownMid.push(backend);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\tunknownLow.push(backend);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\toffline.push(backend);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tonline.sort();\n\t\t\tfor (let backend of online) {\n\t\t\t\tstates.push(backend + ' - Online');\n\t\t\t\tbackendsClasses.push('bp3-text-intent-success');\n\t\t\t}\n\t\t\tunknownHigh.sort();\n\t\t\tfor (let backend of unknownHigh) {\n\t\t\t\tstates.push(backend + ' - Unknown High');\n\t\t\t\tbackendsClasses.push('bp3-text-intent-warning');\n\t\t\t}\n\t\t\tunknownMid.sort();\n\t\t\tfor (let backend of unknownMid) {\n\t\t\t\tstates.push(backend + ' - Unknown Mid');\n\t\t\t\tbackendsClasses.push('bp3-text-intent-warning');\n\t\t\t}\n\t\t\tunknownLow.sort();\n\t\t\tfor (let backend of unknownLow) {\n\t\t\t\tstates.push(backend + ' - Unknown Low');\n\t\t\t\tbackendsClasses.push('bp3-text-intent-warning');\n\t\t\t}\n\t\t\toffline.sort();\n\t\t\tfor (let backend of offline) {\n\t\t\t\tstates.push(backend + ' - Offline');\n\t\t\t\tbackendsClasses.push('bp3-text-intent-danger');\n\t\t\t}\n\t\t}\n\n\t\tif (!states.length) {\n\t\t\tstates = ['-'];\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('state', !balancer.state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('type', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('datacenter', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{datacentersSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{domains}\n\t\t\t\t\t\n\t\t\t\t\t\tAdd Domain\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{backends}\n\t\t\t\t\t\n\t\t\t\t\t\tAdd Backend\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('websockets', !balancer.websockets);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('organization', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tCertificates\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{certificates}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddCert: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddCert}\n\t\t\t\t\t>\n\t\t\t\t\t\t{certificatesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('check_path', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tbalancer: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as BalancerTypes from '../types/BalancerTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport DatacentersStore from '../stores/DatacentersStore';\nimport BalancerDetailed from './BalancerDetailed';\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tcertificates: CertificateTypes.CertificatesRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tbalancer: BalancerTypes.BalancerRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '2px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class Balancer extends React.Component {\n\trender(): JSX.Element {\n\t\tlet balancer = this.props.balancer;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    ;\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet orgName = '';\n\t\tif (!MiscUtils.objectIdNil(balancer.organization)) {\n\t\t\tlet org = OrganizationsStore.organization(balancer.organization);\n\t\t\torgName = org ? org.name : balancer.organization;\n\t\t}\n\n\t\tlet datacenter = DatacentersStore.datacenter(\n\t\t\tthis.props.balancer.datacenter);\n\t\tlet datacenterName = datacenter ? datacenter.name : null;\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{balancer.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{orgName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{datacenterName}\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport BalancersStore from '../stores/BalancersStore';\nimport * as BalancerActions from '../actions/BalancerActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class BalancersPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: BalancersStore.page,\n\t\t\tpageCount: BalancersStore.pageCount,\n\t\t\tpages: BalancersStore.pages,\n\t\t\tcount: BalancersStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tBalancersStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tBalancersStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: BalancersStore.page,\n\t\t\tpageCount: BalancersStore.pageCount,\n\t\t\tpages: BalancersStore.pages,\n\t\t\tcount: BalancersStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tBalancerActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tBalancerActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tBalancerActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tBalancerActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tBalancerActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as BalancerTypes from '../types/BalancerTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\n\ninterface Props {\n\tfilter: BalancerTypes.Filter;\n\tonFilter: (filter: BalancerTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class BalancersFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as BalancerTypes from '../types/BalancerTypes';\nimport * as CertificateTypes from '../types/CertificateTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport BalancersStore from '../stores/BalancersStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport DatacentersStore from '../stores/DatacentersStore';\nimport * as BalancerActions from '../actions/BalancerActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport * as DatacenterActions from '../actions/DatacenterActions';\nimport Balancer from './Balancer';\nimport BalancersPage from './BalancersPage';\nimport BalancersFilter from './BalancersFilter';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\nimport CertificatesStore from \"../stores/CertificatesStore\";\nimport * as CertificateActions from \"../actions/CertificateActions\";\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tbalancers: BalancerTypes.BalancersRo;\n\tfilter: BalancerTypes.Filter;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tcertificates: CertificateTypes.CertificatesRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Balancers extends React.Component<{}, State> {\n\tinterval: NodeJS.Timer;\n\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tbalancers: BalancersStore.balancers,\n\t\t\tfilter: BalancersStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tcertificates: CertificatesStore.certificates,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tBalancersStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tCertificatesStore.addChangeListener(this.onChange);\n\t\tDatacentersStore.addChangeListener(this.onChange);\n\t\tBalancerActions.sync();\n\t\tOrganizationActions.sync();\n\t\tCertificateActions.sync();\n\t\tDatacenterActions.sync();\n\n\t\tthis.interval = setInterval(() => {\n\t\t\tBalancerActions.sync(true);\n\t\t}, 5000);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tBalancersStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t\tCertificatesStore.removeChangeListener(this.onChange);\n\t\tDatacentersStore.removeChangeListener(this.onChange);\n\t\tclearInterval(this.interval);\n\t}\n\n\tonChange = (): void => {\n\t\tlet balancers = BalancersStore.balancers;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tbalancers.forEach((balancer: BalancerTypes.Balancer): void => {\n\t\t\tif (curSelected[balancer.id]) {\n\t\t\t\tselected[balancer.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[balancer.id]) {\n\t\t\t\topened[balancer.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tbalancers: balancers,\n\t\t\tfilter: BalancersStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tcertificates: CertificatesStore.certificates,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tBalancerActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet balancersDom: JSX.Element[] = [];\n\n\t\tthis.state.balancers.forEach((\n\t\t\t\tbalancer: BalancerTypes.BalancerRo): void => {\n\t\t\tbalancersDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet balancers = this.state.balancers;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < balancers.length; i++) {\n\t\t\t\t\t\t\tlet usr = balancers[i];\n\n\t\t\t\t\t\t\tif (usr.id === balancer.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[balancers[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: balancer.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[balancer.id]) {\n\t\t\t\t\t\tdelete selected[balancer.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[balancer.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: balancer.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[balancer.id]) {\n\t\t\t\t\t\tdelete opened[balancer.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[balancer.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let instId of Object.keys(this.state.selected)) {\n\t\t\tlet inst = BalancersStore.balancer(instId);\n\t\t\tif (inst) {\n\t\t\t\tselectedNames.push(inst.name || instId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(instId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Balancers

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tBalancerActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tBalancerActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tBalancerActions.create({\n\t\t\t\t\t\t\t\t} as BalancerTypes.Balancer).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tBalancerActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{balancersDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as StorageTypes from '../types/StorageTypes';\nimport * as StorageActions from '../actions/StorageActions';\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport PageSelect from './PageSelect';\nimport PageSwitch from './PageSwitch';\nimport ConfirmButton from './ConfirmButton';\nimport * as InstanceActions from \"../actions/InstanceActions\";\nimport * as Alert from \"../Alert\";\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\tstorage: StorageTypes.StorageRo;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tstorage: StorageTypes.Storage;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\tremove: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tcontrolButton: {\n\t\tmarginRight: '10px',\n\t} as React.CSSProperties,\n};\n\nexport default class Storage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tstorage: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet storage: any;\n\n\t\tif (this.state.changed) {\n\t\t\tstorage = {\n\t\t\t\t...this.state.storage,\n\t\t\t};\n\t\t} else {\n\t\t\tstorage = {\n\t\t\t\t...this.props.storage,\n\t\t\t};\n\t\t}\n\n\t\tstorage[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tstorage: storage,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tStorageActions.commit(this.state.storage).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tstorage: null,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonSync = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tStorageActions.commit(this.props.storage).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tAlert.success('Storage sync started');\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tStorageActions.remove(this.props.storage.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet storage: StorageTypes.Storage = this.state.storage ||\n\t\t\tthis.props.storage;\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('endpoint', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('bucket', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('type', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('access_key', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('secret_key', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('insecure', !storage.insecure);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tstorage: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t>\n\t\t\t\t {\n\t\t\t\t\t\tthis.onSync();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as StorageTypes from '../types/StorageTypes';\nimport StoragesStore from '../stores/StoragesStore';\nimport * as StorageActions from '../actions/StorageActions';\nimport NonState from './NonState';\nimport Storage from './Storage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\n\ninterface State {\n\tstorages: StorageTypes.StoragesRo;\n\tdisabled: boolean;\n}\n\nconst css = {\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\tnoCerts: {\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n};\n\nexport default class Storages extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tstorages: StoragesStore.storages,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tStoragesStore.addChangeListener(this.onChange);\n\t\tStorageActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tStoragesStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tstorages: StoragesStore.storages,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet storagesDom: JSX.Element[] = [];\n\n\t\tthis.state.storages.forEach((\n\t\t\t\tstorage: StorageTypes.StorageRo): void => {\n\t\t\tstoragesDom.push();\n\t\t});\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Storages

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tStorageActions.create(null).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t
    \n\t\t\t\t{storagesDom}\n\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n}\n","/// \nexport const SYNC = 'image.sync';\nexport const SYNC_DATACENTER = 'image.sync_datacenter';\nexport const TRAVERSE = 'image.traverse';\nexport const FILTER = 'image.filter';\nexport const CHANGE = 'image.change';\n\nexport interface Image {\n\tid?: string;\n\tdisk_id?: string;\n\tname?: string;\n\tcomment?: string;\n\torganization?: string;\n\tstorage?: string;\n\tsigned?: boolean;\n\tkey?: string;\n\ttype?: string;\n\tfirmware?: string;\n\tetag?: string;\n\tlast_modified?: string;\n\tstorage_class?: string;\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\ttype?: string;\n\torganization?: string;\n}\n\nexport type Images = Image[];\n\nexport type ImageRo = Readonly;\nexport type ImagesRo = ReadonlyArray;\n\nexport interface ImageDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\timage?: Image;\n\t\timages?: Images;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as ImageTypes from '../types/ImageTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass ImagesStore extends EventEmitter {\n\t_images: ImageTypes.ImagesRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: ImageTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._images = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget images(): ImageTypes.ImagesRo {\n\t\treturn this._images;\n\t}\n\n\tget imagesM(): ImageTypes.Images {\n\t\tlet images: ImageTypes.Images = [];\n\t\tthis._images.forEach((image: ImageTypes.ImageRo): void => {\n\t\t\timages.push({\n\t\t\t\t...image,\n\t\t\t});\n\t\t});\n\t\treturn images;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): ImageTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\timage(id: string): ImageTypes.ImageRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._images[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: ImageTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(images: ImageTypes.Image[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < images.length; i++) {\n\t\t\timages[i] = Object.freeze(images[i]);\n\t\t\tthis._map[images[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._images = Object.freeze(images);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: ImageTypes.ImageDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase ImageTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase ImageTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase ImageTypes.SYNC:\n\t\t\t\tthis._sync(action.data.images, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new ImagesStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as ImageTypes from '../types/ImageTypes';\nimport ImagesStore from '../stores/ImagesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/image')\n\t\t\t.query({\n\t\t\t\t...ImagesStore.filter,\n\t\t\t\tpage: ImagesStore.page,\n\t\t\t\tpage_count: ImagesStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load images');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: ImageTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\timages: res.body.images,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function syncDatacenter(datacenter: string): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tif (!datacenter) {\n\t\tDispatcher.dispatch({\n\t\t\ttype: ImageTypes.SYNC_DATACENTER,\n\t\t\tdata: {\n\t\t\t\timages: [],\n\t\t\t},\n\t\t});\n\t\treturn Promise.resolve();\n\t}\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/image')\n\t\t\t.query({\n\t\t\t\tdatacenter: datacenter,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load images names');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: ImageTypes.SYNC_DATACENTER,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\timages: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: ImageTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: ImageTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: ImageTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(image: ImageTypes.Image): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/image/' + image.id)\n\t\t\t.send(image)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save image');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(image: ImageTypes.Image): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/image')\n\t\t\t.send(image)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create image');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(imageId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/image/' + imageId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete image');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(imageIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/image')\n\t\t\t.send(imageIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete images');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: ImageTypes.ImageDispatch) => {\n\tswitch (action.type) {\n\t\tcase ImageTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as ImageTypes from '../types/ImageTypes';\nimport * as ImageActions from '../actions/ImageActions';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport OrganizationsStore from \"../stores/OrganizationsStore\";\nimport StoragesStore from \"../stores/StoragesStore\";\nimport PageInput from './PageInput';\nimport PageInfo from './PageInfo';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\timage: ImageTypes.ImageRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\timage: ImageTypes.Image;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n};\n\nexport default class ImageDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\timage: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet image: any;\n\n\t\tif (this.state.changed) {\n\t\t\timage = {\n\t\t\t\t...this.state.image,\n\t\t\t};\n\t\t} else {\n\t\t\timage = {\n\t\t\t\t...this.props.image,\n\t\t\t};\n\t\t}\n\n\t\timage[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\timage: image,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tImageActions.commit(this.state.image).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\timage: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tImageActions.remove(this.props.image.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet image: ImageTypes.Image = this.state.image ||\n\t\t\tthis.props.image;\n\n\t\tlet org = OrganizationsStore.organization(this.props.image.organization);\n\t\tlet store = StoragesStore.storage(this.props.image.storage);\n\n\t\tlet imgType = image.type;\n\t\tif (imgType) {\n\t\t\timgType = imgType.charAt(0).toUpperCase() + imgType.slice(1);\n\t\t}\n\n\t\tlet orgName = '';\n\t\tif (image.organization) {\n\t\t\torgName = org ? org.name : image.organization;\n\t\t} else {\n\t\t\torgName = 'Public Image';\n\t\t}\n\n\t\tif (image.signed) {\n\t\t\torgName = 'Signed Public Image';\n\t\t}\n\n\t\tlet storageClass = 'Default';\n\t\tswitch (this.props.image.storage_class) {\n\t\t\tcase 'aws_standard':\n\t\t\t\tstorageClass = 'AWS Standard';\n\t\t\t\tbreak;\n\t\t\tcase 'aws_infrequent_access':\n\t\t\t\tstorageClass = 'AWS Standard-IA';\n\t\t\t\tbreak;\n\t\t\tcase 'aws_glacier':\n\t\t\t\tstorageClass = 'AWS Glacier';\n\t\t\t\tbreak;\n\t\t\tcase 'oracle_standard':\n\t\t\t\tstorageClass = 'Oracle Standard';\n\t\t\t\tbreak;\n\t\t\tcase 'oracle_archive':\n\t\t\t\tstorageClass = 'Oracle Archive';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\timage: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as ImageTypes from '../types/ImageTypes';\nimport ImageDetailed from './ImageDetailed';\nimport OrganizationsStore from \"../stores/OrganizationsStore\";\n\ninterface Props {\n\timage: ImageTypes.ImageRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n};\n\nexport default class Image extends React.Component {\n\trender(): JSX.Element {\n\t\tlet image = this.props.image;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    ;\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet orgClass = '';\n\t\tlet orgIcon = '';\n\t\tlet orgName = '';\n\t\tif (image.organization) {\n\t\t\tlet org = OrganizationsStore.organization(image.organization);\n\t\t\torgIcon = 'bp3-text-muted bp3-icon-people';\n\t\t\torgName = org ? org.name : image.organization;\n\t\t} else {\n\t\t\torgIcon = 'bp3-text-muted bp3-icon-globe';\n\t\t\torgName = 'Public Image';\n\t\t}\n\n\t\tif (image.signed) {\n\t\t\torgClass = 'bp3-text-intent-success';\n\t\t\torgIcon = 'bp3-icon-endorsed';\n\t\t\torgName = 'Signed Public Image';\n\t\t}\n\n\t\tlet diskIcon = 'bp3-icon-box';\n\t\tswitch (this.props.image.storage_class) {\n\t\t\tcase 'aws_standard':\n\t\t\t\tdiskIcon = 'bp3-icon-box';\n\t\t\t\tbreak;\n\t\t\tcase 'aws_infrequent_access':\n\t\t\t\tdiskIcon = 'bp3-icon-compressed';\n\t\t\t\tbreak;\n\t\t\tcase 'aws_glacier':\n\t\t\t\tdiskIcon = 'bp3-icon-snowflake';\n\t\t\t\tbreak;\n\t\t\tcase 'oracle_standard':\n\t\t\t\tdiskIcon = 'bp3-icon-box';\n\t\t\t\tbreak;\n\t\t\tcase 'oracle_archive':\n\t\t\t\tdiskIcon = 'bp3-icon-snowflake';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{image.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{orgName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{image.key}\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as ImageTypes from '../types/ImageTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\n\ninterface Props {\n\tfilter: ImageTypes.Filter;\n\tonFilter: (filter: ImageTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class ImagesFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.type;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.type = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport ImagesStore from '../stores/ImagesStore';\nimport * as ImageActions from '../actions/ImageActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class ImagesPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: ImagesStore.page,\n\t\t\tpageCount: ImagesStore.pageCount,\n\t\t\tpages: ImagesStore.pages,\n\t\t\tcount: ImagesStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tImagesStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tImagesStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: ImagesStore.page,\n\t\t\tpageCount: ImagesStore.pageCount,\n\t\t\tpages: ImagesStore.pages,\n\t\t\tcount: ImagesStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tImageActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tImageActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tImageActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tImageActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tImageActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as ImageTypes from '../types/ImageTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport ImagesStore from '../stores/ImagesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as ImageActions from '../actions/ImageActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport Image from './Image';\nimport ImagesFilter from './ImagesFilter';\nimport ImagesPage from './ImagesPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\timages: ImageTypes.ImagesRo;\n\tfilter: ImageTypes.Filter;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Images extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\timages: ImagesStore.images,\n\t\t\tfilter: ImagesStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tImagesStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tImageActions.sync();\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tImagesStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet images = ImagesStore.images;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\timages.forEach((image: ImageTypes.Image): void => {\n\t\t\tif (curSelected[image.id]) {\n\t\t\t\tselected[image.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[image.id]) {\n\t\t\t\topened[image.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\timages: images,\n\t\t\tfilter: ImagesStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tImageActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet imagesDom: JSX.Element[] = [];\n\n\t\tthis.state.images.forEach((\n\t\t\t\timage: ImageTypes.ImageRo): void => {\n\t\t\timagesDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet images = this.state.images;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < images.length; i++) {\n\t\t\t\t\t\t\tlet usr = images[i];\n\n\t\t\t\t\t\t\tif (usr.id === image.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[images[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: image.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[image.id]) {\n\t\t\t\t\t\tdelete selected[image.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[image.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: image.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[image.id]) {\n\t\t\t\t\t\tdelete opened[image.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[image.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let instId of Object.keys(this.state.selected)) {\n\t\t\tlet inst = ImagesStore.image(instId);\n\t\t\tif (inst) {\n\t\t\t\tselectedNames.push(inst.name || instId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(instId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Images

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tImageActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tImageActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tImageActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{imagesDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nexport const SYNC = 'disk.sync';\nexport const TRAVERSE = 'disk.traverse';\nexport const FILTER = 'disk.filter';\nexport const CHANGE = 'disk.change';\n\nexport interface Disk {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\tnode?: string;\n\torganization?: string;\n\tstate?: string;\n\tinstance?: string;\n\tdelete_protection?: boolean;\n\timage?: string;\n\trestore_image?: string;\n\tbacking?: boolean;\n\tbacking_image?: string;\n\tindex?: string;\n\tsize?: number;\n\tnew_size?: number;\n\tbackup?: boolean;\n\tbackups?: Backup[];\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\torganization?: string;\n\tdatacenter?: string;\n\tinstance?: string;\n\tnode?: string;\n}\n\nexport interface Backup {\n\timage?: string;\n\tname?: string;\n}\n\nexport type Disks = Disk[];\n\nexport type DiskRo = Readonly;\nexport type DisksRo = ReadonlyArray;\n\nexport interface DiskDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tdisk?: Disk;\n\t\tdisks?: Disks;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as DiskTypes from '../types/DiskTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass DisksStore extends EventEmitter {\n\t_disks: DiskTypes.DisksRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: DiskTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._disks = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget disks(): DiskTypes.DisksRo {\n\t\treturn this._disks;\n\t}\n\n\tget disksM(): DiskTypes.Disks {\n\t\tlet disks: DiskTypes.Disks = [];\n\t\tthis._disks.forEach((disk: DiskTypes.DiskRo): void => {\n\t\t\tdisks.push({\n\t\t\t\t...disk,\n\t\t\t});\n\t\t});\n\t\treturn disks;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): DiskTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tdisk(id: string): DiskTypes.DiskRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._disks[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: DiskTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(disks: DiskTypes.Disk[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < disks.length; i++) {\n\t\t\tdisks[i] = Object.freeze(disks[i]);\n\t\t\tthis._map[disks[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._disks = Object.freeze(disks);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: DiskTypes.DiskDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase DiskTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase DiskTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase DiskTypes.SYNC:\n\t\t\t\tthis._sync(action.data.disks, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new DisksStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as DiskTypes from '../types/DiskTypes';\nimport DisksStore from '../stores/DisksStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(noLoading?: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader: Loader;\n\tif (!noLoading) {\n\t\tloader = new Loader().loading();\n\t}\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/disk')\n\t\t\t.query({\n\t\t\t\t...DisksStore.filter,\n\t\t\t\tpage: DisksStore.page,\n\t\t\t\tpage_count: DisksStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (loader) {\n\t\t\t\t\tloader.done();\n\t\t\t\t}\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load disks');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: DiskTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tdisks: res.body.disks,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: DiskTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: DiskTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: DiskTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(disk: DiskTypes.Disk): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/disk/' + disk.id)\n\t\t\t.send(disk)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save disk');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(disk: DiskTypes.Disk): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/disk')\n\t\t\t.send(disk)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create disk');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(diskId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/disk/' + diskId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete disk');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(diskIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/disk')\n\t\t\t.send(diskIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete disks');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function forceRemoveMulti(diskIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/disk')\n\t\t\t.query({\n\t\t\t\tforce: true,\n\t\t\t})\n\t\t\t.send(diskIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete disks');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function updateMulti(diskIds: string[],\n\t\tstate: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/disk')\n\t\t\t.send({\n\t\t\t\t\"ids\": diskIds,\n\t\t\t\t\"state\": state,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to update disks');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: DiskTypes.DiskDispatch) => {\n\tswitch (action.type) {\n\t\tcase DiskTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Props {\n\thidden?: boolean;\n\tlabel: string;\n\tvalue: string;\n\tconfirmMsg?: string;\n\tdisabled?: boolean;\n\tbuttonClass?: string;\n\tprogressClassName?: string;\n\tonChange: (val: string) => void;\n\tonSubmit: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\tmarginBottom: '15px',\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tselect: {\n\t\twidth: '100%',\n\t\tborderTopLeftRadius: '3px',\n\t\tborderBottomLeftRadius: '3px',\n\t} as React.CSSProperties,\n\tselectInner: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tselectBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class PageSelectButton extends React.Component {\n\trender(): JSX.Element {\n\t\tlet buttonClass = 'bp3-button';\n\t\tif (this.props.buttonClass) {\n\t\t\tbuttonClass += ' ' + this.props.buttonClass;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.props.onChange(evt.target.value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.props.children}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nexport const SYNC = 'instance.sync';\nexport const SYNC_NODE = 'instance.sync_node';\nexport const TRAVERSE = 'instance.traverse';\nexport const FILTER = 'instance.filter';\nexport const CHANGE = 'instance.change';\n\nexport interface Instance {\n\tid?: string;\n\torganization?: string;\n\tzone?: string;\n\tnode?: string;\n\timage?: string;\n\timage_backing?: boolean;\n\tstatus?: string;\n\tuptime?: string;\n\tstate?: string;\n\tvm_state?: string;\n\tvm_timestamp?: string;\n\tuefi?: boolean;\n\tsecure_boot?: boolean;\n\ttpm?: boolean;\n\tdhcp_server?: boolean;\n\tcloud_type?: string;\n\tdelete_protection?: boolean;\n\tskip_source_dest_check?: boolean;\n\tqemu_version?: string;\n\tpublic_ips?: string[];\n\tpublic_ips6?: string[];\n\tprivate_ips?: string[];\n\tprivate_ips6?: string[];\n\tgateway_ips?: string[];\n\tgateway_ips6?: string[];\n\toracle_private_ips?: string[];\n\toracle_public_ips?: string[];\n\tnetwork_namespace?: string;\n\thost_ips?: string[];\n\tpublic_mac?: string;\n\tname?: string;\n\tcomment?: string;\n\tinit_disk_size?: number;\n\tmemory?: number;\n\tprocessors?: number;\n\tnetwork_roles?: string[];\n\tisos?: Iso[];\n\tusb_devices?: UsbDevice[];\n\tpci_devices?: PciDevice[];\n\tdrive_devices?: DriveDevice[];\n\tiscsi_devices?: IscsiDevice[];\n\troot_enabled?: boolean;\n\troot_passwd?: string;\n\tvnc?: boolean;\n\tvnc_password?: string;\n\tvnc_display?: number;\n\tspice?: boolean;\n\tspice_password?: string;\n\tspice_port?: number;\n\tgui?: boolean;\n\tdomain?: string;\n\tno_public_address?: boolean;\n\tno_public_address6?: boolean;\n\tno_host_address?: boolean;\n\tvpc?: string;\n\tsubnet?: string;\n\toracle_subnet?: string;\n\tcount?: number;\n\tinfo?: Info;\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\tstate?: string;\n\tnetwork_role?: string;\n\tnetwork_namespace?: string;\n\torganization?: string;\n\tnode?: string;\n\tzone?: string;\n\tvpc?: string;\n\tsubnet?: string;\n}\n\nexport interface Iso {\n\tname?: string;\n}\n\nexport interface UsbDevice {\n\tname?: string;\n\tvendor?: string;\n\tproduct?: string;\n\tbus?: string;\n\taddress?: string;\n}\n\nexport interface PciDevice {\n\tslot?: string;\n\tclass?: string;\n\tname?: string;\n\tdriver?: string;\n}\n\nexport interface IscsiDevice {\n\thost?: string;\n\tport?: number;\n\tiqn?: string;\n\tlun?: string;\n\tusername?: string;\n\tpassword?: string;\n\turi?: string;\n}\n\nexport interface DriveDevice {\n\tid?: string;\n}\n\nexport interface OracleSubnet {\n\tid?: string;\n\tname?: string;\n}\n\nexport interface Info {\n\tnode?: string;\n\tnode_public_ip?: string;\n\tmtu?: number;\n\tiscsi?: boolean;\n\tfirewall_rules?: string[];\n\tauthorities?: string[];\n\tdisks?: string[];\n\tisos?: Iso[];\n\tusb_devices?: UsbDevice[];\n\tpci_devices?: PciDevice[];\n\tdrive_devices?: DriveDevice[];\n\toracle_subnets?: OracleSubnet[];\n}\n\nexport type Instances = Instance[];\nexport type InstancesNode = Map;\n\nexport type InstanceRo = Readonly;\nexport type InstancesRo = ReadonlyArray;\nexport type InstancesNodeRo = Map;\n\nexport interface InstanceDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tnode?: string;\n\t\tinstance?: Instance;\n\t\tinstances?: Instances;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass InstancesStore extends EventEmitter {\n\t_instances: InstanceTypes.InstancesRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: InstanceTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._instances = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget instances(): InstanceTypes.InstancesRo {\n\t\treturn this._instances;\n\t}\n\n\tget instancesM(): InstanceTypes.Instances {\n\t\tlet instances: InstanceTypes.Instances = [];\n\t\tthis._instances.forEach((instance: InstanceTypes.InstanceRo): void => {\n\t\t\tinstances.push({\n\t\t\t\t...instance,\n\t\t\t});\n\t\t});\n\t\treturn instances;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): InstanceTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tinstance(id: string): InstanceTypes.InstanceRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._instances[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: InstanceTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(instances: InstanceTypes.Instance[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < instances.length; i++) {\n\t\t\tinstances[i] = Object.freeze(instances[i]);\n\t\t\tthis._map[instances[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._instances = Object.freeze(instances);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: InstanceTypes.InstanceDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase InstanceTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase InstanceTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase InstanceTypes.SYNC:\n\t\t\t\tthis._sync(action.data.instances, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new InstancesStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport InstancesStore from '../stores/InstancesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(noLoading?: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader: Loader;\n\tif (!noLoading) {\n\t\tloader = new Loader().loading();\n\t}\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/instance')\n\t\t\t.query({\n\t\t\t\t...InstancesStore.filter,\n\t\t\t\tpage: InstancesStore.page,\n\t\t\t\tpage_count: InstancesStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (loader) {\n\t\t\t\t\tloader.done();\n\t\t\t\t}\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load instances');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: InstanceTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tinstances: res.body.instances,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: InstanceTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: InstanceTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: InstanceTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(instance: InstanceTypes.Instance): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/instance/' + instance.id)\n\t\t\t.send(instance)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save instance');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(instance: InstanceTypes.Instance): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/instance')\n\t\t\t.send(instance)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create instance');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(instanceId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/instance/' + instanceId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete instance');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(instanceIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/instance')\n\t\t\t.send(instanceIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete instances');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function forceRemoveMulti(instanceIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/instance')\n\t\t\t.query({\n\t\t\t\tforce: true,\n\t\t\t})\n\t\t\t.send(instanceIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to force delete instances');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function updateMulti(instanceIds: string[],\n\t\tstate: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/instance')\n\t\t\t.send({\n\t\t\t\t\"ids\": instanceIds,\n\t\t\t\t\"state\": state,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to update instances');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function syncNode(node: string): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tif (!node) {\n\t\treturn Promise.resolve();\n\t}\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/instance')\n\t\t\t.query({\n\t\t\t\tnode_names: node,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load instance names');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: InstanceTypes.SYNC_NODE,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tnode: node,\n\t\t\t\t\t\tinstances: res.body,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: InstanceTypes.InstanceDispatch) => {\n\tswitch (action.type) {\n\t\tcase InstanceTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass InstancesNodeStore extends EventEmitter {\n\t_instances: InstanceTypes.InstancesNodeRo = new Map(Object.freeze([]));\n\t_map: {[key: string]: [string, number]} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._instances = new Map(\n\t\t\tObject.freeze([]));\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tinstances(node: string): InstanceTypes.InstancesRo {\n\t\treturn this._instances.get(node) || [];\n\t}\n\n\tinstance(id: string): InstanceTypes.InstanceRo {\n\t\tlet x = this._map[id];\n\t\tif (x === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._instances.get(x[0])[x[1]];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(node: string, instances: InstanceTypes.Instance[]): void {\n\t\tfor (let i = 0; i < instances.length; i++) {\n\t\t\tinstances[i] = Object.freeze(instances[i]);\n\t\t}\n\t\tthis._instances.set(node, Object.freeze(instances));\n\n\t\tthis._map = {};\n\t\tfor (let item of this._instances.entries()) {\n\t\t\tlet insts = item[1];\n\n\t\t\tfor (let i = 0; i < insts.length; i++) {\n\t\t\t\tthis._map[insts[i].id] = [item[0], i];\n\t\t\t}\n\t\t}\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: InstanceTypes.InstanceDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase InstanceTypes.SYNC_NODE:\n\t\t\t\tthis._sync(action.data.node, action.data.instances);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new InstancesNodeStore();\n","/// \nimport * as React from 'react';\nimport * as DiskTypes from '../types/DiskTypes';\nimport * as DiskActions from '../actions/DiskActions';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport PageInput from './PageInput';\nimport PageSelect from './PageSelect';\nimport PageSwitch from './PageSwitch';\nimport PageNumInput from './PageNumInput';\nimport PageInfo from './PageInfo';\nimport PageSelectButtonConfirm from './PageSelectButtonConfirm';\nimport Help from './Help';\nimport * as PageInfos from './PageInfo';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport NodesStore from '../stores/NodesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as InstanceActions from '../actions/InstanceActions';\nimport InstancesNodeStore from '../stores/InstancesNodeStore';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as Alert from '../Alert';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdisk: DiskTypes.DiskRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tdisk: DiskTypes.Disk;\n\tinstances: InstanceTypes.InstancesRo;\n\trestoreImage: string;\n\tresizeDisk: boolean;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\trules: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n};\n\nexport default class DiskDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tdisk: null,\n\t\t\tinstances: null,\n\t\t\trestoreImage: null,\n\t\t\tresizeDisk: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tInstancesNodeStore.addChangeListener(this.onChange);\n\t\tInstanceActions.syncNode(this.props.disk.node);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tInstancesNodeStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tinstances: InstancesNodeStore.instances(this.props.disk.node),\n\t\t});\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet disk: any;\n\n\t\tif (this.state.changed) {\n\t\t\tdisk = {\n\t\t\t\t...this.state.disk,\n\t\t\t};\n\t\t} else {\n\t\t\tdisk = {\n\t\t\t\t...this.props.disk,\n\t\t\t};\n\t\t}\n\n\t\tdisk[name] = val;\n\n\t\tif (name === 'instance' && !Number(disk.index)) {\n\t\t\tdisk['index'] = '0';\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdisk: disk,\n\t\t});\n\t}\n\n\tsetResizeDisk(val: boolean): void {\n\t\tlet disk: any;\n\n\t\tif (this.state.changed) {\n\t\t\tdisk = {\n\t\t\t\t...this.state.disk,\n\t\t\t};\n\t\t} else {\n\t\t\tdisk = {\n\t\t\t\t...this.props.disk,\n\t\t\t};\n\t\t}\n\n\t\tif (val) {\n\t\t\tdisk.new_size = disk.size;\n\t\t} else {\n\t\t\tdisk.new_size = 0;\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tresizeDisk: val,\n\t\t\tdisk: disk,\n\t\t});\n\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\n\t\tlet disk = {\n\t\t\t...this.state.disk,\n\t\t};\n\n\t\tif (this.state.resizeDisk && disk.new_size > disk.size) {\n\t\t\tdisk.state = 'expand';\n\t\t}\n\n\t\tDiskActions.commit(disk).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tdisk: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tresizeDisk: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDiskActions.remove(this.props.disk.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonRestoreBackup = (): void => {\n\t\tlet restoreImage: string;\n\n\t\tif (this.state.restoreImage) {\n\t\t\trestoreImage = this.state.restoreImage;\n\t\t} else if (this.props.disk.backups && this.props.disk.backups.length) {\n\t\t\trestoreImage = this.props.disk.backups[0].image;\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\n\t\tlet disk: DiskTypes.Disk;\n\n\t\tif (this.state.changed) {\n\t\t\tdisk = {\n\t\t\t\t...this.state.disk,\n\t\t\t};\n\t\t} else {\n\t\t\tdisk = {\n\t\t\t\t...this.props.disk,\n\t\t\t};\n\t\t}\n\n\t\tdisk.state = 'restore';\n\t\tdisk.restore_image = restoreImage;\n\n\t\tDiskActions.commit(disk).then((): void => {\n\t\t\tAlert.success('Disk restore started');\n\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet disk: DiskTypes.Disk = this.state.disk ||\n\t\t\tthis.props.disk;\n\n\t\tlet node = NodesStore.node(this.props.disk.node);\n\t\tlet org = OrganizationsStore.organization(this.props.disk.organization);\n\n\t\tlet hasInstances = false;\n\t\tlet instancesSelect: JSX.Element[] = [];\n\t\tif (this.state.instances === null) {\n\t\t\tinstancesSelect = [];\n\t\t} else {\n\t\t\tif (this.state.instances.length) {\n\t\t\t\tinstancesSelect.push(\n\t\t\t\t\t);\n\n\t\t\t\thasInstances = true;\n\t\t\t\tfor (let instance of this.state.instances) {\n\t\t\t\t\tinstancesSelect.push(\n\t\t\t\t\t\t{instance.name},\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!hasInstances) {\n\t\t\t\tinstancesSelect = [];\n\t\t\t}\n\t\t}\n\n\t\tlet backupsSelect: JSX.Element[] = [];\n\t\tfor (let backup of (disk.backups || [])) {\n\t\t\tbackupsSelect.push(\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet hasBackups = false;\n\t\tif (!backupsSelect.length) {\n\t\t\tbackupsSelect = [];\n\t\t} else {\n\t\t\thasBackups = true\n\t\t}\n\n\t\tlet statusText = 'Unknown';\n\t\tlet statusClass = 'tab-close ';\n\t\tswitch (this.props.disk.state) {\n\t\t\tcase 'provision':\n\t\t\t\tstatusText = 'Provisioning';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'available':\n\t\t\t\tif (this.props.disk.instance) {\n\t\t\t\t\tstatusText = 'Connected';\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = 'Available';\n\t\t\t\t}\n\t\t\t\tstatusClass += ' bp3-text-intent-success';\n\t\t\t\tbreak;\n\t\t\tcase 'destroy':\n\t\t\t\tstatusText = 'Destroying';\n\t\t\t\tstatusClass += ' bp3-text-intent-danger';\n\t\t\t\tbreak;\n\t\t\tcase 'snapshot':\n\t\t\t\tstatusText = 'Snapshotting';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'backup':\n\t\t\t\tstatusText = 'Backing Up';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'restore':\n\t\t\t\tstatusText = 'Restoring';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'expand':\n\t\t\t\tstatusText = 'Expanding';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet fields: PageInfos.Field[] = [\n\t\t\t{\n\t\t\t\tlabel: 'ID',\n\t\t\t\tvalue: this.props.disk.id || 'Unknown',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Image',\n\t\t\t\tvalue: this.props.disk.image || 'Blank Disk',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Organization',\n\t\t\t\tvalue: org ? org.name : this.props.disk.organization,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Node',\n\t\t\t\tvalue: (node ? node.name : this.props.disk.node) || '-',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Size',\n\t\t\t\tvalue: this.props.disk.size + 'GB',\n\t\t\t},\n\t\t];\n\n\t\tlet backingImage = this.props.disk.backing_image;\n\t\tif (backingImage) {\n\t\t\tbackingImage = backingImage.replace('-', '\\n');\n\n\t\t\tfields.splice(2, 0, {\n\t\t\t\tlabel: 'Backing Image',\n\t\t\t\tvalue: backingImage,\n\t\t\t});\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{statusText}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('instance', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{instancesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('index', String(val));\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('delete_protection', !disk.delete_protection);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setResizeDisk(!this.state.resizeDisk);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('new_size', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('backup', !disk.backup);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tRestore Backup\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\trestoreImage: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onRestoreBackup}\n\t\t\t\t\t>\n\t\t\t\t\t\t{backupsSelect}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tdisk: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as DiskTypes from '../types/DiskTypes';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport DiskDetailed from './DiskDetailed';\nimport NodesStore from \"../stores/NodesStore\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdisk: DiskTypes.DiskRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class Disk extends React.Component {\n\trender(): JSX.Element {\n\t\tlet disk = this.props.disk;\n\t\tlet node = NodesStore.node(this.props.disk.node);\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    ;\n\t\t}\n\n\t\tlet orgName = '';\n\t\tif (disk.organization) {\n\t\t\tlet org = OrganizationsStore.organization(disk.organization);\n\t\t\torgName = org ? org.name : disk.organization;\n\t\t} else {\n\t\t\torgName = 'Node Disk';\n\t\t}\n\n\t\tlet statusText = 'Unknown';\n\t\tlet statusClass = 'bp3-cell';\n\t\tswitch (disk.state) {\n\t\t\tcase 'provision':\n\t\t\t\tstatusText = 'Provisioning';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'available':\n\t\t\t\tif (disk.instance) {\n\t\t\t\t\tstatusText = 'Connected';\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = 'Available';\n\t\t\t\t}\n\t\t\t\tstatusClass += ' bp3-text-intent-success';\n\t\t\t\tbreak;\n\t\t\tcase 'destroy':\n\t\t\t\tstatusText = 'Destroying';\n\t\t\t\tstatusClass += ' bp3-text-intent-danger';\n\t\t\t\tbreak;\n\t\t\tcase 'snapshot':\n\t\t\t\tstatusText = 'Snapshotting';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'backup':\n\t\t\t\tstatusText = 'Backing Up';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'restore':\n\t\t\t\tstatusText = 'Restoring';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'expand':\n\t\t\t\tstatusText = 'Expanding';\n\t\t\t\tstatusClass += ' bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{disk.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{statusText}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{orgName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{node ? node.name : this.props.disk.node}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{disk.size}GB\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as DiskTypes from '../types/DiskTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport * as NodeTypes from '../types/NodeTypes';\n\ninterface Props {\n\tfilter: DiskTypes.Filter;\n\tonFilter: (filter: DiskTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tnodes: NodeTypes.NodesRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class DisksFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet nodesSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.nodes && this.props.nodes.length) {\n\t\t\tfor (let node of this.props.nodes) {\n\t\t\t\tnodesSelect.push(\n\t\t\t\t\t{node.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.instance = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.instance;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport DisksStore from '../stores/DisksStore';\nimport * as DiskActions from '../actions/DiskActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class DisksPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: DisksStore.page,\n\t\t\tpageCount: DisksStore.pageCount,\n\t\t\tpages: DisksStore.pages,\n\t\t\tcount: DisksStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tDisksStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tDisksStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: DisksStore.page,\n\t\t\tpageCount: DisksStore.pageCount,\n\t\t\tpages: DisksStore.pages,\n\t\t\tcount: DisksStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tDiskActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tDiskActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tDiskActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tDiskActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tDiskActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as ImageTypes from '../types/ImageTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass ImagesDatacenterStore extends EventEmitter {\n\t_images: ImageTypes.ImagesRo = Object.freeze([]);\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._images = Object.freeze([]);\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget images(): ImageTypes.ImagesRo {\n\t\treturn this._images;\n\t}\n\n\tget imagesM(): ImageTypes.Images {\n\t\tlet images: ImageTypes.Images = [];\n\t\tthis._images.forEach((\n\t\t\t\timage: ImageTypes.ImageRo): void => {\n\t\t\timages.push({\n\t\t\t\t...image,\n\t\t\t});\n\t\t});\n\t\treturn images;\n\t}\n\n\timage(id: string): ImageTypes.ImageRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._images[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(images: ImageTypes.Image[]): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < images.length; i++) {\n\t\t\timages[i] = Object.freeze(images[i]);\n\t\t\tthis._map[images[i].id] = i;\n\t\t}\n\n\t\tthis._images = Object.freeze(images);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: ImageTypes.ImageDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase ImageTypes.SYNC_DATACENTER:\n\t\t\t\tthis._sync(action.data.images);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new ImagesDatacenterStore();\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass NodesZoneStore extends EventEmitter {\n\t_nodes: NodeTypes.NodesRo = Object.freeze([]);\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._nodes = Object.freeze([]);\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget nodes(): NodeTypes.NodesRo {\n\t\treturn this._nodes;\n\t}\n\n\tget nodesM(): NodeTypes.Nodes {\n\t\tlet nodes: NodeTypes.Nodes = [];\n\t\tthis._nodes.forEach((\n\t\t\t\tnode: NodeTypes.NodeRo): void => {\n\t\t\tnodes.push({\n\t\t\t\t...node,\n\t\t\t});\n\t\t});\n\t\treturn nodes;\n\t}\n\n\tnode(id: string): NodeTypes.NodeRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._nodes[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(nodes: NodeTypes.Node[]): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < nodes.length; i++) {\n\t\t\tnodes[i] = Object.freeze(nodes[i]);\n\t\t\tthis._map[nodes[i].id] = i;\n\t\t}\n\n\t\tthis._nodes = Object.freeze(nodes);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: NodeTypes.NodeDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase NodeTypes.SYNC_ZONE:\n\t\t\t\tthis._sync(action.data.nodes);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new NodesZoneStore();\n","/// \nimport * as React from 'react';\n\ninterface Props {\n\tstyle?: React.CSSProperties;\n\tmessage: string;\n\tchanged: boolean;\n\tdisabled: boolean;\n\tclosed?: boolean;\n\thidden?: boolean;\n\tlight?: boolean;\n\tonCancel: () => void;\n\tonCreate: () => void;\n}\n\nconst css = {\n\tmessage: {\n\t\tmarginTop: '6px',\n\t} as React.CSSProperties,\n\tbox: {\n\t\tmarginTop: '15px',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmarginLeft: '10px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tflexShrink: 0,\n\t} as React.CSSProperties,\n};\n\nexport default class PageCreate extends React.Component {\n\trender(): JSX.Element {\n\t\tlet style: React.CSSProperties = this.props.light ? null : css.box;\n\n\t\tif (this.props.style) {\n\t\t\tstyle = {\n\t\t\t\t...style,\n\t\t\t\t...this.props.style,\n\t\t\t};\n\t\t}\n\n\t\tlet closedDom: JSX.Element;\n\t\tif (this.props.closed) {\n\t\t\tclosedDom = \n\t\t\t\tClose\n\t\t\t;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\tCancel\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tCreate\n\t\t\t\t\t\n\t\t\t\t\t{closedDom}\n\t\t\t\t
    \n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as DiskTypes from '../types/DiskTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as ImageTypes from '../types/ImageTypes';\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport * as DiskActions from '../actions/DiskActions';\nimport * as ImageActions from '../actions/ImageActions';\nimport * as InstanceActions from '../actions/InstanceActions';\nimport * as NodeActions from '../actions/NodeActions';\nimport ImagesDatacenterStore from '../stores/ImagesDatacenterStore';\nimport InstancesNodeStore from '../stores/InstancesNodeStore';\nimport NodesZoneStore from '../stores/NodesZoneStore';\nimport PageInput from './PageInput';\nimport PageInputButton from './PageInputButton';\nimport PageCreate from './PageCreate';\nimport PageSelect from './PageSelect';\nimport PageSwitch from \"./PageSwitch\";\nimport PageNumInput from './PageNumInput';\nimport Help from './Help';\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tzones: ZoneTypes.ZonesRo;\n\tonClose: () => void;\n}\n\ninterface State {\n\tclosed: boolean;\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tdisk: DiskTypes.Disk;\n\tdatacenter: string;\n\tzone: string;\n\timages: ImageTypes.ImagesRo;\n\tnodes: NodeTypes.NodesRo;\n\tinstances: InstanceTypes.InstancesRo;\n\thiddenImages: boolean;\n}\n\nconst css = {\n\trow: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class DiskNew extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tclosed: false,\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tdisk: {\n\t\t\t\tname: 'New Disk',\n\t\t\t\tindex: \"1\",\n\t\t\t\tsize: 10,\n\t\t\t},\n\t\t\tdatacenter: '',\n\t\t\tzone: '',\n\t\t\timages: [],\n\t\t\tnodes: [],\n\t\t\tinstances: [],\n\t\t\thiddenImages: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tImagesDatacenterStore.addChangeListener(this.onChange);\n\t\tNodesZoneStore.addChangeListener(this.onChange);\n\t\tInstancesNodeStore.addChangeListener(this.onChange);\n\t\tImageActions.syncDatacenter('');\n\t\tNodeActions.syncZone('');\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tImagesDatacenterStore.removeChangeListener(this.onChange);\n\t\tNodesZoneStore.removeChangeListener(this.onChange);\n\t\tInstancesNodeStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\timages: ImagesDatacenterStore.images,\n\t\t\tnodes: NodesZoneStore.nodes,\n\t\t\tinstances: InstancesNodeStore.instances(this.state.disk.node),\n\t\t});\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet disk: any = {\n\t\t\t...this.state.disk,\n\t\t};\n\n\t\tdisk[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tdisk: disk,\n\t\t});\n\t}\n\n\tonCreate = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\n\t\tlet disk: any = {\n\t\t\t...this.state.disk,\n\t\t};\n\n\t\tif (this.props.organizations.length && !disk.organization) {\n\t\t\tdisk.organization = this.props.organizations[0].id;\n\t\t}\n\n\t\tDiskActions.create(disk).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Disk created successfully',\n\t\t\t\tchanged: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t\tchanged: true,\n\t\t\t\t});\n\t\t\t}, 2000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet disk = this.state.disk;\n\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\tif (this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet hasDatacenters = false;\n\t\tlet datacentersSelect: JSX.Element[] = [];\n\t\tif (this.props.datacenters.length) {\n\t\t\tdatacentersSelect.push(\n\t\t\t\t);\n\n\t\t\thasDatacenters = true;\n\t\t\tfor (let datacenter of this.props.datacenters) {\n\t\t\t\tdatacentersSelect.push(\n\t\t\t\t\t{datacenter.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasDatacenters) {\n\t\t\tdatacentersSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\tlet datacenter = this.state.datacenter;\n\t\tlet hasZones = false;\n\t\tlet zonesSelect: JSX.Element[] = [];\n\t\tif (this.props.zones.length) {\n\t\t\tzonesSelect.push();\n\n\t\t\tfor (let zone of this.props.zones) {\n\t\t\t\tif (zone.datacenter !== datacenter) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\thasZones = true;\n\n\t\t\t\tzonesSelect.push(\n\t\t\t\t\t{zone.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasZones) {\n\t\t\tzonesSelect = [];\n\t\t}\n\n\t\tlet hasNodes = false;\n\t\tlet nodesSelect: JSX.Element[] = [];\n\t\tif (this.state.nodes.length) {\n\t\t\tnodesSelect.push();\n\n\t\t\thasNodes = true;\n\t\t\tfor (let node of this.state.nodes) {\n\t\t\t\tnodesSelect.push(\n\t\t\t\t\t{node.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasNodes) {\n\t\t\tnodesSelect = [];\n\t\t}\n\n\t\tlet hasInstances = false;\n\t\tlet instancesSelect: JSX.Element[] = [];\n\t\tif (this.state.instances.length) {\n\t\t\tinstancesSelect.push(\n\t\t\t\t);\n\n\t\t\thasInstances = true;\n\t\t\tfor (let instance of this.state.instances) {\n\t\t\t\tinstancesSelect.push(\n\t\t\t\t\t{instance.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasInstances) {\n\t\t\tinstancesSelect = [];\n\t\t}\n\n\n\t\tlet imagesSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tlet imagesMap = new Map();\n\t\tlet imagesVer = new Map();\n\t\tif (this.state.images.length) {\n\t\t\tfor (let image of this.state.images) {\n\t\t\t\tif (!this.state.hiddenImages && image.signed) {\n\t\t\t\t\tlet imgSpl = image.key.split('_');\n\n\t\t\t\t\tif (imgSpl.length >= 2 && imgSpl[imgSpl.length - 1].length >= 4) {\n\t\t\t\t\t\tlet imgKey = imgSpl[0] + '_' + image.firmware\n\n\t\t\t\t\t\tlet imgVer = parseInt(\n\t\t\t\t\t\t\timgSpl[imgSpl.length - 1].substring(0, 4), 10);\n\t\t\t\t\t\tif (imgVer) {\n\t\t\t\t\t\t\tlet curImg = imagesVer.get(imgKey);\n\t\t\t\t\t\t\tif (!curImg || imgVer > curImg[0]) {\n\t\t\t\t\t\t\t\timagesVer.set(imgKey, [imgVer, image.id, image.name]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\timagesMap.set(image.id, image.name);\n\t\t\t}\n\n\t\t\tfor (let item of imagesMap.entries()) {\n\t\t\t\timagesSelect.push(\n\t\t\t\t\t{item[1]},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tfor (let item of imagesVer.entries()) {\n\t\t\t\timagesSelect.push(\n\t\t\t\t\t{item[1][2]},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('organization', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdatacenter: val,\n\t\t\t\t\t\t\t\t\tdisk: {\n\t\t\t\t\t\t\t\t\t\t...this.state.disk,\n\t\t\t\t\t\t\t\t\t\tnode: '',\n\t\t\t\t\t\t\t\t\t\timage: '',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tImageActions.syncDatacenter(val);\n\t\t\t\t\t\t\t\tNodeActions.syncZone('');\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{datacentersSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tzone: val,\n\t\t\t\t\t\t\t\t\tdisk: {\n\t\t\t\t\t\t\t\t\t\t...this.state.disk,\n\t\t\t\t\t\t\t\t\t\tnode: '',\n\t\t\t\t\t\t\t\t\t\tinstance: '',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tNodeActions.syncZone(val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{zonesSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisk: {\n\t\t\t\t\t\t\t\t\t\t...this.state.disk,\n\t\t\t\t\t\t\t\t\t\tnode: val,\n\t\t\t\t\t\t\t\t\t\tinstance: '',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tInstanceActions.syncNode(val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{nodesSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('delete_protection', !disk.delete_protection);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('instance', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{instancesSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('index', String(val));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('image', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{imagesSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from \"../Constants\";\nimport * as DiskTypes from '../types/DiskTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as NodeTypes from '../types/NodeTypes';\nimport DisksStore from '../stores/DisksStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport NodesStore from '../stores/NodesStore';\nimport * as DiskActions from '../actions/DiskActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport * as NodeActions from '../actions/NodeActions';\nimport Disk from './Disk';\nimport DisksFilter from './DisksFilter';\nimport DisksPage from './DisksPage';\nimport DiskNew from './DiskNew';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\nimport ZonesStore from \"../stores/ZonesStore\";\nimport DatacentersStore from \"../stores/DatacentersStore\";\nimport * as ZoneTypes from \"../types/ZoneTypes\";\nimport * as DatacenterTypes from \"../types/DatacenterTypes\";\nimport InstancesStore from \"../stores/InstancesStore\";\nimport * as InstanceActions from \"../actions/InstanceActions\";\nimport * as DatacenterActions from \"../actions/DatacenterActions\";\nimport * as ZoneActions from \"../actions/ZoneActions\";\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tdisks: DiskTypes.DisksRo;\n\tfilter: DiskTypes.Filter;\n\tdebug: boolean;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tzones: ZoneTypes.ZonesRo;\n\tnodes: NodeTypes.NodesRo;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\tdebug: {\n\t\tmargin: '0 0 4px 0',\n\t} as React.CSSProperties,\n\tdebugButton: {\n\t\topacity: 0.5,\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Disks extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisks: DisksStore.disks,\n\t\t\tfilter: DisksStore.filter,\n\t\t\tdebug: false,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tzones: ZonesStore.zones,\n\t\t\tnodes: NodesStore.nodes,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tInstancesStore.addChangeListener(this.onChange);\n\t\tDisksStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tDatacentersStore.addChangeListener(this.onChange);\n\t\tZonesStore.addChangeListener(this.onChange);\n\t\tNodesStore.addChangeListener(this.onChange);\n\t\tInstanceActions.sync();\n\t\tDiskActions.sync();\n\t\tOrganizationActions.sync();\n\t\tDatacenterActions.sync();\n\t\tZoneActions.sync();\n\t\tNodeActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tInstancesStore.removeChangeListener(this.onChange);\n\t\tDisksStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t\tDatacentersStore.removeChangeListener(this.onChange);\n\t\tZonesStore.removeChangeListener(this.onChange);\n\t\tNodesStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet disks = DisksStore.disks;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tdisks.forEach((disk: DiskTypes.Disk): void => {\n\t\t\tif (curSelected[disk.id]) {\n\t\t\t\tselected[disk.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[disk.id]) {\n\t\t\t\topened[disk.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisks: disks,\n\t\t\tfilter: DisksStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tzones: ZonesStore.zones,\n\t\t\tnodes: NodesStore.nodes,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDiskActions.removeMulti(\n\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonForceDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDiskActions.forceRemoveMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonSnapshot = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDiskActions.updateMulti(\n\t\t\tObject.keys(this.state.selected), 'snapshot').then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonBackup = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tDiskActions.updateMulti(\n\t\t\tObject.keys(this.state.selected), 'backup').then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet disksDom: JSX.Element[] = [];\n\n\t\tthis.state.disks.forEach((\n\t\t\tdisk: DiskTypes.DiskRo): void => {\n\t\t\tdisksDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet disks = this.state.disks;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < disks.length; i++) {\n\t\t\t\t\t\t\tlet usr = disks[i];\n\n\t\t\t\t\t\t\tif (usr.id === disk.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[disks[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: disk.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[disk.id]) {\n\t\t\t\t\t\tdelete selected[disk.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[disk.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: disk.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[disk.id]) {\n\t\t\t\t\t\tdelete opened[disk.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[disk.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet newDiskDom: JSX.Element;\n\t\tif (this.state.newOpened) {\n\t\t\tnewDiskDom = {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tnewOpened: false,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>;\n\t\t}\n\n\t\tlet debugClass = 'bp3-button bp3-icon-console ';\n\t\tif (this.state.debug) {\n\t\t\tdebugClass += 'bp3-active';\n\t\t}\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let instId of Object.keys(this.state.selected)) {\n\t\t\tlet inst = DisksStore.disk(instId);\n\t\t\tif (inst) {\n\t\t\t\tselectedNames.push(inst.name || instId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(instId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Disks

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdebug: !this.state.debug,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tDebug\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tDiskActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tDiskActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tnewOpened: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tDiskActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t\tnodes={this.state.nodes}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{newDiskDom}\n\t\t\t\t\t{disksDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass DomainsNameStore extends EventEmitter {\n\t_domains: DomainTypes.DomainsRo = Object.freeze([]);\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._domains = Object.freeze([]);\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget domains(): DomainTypes.DomainsRo {\n\t\treturn this._domains;\n\t}\n\n\tget domainsM(): DomainTypes.Domains {\n\t\tlet domains: DomainTypes.Domains = [];\n\t\tthis._domains.forEach((\n\t\t\t\tdomain: DomainTypes.DomainRo): void => {\n\t\t\tdomains.push({\n\t\t\t\t...domain,\n\t\t\t});\n\t\t});\n\t\treturn domains;\n\t}\n\n\tdomain(id: string): DomainTypes.DomainRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._domains[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(domains: DomainTypes.Domain[]): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < domains.length; i++) {\n\t\t\tdomains[i] = Object.freeze(domains[i]);\n\t\t\tthis._map[domains[i].id] = i;\n\t\t}\n\n\t\tthis._domains = Object.freeze(domains);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: DomainTypes.DomainDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase DomainTypes.SYNC_NAME:\n\t\t\t\tthis._sync(action.data.domains);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new DomainsNameStore();\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass VpcsZoneStore extends EventEmitter {\n\t_vpcs: VpcTypes.VpcsRo = Object.freeze([]);\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._vpcs = Object.freeze([]);\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget vpcs(): VpcTypes.VpcsRo {\n\t\treturn this._vpcs;\n\t}\n\n\tget vpcsM(): VpcTypes.Vpcs {\n\t\tlet vpcs: VpcTypes.Vpcs = [];\n\t\tthis._vpcs.forEach((\n\t\t\t\tvpc: VpcTypes.VpcRo): void => {\n\t\t\tvpcs.push({\n\t\t\t\t...vpc,\n\t\t\t});\n\t\t});\n\t\treturn vpcs;\n\t}\n\n\tvpc(id: string): VpcTypes.VpcRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._vpcs[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_sync(vpcs: VpcTypes.Vpc[]): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < vpcs.length; i++) {\n\t\t\tvpcs[i] = Object.freeze(vpcs[i]);\n\t\t\tthis._map[vpcs[i].id] = i;\n\t\t}\n\n\t\tthis._vpcs = Object.freeze(vpcs);\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: VpcTypes.VpcDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase VpcTypes.SYNC_NAMES:\n\t\t\t\tthis._sync(action.data.vpcs);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new VpcsZoneStore();\n","/// \nimport * as React from 'react';\nimport * as InstanceTypes from '../types/InstanceTypes';\n\ninterface Props {\n\tdisabled?: boolean;\n\tiscsi: InstanceTypes.IscsiDevice;\n\tonChange?: (state: InstanceTypes.IscsiDevice) => void;\n\tonAdd: () => void;\n\tonRemove?: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tinputBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n};\n\nexport default class InstanceIscsiDevice extends React.Component {\n\tclone(): InstanceTypes.IscsiDevice {\n\t\treturn {\n\t\t\t...this.props.iscsi,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tlet iscsi = this.props.iscsi;\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.uri = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onAdd();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport RFB from '@novnc/novnc';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as InstanceActions from '../actions/InstanceActions';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as PageInfos from './PageInfo';\nimport * as Csrf from '../Csrf';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport ZonesStore from '../stores/ZonesStore';\nimport InstanceIscsiDevice from './InstanceIscsiDevice';\nimport PageInput from './PageInput';\nimport PageInputButton from './PageInputButton';\nimport PageInfo from './PageInfo';\nimport PageSwitch from './PageSwitch';\nimport PageSelect from './PageSelect';\nimport PageSave from './PageSave';\nimport PageNumInput from './PageNumInput';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport PageSelectButton from \"./PageSelectButton\";\nimport PageTextArea from \"./PageTextArea\";\nimport NodesStore from \"../stores/NodesStore\";\n\ninterface Props {\n\tvpcs: VpcTypes.VpcsRo;\n\tdomains: DomainTypes.DomainsRo;\n\tinstance: InstanceTypes.InstanceRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tinstance: InstanceTypes.Instance;\n\taddCert: string;\n\taddNetworkRole: string;\n\taddVpc: string;\n\taddDriveDevice: string;\n\taddIso: string;\n\taddUsbDevice: string;\n\taddPciDevice: string;\n\tforwardedChecked: boolean;\n\tvnc: boolean;\n\tvncCtrl: boolean;\n\tvncAlt: boolean;\n\tvncSuper: boolean;\n\tvncScale: boolean;\n\tvncHeight: number;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t\tmaxWidth: '1060px',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tcontrolButton: {\n\t\tmarginRight: '10px',\n\t\tmarginBottom: '10px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\twordBreak: 'break-all',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tlist: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\tvncBox: {\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n};\n\nexport default class InstanceDetailed extends React.Component {\n\tvncState: boolean;\n\tvncRef: React.RefObject;\n\tvncRfb: RFB;\n\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tinstance: null,\n\t\t\taddCert: null,\n\t\t\taddNetworkRole: '',\n\t\t\taddVpc: '',\n\t\t\taddDriveDevice: '',\n\t\t\taddIso: '',\n\t\t\taddUsbDevice: '',\n\t\t\taddPciDevice: '',\n\t\t\tforwardedChecked: false,\n\t\t\tvnc: false,\n\t\t\tvncCtrl: false,\n\t\t\tvncAlt: false,\n\t\t\tvncSuper: false,\n\t\t\tvncScale: false,\n\t\t\tvncHeight: null,\n\t\t};\n\n\t\tthis.vncRef = React.createRef();\n\t}\n\n\tcomponentDidMount(): void {\n\t\tthis.vncState = true;\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tthis.vncState = false;\n\t\tif (this.vncRfb) {\n\t\t\tthis.vncRfb.disconnect();\n\t\t}\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet instance: any;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tinstance[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonTogleVnc = (): void => {\n\t\tif (this.state.vnc) {\n\t\t\tif (this.vncRfb) {\n\t\t\t\tthis.vncRfb.disconnect();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.connectVnc();\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tvnc: !this.state.vnc,\n\t\t});\n\t}\n\n\tconnectVnc = (): void => {\n\t\tthis.vncRfb = new RFB(\n\t\t\tthis.vncRef.current,\n\t\t\t'wss://' + location.hostname + (\n\t\t\t\tlocation.port ? ':' + location.port : '') + '/instance/' +\n\t\t\t\tthis.props.instance.id + '/vnc?csrf_token=' + Csrf.token,\n\t\t\t{\n\t\t\t\tshared: true,\n\t\t\t\twsProtocols: ['binary'],\n\t\t\t\tcredentials: {\n\t\t\t\t\tpassword: this.props.instance.vnc_password,\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t\tthis.vncRfb.addEventListener('disconnect', function() {\n\t\t\tsetTimeout(function() {\n\t\t\t\tif (this.state.vnc && this.vncState) {\n\t\t\t\t\tthis.connectVnc();\n\t\t\t\t}\n\t\t\t}.bind(this), 250);\n\t\t}.bind(this));\n\t\tif (this.state.vncScale) {\n\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t}\n\t}\n\n\tonToggleVncCtrl = (): void => {\n\t\tif (this.vncRfb) {\n\t\t\tif (this.state.vncCtrl) {\n\t\t\t\tthis.vncRfb.sendKey(0xffe3, 'ControlLeft', false);\n\t\t\t} else {\n\t\t\t\tthis.vncRfb.sendKey(0xffe3, 'ControlLeft', true);\n\t\t\t}\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tvncCtrl: !this.state.vncCtrl,\n\t\t});\n\t}\n\n\tonToggleVncAlt = (): void => {\n\t\tif (this.vncRfb) {\n\t\t\tif (this.state.vncAlt) {\n\t\t\t\tthis.vncRfb.sendKey(0xffe9, 'AltLeft', false);\n\t\t\t} else {\n\t\t\t\tthis.vncRfb.sendKey(0xffe9, 'AltLeft', true);\n\t\t\t}\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tvncAlt: !this.state.vncAlt,\n\t\t});\n\t}\n\n\tonToggleVncSuper = (): void => {\n\t\tif (this.vncRfb) {\n\t\t\tif (this.state.vncSuper) {\n\t\t\t\tthis.vncRfb.sendKey(0xffeb, 'MetaLeft', false);\n\t\t\t} else {\n\t\t\t\tthis.vncRfb.sendKey(0xffeb, 'MetaLeft', true);\n\t\t\t}\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tvncSuper: !this.state.vncSuper,\n\t\t});\n\t}\n\n\tonVncCtrlAltDel = (): void => {\n\t\tif (this.vncRfb) {\n\t\t\tthis.vncRfb.sendCtrlAltDel();\n\t\t}\n\t}\n\n\tonVncTab = (): void => {\n\t\tif (this.vncRfb) {\n\t\t\tthis.vncRfb.sendKey(0xff09, 'Tab');\n\t\t}\n\t}\n\n\tonVncEsc = (): void => {\n\t\tif (this.vncRfb) {\n\t\t\tthis.vncRfb.sendKey(0xff1b, 'Escape');\n\t\t}\n\t}\n\n\tonToggleVncFullscreen = (): void => {\n\t\tif (document.fullscreenElement) {\n\t\t\tif (document.exitFullscreen) {\n\t\t\t\tdocument.exitFullscreen();\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.vncRef) {\n\t\t\t\tif (this.vncRef.current.requestFullscreen) {\n\t\t\t\t\tthis.vncRef.current.requestFullscreen();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tonToggleVncScale = (): void => {\n\t\tlet vncHeight: number;\n\t\tlet vncScale = this.state.vncScale;\n\n\t\tif (vncScale) {\n\t\t\tthis.vncRfb.scaleViewport = '';\n\t\t} else {\n\t\t\tlet ratio = this.vncRfb._canvas.height / this.vncRfb._canvas.width;\n\t\t\tvncHeight = Math.floor(this.vncRef.current.offsetWidth * ratio);\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tvncScale: !this.state.vncScale,\n\t\t\tvncHeight: vncHeight,\n\t\t});\n\n\t\tif (!vncScale) {\n\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (this.state.vncScale) {\n\t\t\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t\t\t}\n\t\t\t\tsetTimeout((): void => {\n\t\t\t\t\tif (this.state.vncScale) {\n\t\t\t\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t\t\t\t}\n\t\t\t\t\tsetTimeout((): void => {\n\t\t\t\t\t\tif (this.state.vncScale) {\n\t\t\t\t\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetTimeout((): void => {\n\t\t\t\t\t\t\tif (this.state.vncScale) {\n\t\t\t\t\t\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsetTimeout((): void => {\n\t\t\t\t\t\t\t\tif (this.state.vncScale) {\n\t\t\t\t\t\t\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetTimeout((): void => {\n\t\t\t\t\t\t\t\t\tif (this.state.vncScale) {\n\t\t\t\t\t\t\t\t\t\tthis.vncRfb.scaleViewport = 'scale';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}, 50);\n\t\t\t\t\t\t\t}, 50);\n\t\t\t\t\t\t}, 50);\n\t\t\t\t\t}, 50);\n\t\t\t\t}, 50);\n\t\t\t}, 50);\n\t\t}\n\t}\n\n\tonAddNetworkRole = (): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (!this.state.addNetworkRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(instance.network_roles || []),\n\t\t];\n\n\t\tif (networkRoles.indexOf(this.state.addNetworkRole) === -1) {\n\t\t\tnetworkRoles.push(this.state.addNetworkRole);\n\t\t}\n\n\t\tnetworkRoles.sort();\n\t\tinstance.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonRemoveNetworkRole = (networkRole: string): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(instance.network_roles || []),\n\t\t];\n\n\t\tlet i = networkRoles.indexOf(networkRole);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tnetworkRoles.splice(i, 1);\n\t\tinstance.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonAddDriveDevice = (): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\t\tlet infoDriveDevices = this.props.instance.info.drive_devices || [];\n\n\t\tif (!this.state.addDriveDevice && !infoDriveDevices.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet addDevice = this.state.addDriveDevice;\n\t\tif (!addDevice) {\n\t\t\taddDevice = infoDriveDevices[0].id;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet driveDevices = [\n\t\t\t...(instance.drive_devices || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < driveDevices.length; i++) {\n\t\t\tlet dev = driveDevices[i];\n\t\t\tif (dev.id === addDevice) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (index === -1) {\n\t\t\tdriveDevices.push({\n\t\t\t\tid: addDevice,\n\t\t\t});\n\t\t}\n\n\t\tinstance.drive_devices = driveDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddDriveDevice: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonRemoveDriveDevice = (device: string): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet driveDevices = [\n\t\t\t...(instance.drive_devices || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < driveDevices.length; i++) {\n\t\t\tlet dev = driveDevices[i];\n\t\t\tif (dev.id === device) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tdriveDevices.splice(index, 1);\n\t\tinstance.drive_devices = driveDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddDriveDevice: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonAddIso = (): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\t\tlet infoIsos = this.props.instance.info.isos || [];\n\n\t\tif (!this.state.addIso && !infoIsos.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet addIso = this.state.addIso;\n\t\tif (!addIso) {\n\t\t\taddIso = infoIsos[0].name;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet isos = [\n\t\t\t...(instance.isos || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < isos.length; i++) {\n\t\t\tlet iso = isos[i];\n\t\t\tif (iso.name === addIso) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (index === -1) {\n\t\t\tisos.push({\n\t\t\t\tname: addIso,\n\t\t\t});\n\t\t}\n\n\t\tinstance.isos = isos;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddIso: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonRemoveIso = (isoName: string): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet isos = [\n\t\t\t...(instance.isos || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < isos.length; i++) {\n\t\t\tlet iso = isos[i];\n\t\t\tif (iso.name == isoName) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tisos.splice(index, 1);\n\t\tinstance.isos = isos;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddIso: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonAddUsbDevice = (): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\t\tlet infoUsbDevices = this.props.instance.info.usb_devices || [];\n\n\t\tif (!this.state.addUsbDevice && !infoUsbDevices.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet addDevice = this.state.addUsbDevice;\n\t\tif (!addDevice) {\n\t\t\taddDevice = infoUsbDevices[0].vendor + ':' + infoUsbDevices[0].product;\n\t\t}\n\n\t\tlet bus = addDevice.indexOf('-') !== -1;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet usbDevices = [\n\t\t\t...(instance.usb_devices || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < usbDevices.length; i++) {\n\t\t\tlet dev = usbDevices[i];\n\t\t\tif (!bus && dev.vendor + ':' + dev.product === addDevice) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t} else if (bus && dev.bus + '-' + dev.address === addDevice) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (!bus) {\n\t\t\tlet device = addDevice.split(':');\n\n\t\t\tif (index === -1) {\n\t\t\t\tusbDevices.push({\n\t\t\t\t\tvendor: device[0],\n\t\t\t\t\tproduct: device[1],\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tlet port = addDevice.split('-');\n\n\t\t\tif (index === -1) {\n\t\t\t\tusbDevices.push({\n\t\t\t\t\tbus: port[0],\n\t\t\t\t\taddress: port[1],\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tinstance.usb_devices = usbDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddUsbDevice: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonRemoveUsbDevice = (device: string): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet usbDevices = [\n\t\t\t...(instance.usb_devices || []),\n\t\t];\n\n\t\tlet bus = device.indexOf('-') !== -1;\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < usbDevices.length; i++) {\n\t\t\tlet dev = usbDevices[i];\n\t\t\tif (!bus && dev.vendor + ':' + dev.product == device) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t} else if (bus && dev.bus + '-' + dev.address == device) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tusbDevices.splice(index, 1);\n\t\tinstance.usb_devices = usbDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddUsbDevice: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonAddPciDevice = (): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\t\tlet infoPciDevices = this.props.instance.info.pci_devices || [];\n\n\t\tif (!this.state.addPciDevice && !infoPciDevices.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet addDevice = this.state.addPciDevice;\n\t\tif (!addDevice) {\n\t\t\taddDevice = infoPciDevices[0].slot;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet pciDevices = [\n\t\t\t...(instance.pci_devices || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < pciDevices.length; i++) {\n\t\t\tlet dev = pciDevices[i];\n\t\t\tif (dev.slot === addDevice) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\tif (index === -1) {\n\t\t\tpciDevices.push({\n\t\t\t\tslot: addDevice,\n\t\t\t});\n\t\t}\n\n\t\tinstance.pci_devices = pciDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddPciDevice: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonRemovePciDevice = (device: string): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet pciDevices = [\n\t\t\t...(instance.pci_devices || []),\n\t\t];\n\n\t\tlet index = -1;\n\t\tfor (let i = 0; i < pciDevices.length; i++) {\n\t\t\tlet dev = pciDevices[i];\n\t\t\tif (dev.slot === device) {\n\t\t\t\tindex = i;\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif (index === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tpciDevices.splice(index, 1);\n\t\tinstance.pci_devices = pciDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddPciDevice: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonAddIscsiDevice = (i: number): void => {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet iscsiDevices = [\n\t\t\t...(instance.iscsi_devices || []),\n\t\t];\n\n\t\tif (iscsiDevices.length === 0) {\n\t\t\tiscsiDevices = [{}];\n\t\t}\n\n\t\tiscsiDevices.splice(i + 1, 0, {} as InstanceTypes.IscsiDevice);\n\t\tinstance.iscsi_devices = iscsiDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonChangeIscsiDevice(i: number, subnet: InstanceTypes.IscsiDevice): void {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet iscsiDevices = [\n\t\t\t...(instance.iscsi_devices || []),\n\t\t];\n\n\t\tif (iscsiDevices.length === 0) {\n\t\t\tiscsiDevices = [{}];\n\t\t}\n\n\t\tiscsiDevices[i] = subnet;\n\n\t\tinstance.iscsi_devices = iscsiDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonRemoveIscsiDevice(i: number): void {\n\t\tlet instance: InstanceTypes.Instance;\n\n\t\tif (this.state.changed) {\n\t\t\tinstance = {\n\t\t\t\t...this.state.instance,\n\t\t\t};\n\t\t} else {\n\t\t\tinstance = {\n\t\t\t\t...this.props.instance,\n\t\t\t};\n\t\t}\n\n\t\tlet iscsiDevices = [\n\t\t\t...(instance.iscsi_devices || []),\n\t\t];\n\n\t\tif (iscsiDevices.length !== 0) {\n\t\t\tiscsiDevices.splice(i, 1);\n\t\t}\n\n\t\tif (iscsiDevices.length === 0) {\n\t\t\tiscsiDevices = [{}];\n\t\t}\n\n\t\tinstance.iscsi_devices = iscsiDevices;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tInstanceActions.commit({\n\t\t\t...this.state.instance,\n\t\t\tstate: null,\n\t\t}).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tinstance: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tInstanceActions.remove(this.props.instance.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tupdate(state: string): void {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tInstanceActions.updateMulti([this.props.instance.id],\n\t\t\t\tstate).then((): void => {\n\t\t\tsetTimeout((): void => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t});\n\t\t\t}, 250);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet instance: InstanceTypes.Instance = this.state.instance ||\n\t\t\tthis.props.instance;\n\t\tlet info: InstanceTypes.Info = this.props.instance.info || {};\n\n\t\tlet org = OrganizationsStore.organization(\n\t\t\tthis.props.instance.organization);\n\t\tlet zone = ZonesStore.zone(this.props.instance.zone);\n\n\t\tlet privateIps: any = this.props.instance.private_ips;\n\t\tif (!privateIps || !privateIps.length) {\n\t\t\tprivateIps = 'None';\n\t\t}\n\n\t\tlet privateIps6: any = this.props.instance.private_ips6;\n\t\tif (!privateIps6 || !privateIps6.length) {\n\t\t\tprivateIps6 = 'None';\n\t\t}\n\n\t\tlet gatewayIps: any = this.props.instance.gateway_ips;\n\t\tif (!gatewayIps || !gatewayIps.length) {\n\t\t\tgatewayIps = 'None';\n\t\t}\n\n\t\tlet gatewayIps6: any = this.props.instance.gateway_ips6;\n\t\tif (!gatewayIps6 || !gatewayIps6.length) {\n\t\t\tgatewayIps6 = 'None';\n\t\t}\n\n\t\tlet publicIps: any = this.props.instance.public_ips;\n\t\tif (!publicIps || !publicIps.length) {\n\t\t\tpublicIps = 'None';\n\t\t}\n\n\t\tlet publicIps6: any = this.props.instance.public_ips6;\n\t\tif (!publicIps6 || !publicIps6.length) {\n\t\t\tpublicIps6 = 'None';\n\t\t}\n\n\t\tlet hostIps: any = this.props.instance.host_ips;\n\t\tif (!hostIps || !hostIps.length) {\n\t\t\thostIps = 'None';\n\t\t}\n\n\t\tlet oraclePrivateIps: any = this.props.instance.oracle_private_ips;\n\t\tif (!oraclePrivateIps || !oraclePrivateIps.length) {\n\t\t\toraclePrivateIps = null;\n\t\t}\n\t\tlet oraclePublicIps: any = this.props.instance.oracle_public_ips;\n\t\tif (!oraclePublicIps || !oraclePublicIps.length) {\n\t\t\toraclePublicIps = null;\n\t\t}\n\n\t\tlet statusClass = 'no-select tab-close';\n\t\tswitch (instance.status) {\n\t\t\tcase 'Running':\n\t\t\t\tstatusClass += ' bp3-text-intent-success';\n\t\t\t\tbreak;\n\t\t\tcase 'Restart Required':\n\t\t\t\tstatusClass += ' bp3-text-intent-warning';\n\t\t\t\tbreak;\n\t\t\tcase 'Stopped':\n\t\t\tcase 'Failed':\n\t\t\tcase 'Destroying':\n\t\t\t\tstatusClass += ' bp3-text-intent-danger';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet networkRoles: JSX.Element[] = [];\n\t\tfor (let networkRole of (instance.network_roles || [])) {\n\t\t\tnetworkRoles.push(\n\t\t\t\t\n\t\t\t\t\t{networkRole}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveNetworkRole(networkRole);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet hasVpcs = false;\n\t\tlet vpcsSelect: JSX.Element[] = [];\n\t\tif (this.props.vpcs && this.props.vpcs.length) {\n\t\t\tvpcsSelect.push();\n\n\t\t\tfor (let vpc of this.props.vpcs) {\n\t\t\t\tif (vpc.organization !== instance.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\thasVpcs = true;\n\t\t\t\tvpcsSelect.push(\n\t\t\t\t\t{vpc.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasVpcs) {\n\t\t\tvpcsSelect = [];\n\t\t}\n\n\t\tlet hasSubnets = false;\n\t\tlet subnetSelect: JSX.Element[] = [];\n\t\tif (this.props.vpcs && this.props.vpcs.length) {\n\t\t\tsubnetSelect.push();\n\n\t\t\tfor (let vpc of this.props.vpcs) {\n\t\t\t\tif (vpc.organization !== instance.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (vpc.id === instance.vpc) {\n\t\t\t\t\tfor (let sub of (vpc.subnets || [])) {\n\t\t\t\t\t\thasSubnets = true;\n\t\t\t\t\t\tsubnetSelect.push(\n\t\t\t\t\t\t\t{sub.name + ' - ' + sub.network},\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!hasSubnets) {\n\t\t\tsubnetSelect = [];\n\t\t}\n\n\t\tlet oracleSubnetsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.instance.info.oracle_subnets) {\n\t\t\tfor (let subnet of (this.props.instance.info.oracle_subnets || [])) {\n\t\t\t\toracleSubnetsSelect.push(\n\t\t\t\t\t,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet domainsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.domains && this.props.domains.length) {\n\t\t\tfor (let domain of this.props.domains) {\n\t\t\t\tif (domain.organization !== instance.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tdomainsSelect.push(\n\t\t\t\t\t{domain.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet driveDevices: JSX.Element[] = [];\n\t\tfor (let device of (instance.drive_devices || [])) {\n\t\t\tlet key = device.id;\n\t\t\tdriveDevices.push(\n\t\t\t\t\n\t\t\t\t\t{key}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveDriveDevice(key);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet infoDriveDevices = this.props.instance.info.drive_devices;\n\t\tlet driveDevicesSelect: JSX.Element[] = [];\n\t\tfor (let i = 0; i < (infoDriveDevices || []).length; i++) {\n\t\t\tlet device = infoDriveDevices[i];\n\t\t\tdriveDevicesSelect.push(\n\t\t\t\t\n\t\t\t\t\t{device.id}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet isos: JSX.Element[] = [];\n\t\tfor (let iso of (instance.isos || [])) {\n\t\t\tlet key = iso.name;\n\t\t\tisos.push(\n\t\t\t\t\n\t\t\t\t\t{key}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveIso(key);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet infoIsos = this.props.instance.info.isos;\n\t\tlet isosSelect: JSX.Element[] = [];\n\t\tfor (let i = 0; i < (infoIsos || []).length; i++) {\n\t\t\tlet iso = infoIsos[i];\n\t\t\tisosSelect.push(\n\t\t\t\t\n\t\t\t\t\t{iso.name}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet usbDevices: JSX.Element[] = [];\n\t\tfor (let device of (instance.usb_devices || [])) {\n\t\t\tlet key = '';\n\t\t\tif (device.bus && device.address) {\n\t\t\t\tkey = device.bus + '-' + device.address;\n\t\t\t} else {\n\t\t\t\tkey = device.vendor + ':' + device.product;\n\t\t\t}\n\t\t\tusbDevices.push(\n\t\t\t\t\n\t\t\t\t\t{key}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveUsbDevice(key);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet infoUsbDevices = this.props.instance.info.usb_devices;\n\t\tlet usbDevicesSelect: JSX.Element[] = [];\n\t\tfor (let i = 0; i < (infoUsbDevices || []).length; i++) {\n\t\t\tlet device = infoUsbDevices[i];\n\t\t\tusbDevicesSelect.push(\n\t\t\t\t\n\t\t\t\t\t{'Device=' + device.vendor + ':' + device.product +\n\t\t\t\t\t' (' + device.name + ')'}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\t\tfor (let i = 0; i < (infoUsbDevices || []).length; i++) {\n\t\t\tlet device = infoUsbDevices[i];\n\t\t\tusbDevicesSelect.push(\n\t\t\t\t\n\t\t\t\t\t{'Bus=' + device.bus + ' Port=' + device.address +\n\t\t\t\t\t' (' + device.name + ')'}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet pciDevices: JSX.Element[] = [];\n\t\tfor (let device of (instance.pci_devices || [])) {\n\t\t\tlet key = device.slot;\n\t\t\tpciDevices.push(\n\t\t\t\t\n\t\t\t\t\t{key}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemovePciDevice(key);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet infoPciDevices = this.props.instance.info.pci_devices;\n\t\tlet pciDevicesSelect: JSX.Element[] = [];\n\t\tfor (let i = 0; i < (infoPciDevices || []).length; i++) {\n\t\t\tlet device = infoPciDevices[i];\n\t\t\tpciDevicesSelect.push(\n\t\t\t\t\n\t\t\t\t\t{device.slot + ' ' + device.class + ':' + device.name}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet iscsiDevices = [...(instance.iscsi_devices || [])];\n\t\tif (iscsiDevices.length === 0) {\n\t\t\tiscsiDevices.push({});\n\t\t}\n\n\t\tlet iscsiDevicesElem: JSX.Element[] = [];\n\t\tfor (let i = 0; i < iscsiDevices.length; i++) {\n\t\t\tlet index = i;\n\t\t\tlet device = iscsiDevices[i];\n\n\t\t\tiscsiDevicesElem.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeIscsiDevice(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonAdd={(): void => {\n\t\t\t\t\t\tthis.onAddIscsiDevice(index);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveIscsiDevice(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\tlet fields: PageInfos.Field[] = [\n\t\t\t{\n\t\t\t\tlabel: 'ID',\n\t\t\t\tvalue: this.props.instance.id || 'None',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Organization',\n\t\t\t\tvalue: org ? org.name :\n\t\t\t\t\tthis.props.instance.organization || 'None',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Zone',\n\t\t\t\tvalue: zone ? zone.name : this.props.instance.zone || 'None',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Node',\n\t\t\t\tvalue: info.node || 'None',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'State',\n\t\t\t\tvalue: (this.props.instance.state || 'None') + ':' + (\n\t\t\t\t\tthis.props.instance.vm_state || 'None'),\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Uptime',\n\t\t\t\tvalue: this.props.instance.uptime || '-',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Public MAC Address',\n\t\t\t\tvalue: this.props.instance.public_mac || 'Unknown',\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'QEMU Version',\n\t\t\t\tvalue: this.props.instance.qemu_version || 'Unknown',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Platform',\n\t\t\t\tvalue: (this.props.instance.uefi ? 'UEFI' : 'BIOS'),\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'SecureBoot',\n\t\t\t\tvalue: (this.props.instance.secure_boot ? 'Enabled' : 'Disabled'),\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Public IPv4',\n\t\t\t\tvalue: publicIps,\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Public IPv6',\n\t\t\t\tvalue: publicIps6,\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Private IPv4',\n\t\t\t\tvalue: privateIps,\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Private IPv6',\n\t\t\t\tvalue: privateIps6,\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Gateway IPv4',\n\t\t\t\tvalue: gatewayIps,\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Gateway IPv6',\n\t\t\t\tvalue: gatewayIps6,\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t];\n\n\t\tif (oraclePublicIps) {\n\t\t\tfields.push(\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Oracle Public IPv4',\n\t\t\t\t\tvalue: oraclePublicIps,\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\tif (oraclePrivateIps) {\n\t\t\tfields.push(\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Oracle Private IPv4',\n\t\t\t\t\tvalue: oraclePrivateIps,\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tfields.push(\n\t\t\t{\n\t\t\t\tlabel: 'Host IPv4',\n\t\t\t\tvalue: hostIps,\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t);\n\n\t\tif (this.props.instance.info.mtu) {\n\t\t\tfields.push(\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Network MTU',\n\t\t\t\t\tvalue: this.props.instance.info.mtu,\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tfields.push(\n\t\t\t{\n\t\t\t\tlabel: 'Network Namespace',\n\t\t\t\tvalue: this.props.instance.network_namespace || 'None',\n\t\t\t\tcopy: true,\n\t\t\t},\n\t\t);\n\n\t\tif (this.props.instance.root_enabled) {\n\t\t\tfields.push(\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Root Password',\n\t\t\t\t\tvalue: this.props.instance.root_passwd,\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tif (this.props.instance.vnc) {\n\t\t\tif (this.props.instance.info.node_public_ip) {\n\t\t\t\tfields.push(\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'VNC IP',\n\t\t\t\t\t\tvalue: this.props.instance.info.node_public_ip,\n\t\t\t\t\t\tcopy: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tlet vncPort;\n\t\t\tif (this.props.instance.vnc_display) {\n\t\t\t\tvncPort = this.props.instance.vnc_display + 5900;\n\t\t\t} else {\n\t\t\t\tvncPort = '-';\n\t\t\t}\n\n\t\t\tfields.push(\n\t\t\t\t{\n\t\t\t\t\tlabel: 'VNC Port',\n\t\t\t\t\tvalue: vncPort,\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'VNC Password',\n\t\t\t\t\tvalue: this.props.instance.vnc_password,\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tif (this.props.instance.spice) {\n\t\t\tif (this.props.instance.info.node_public_ip) {\n\t\t\t\tfields.push(\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Spice IP',\n\t\t\t\t\t\tvalue: this.props.instance.info.node_public_ip,\n\t\t\t\t\t\tcopy: true,\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tfields.push(\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Spice Port',\n\t\t\t\t\tvalue: this.props.instance.spice_port || '-',\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Spice Password',\n\t\t\t\t\tvalue: this.props.instance.spice_password,\n\t\t\t\t\tcopy: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tfields.push(\n\t\t\t{\n\t\t\t\tlabel: 'Disks',\n\t\t\t\tvalue: info.disks || '',\n\t\t\t},\n\t\t\t{\n\t\t\t\t// TODO Firewall map view show firewalls matched to roles\n\t\t\t\tlabel: 'Firewall Rules',\n\t\t\t\tvalue: this.props.instance.info.firewall_rules || '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Authorities',\n\t\t\t\tvalue: this.props.instance.info.authorities || '',\n\t\t\t},\n\t\t);\n\n\t\tlet vncStyle = {\n\t\t\theight: this.state.vncHeight ? this.state.vncHeight + 'px' : '100%',\n\t\t\tmarginBottom: '10px',\n\t\t} as React.CSSProperties;\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{instance.status}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('memory', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={instance.memory}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('processors', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={instance.processors}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddNetworkRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddNetworkRole}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tISO Images\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{isos}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddIso: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddIso}\n\t\t\t\t\t>\n\t\t\t\t\t\t{isosSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tDisk Passthrough Devices\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{driveDevices}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddDriveDevice: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddDriveDevice}\n\t\t\t\t\t>\n\t\t\t\t\t\t{driveDevicesSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tiSCSI Devices\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{iscsiDevicesElem}\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\tPCI Devices\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{pciDevices}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddPciDevice: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddPciDevice}\n\t\t\t\t\t>\n\t\t\t\t\t\t{pciDevicesSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tUSB Devices\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{usbDevices}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddUsbDevice: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddUsbDevice}\n\t\t\t\t\t>\n\t\t\t\t\t\t{usbDevicesSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('vpc', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{vpcsSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('subnet', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{subnetSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('oracle_subnet', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{oracleSubnetsSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('domain', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{domainsSelect}\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('cloud_type', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t,\n\t\t\t\t\t\t,\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('root_enabled', !instance.root_enabled);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('vnc', !instance.vnc);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('spice', !instance.spice);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('gui', !instance.gui);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('uefi', !instance.uefi);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('secure_boot', !instance.secure_boot);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('tpm', !instance.tpm);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('dhcp_server', !instance.dhcp_server);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('delete_protection', !instance.delete_protection);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('no_public_address', !instance.no_public_address);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('no_public_address6', !instance.no_public_address6);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('no_host_address', !instance.no_host_address);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('skip_source_dest_check',\n\t\t\t\t\t\t\t\t!instance.skip_source_dest_check);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tforwardedChecked: false,\n\t\t\t\t\t\tinstance: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t>\n\t\t\t\t {\n\t\t\t\t\t\tthis.update('start');\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tthis.update('stop');\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tthis.onTogleVnc();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tVNC Console\n\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tthis.onTogleVnc();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\tVNC Console\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onToggleVncCtrl();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tCtrl\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onToggleVncAlt();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tAlt\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onToggleVncSuper();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tSuper\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onVncTab();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tTab\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onVncEsc();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tEsc\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onToggleVncFullscreen();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tFullscreen\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onToggleVncScale();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tScale\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onVncCtrlAltDel();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tCtrl+Alt+Del\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as DomainTypes from '../types/DomainTypes'\nimport InstanceDetailed from './InstanceDetailed';\nimport ZonesStore from \"../stores/ZonesStore\";\nimport NodesStore from \"../stores/NodesStore\";\n\ninterface Props {\n\tvpcs: VpcTypes.VpcsRo;\n\tdomains: DomainTypes.DomainsRo;\n\tinstance: InstanceTypes.InstanceRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n};\n\nexport default class Instance extends React.Component {\n\trender(): JSX.Element {\n\t\tlet instance = this.props.instance;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t;\n\t\t}\n\n\t\tlet node = NodesStore.node(this.props.instance.node);\n\t\tlet nodeName = node ? node.name : null;\n\t\tlet zone = ZonesStore.zone(this.props.instance.zone);\n\t\tlet zoneName = zone ? zone.name : null;\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet publicIp = '';\n\t\tlet privateIp = '';\n\t\tif (instance.public_ips && instance.public_ips.length > 0) {\n\t\t\tpublicIp = instance.public_ips[0];\n\t\t} else if (instance.host_ips && instance.host_ips.length > 0) {\n\t\t\tpublicIp = instance.host_ips[0];\n\t\t}\n\t\tif (instance.private_ips && instance.private_ips.length > 0) {\n\t\t\tprivateIp = instance.private_ips[0];\n\t\t}\n\n\t\tlet statusClass = 'bp3-cell';\n\t\tswitch (instance.status) {\n\t\t\tcase 'Running':\n\t\t\t\tstatusClass += ' bp3-text-intent-success';\n\t\t\t\tbreak;\n\t\t\tcase 'Restart Required':\n\t\t\t\tstatusClass += ' bp3-text-intent-warning';\n\t\t\t\tbreak;\n\t\t\tcase 'Stopped':\n\t\t\tcase 'Failed':\n\t\t\tcase 'Destroying':\n\t\t\t\tstatusClass += ' bp3-text-intent-danger';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{instance.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{instance.status}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{nodeName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{zoneName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{publicIp}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{privateIp}\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Blueprint from '@blueprintjs/core';\nimport * as License from '../License';\n\ninterface Props {\n\topen?: boolean;\n\tonClose?: () => void;\n}\n\nconst css = {\n\tdialog: {\n\t\theight: '500px',\n\t\twidth: '90%',\n\t\tmaxWidth: '700px',\n\t} as React.CSSProperties,\n\ttextarea: {\n\t\tresize: 'none',\n\t\tfontSize: '12px',\n\t\tfontFamily: '\"Lucida Console\", Monaco, monospace',\n\t} as React.CSSProperties,\n};\n\nconst license = `ORACLE LINUX LICENSE AGREEMENT \n\n“We,” “us,” “our” and “Oracle” refers to Oracle America, Inc. “You” and “your” refers to the \nindividual or entity that has acquired the Oracle Linux programs. “Oracle Linux programs” \nrefers to the Linux software product which you have acquired. “License” refers to your right to \nuse the Oracle Linux programs under the terms of this Agreement and the licenses referenced \nherein. This Agreement is governed by the substantive and procedural laws of the United States \nand the State of California and you and Oracle agree to submit to the exclusive jurisdiction of, \nand venue in, the courts of San Francisco or Santa Clara counties in California in any dispute \narising out of or relating to this Agreement.\n\nWe are willing to provide a copy of the Oracle Linux programs to you only upon the condition \nthat you accept all of the terms contained in this Agreement. Read the terms carefully and \nindicate your acceptance by either selecting the “Accept” button at the bottom of the page to \nconfirm your acceptance, if you are downloading the Oracle Linux programs, or continuing to \ninstall the Oracle Linux programs, if you have received this Agreement during the installation \nprocess. If you are not willing to be bound by these terms, select the “Do Not Accept” button or \ndiscontinue the installation process.\n\n1. Grant of Licenses to the Oracle Linux programs. Subject to the terms of this Agreement, \nOracle grants to you a license to the Oracle Linux programs under the GNU General Public \nLicense version 2.0. The Oracle Linux programs contain many components developed by Oracle \nand various third parties. The license for each component is located in the licensing \ndocumentation and/or in the component's source code. In addition, a list of components may be \ndelivered with the Oracle Linux programs and the Additional Oracle Linux programs (as defined \nbelow) or accessed online at http://oss.oracle.com/linux/legal/oracle-list.html. The source code \nfor the Oracle Linux Programs and the Additional Oracle Linux programs can be found and \naccessed online at https://oss.oracle.com/sources/. This agreement does not limit, supersede or \nmodify your rights under the license associated with any separately licensed individual \ncomponent.\n\n2. Licenses to Additional Oracle Linux programs. Certain third-party technology (collectively \nthe “Additional Oracle Linux programs”) may be included on the same medium or as part of the \ndownload of Oracle Linux programs you receive, but is not part of the Oracle Linux programs. \nEach Additional Oracle Linux program is licensed solely under the terms of the Mozilla Public \nLicense, Apache License, Common Public License, GNU Lesser General Public License, \nNetscape Public License or similar license that is included with the relevant Additional Oracle \nLinux program. \n\n3. Ownership. The Oracle Linux programs and their components and the Additional Oracle \nLinux programs are owned by Oracle or its licensors. Subject to the licenses granted and/or \nreferenced herein, title to the Oracle Linux programs and their components and the Additional \nOracle Linux programs remains with Oracle and/or its licensors. \n\n4. Trademark License. You are permitted to distribute unmodified Oracle Linux programs or \nunmodified Additional Oracle Linux programs without removing the trademark(s) owned by \nOracle or its affiliates that are included in the unmodified Oracle Linux programs or unmodified \nAdditional Oracle Linux programs (the “Oracle Linux trademarks”). You may only distribute \nmodified Oracle Linux programs or modified Additional Oracle Linux programs if you remove \nrelevant images containing the Oracle Linux trademarks. Certain files, identified in \nhttp://oss.oracle.com/linux/legal/oracle-list.html, include such trademarks. Do not delete these \nfiles, as deletion may corrupt the Oracle Linux programs or Additional Oracle Linux programs. \nYou are not granted any other rights to Oracle Linux trademarks, and you acknowledge that you \nshall not gain any proprietary interest in the Oracle Linux trademarks. All goodwill arising out of \nuse of the Oracle Linux trademarks shall inure to the benefit of Oracle or its affiliates. You may \nnot use any trademarks owned by Oracle or its affiliates (including “ORACLE”) or potentially \nconfusing variations (such as, “ORA”) as a part of your logo(s), product name(s), service \nname(s), company name, or domain name(s) even if such products, services or domains include, \nor are related to, the Oracle Linux programs or Additional Oracle Linux programs. \n\n5. Limited Warranty. THE ORACLE LINUX PROGRAMS AND ADDITIONAL ORACLE \nLINUX PROGRAMS ARE PROVIDED \"AS IS\" WITHOUT WARRANTY OF ANY KIND. \nWE FURTHER DISCLAIM ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING \nWITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR \nFITNESS FOR A PARTICULAR PURPOSE.\n\n6. Limitation of Liability. IN NO EVENT SHALL WE BE LIABLE FOR ANY INDIRECT, \nINCIDENTAL, SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR DAMAGES \nFOR LOSS OF PROFITS, REVENUE, DATA OR DATA USE, INCURRED BY YOU OR \nANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT, EVEN IF WE \nHAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. OUR ENTIRE \nLIABILITY FOR DAMAGES HEREUNDER SHALL IN NO EVENT EXCEED ONE \nHUNDRED DOLLARS (U.S.).\n\n7. No Technical Support. Our technical support organization will not provide technical support, \nphone support, or updates to you for the materials licensed under this Agreement. Technical \nsupport, if available, may be acquired from Oracle or its affiliates under a separate agreement.\n\n8. Relationship Between the Parties. The relationship between you and us is that of \nlicensee/licensor. Neither party will represent that it has any authority to assume or create any \nobligation, express or implied, on behalf of the other party, nor to represent the other party as \nagent, employee, franchisee, or in any other capacity. Nothing in this Agreement shall be \nconstrued to limit either party's right to independently develop or distribute programs that are \nfunctionally similar to the other party’s products, so long as proprietary information of the other \nparty is not included in such programs.\n\n9. Entire Agreement. You agree that this Agreement is the complete Agreement for the Oracle \nLinux programs and the Additional Oracle Linux programs, and this Agreement supersedes all \nprior or contemporaneous Agreements or representations. If any term of this Agreement is found \nto be invalid or unenforceable, the remaining provisions will remain effective. Neither the \nUniform Computer Information Transactions Act nor the United Nations Convention on the \nInternational Sale of Goods applies to this agreement.\n\nYou can find a copy of the GNU General Public License version 2.0 in the “copying” or \n“license” file included with the Oracle Linux programs or here: \nhttp://oss.oracle.com/licenses/GPL-2.\n\nOFFER TO PROVIDE SOURCE CODE\n\nFor software that you receive from Oracle in binary form that is licensed under an open source \nlicense that gives you the right to receive the source code for that binary, you can obtain a copy \nof the applicable source code from https://oss.oracle.com/sources/ or \nhttp://www.oracle.com/goto/opensourcecode. Alternatively, if the source code for the \ntechnology was not provided to you with the binary, you can also receive a copy of the source \ncode on physical media by submitting a written request to:\n \nOracle America, Inc. \nAttn: Associate General Counsel \nDevelopment and Engineering Legal \n500 Oracle Parkway, 10th Floor \nRedwood Shores, CA 94065 \n \nOr, you may send an email to Oracle using the form linked from \nhttp://www.oracle.com/goto/opensourcecode. Your written or emailed request should include:\n•\tThe name of the component or binary file(s) for which you are requesting the source code\n•\tThe name and version number of the Oracle product\n•\tThe date you received the Oracle product\n•\tYour name\n•\tYour company name (if applicable)\n•\tYour return mailing address and email\n•\tA telephone number in the event we need to reach you.\nWe may charge you a fee to cover the cost of physical media and processing. Your request must \nbe sent (i) within three (3) years of the date you received the Oracle product that included the \ncomponent or binary file(s) that are the subject of your request, or (ii) in the case of code \nlicensed under the GPL v3, for as long as Oracle offers spare parts or customer support for that \nproduct model or version.\n\nLast updated 24 March 2017`;\n\nexport default class InstanceLicense extends React.Component {\n\trender(): JSX.Element {\n\t\tif (!this.props.open) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tthis.props.onClose();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>Decline\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tLicense.setOracle(true);\n\t\t\t\t\t\t\t\tLicense.save();\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>Accept\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as License from '../License';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as ImageTypes from '../types/ImageTypes';\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport * as InstanceActions from '../actions/InstanceActions';\nimport * as ImageActions from '../actions/ImageActions';\nimport * as NodeActions from '../actions/NodeActions';\nimport ImagesDatacenterStore from '../stores/ImagesDatacenterStore';\nimport NodesZoneStore from '../stores/NodesZoneStore';\nimport InstanceLicense from './InstanceLicense';\nimport PageInput from './PageInput';\nimport PageInputButton from './PageInputButton';\nimport PageCreate from './PageCreate';\nimport PageSelect from './PageSelect';\nimport PageSwitch from \"./PageSwitch\";\nimport PageNumInput from './PageNumInput';\nimport Help from './Help';\nimport OrganizationsStore from \"../stores/OrganizationsStore\";\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tvpcs: VpcTypes.VpcsRo;\n\tdomains: DomainTypes.DomainsRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tzones: ZoneTypes.ZonesRo;\n\tonClose: () => void;\n}\n\ninterface State {\n\tclosed: boolean;\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\tlicenseOpen: boolean;\n\tinstance: InstanceTypes.Instance;\n\tdatacenter: string;\n\timages: ImageTypes.ImagesRo;\n\tnodes: NodeTypes.NodesRo;\n\taddNetworkRole: string;\n\taddVpc: string;\n\tdhcpChanged: boolean;\n\tsecureBootChanged: boolean;\n\thiddenImages: boolean;\n}\n\nconst css = {\n\trow: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '10px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tposition: 'absolute',\n\t\ttop: '5px',\n\t\tright: '5px',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class InstanceNew extends React.Component {\n\timagesMap: Map;\n\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tclosed: false,\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\tlicenseOpen: false,\n\t\t\tinstance: this.default,\n\t\t\tdatacenter: '',\n\t\t\timages: [],\n\t\t\tnodes: [],\n\t\t\taddNetworkRole: '',\n\t\t\taddVpc: '',\n\t\t\tdhcpChanged: false,\n\t\t\tsecureBootChanged: false,\n\t\t\thiddenImages: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tImagesDatacenterStore.addChangeListener(this.onChange);\n\t\tNodesZoneStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tImagesDatacenterStore.removeChangeListener(this.onChange);\n\t\tNodesZoneStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\timages: ImagesDatacenterStore.images,\n\t\t\tnodes: NodesZoneStore.nodes,\n\t\t});\n\t}\n\n\tget default(): InstanceTypes.Instance {\n\t\treturn {\n\t\t\tid: null,\n\t\t\tname: 'New instance',\n\t\t\tuefi: true,\n\t\t\tsecure_boot: true,\n\t\t\tinit_disk_size: 10,\n\t\t\tmemory: 1024,\n\t\t\tprocessors: 1,\n\t\t\tcount: 1,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet instance: any = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tinstance[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonCreate = (): void => {\n\t\t// if (this.state.instance.image &&\n\t\t// \t\tthis.state.instance.image.indexOf('oracle') &&\n\t\t// \t\t!License.oracle) {\n\t\t// \tthis.setState({\n\t\t// \t\t...this.state,\n\t\t// \t\tlicenseOpen: true,\n\t\t// \t});\n\t\t// \treturn\n\t\t// }\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\n\t\tlet instance: any = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tif (this.props.organizations.length && !instance.organization) {\n\t\t\tinstance.organization = this.props.organizations[0].id;\n\t\t}\n\n\t\tInstanceActions.create(instance).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Instance created successfully',\n\t\t\t\tchanged: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tthis.setState({\n\t\t\t\t\t...this.state,\n\t\t\t\t\tdisabled: false,\n\t\t\t\t\tchanged: true,\n\t\t\t\t});\n\t\t\t}, 2000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonUefi(uefi: boolean): void {\n\t\tlet instance: any = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tif (instance.uefi !== uefi) {\n\t\t\tinstance.image = '';\n\t\t}\n\t\tinstance.uefi = uefi;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonSecureBoot(secureBoot: boolean): void {\n\t\tlet instance: InstanceTypes.Instance = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tif (instance.secure_boot !== secureBoot) {\n\t\t\tinstance.image = '';\n\t\t}\n\t\tinstance.secure_boot = secureBoot;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tinstance: instance,\n\t\t\tsecureBootChanged: true,\n\t\t});\n\t}\n\n\tonDhcpServer(dhcpServer: boolean): void {\n\t\tlet instance: InstanceTypes.Instance = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tinstance.dhcp_server = dhcpServer;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tinstance: instance,\n\t\t\tdhcpChanged: true,\n\t\t});\n\t}\n\n\tonNode(nodeId: string): void {\n\t\tlet instance: InstanceTypes.Instance = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tinstance.node = nodeId;\n\n\t\tlet node = NodesZoneStore.node(instance.node);\n\t\tif (node) {\n\t\t\tinstance.no_public_address = node.default_no_public_address;\n\t\t\tinstance.no_public_address6 = node.default_no_public_address6;\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonAddNetworkRole = (): void => {\n\t\tif (!this.state.addNetworkRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet instance = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tlet networkRoles = [\n\t\t\t...(instance.network_roles || []),\n\t\t];\n\n\t\tif (networkRoles.indexOf(this.state.addNetworkRole) === -1) {\n\t\t\tnetworkRoles.push(this.state.addNetworkRole);\n\t\t}\n\n\t\tnetworkRoles.sort();\n\t\tinstance.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonRemoveNetworkRole = (networkRole: string): void => {\n\t\tlet instance = {\n\t\t\t...this.state.instance,\n\t\t};\n\n\t\tlet networkRoles = [\n\t\t\t...(instance.network_roles || []),\n\t\t];\n\n\t\tlet i = networkRoles.indexOf(networkRole);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tnetworkRoles.splice(i, 1);\n\t\tinstance.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\tonImageselect = (val: string): void => {\n\t\tlet instance: any = {\n\t\t\t...this.state.instance,\n\t\t};\n\t\tlet imageName = this.imagesMap.get(val);\n\n\t\tinstance.image = val;\n\t\tif (imageName.indexOf('BSD') !== -1) {\n\t\t\tinstance.secure_boot = false;\n\t\t\tinstance.cloud_type = 'bsd';\n\t\t} else {\n\t\t\tif (!this.state.secureBootChanged) {\n\t\t\t\tinstance.secure_boot = true;\n\t\t\t}\n\t\t\tinstance.cloud_type = 'linux';\n\t\t}\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tinstance: instance,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet instance = this.state.instance;\n\n\t\tlet node: NodeTypes.Node;\n\t\tif (instance.node) {\n\t\t\tnode = NodesZoneStore.node(instance.node);\n\t\t}\n\n\t\tlet hasOrganizations = !!this.props.organizations.length;\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\torganizationsSelect.push(\n\t\t\t\t);\n\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasOrganizations) {\n\t\t\torganizationsSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\tlet hasDatacenters = false;\n\t\tlet datacentersSelect: JSX.Element[] = [];\n\t\tif (this.props.datacenters && this.props.datacenters.length) {\n\t\t\tdatacentersSelect.push(\n\t\t\t\t);\n\n\t\t\thasDatacenters = true;\n\t\t\tfor (let datacenter of this.props.datacenters) {\n\t\t\t\tdatacentersSelect.push(\n\t\t\t\t\t{datacenter.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasDatacenters) {\n\t\t\tdatacentersSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\tlet datacenter = this.state.datacenter;\n\t\tlet hasZones = false;\n\t\tlet zonesSelect: JSX.Element[] = [];\n\t\tif (this.props.zones && this.props.zones.length) {\n\t\t\tzonesSelect.push();\n\n\t\t\tfor (let zone of this.props.zones) {\n\t\t\t\tif (zone.datacenter !== datacenter) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\thasZones = true;\n\n\t\t\t\tzonesSelect.push(\n\t\t\t\t\t{zone.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasZones) {\n\t\t\tzonesSelect = [];\n\t\t}\n\n\t\tlet hasNodes = false;\n\t\tlet nodesSelect: JSX.Element[] = [];\n\t\tif (this.state.nodes && this.state.nodes.length) {\n\t\t\tnodesSelect.push();\n\n\t\t\thasNodes = true;\n\t\t\tfor (let node of this.state.nodes) {\n\t\t\t\tnodesSelect.push(\n\t\t\t\t\t{node.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasNodes) {\n\t\t\tnodesSelect = [];\n\t\t}\n\n\t\tlet hasVpcs = false;\n\t\tlet vpcsSelect: JSX.Element[] = [];\n\t\tif (this.props.vpcs && this.props.vpcs.length) {\n\t\t\tvpcsSelect.push();\n\n\t\t\tfor (let vpc of this.props.vpcs) {\n\t\t\t\tif (Constants.user) {\n\t\t\t\t\tif (vpc.organization !== OrganizationsStore.current) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (vpc.organization !== instance.organization) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (vpc.datacenter !== this.state.datacenter) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\thasVpcs = true;\n\t\t\t\tvpcsSelect.push(\n\t\t\t\t\t{vpc.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasVpcs) {\n\t\t\tvpcsSelect = [];\n\t\t}\n\n\t\tlet hasSubnets = false;\n\t\tlet subnetSelect: JSX.Element[] = [];\n\t\tif (this.props.vpcs && this.props.vpcs.length) {\n\t\t\tsubnetSelect.push();\n\n\t\t\tfor (let vpc of this.props.vpcs) {\n\t\t\t\tif (Constants.user) {\n\t\t\t\t\tif (vpc.organization !== OrganizationsStore.current) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (vpc.organization !== instance.organization) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (vpc.datacenter !== this.state.datacenter) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (vpc.id === instance.vpc) {\n\t\t\t\t\tfor (let sub of (vpc.subnets || [])) {\n\t\t\t\t\t\thasSubnets = true;\n\t\t\t\t\t\tsubnetSelect.push(\n\t\t\t\t\t\t\t{sub.name + ' - ' + sub.network},\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!hasSubnets) {\n\t\t\tsubnetSelect = [];\n\t\t}\n\n\t\tlet oracleSubnetsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (node && node.oracle_subnets && node.oracle_subnets.length) {\n\t\t\tlet subnets: Map = new Map();\n\n\t\t\tfor (let vpc of (node.available_vpcs || [])) {\n\t\t\t\tfor (let subnet of (vpc.subnets || [])) {\n\t\t\t\t\tsubnets.set(subnet.id, vpc.name + ' - ' + subnet.name);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (let subnetId of (node.oracle_subnets || [])) {\n\t\t\t\toracleSubnetsSelect.push(\n\t\t\t\t\t,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet domainsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.domains && this.props.domains.length) {\n\t\t\tfor (let domain of this.props.domains) {\n\t\t\t\tif (!Constants.user &&\n\t\t\t\t\t\tdomain.organization !== instance.organization) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tdomainsSelect.push(\n\t\t\t\t\t{domain.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet hasImages = false;\n\t\tlet imagesSelect: JSX.Element[] = [];\n\t\tthis.imagesMap = new Map();\n\t\tlet imagesVer = new Map();\n\t\tif (this.state.images.length) {\n\t\t\timagesSelect.push();\n\n\t\t\thasImages = true;\n\t\t\tfor (let image of this.state.images) {\n\t\t\t\tif (instance.uefi && image.firmware === 'bios') {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (!instance.uefi && image.firmware === 'uefi') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (!this.state.hiddenImages && image.signed) {\n\t\t\t\t\tlet imgSpl = image.key.split('_');\n\n\t\t\t\t\tif (imgSpl.length >= 2 && imgSpl[imgSpl.length - 1].length >= 4) {\n\t\t\t\t\t\tlet imgKey = imgSpl[0] + '_' + image.firmware\n\n\t\t\t\t\t\tlet imgVer = parseInt(\n\t\t\t\t\t\t\timgSpl[imgSpl.length - 1].substring(0, 4), 10);\n\t\t\t\t\t\tif (imgVer) {\n\t\t\t\t\t\t\tlet curImg = imagesVer.get(imgKey);\n\t\t\t\t\t\t\tif (!curImg || imgVer > curImg[0]) {\n\t\t\t\t\t\t\t\timagesVer.set(imgKey, [imgVer, image.id, image.name]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.imagesMap.set(image.id, image.name);\n\t\t\t}\n\n\t\t\tfor (let item of this.imagesMap.entries()) {\n\t\t\t\timagesSelect.push(\n\t\t\t\t\t{item[1]},\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tfor (let item of imagesVer.entries()) {\n\t\t\t\tthis.imagesMap.set(item[1][1], item[1][2]);\n\t\t\t\timagesSelect.push(\n\t\t\t\t\t{item[1][2]},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet networkRoles: JSX.Element[] = [];\n\t\tfor (let networkRole of (instance.network_roles || [])) {\n\t\t\tnetworkRoles.push(\n\t\t\t\t\n\t\t\t\t\t{networkRole}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveNetworkRole(networkRole);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tif (!hasImages) {\n\t\t\timagesSelect = [];\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlicenseOpen: false,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('organization', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdatacenter: val,\n\t\t\t\t\t\t\t\t\tinstance: {\n\t\t\t\t\t\t\t\t\t\t...this.state.instance,\n\t\t\t\t\t\t\t\t\t\tnode: '',\n\t\t\t\t\t\t\t\t\t\tzone: '',\n\t\t\t\t\t\t\t\t\t\timage: '',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tImageActions.syncDatacenter(val);\n\t\t\t\t\t\t\t\tNodeActions.syncZone('');\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{datacentersSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tinstance: {\n\t\t\t\t\t\t\t\t\t\t...this.state.instance,\n\t\t\t\t\t\t\t\t\t\tnode: '',\n\t\t\t\t\t\t\t\t\t\tzone: val,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tNodeActions.syncZone(val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{zonesSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.onNode(val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{nodesSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tinstance: {\n\t\t\t\t\t\t\t\t\t\t...this.state.instance,\n\t\t\t\t\t\t\t\t\t\tvpc: val,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{vpcsSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tinstance: {\n\t\t\t\t\t\t\t\t\t\t...this.state.instance,\n\t\t\t\t\t\t\t\t\t\tsubnet: val,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{subnetSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tinstance: {\n\t\t\t\t\t\t\t\t\t\t...this.state.instance,\n\t\t\t\t\t\t\t\t\t\toracle_subnet: val,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{oracleSubnetsSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('domain', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{domainsSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('cloud_type', val);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('root_enabled', !instance.root_enabled);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('vnc', !instance.vnc);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('spice', !instance.spice);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('gui', !instance.gui);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (instance.state === 'stop') {\n\t\t\t\t\t\t\t\t\tthis.set('state', '');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.set('state', 'stop');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.onUefi(!instance.uefi);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.onSecureBoot(!instance.secure_boot);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('tpm', !instance.tpm);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.onDhcpServer(!instance.dhcp_server);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.set('delete_protection', !instance.delete_protection);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{imagesSelect}\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as ZoneTypes from '../types/ZoneTypes';\n\ninterface Props {\n\tfilter: InstanceTypes.Filter;\n\tonFilter: (filter: InstanceTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tnodes: NodeTypes.NodesRo;\n\tzones: ZoneTypes.ZonesRo;\n\tvpcs: VpcTypes.VpcsRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tshortInput: {\n\t\twidth: '180px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class InstancesFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet nodesSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.nodes && this.props.nodes.length) {\n\t\t\tfor (let node of this.props.nodes) {\n\t\t\t\tnodesSelect.push(\n\t\t\t\t\t{node.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet zonesSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.zones && this.props.zones.length) {\n\t\t\tfor (let zone of this.props.zones) {\n\t\t\t\tzonesSelect.push(\n\t\t\t\t\t{zone.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet vpcsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.vpcs && this.props.vpcs.length) {\n\t\t\tfor (let vpc of this.props.vpcs) {\n\t\t\t\tvpcsSelect.push(\n\t\t\t\t\t{vpc.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet subnetsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.vpcs && this.props.vpcs.length) {\n\t\t\tfor (let vpc of this.props.vpcs) {\n\t\t\t\tif (vpc.id === this.props.filter.vpc) {\n\t\t\t\t\tfor (let sub of (vpc.subnets || [])) {\n\t\t\t\t\t\tsubnetsSelect.push(\n\t\t\t\t\t\t\t{sub.name + ' - ' + sub.network},\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.network_role = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.network_role;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.network_namespace = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.network_namespace;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.node;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.node = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{nodesSelect}\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.zone;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.zone = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{zonesSelect}\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.vpc;\n\t\t\t\t\t\t\tdelete filter.subnet;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (filter.vpc !== val) {\n\t\t\t\t\t\t\t\tfilter.vpc = val;\n\t\t\t\t\t\t\t\tdelete filter.subnet;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{vpcsSelect}\n\t\t\t\t\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.subnet;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.subnet = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{subnetsSelect}\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport InstancesStore from '../stores/InstancesStore';\nimport * as InstanceActions from '../actions/InstanceActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class InstancesPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: InstancesStore.page,\n\t\t\tpageCount: InstancesStore.pageCount,\n\t\t\tpages: InstancesStore.pages,\n\t\t\tcount: InstancesStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tInstancesStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tInstancesStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: InstancesStore.page,\n\t\t\tpageCount: InstancesStore.pageCount,\n\t\t\tpages: InstancesStore.pages,\n\t\t\tcount: InstancesStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tInstanceActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tInstanceActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tInstanceActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tInstanceActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tInstanceActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as InstanceTypes from '../types/InstanceTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as DomainTypes from '../types/DomainTypes';\nimport * as VpcTypes from '../types/VpcTypes';\nimport * as DatacenterTypes from '../types/DatacenterTypes';\nimport * as NodeTypes from '../types/NodeTypes';\nimport * as ZoneTypes from '../types/ZoneTypes';\nimport InstancesStore from '../stores/InstancesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport DomainsNameStore from '../stores/DomainsNameStore';\nimport VpcsNameStore from '../stores/VpcsNameStore';\nimport DatacentersStore from '../stores/DatacentersStore';\nimport NodesStore from '../stores/NodesStore';\nimport ZonesStore from '../stores/ZonesStore';\nimport * as InstanceActions from '../actions/InstanceActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport * as DomainActions from '../actions/DomainActions';\nimport * as VpcActions from '../actions/VpcActions';\nimport * as DatacenterActions from '../actions/DatacenterActions';\nimport * as NodeActions from '../actions/NodeActions';\nimport * as ZoneActions from '../actions/ZoneActions';\nimport Instance from './Instance';\nimport InstanceNew from './InstanceNew';\nimport InstancesFilter from './InstancesFilter';\nimport InstancesPage from './InstancesPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tinstances: InstanceTypes.InstancesRo;\n\tdomains: DomainTypes.DomainsRo;\n\tfilter: InstanceTypes.Filter;\n\tdebug: boolean;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tvpcs: VpcTypes.VpcsRo;\n\tdatacenters: DatacenterTypes.DatacentersRo;\n\tnodes: NodeTypes.NodesRo;\n\tzones: ZoneTypes.ZonesRo;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n\tdebug: {\n\t\tmargin: '0 0 4px 0',\n\t} as React.CSSProperties,\n\tdebugButton: {\n\t\topacity: 0.5,\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Instances extends React.Component<{}, State> {\n\tinterval: NodeJS.Timer;\n\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tinstances: InstancesStore.instances,\n\t\t\tfilter: InstancesStore.filter,\n\t\t\tdebug: false,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tdomains: DomainsNameStore.domains,\n\t\t\tvpcs: VpcsNameStore.vpcs,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tnodes: NodesStore.nodes,\n\t\t\tzones: ZonesStore.zones,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tInstancesStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tDomainsNameStore.addChangeListener(this.onChange);\n\t\tVpcsNameStore.addChangeListener(this.onChange);\n\t\tDatacentersStore.addChangeListener(this.onChange);\n\t\tNodesStore.addChangeListener(this.onChange);\n\t\tZonesStore.addChangeListener(this.onChange);\n\t\tInstanceActions.sync();\n\t\tOrganizationActions.sync();\n\t\tDomainActions.syncName();\n\t\tVpcActions.syncNames();\n\t\tDatacenterActions.sync();\n\t\tNodeActions.sync();\n\t\tZoneActions.sync();\n\n\t\tthis.interval = setInterval(() => {\n\t\t\tInstanceActions.sync(true);\n\t\t\t// TODO wait for last sync to finish\n\t\t\t// TODO requests stack on slow server\n\t\t}, 1000);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tInstancesStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t\tDomainsNameStore.removeChangeListener(this.onChange);\n\t\tVpcsNameStore.removeChangeListener(this.onChange);\n\t\tDatacentersStore.removeChangeListener(this.onChange);\n\t\tNodesStore.removeChangeListener(this.onChange);\n\t\tZonesStore.removeChangeListener(this.onChange);\n\t\tclearInterval(this.interval);\n\t}\n\n\tonChange = (): void => {\n\t\tlet instances = InstancesStore.instances;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tinstances.forEach((instance: InstanceTypes.Instance): void => {\n\t\t\tif (curSelected[instance.id]) {\n\t\t\t\tselected[instance.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[instance.id]) {\n\t\t\t\topened[instance.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tinstances: instances,\n\t\t\tfilter: InstancesStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tdomains: DomainsNameStore.domains,\n\t\t\tvpcs: VpcsNameStore.vpcs,\n\t\t\tdatacenters: DatacentersStore.datacenters,\n\t\t\tnodes: NodesStore.nodes,\n\t\t\tzones: ZonesStore.zones,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tInstanceActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonForceDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tInstanceActions.forceRemoveMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tupdateSelected(state: string): void {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tInstanceActions.updateMulti(\n\t\t\tObject.keys(this.state.selected), state).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet instancesDom: JSX.Element[] = [];\n\n\t\tthis.state.instances.forEach((\n\t\t\t\tinstance: InstanceTypes.InstanceRo): void => {\n\t\t\tinstancesDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet instances = this.state.instances;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < instances.length; i++) {\n\t\t\t\t\t\t\tlet usr = instances[i];\n\n\t\t\t\t\t\t\tif (usr.id === instance.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[instances[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: instance.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[instance.id]) {\n\t\t\t\t\t\tdelete selected[instance.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[instance.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: instance.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[instance.id]) {\n\t\t\t\t\t\tdelete opened[instance.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[instance.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet newInstanceDom: JSX.Element;\n\t\tif (this.state.newOpened) {\n\t\t\tnewInstanceDom = {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tnewOpened: false,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>;\n\t\t}\n\n\t\tlet debugClass = 'bp3-button bp3-icon-console ';\n\t\tif (this.state.debug) {\n\t\t\tdebugClass += 'bp3-active';\n\t\t}\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let instId of Object.keys(this.state.selected)) {\n\t\t\tlet inst = InstancesStore.instance(instId);\n\t\t\tif (inst) {\n\t\t\t\tselectedNames.push(inst.name || instId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(instId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Instances

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdebug: !this.state.debug,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tDebug\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tInstanceActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tInstanceActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.updateSelected('start');\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.updateSelected('stop');\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tnewOpened: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tInstanceActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\tnodes={this.state.nodes}\n\t\t\t\tzones={this.state.zones}\n\t\t\t\tvpcs={this.state.vpcs}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{newInstanceDom}\n\t\t\t\t\t{instancesDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nexport const SYNC = 'firewall.sync';\nexport const TRAVERSE = 'firewall.traverse';\nexport const FILTER = 'firewall.filter';\nexport const CHANGE = 'firewall.change';\n\nexport interface Rule {\n\tprotocol: string;\n\tport?: string;\n\tsource_ips?: string[];\n}\n\nexport interface Firewall {\n\tid?: string;\n\tname?: string;\n\tcomment?: string;\n\torganization?: string;\n\tnetwork_roles?: string[];\n\tingress?: Rule[];\n}\n\nexport interface Filter {\n\tid?: string;\n\tname?: string;\n\tnetwork_role?: string;\n\torganization?: string;\n}\n\nexport type Firewalls = Firewall[];\n\nexport type FirewallRo = Readonly;\nexport type FirewallsRo = ReadonlyArray;\n\nexport interface FirewallDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tfirewall?: Firewall;\n\t\tfirewalls?: Firewalls;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as FirewallTypes from '../types/FirewallTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass FirewallsStore extends EventEmitter {\n\t_firewalls: FirewallTypes.FirewallsRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: FirewallTypes.Filter = null;\n\t_count: number;\n\t_map: {[key: string]: number} = {};\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._firewalls = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis._map = {};\n\t\tthis.emitChange();\n\t}\n\n\tget firewalls(): FirewallTypes.FirewallsRo {\n\t\treturn this._firewalls;\n\t}\n\n\tget firewallsM(): FirewallTypes.Firewalls {\n\t\tlet firewalls: FirewallTypes.Firewalls = [];\n\t\tthis._firewalls.forEach((firewall: FirewallTypes.FirewallRo): void => {\n\t\t\tfirewalls.push({\n\t\t\t\t...firewall,\n\t\t\t});\n\t\t});\n\t\treturn firewalls;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 20;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): FirewallTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\tfirewall(id: string): FirewallTypes.FirewallRo {\n\t\tlet i = this._map[id];\n\t\tif (i === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this._firewalls[i];\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: FirewallTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.name !== this._filter.name\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(firewalls: FirewallTypes.Firewall[], count: number): void {\n\t\tthis._map = {};\n\t\tfor (let i = 0; i < firewalls.length; i++) {\n\t\t\tfirewalls[i] = Object.freeze(firewalls[i]);\n\t\t\tthis._map[firewalls[i].id] = i;\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._firewalls = Object.freeze(firewalls);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: FirewallTypes.FirewallDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase FirewallTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase FirewallTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase FirewallTypes.SYNC:\n\t\t\t\tthis._sync(action.data.firewalls, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new FirewallsStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as FirewallTypes from '../types/FirewallTypes';\nimport FirewallsStore from '../stores/FirewallsStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(noLoading?: boolean): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader: Loader;\n\tif (!noLoading) {\n\t\tloader = new Loader().loading();\n\t}\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/firewall')\n\t\t\t.query({\n\t\t\t\t...FirewallsStore.filter,\n\t\t\t\tpage: FirewallsStore.page,\n\t\t\t\tpage_count: FirewallsStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tif (loader) {\n\t\t\t\t\tloader.done();\n\t\t\t\t}\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load firewalls');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: FirewallTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tfirewalls: res.body.firewalls,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: FirewallTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: FirewallTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: FirewallTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function commit(firewall: FirewallTypes.Firewall): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.put('/firewall/' + firewall.id)\n\t\t\t.send(firewall)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to save firewall');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function create(firewall: FirewallTypes.Firewall): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.post('/firewall')\n\t\t\t.send(firewall)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to create firewall');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function remove(firewallId: string): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/firewall/' + firewallId)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete firewall');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function removeMulti(firewallIds: string[]): Promise {\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.delete('/firewall')\n\t\t\t.send(firewallIds)\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.set('Organization', OrganizationsStore.current)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to delete firewalls');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nEventDispatcher.register((action: FirewallTypes.FirewallDispatch) => {\n\tswitch (action.type) {\n\t\tcase FirewallTypes.CHANGE:\n\t\t\tsync();\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as FirewallTypes from '../types/FirewallTypes';\n\ninterface Props {\n\trule: FirewallTypes.Rule;\n\tonChange: (state: FirewallTypes.Rule) => void;\n\tonAdd: () => void;\n\tonRemove: () => void;\n}\n\nconst css = {\n\tgroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '310px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tsourceGroup: {\n\t\twidth: '100%',\n\t\tmaxWidth: '219px',\n\t\tmarginTop: '5px',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tportBox: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tother: {\n\t\tflex: '0 1 auto',\n\t\twidth: '52px',\n\t\tborderRadius: '0 3px 3px 0',\n\t} as React.CSSProperties,\n};\n\nexport default class FirewallRule extends React.Component {\n\tclone(): FirewallTypes.Rule {\n\t\treturn {\n\t\t\t...this.props.rule,\n\t\t};\n\t}\n\n\tonAddSourceIp = (i: number): void => {\n\t\tlet state = this.clone();\n\n\t\tlet sourceIps = [\n\t\t\t...(state.source_ips || []),\n\t\t];\n\n\t\tsourceIps.splice(i + 1, 0, '');\n\t\tstate.source_ips = sourceIps;\n\n\t\tthis.props.onChange(state);\n\t}\n\n\tonChangeSourceIp = (i: number, sourceIp: string): void => {\n\t\tlet state = this.clone();\n\n\t\tlet sourceIps = [\n\t\t\t...(state.source_ips || []),\n\t\t];\n\n\t\tsourceIps[i] = sourceIp;\n\t\tstate.source_ips = sourceIps;\n\n\t\tthis.props.onChange(state);\n\t}\n\n\tonRemoveSourceIp = (i: number): void => {\n\t\tlet state = this.clone();\n\n\t\tlet sourceIps = [\n\t\t\t...(state.source_ips || []),\n\t\t];\n\n\t\tsourceIps.splice(i, 1);\n\t\tstate.source_ips = sourceIps;\n\n\t\tthis.props.onChange(state);\n\t}\n\n\trender(): JSX.Element {\n\t\tlet rule = this.props.rule;\n\n\t\tlet port = rule.port;\n\t\tlet placeholder = '';\n\t\tswitch (rule.protocol) {\n\t\t\tcase 'all':\n\t\t\t\tport = null;\n\t\t\t\tplaceholder = 'Allow all traffic';\n\t\t\t\tbreak;\n\t\t\tcase 'icmp':\n\t\t\t\tport = null;\n\t\t\t\tplaceholder = 'Allow all ICMP traffic';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet sourceIps = (rule.source_ips || []);\n\t\tif (sourceIps.length === 0) {\n\t\t\tsourceIps.push('');\n\t\t}\n\n\t\tlet sourceIpsDoms: JSX.Element[] = [];\n\t\tsourceIps.forEach((sourceIp: string, i: number): void => {\n\t\t\tsourceIpsDoms.push(\n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onChangeSourceIp(i, evt.target.value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveSourceIp(i);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onAddSourceIp(i);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t);\n\t\t});\n\n\t\treturn
    \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.protocol = evt.target.value;\n\n\t\t\t\t\t\t\tif (state.protocol === 'all' || state.protocol === 'icmp') {\n\t\t\t\t\t\t\t\tstate.port = null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.port = evt.target.value;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onAdd();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t{sourceIpsDoms}\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as FirewallTypes from '../types/FirewallTypes';\nimport * as FirewallActions from '../actions/FirewallActions';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport FirewallRule from './FirewallRule';\nimport PageInput from './PageInput';\nimport PageSelect from './PageSelect';\nimport PageInfo from './PageInfo';\nimport PageInputButton from './PageInputButton';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport PageTextArea from \"./PageTextArea\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tfirewall: FirewallTypes.FirewallRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\taddNetworkRole: string;\n\tfirewall: FirewallTypes.Firewall;\n\tingress: FirewallTypes.Rule;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\trules: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n};\n\nexport default class FirewallDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: null,\n\t\t\tfirewall: null,\n\t\t\tingress: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet firewall: any;\n\n\t\tif (this.state.changed) {\n\t\t\tfirewall = {\n\t\t\t\t...this.state.firewall,\n\t\t\t};\n\t\t} else {\n\t\t\tfirewall = {\n\t\t\t\t...this.props.firewall,\n\t\t\t};\n\t\t}\n\n\t\tfirewall[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tfirewall: firewall,\n\t\t});\n\t}\n\n\tonAddNetworkRole = (): void => {\n\t\tlet firewall: FirewallTypes.Firewall;\n\n\t\tif (!this.state.addNetworkRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tfirewall = {\n\t\t\t\t...this.state.firewall,\n\t\t\t};\n\t\t} else {\n\t\t\tfirewall = {\n\t\t\t\t...this.props.firewall,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(firewall.network_roles || []),\n\t\t];\n\n\n\t\tif (networkRoles.indexOf(this.state.addNetworkRole) === -1) {\n\t\t\tnetworkRoles.push(this.state.addNetworkRole);\n\t\t}\n\n\t\tnetworkRoles.sort();\n\t\tfirewall.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tfirewall: firewall,\n\t\t});\n\t}\n\n\tonRemoveNetworkRole = (networkRole: string): void => {\n\t\tlet firewall: FirewallTypes.Firewall;\n\n\t\tif (this.state.changed) {\n\t\t\tfirewall = {\n\t\t\t\t...this.state.firewall,\n\t\t\t};\n\t\t} else {\n\t\t\tfirewall = {\n\t\t\t\t...this.props.firewall,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(firewall.network_roles || []),\n\t\t];\n\n\t\tlet i = networkRoles.indexOf(networkRole);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tnetworkRoles.splice(i, 1);\n\t\tfirewall.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tfirewall: firewall,\n\t\t});\n\t}\n\n\tonAddIngress = (i: number): void => {\n\t\tlet firewall: FirewallTypes.Firewall;\n\n\t\tif (this.state.changed) {\n\t\t\tfirewall = {\n\t\t\t\t...this.state.firewall,\n\t\t\t};\n\t\t} else {\n\t\t\tfirewall = {\n\t\t\t\t...this.props.firewall,\n\t\t\t};\n\t\t}\n\n\t\tlet ingress = [\n\t\t\t...firewall.ingress,\n\t\t];\n\n\t\tingress.splice(i + 1, 0, {\n\t\t\tprotocol: 'all',\n\t\t\tsource_ips: [\n\t\t\t\t'0.0.0.0/0',\n\t\t\t\t'::/0',\n\t\t\t],\n\t\t} as FirewallTypes.Rule);\n\t\tfirewall.ingress = ingress;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tfirewall: firewall,\n\t\t});\n\t}\n\n\tonChangeIngress(i: number, rule: FirewallTypes.Rule): void {\n\t\tlet firewall: FirewallTypes.Firewall;\n\n\t\tif (this.state.changed) {\n\t\t\tfirewall = {\n\t\t\t\t...this.state.firewall,\n\t\t\t};\n\t\t} else {\n\t\t\tfirewall = {\n\t\t\t\t...this.props.firewall,\n\t\t\t};\n\t\t}\n\n\t\tlet ingress = [\n\t\t\t...firewall.ingress,\n\t\t];\n\n\t\tingress[i] = rule;\n\n\t\tfirewall.ingress = ingress;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tfirewall: firewall,\n\t\t});\n\t}\n\n\tonRemoveIngress(i: number): void {\n\t\tlet firewall: FirewallTypes.Firewall;\n\n\t\tif (this.state.changed) {\n\t\t\tfirewall = {\n\t\t\t\t...this.state.firewall,\n\t\t\t};\n\t\t} else {\n\t\t\tfirewall = {\n\t\t\t\t...this.props.firewall,\n\t\t\t};\n\t\t}\n\n\t\tlet ingress = [\n\t\t\t...firewall.ingress,\n\t\t];\n\n\t\tingress.splice(i, 1);\n\n\t\tif (!ingress.length) {\n\t\t\tingress = [\n\t\t\t\t{\n\t\t\t\t\tprotocol: 'all',\n\t\t\t\t\tsource_ips: [\n\t\t\t\t\t\t'0.0.0.0/0',\n\t\t\t\t\t\t'::/0',\n\t\t\t\t\t],\n\t\t\t\t} as FirewallTypes.Rule,\n\t\t\t];\n\t\t}\n\n\t\tfirewall.ingress = ingress;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tfirewall: firewall,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tFirewallActions.commit(this.state.firewall).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tfirewall: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tFirewallActions.remove(this.props.firewall.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet firewall: FirewallTypes.Firewall = this.state.firewall ||\n\t\t\tthis.props.firewall;\n\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\torganizationsSelect.push(\n\t\t\t);\n\t\tif (this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet networkRoles: JSX.Element[] = [];\n\t\tfor (let networkRole of (firewall.network_roles || [])) {\n\t\t\tnetworkRoles.push(\n\t\t\t\t\n\t\t\t\t\t{networkRole}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveNetworkRole(networkRole);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet rules: JSX.Element[] = [];\n\t\tfor (let i = 0; i < firewall.ingress.length; i++) {\n\t\t\tlet index = i;\n\n\t\t\trules.push(\n\t\t\t\t {\n\t\t\t\t\t\tthis.onChangeIngress(index, state);\n\t\t\t\t\t}}\n\t\t\t\t\tonAdd={(): void => {\n\t\t\t\t\t\tthis.onAddIngress(index);\n\t\t\t\t\t}}\n\t\t\t\t\tonRemove={(): void => {\n\t\t\t\t\t\tthis.onRemoveIngress(index);\n\t\t\t\t\t}}\n\t\t\t\t/>,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{rules}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('organization', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddNetworkRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddNetworkRole}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tfirewall: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as FirewallTypes from '../types/FirewallTypes';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport FirewallDetailed from './FirewallDetailed';\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tfirewall: FirewallTypes.FirewallRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class Firewall extends React.Component {\n\trender(): JSX.Element {\n\t\tlet firewall = this.props.firewall;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    ;\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet networkRoles: JSX.Element[] = [];\n\t\tfor (let networkRole of (firewall.network_roles || [])) {\n\t\t\tnetworkRoles.push(\n\t\t\t\t\n\t\t\t\t\t{networkRole}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet orgName = '';\n\t\tif (!MiscUtils.objectIdNil(firewall.organization)) {\n\t\t\tlet org = OrganizationsStore.organization(firewall.organization);\n\t\t\torgName = org ? org.name : firewall.organization;\n\t\t} else {\n\t\t\torgName = 'Node Firewall';\n\t\t}\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{firewall.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{orgName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{networkRoles}\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as FirewallTypes from '../types/FirewallTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\n\ninterface Props {\n\tfilter: FirewallTypes.Filter;\n\tonFilter: (filter: FirewallTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class FirewallsFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.network_role = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.network_role;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport FirewallsStore from '../stores/FirewallsStore';\nimport * as FirewallActions from '../actions/FirewallActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class FirewallsPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: FirewallsStore.page,\n\t\t\tpageCount: FirewallsStore.pageCount,\n\t\t\tpages: FirewallsStore.pages,\n\t\t\tcount: FirewallsStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tFirewallsStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tFirewallsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: FirewallsStore.page,\n\t\t\tpageCount: FirewallsStore.pageCount,\n\t\t\tpages: FirewallsStore.pages,\n\t\t\tcount: FirewallsStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tFirewallActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tFirewallActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tFirewallActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tFirewallActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tFirewallActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as FirewallTypes from '../types/FirewallTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport FirewallsStore from '../stores/FirewallsStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as FirewallActions from '../actions/FirewallActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport Firewall from './Firewall';\nimport FirewallsFilter from './FirewallsFilter';\nimport FirewallsPage from './FirewallsPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tfirewalls: FirewallTypes.FirewallsRo;\n\tfilter: FirewallTypes.Filter;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Firewalls extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tfirewalls: FirewallsStore.firewalls,\n\t\t\tfilter: FirewallsStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tFirewallsStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tFirewallActions.sync();\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tFirewallsStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet firewalls = FirewallsStore.firewalls;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tfirewalls.forEach((firewall: FirewallTypes.Firewall): void => {\n\t\t\tif (curSelected[firewall.id]) {\n\t\t\t\tselected[firewall.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[firewall.id]) {\n\t\t\t\topened[firewall.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tfirewalls: firewalls,\n\t\t\tfilter: FirewallsStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tFirewallActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet firewallsDom: JSX.Element[] = [];\n\n\t\tthis.state.firewalls.forEach((\n\t\t\t\tfirewall: FirewallTypes.FirewallRo): void => {\n\t\t\tfirewallsDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet firewalls = this.state.firewalls;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < firewalls.length; i++) {\n\t\t\t\t\t\t\tlet usr = firewalls[i];\n\n\t\t\t\t\t\t\tif (usr.id === firewall.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[firewalls[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: firewall.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[firewall.id]) {\n\t\t\t\t\t\tdelete selected[firewall.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[firewall.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: firewall.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[firewall.id]) {\n\t\t\t\t\t\tdelete opened[firewall.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[firewall.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let instId of Object.keys(this.state.selected)) {\n\t\t\tlet inst = FirewallsStore.firewall(instId);\n\t\t\tif (inst) {\n\t\t\t\tselectedNames.push(inst.name || instId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(instId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Firewalls

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tFirewallActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tFirewallActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tlet orgId = '';\n\t\t\t\t\t\t\t\tif (this.state.organizations.length) {\n\t\t\t\t\t\t\t\t\torgId = this.state.organizations[0].id;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tFirewallActions.create({\n\t\t\t\t\t\t\t\t\torganization: orgId,\n\t\t\t\t\t\t\t\t\tingress: [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tsource_ips: [\n\t\t\t\t\t\t\t\t\t\t\t\t'0.0.0.0/0',\n\t\t\t\t\t\t\t\t\t\t\t\t'::/0',\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\tprotocol: 'icmp',\n\t\t\t\t\t\t\t\t\t\t} as FirewallTypes.Rule,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tsource_ips: [\n\t\t\t\t\t\t\t\t\t\t\t\t'0.0.0.0/0',\n\t\t\t\t\t\t\t\t\t\t\t\t'::/0',\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\tprotocol: 'tcp',\n\t\t\t\t\t\t\t\t\t\t\tport: '22',\n\t\t\t\t\t\t\t\t\t\t} as FirewallTypes.Rule,\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tcomment: '22/tcp - SSH connections'\n\t\t\t\t\t\t\t\t} as FirewallTypes.Firewall).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tFirewallActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{firewallsDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport * as AuthorityActions from '../actions/AuthorityActions';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport PageInput from './PageInput';\nimport PageSelect from './PageSelect';\nimport PageInfo from './PageInfo';\nimport PageInputButton from './PageInputButton';\nimport PageTextArea from './PageTextArea';\nimport PageSave from './PageSave';\nimport ConfirmButton from './ConfirmButton';\nimport Help from './Help';\nimport * as Constants from \"../Constants\";\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tauthority: AuthorityTypes.AuthorityRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\tonClose: () => void;\n}\n\ninterface State {\n\tdisabled: boolean;\n\tchanged: boolean;\n\tmessage: string;\n\taddRole: string;\n\taddNetworkRole: string;\n\tauthority: AuthorityTypes.Authority;\n}\n\nconst css = {\n\tcard: {\n\t\tposition: 'relative',\n\t\tpadding: '48px 10px 0 10px',\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\theight: '30px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tcursor: 'pointer',\n\t\tposition: 'absolute',\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tpadding: '4px',\n\t\theight: '39px',\n\t\tbackgroundColor: 'rgba(0, 0, 0, 0.13)',\n\t} as React.CSSProperties,\n\titem: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\titemsLabel: {\n\t\tdisplay: 'block',\n\t} as React.CSSProperties,\n\titemsAdd: {\n\t\tmargin: '8px 0 15px 0',\n\t} as React.CSSProperties,\n\tgroup: {\n\t\tflex: 1,\n\t\tminWidth: '280px',\n\t\tmargin: '0 10px',\n\t} as React.CSSProperties,\n\tsave: {\n\t\tpaddingBottom: '10px',\n\t} as React.CSSProperties,\n\tlabel: {\n\t\twidth: '100%',\n\t\tmaxWidth: '280px',\n\t} as React.CSSProperties,\n\tstatus: {\n\t\tmargin: '6px 0 0 1px',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tinputGroup: {\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\tprotocol: {\n\t\tflex: '0 1 auto',\n\t} as React.CSSProperties,\n\tport: {\n\t\tflex: '1',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '7px 0px 0px 6px',\n\t\tpaddingTop: '3px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n\trules: {\n\t\tmarginBottom: '15px',\n\t} as React.CSSProperties,\n};\n\nexport default class AuthorityDetailed extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tdisabled: false,\n\t\t\tchanged: false,\n\t\t\tmessage: '',\n\t\t\taddRole: null,\n\t\t\taddNetworkRole: null,\n\t\t\tauthority: null,\n\t\t};\n\t}\n\n\tset(name: string, val: any): void {\n\t\tlet authority: any;\n\n\t\tif (this.state.changed) {\n\t\t\tauthority = {\n\t\t\t\t...this.state.authority,\n\t\t\t};\n\t\t} else {\n\t\t\tauthority = {\n\t\t\t\t...this.props.authority,\n\t\t\t};\n\t\t}\n\n\t\tauthority[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tauthority: authority,\n\t\t});\n\t}\n\n\tonAddRole = (): void => {\n\t\tlet authority: AuthorityTypes.Authority;\n\n\t\tif (!this.state.addRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tauthority = {\n\t\t\t\t...this.state.authority,\n\t\t\t};\n\t\t} else {\n\t\t\tauthority = {\n\t\t\t\t...this.props.authority,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...(authority.roles || []),\n\t\t];\n\n\n\t\tif (roles.indexOf(this.state.addRole) === -1) {\n\t\t\troles.push(this.state.addRole);\n\t\t}\n\n\t\troles.sort();\n\t\tauthority.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\tauthority: authority,\n\t\t});\n\t}\n\n\tonRemoveRole = (role: string): void => {\n\t\tlet authority: AuthorityTypes.Authority;\n\n\t\tif (this.state.changed) {\n\t\t\tauthority = {\n\t\t\t\t...this.state.authority,\n\t\t\t};\n\t\t} else {\n\t\t\tauthority = {\n\t\t\t\t...this.props.authority,\n\t\t\t};\n\t\t}\n\n\t\tlet roles = [\n\t\t\t...(authority.roles || []),\n\t\t];\n\n\t\tlet i = roles.indexOf(role);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\troles.splice(i, 1);\n\t\tauthority.roles = roles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddRole: '',\n\t\t\tauthority: authority,\n\t\t});\n\t}\n\n\tonAddNetworkRole = (): void => {\n\t\tlet authority: AuthorityTypes.Authority;\n\n\t\tif (!this.state.addNetworkRole) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.state.changed) {\n\t\t\tauthority = {\n\t\t\t\t...this.state.authority,\n\t\t\t};\n\t\t} else {\n\t\t\tauthority = {\n\t\t\t\t...this.props.authority,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(authority.network_roles || []),\n\t\t];\n\n\n\t\tif (networkRoles.indexOf(this.state.addNetworkRole) === -1) {\n\t\t\tnetworkRoles.push(this.state.addNetworkRole);\n\t\t}\n\n\t\tnetworkRoles.sort();\n\t\tauthority.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tauthority: authority,\n\t\t});\n\t}\n\n\tonRemoveNetworkRole = (networkRole: string): void => {\n\t\tlet authority: AuthorityTypes.Authority;\n\n\t\tif (this.state.changed) {\n\t\t\tauthority = {\n\t\t\t\t...this.state.authority,\n\t\t\t};\n\t\t} else {\n\t\t\tauthority = {\n\t\t\t\t...this.props.authority,\n\t\t\t};\n\t\t}\n\n\t\tlet networkRoles = [\n\t\t\t...(authority.network_roles || []),\n\t\t];\n\n\t\tlet i = networkRoles.indexOf(networkRole);\n\t\tif (i === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tnetworkRoles.splice(i, 1);\n\t\tauthority.network_roles = networkRoles;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\taddNetworkRole: '',\n\t\t\tauthority: authority,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\n\n\t\tlet authority: any = {\n\t\t\t...this.state.authority,\n\t\t};\n\n\t\tif (this.props.organizations.length && !authority.organization) {\n\t\t\tauthority.organization = this.props.organizations[0].id;\n\t\t}\n\n\t\tAuthorityActions.commit(authority).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tauthority: null,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 1000);\n\n\t\t\tsetTimeout((): void => {\n\t\t\t\tif (!this.state.changed) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tmessage: '',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, 3000);\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tAuthorityActions.remove(this.props.authority.id).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet authority: AuthorityTypes.Authority = this.state.authority ||\n\t\t\tthis.props.authority;\n\n\t\tlet hasOrganizations = !!this.props.organizations.length;\n\t\tlet organizationsSelect: JSX.Element[] = [];\n\t\tif (this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!hasOrganizations) {\n\t\t\torganizationsSelect.push(\n\t\t\t\t);\n\t\t}\n\n\t\tlet roles: JSX.Element[] = [];\n\t\tfor (let role of (authority.roles || [])) {\n\t\t\troles.push(\n\t\t\t\t\n\t\t\t\t\t{role}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveRole(role);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\tlet networkRoles: JSX.Element[] = [];\n\t\tfor (let networkRole of (authority.network_roles || [])) {\n\t\t\tnetworkRoles.push(\n\t\t\t\t\n\t\t\t\t\t{networkRole}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.onRemoveNetworkRole(networkRole);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\t\t\t\tif (target.className.indexOf('tab-close') !== -1) {\n\t\t\t\t\t\t\t\tthis.props.onClose();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n
    \n \n {\n\t\t\t\t\t\t\t\t\t}}\n onClick={(evt): void => {\n\t\t\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t\t\t}}\n />\n \n \n
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('name', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('comment', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('type', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('key', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('certificate', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\tRoles\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{roles}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddRole}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('organization', val);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{organizationsSelect}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\taddNetworkRole: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={this.onAddNetworkRole}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tauthority: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport AuthorityDetailed from './AuthorityDetailed';\n\ninterface Props {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tauthority: AuthorityTypes.AuthorityRo;\n\tselected: boolean;\n\tonSelect: (shift: boolean) => void;\n\topen: boolean;\n\tonOpen: () => void;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tcursor: 'pointer',\n\t} as React.CSSProperties,\n\tcardOpen: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t\tposition: 'relative',\n\t} as React.CSSProperties,\n\tselect: {\n\t\tmargin: '2px 0 0 0',\n\t\tpaddingTop: '3px',\n\t\tminHeight: '18px',\n\t} as React.CSSProperties,\n\tname: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t} as React.CSSProperties,\n\tnameSpan: {\n\t\tmargin: '1px 5px 0 0',\n\t} as React.CSSProperties,\n\titem: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '9px',\n\t\twhiteSpace: 'nowrap',\n\t} as React.CSSProperties,\n\ticon: {\n\t\tmarginRight: '3px',\n\t} as React.CSSProperties,\n\tbars: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '8px',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tbar: {\n\t\theight: '6px',\n\t\tmarginBottom: '1px',\n\t} as React.CSSProperties,\n\tbarLast: {\n\t\theight: '6px',\n\t} as React.CSSProperties,\n\troles: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0 8px 8px 8px',\n\t} as React.CSSProperties,\n\ttag: {\n\t\tmargin: '8px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class Authority extends React.Component {\n\trender(): JSX.Element {\n\t\tlet authority = this.props.authority;\n\n\t\tif (this.props.open) {\n\t\t\treturn \n\t\t\t\t {\n\t\t\t\t\t\tthis.props.onOpen();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    ;\n\t\t}\n\n\t\tlet cardStyle = {\n\t\t\t...css.card,\n\t\t};\n\n\t\tlet networkRoles: JSX.Element[] = [];\n\t\tfor (let networkRole of (authority.network_roles || [])) {\n\t\t\tnetworkRoles.push(\n\t\t\t\t\n\t\t\t\t\t{networkRole}\n\t\t\t\t,\n\t\t\t);\n\t\t}\n\n\t\tlet orgName = '';\n\t\tif (authority.organization) {\n\t\t\tlet org = OrganizationsStore.organization(authority.organization);\n\t\t\torgName = org ? org.name : authority.organization;\n\t\t} else {\n\t\t\torgName = 'No Organization';\n\t\t}\n\n\t\treturn {\n\t\t\t\tlet target = evt.target as HTMLElement;\n\n\t\t\t\tif (target.className.indexOf('open-ignore') !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.props.onOpen();\n\t\t\t}}\n\t\t>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonClick={(evt): void => {\n\t\t\t\t\t\t\t\tthis.props.onSelect(evt.shiftKey);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t{authority.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{orgName}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{networkRoles}\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as Constants from '../Constants';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport SearchInput from './SearchInput';\nimport * as OrganizationTypes from \"../types/OrganizationTypes\";\n\ninterface Props {\n\tfilter: AuthorityTypes.Filter;\n\tonFilter: (filter: AuthorityTypes.Filter) => void;\n\torganizations: OrganizationTypes.OrganizationsRo;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class AuthoritiesFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet organizationsSelect: JSX.Element[] = [\n\t\t\t,\n\t\t];\n\t\tif (this.props.organizations && this.props.organizations.length) {\n\t\t\tfor (let organization of this.props.organizations) {\n\t\t\t\torganizationsSelect.push(\n\t\t\t\t\t{organization.name},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.id = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.name = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.name;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.role = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.role;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.network_role = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.network_role;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport AuthoritiesStore from '../stores/AuthoritiesStore';\nimport * as AuthorityActions from '../actions/AuthorityActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class AuthoritiesPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: AuthoritiesStore.page,\n\t\t\tpageCount: AuthoritiesStore.pageCount,\n\t\t\tpages: AuthoritiesStore.pages,\n\t\t\tcount: AuthoritiesStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tAuthoritiesStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tAuthoritiesStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: AuthoritiesStore.page,\n\t\t\tpageCount: AuthoritiesStore.pageCount,\n\t\t\tpages: AuthoritiesStore.pages,\n\t\t\tcount: AuthoritiesStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tAuthorityActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tAuthorityActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tAuthorityActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tAuthorityActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tAuthorityActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as AuthorityTypes from '../types/AuthorityTypes';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport AuthoritiesStore from '../stores/AuthoritiesStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport * as AuthorityActions from '../actions/AuthorityActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport Authority from './Authority';\nimport AuthoritiesFilter from './AuthoritiesFilter';\nimport AuthoritiesPage from './AuthoritiesPage';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport NonState from './NonState';\nimport ConfirmButton from './ConfirmButton';\n\ninterface Selected {\n\t[key: string]: boolean;\n}\n\ninterface Opened {\n\t[key: string]: boolean;\n}\n\ninterface State {\n\tauthorities: AuthorityTypes.AuthoritiesRo;\n\tfilter: AuthorityTypes.Filter;\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tselected: Selected;\n\topened: Opened;\n\tnewOpened: boolean;\n\tlastSelected: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\titems: {\n\t\twidth: '100%',\n\t\tmarginTop: '-5px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 5px',\n\t} as React.CSSProperties,\n\titemsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\tplaceholder: {\n\t\topacity: 0,\n\t\twidth: '100%',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Authorities extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tauthorities: AuthoritiesStore.authorities,\n\t\t\tfilter: AuthoritiesStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: {},\n\t\t\topened: {},\n\t\t\tnewOpened: false,\n\t\t\tlastSelected: null,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tget selected(): boolean {\n\t\treturn !!Object.keys(this.state.selected).length;\n\t}\n\n\tget opened(): boolean {\n\t\treturn !!Object.keys(this.state.opened).length;\n\t}\n\n\tcomponentDidMount(): void {\n\t\tAuthoritiesStore.addChangeListener(this.onChange);\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\tAuthorityActions.sync();\n\t\tOrganizationActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tAuthoritiesStore.removeChangeListener(this.onChange);\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tlet authorities = AuthoritiesStore.authorities;\n\t\tlet selected: Selected = {};\n\t\tlet curSelected = this.state.selected;\n\t\tlet opened: Opened = {};\n\t\tlet curOpened = this.state.opened;\n\n\t\tauthorities.forEach((authority: AuthorityTypes.Authority): void => {\n\t\t\tif (curSelected[authority.id]) {\n\t\t\t\tselected[authority.id] = true;\n\t\t\t}\n\t\t\tif (curOpened[authority.id]) {\n\t\t\t\topened[authority.id] = true;\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tauthorities: authorities,\n\t\t\tfilter: AuthoritiesStore.filter,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tselected: selected,\n\t\t\topened: opened,\n\t\t});\n\t}\n\n\tonDelete = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tAuthorityActions.removeMulti(\n\t\t\t\tObject.keys(this.state.selected)).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tselected: {},\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet authoritiesDom: JSX.Element[] = [];\n\n\t\tthis.state.authorities.forEach((\n\t\t\t\tauthority: AuthorityTypes.AuthorityRo): void => {\n\t\t\tauthoritiesDom.push( {\n\t\t\t\t\tlet selected = {\n\t\t\t\t\t\t...this.state.selected,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (shift) {\n\t\t\t\t\t\tlet authorities = this.state.authorities;\n\t\t\t\t\t\tlet start: number;\n\t\t\t\t\t\tlet end: number;\n\n\t\t\t\t\t\tfor (let i = 0; i < authorities.length; i++) {\n\t\t\t\t\t\t\tlet usr = authorities[i];\n\n\t\t\t\t\t\t\tif (usr.id === authority.id) {\n\t\t\t\t\t\t\t\tstart = i;\n\t\t\t\t\t\t\t} else if (usr.id === this.state.lastSelected) {\n\t\t\t\t\t\t\t\tend = i;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (start !== undefined && end !== undefined) {\n\t\t\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\t\t\tend = [start, start = end][0];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\t\t\t\t\tselected[authorities[i].id] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tlastSelected: authority.id,\n\t\t\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (selected[authority.id]) {\n\t\t\t\t\t\tdelete selected[authority.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselected[authority.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tlastSelected: authority.id,\n\t\t\t\t\t\tselected: selected,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonOpen={(): void => {\n\t\t\t\t\tlet opened = {\n\t\t\t\t\t\t...this.state.opened,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (opened[authority.id]) {\n\t\t\t\t\t\tdelete opened[authority.id];\n\t\t\t\t\t} else {\n\t\t\t\t\t\topened[authority.id] = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\topened: opened,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>);\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\tlet selectedNames: string[] = [];\n\t\tfor (let authrId of Object.keys(this.state.selected)) {\n\t\t\tlet authr = AuthoritiesStore.authority(authrId);\n\t\t\tif (authr) {\n\t\t\t\tselectedNames.push(authr.name || authrId);\n\t\t\t} else {\n\t\t\t\tselectedNames.push(authrId);\n\t\t\t}\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Authorities

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tAuthorityActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tAuthorityActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\topened: {},\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tCollapse All\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tAuthorityActions.create({\n\t\t\t\t\t\t\t\t\tname: 'New Authority',\n\t\t\t\t\t\t\t\t} as AuthorityTypes.Authority).then((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>New\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tAuthorityActions.filter(filter);\n\t\t\t\t}}\n\t\t\t\torganizations={this.state.organizations}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{authoritiesDom}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tselected: {},\n\t\t\t\t\t\tlastSelected: null,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t;\n\t}\n}\n","/// \nexport const SYNC = 'log.sync';\nexport const TRAVERSE = 'log.traverse';\nexport const FILTER = 'log.filter';\nexport const CHANGE = 'log.change';\n\nexport interface Log {\n\tid?: string;\n\tlevel?: string;\n\ttimestamp?: string;\n\tmessage?: string;\n\tstack?: string;\n\tfields?: {[key: string]: any};\n}\n\nexport interface Filter {\n\tlevel?: string;\n\tmessage?: string;\n}\n\nexport type Logs = Log[];\n\nexport type LogRo = Readonly;\nexport type LogsRo = ReadonlyArray;\n\nexport interface LogDispatch {\n\ttype: string;\n\tdata?: {\n\t\tid?: string;\n\t\tlog?: Log;\n\t\tlogs?: Logs;\n\t\tpage?: number;\n\t\tpageCount?: number;\n\t\tfilter?: Filter;\n\t\tcount?: number;\n\t};\n}\n","/// \nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventEmitter from '../EventEmitter';\nimport * as LogTypes from '../types/LogTypes';\nimport * as GlobalTypes from '../types/GlobalTypes';\n\nclass LogsStore extends EventEmitter {\n\t_logs: LogTypes.LogsRo = Object.freeze([]);\n\t_page: number;\n\t_pageCount: number;\n\t_filter: LogTypes.Filter = null;\n\t_count: number;\n\t_token = Dispatcher.register((this._callback).bind(this));\n\n\t_reset(): void {\n\t\tthis._logs = Object.freeze([]);\n\t\tthis._page = undefined;\n\t\tthis._pageCount = undefined;\n\t\tthis._filter = null;\n\t\tthis._count = undefined;\n\t\tthis.emitChange();\n\t}\n\n\tget logs(): LogTypes.LogsRo {\n\t\treturn this._logs;\n\t}\n\n\tget logsM(): LogTypes.Logs {\n\t\tlet logs: LogTypes.Logs = [];\n\t\tthis._logs.forEach((log: LogTypes.LogRo): void => {\n\t\t\tlogs.push({\n\t\t\t\t...log,\n\t\t\t});\n\t\t});\n\t\treturn logs;\n\t}\n\n\tget page(): number {\n\t\treturn this._page || 0;\n\t}\n\n\tget pageCount(): number {\n\t\treturn this._pageCount || 50;\n\t}\n\n\tget pages(): number {\n\t\treturn Math.ceil(this.count / this.pageCount);\n\t}\n\n\tget filter(): LogTypes.Filter {\n\t\treturn this._filter;\n\t}\n\n\tget count(): number {\n\t\treturn this._count || 0;\n\t}\n\n\temitChange(): void {\n\t\tthis.emitDefer(GlobalTypes.CHANGE);\n\t}\n\n\taddChangeListener(callback: () => void): void {\n\t\tthis.on(GlobalTypes.CHANGE, callback);\n\t}\n\n\tremoveChangeListener(callback: () => void): void {\n\t\tthis.removeListener(GlobalTypes.CHANGE, callback);\n\t}\n\n\t_traverse(page: number): void {\n\t\tthis._page = Math.min(this.pages, page);\n\t}\n\n\t_filterCallback(filter: LogTypes.Filter): void {\n\t\tif ((this._filter !== null && filter === null) ||\n\t\t\t(this._filter === {} && filter !== null) || (\n\t\t\t\tfilter && this._filter && (\n\t\t\t\t\tfilter.level !== this._filter.level\n\t\t\t\t))) {\n\t\t\tthis._traverse(0);\n\t\t}\n\t\tthis._filter = filter;\n\t\tthis.emitChange();\n\t}\n\n\t_sync(logs: LogTypes.Log[], count: number): void {\n\t\tfor (let i = 0; i < logs.length; i++) {\n\t\t\tlogs[i] = Object.freeze(logs[i]);\n\t\t}\n\n\t\tthis._count = count;\n\t\tthis._logs = Object.freeze(logs);\n\t\tthis._page = Math.min(this.pages, this.page);\n\n\t\tthis.emitChange();\n\t}\n\n\t_callback(action: LogTypes.LogDispatch): void {\n\t\tswitch (action.type) {\n\t\t\tcase GlobalTypes.RESET:\n\t\t\t\tthis._reset();\n\t\t\t\tbreak;\n\n\t\t\tcase LogTypes.TRAVERSE:\n\t\t\t\tthis._traverse(action.data.page);\n\t\t\t\tbreak;\n\n\t\t\tcase LogTypes.FILTER:\n\t\t\t\tthis._filterCallback(action.data.filter);\n\t\t\t\tbreak;\n\n\t\t\tcase LogTypes.SYNC:\n\t\t\t\tthis._sync(action.data.logs, action.data.count);\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nexport default new LogsStore();\n","/// \nimport * as SuperAgent from 'superagent';\nimport * as Constants from '../Constants';\nimport Dispatcher from '../dispatcher/Dispatcher';\nimport EventDispatcher from '../dispatcher/EventDispatcher';\nimport * as Alert from '../Alert';\nimport * as Csrf from '../Csrf';\nimport Loader from '../Loader';\nimport * as LogTypes from '../types/LogTypes';\nimport LogsStore from '../stores/LogsStore';\nimport * as MiscUtils from '../utils/MiscUtils';\n\nlet syncId: string;\n\nexport function sync(): Promise {\n\tlet curSyncId = MiscUtils.uuid();\n\tsyncId = curSyncId;\n\n\tlet loader = new Loader().loading();\n\n\treturn new Promise((resolve, reject): void => {\n\t\tSuperAgent\n\t\t\t.get('/log')\n\t\t\t.query({\n\t\t\t\t...LogsStore.filter,\n\t\t\t\tpage: LogsStore.page,\n\t\t\t\tpage_count: LogsStore.pageCount,\n\t\t\t})\n\t\t\t.set('Accept', 'application/json')\n\t\t\t.set('Csrf-Token', Csrf.token)\n\t\t\t.end((err: any, res: SuperAgent.Response): void => {\n\t\t\t\tloader.done();\n\n\t\t\t\tif (res && res.status === 401) {\n\t\t\t\t\twindow.location.href = '/login';\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (curSyncId !== syncId) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (err) {\n\t\t\t\t\tAlert.errorRes(res, 'Failed to load logs');\n\t\t\t\t\treject(err);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tDispatcher.dispatch({\n\t\t\t\t\ttype: LogTypes.SYNC,\n\t\t\t\t\tdata: {\n\t\t\t\t\t\tlogs: res.body.logs,\n\t\t\t\t\t\tcount: res.body.count,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tresolve();\n\t\t\t});\n\t});\n}\n\nexport function traverse(page: number): Promise {\n\tDispatcher.dispatch({\n\t\ttype: LogTypes.TRAVERSE,\n\t\tdata: {\n\t\t\tpage: page,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nexport function filter(filt: LogTypes.Filter): Promise {\n\tDispatcher.dispatch({\n\t\ttype: LogTypes.FILTER,\n\t\tdata: {\n\t\t\tfilter: filt,\n\t\t},\n\t});\n\n\treturn sync();\n}\n\nEventDispatcher.register((action: LogTypes.LogDispatch) => {\n\tswitch (action.type) {\n\t\tcase LogTypes.CHANGE:\n\t\t\tif (!Constants.user && window.location.hash.indexOf('/logs') !== -1) {\n\t\t\t\tsync();\n\t\t\t}\n\t\t\tbreak;\n\t}\n});\n","/// \nimport * as React from 'react';\nimport * as Blueprint from '@blueprintjs/core';\nimport * as MiscUtils from '../utils/MiscUtils';\nimport * as LogTypes from '../types/LogTypes';\n\ninterface State {\n\tstack: boolean;\n}\n\ninterface Props {\n\tlog: LogTypes.LogRo;\n}\n\nconst css = {\n\tcard: {\n\t\tdisplay: 'table-row',\n\t\twidth: '100%',\n\t\tpadding: 0,\n\t\tboxShadow: 'none',\n\t} as React.CSSProperties,\n\ttimestamp: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '6px',\n\t} as React.CSSProperties,\n\tlevel: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '6px',\n\t} as React.CSSProperties,\n\tmessage: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '6px',\n\t} as React.CSSProperties,\n\tfields: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '6px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tverticalAlign: 'top',\n\t\tdisplay: 'table-cell',\n\t\tpadding: '0',\n\t\twidth: '30px',\n\t} as React.CSSProperties,\n\tkey: {\n\t\tfontWeight: 'bold',\n\t} as React.CSSProperties,\n\tvalue: {\n\t} as React.CSSProperties,\n\tdialog: {\n\t\theight: '500px',\n\t\twidth: '90%',\n\t\tmaxWidth: '700px',\n\t} as React.CSSProperties,\n\tdialogBody: {\n\t\theight: '100%',\n\t} as React.CSSProperties,\n\ttextarea: {\n\t\tresize: 'none',\n\t\tfontSize: '12px',\n\t\tfontFamily: '\"Lucida Console\", Monaco, monospace',\n\t\tmarginBottom: 0,\n\t} as React.CSSProperties,\n};\n\nexport default class Log extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tstack: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tlet log = this.props.log;\n\n\t\tlet className = 'bp3-cell ';\n\t\tswitch (log.level) {\n\t\t\tcase 'debug':\n\t\t\t\tclassName += 'bp3-text-intent-success';\n\t\t\t\tbreak;\n\t\t\tcase 'info':\n\t\t\t\tclassName += 'bp3-text-intent-primary';\n\t\t\t\tbreak;\n\t\t\tcase 'warning':\n\t\t\t\tclassName += 'bp3-text-intent-warning';\n\t\t\t\tbreak;\n\t\t\tcase 'error':\n\t\t\t\tclassName += 'bp3-text-intent-danger';\n\t\t\t\tbreak;\n\t\t\tcase 'fatal':\n\t\t\t\tclassName += 'bp3-text-intent-danger';\n\t\t\t\tbreak;\n\t\t\tcase 'panic':\n\t\t\t\tclassName += 'bp3-text-intent-danger';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet fields: JSX.Element[] = [];\n\t\tfor (let key in log.fields) {\n\t\t\tif (!log.fields.hasOwnProperty(key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet val = log.fields[key];\n\n\t\t\tfields.push(\n\t\t\t\t
    \n\t\t\t\t\t{key}: \n\t\t\t\t\t\n\t\t\t\t\t\t{JSON.stringify(val)}\n\t\t\t\t\t\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t{MiscUtils.formatDateShortTime(log.timestamp) || 'Unknown'}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{log.level}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{log.message}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t{fields}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\tstack: true,\n\t\t\t\t\t\t});\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tstack: false,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as LogTypes from '../types/LogTypes';\nimport SearchInput from './SearchInput';\n\ninterface Props {\n\tfilter: LogTypes.Filter;\n\tonFilter: (filter: LogTypes.Filter) => void;\n}\n\nconst css = {\n\tfilters: {\n\t\tmargin: '-15px 0 5px 0',\n\t} as React.CSSProperties,\n\tinput: {\n\t\twidth: '200px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\twidth: '150px',\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\ttype: {\n\t\tmargin: '5px',\n\t} as React.CSSProperties,\n\tcheck: {\n\t\tmargin: '12px 5px 8px 5px',\n\t} as React.CSSProperties,\n};\n\nexport default class LogsFilter extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tmenu: false,\n\t\t};\n\t}\n\n\trender(): JSX.Element {\n\t\tif (this.props.filter === null) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tfilter.message = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdelete filter.message;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t {\n\t\t\t\t\t\tlet filter = {\n\t\t\t\t\t\t\t...this.props.filter,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tlet val = evt.target.value;\n\n\t\t\t\t\t\tif (val === 'any') {\n\t\t\t\t\t\t\tdelete filter.level;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfilter.level = val;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.props.onFilter(filter);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport LogsStore from '../stores/LogsStore';\nimport * as LogActions from '../actions/LogActions';\n\ninterface Props {\n\tonPage?: () => void;\n}\n\ninterface State {\n\tpage: number;\n\tpageCount: number;\n\tpages: number;\n\tcount: number;\n}\n\nconst css = {\n\tbutton: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 5px 0 0',\n\t} as React.CSSProperties,\n\tbuttonLast: {\n\t\tuserSelect: 'none',\n\t\tmargin: '0 0 0 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tcursor: 'pointer',\n\t\tuserSelect: 'none',\n\t\tmargin: '7px 5px 0 0',\n\t} as React.CSSProperties,\n\tcurrent: {\n\t\topacity: 0.5,\n\t} as React.CSSProperties,\n};\n\nexport default class LogsPage extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tpage: LogsStore.page,\n\t\t\tpageCount: LogsStore.pageCount,\n\t\t\tpages: LogsStore.pages,\n\t\t\tcount: LogsStore.count,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tLogsStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tLogsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tpage: LogsStore.page,\n\t\t\tpageCount: LogsStore.pageCount,\n\t\t\tpages: LogsStore.pages,\n\t\t\tcount: LogsStore.count,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet page = this.state.page;\n\t\tlet pages = this.state.pages;\n\n\t\tif (pages <= 1) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet links: JSX.Element[] = [];\n\t\tlet start = Math.max(0, page - 7);\n\t\tlet end = Math.min(pages, start + 15);\n\n\t\tfor (let i = start; i < end; i++) {\n\t\t\tlinks.push( {\n\t\t\t\t\tLogActions.traverse(i);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{i + 1}\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tLogActions.traverse(0);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tLogActions.traverse(Math.max(0, this.state.page - 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{links}\n\t\t\t {\n\t\t\t\t\tLogActions.traverse(Math.min(\n\t\t\t\t\t\tthis.state.pages - 1, this.state.page + 1));\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tLogActions.traverse(this.state.pages - 1);\n\t\t\t\t\tif (this.props.onPage) {\n\t\t\t\t\t\tthis.props.onPage();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as LogTypes from '../types/LogTypes';\nimport LogsStore from '../stores/LogsStore';\nimport * as LogActions from '../actions/LogActions';\nimport Log from './Log';\nimport LogsFilter from './LogsFilter';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport LogsPage from './LogsPage';\n\ninterface State {\n\tlogs: LogTypes.LogsRo;\n\tfilter: LogTypes.Filter;\n}\n\nconst css = {\n\tlogs: {\n\t\twidth: '100%',\n\t\tmarginTop: '-3px',\n\t\tdisplay: 'table',\n\t\tborderSpacing: '0 3px',\n\t} as React.CSSProperties,\n\tlogsBox: {\n\t\twidth: '100%',\n\t\toverflowY: 'auto',\n\t} as React.CSSProperties,\n\theader: {\n\t\tmarginTop: '-19px',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmargin: '19px 0 0 0',\n\t} as React.CSSProperties,\n\tbutton: {\n\t\tmargin: '8px 0 0 8px',\n\t} as React.CSSProperties,\n\tbuttons: {\n\t\tmarginTop: '8px',\n\t} as React.CSSProperties,\n};\n\nexport default class Logs extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tlogs: LogsStore.logs,\n\t\t\tfilter: LogsStore.filter,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tLogsStore.addChangeListener(this.onChange);\n\t\tLogActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tLogsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tlogs: LogsStore.logs,\n\t\t\tfilter: LogsStore.filter,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet logsDom: JSX.Element[] = [];\n\n\t\tthis.state.logs.forEach((log: LogTypes.LogRo): void => {\n\t\t\tlogsDom.push();\n\t\t});\n\n\t\tlet filterClass = 'bp3-button bp3-intent-primary bp3-icon-filter ';\n\t\tif (this.state.filter) {\n\t\t\tfilterClass += 'bp3-active';\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    Logs

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tif (this.state.filter === null) {\n\t\t\t\t\t\t\t\t\tLogActions.filter({});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tLogActions.filter(null);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tFilters\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tLogActions.filter(filter);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{logsDom}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t\n\t\t;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as SettingsTypes from '../types/SettingsTypes';\nimport PageInput from './PageInput';\nimport PageInputButton from './PageInputButton';\nimport PageTextArea from './PageTextArea';\nimport PageSwitch from './PageSwitch';\nimport PageInfo from './PageInfo';\nimport PageSelect from './PageSelect';\nimport Help from './Help';\n\ninterface Props {\n\tprovider: SettingsTypes.ProviderAny;\n\tonChange: (state: SettingsTypes.ProviderAny) => void;\n\tonRemove: () => void;\n}\n\ninterface State {\n\taddRole: string;\n}\n\nconst css = {\n\tlabel: {\n\t\tfontSize: '16px',\n\t\tmargin: '0 0 7px 0',\n\t} as React.CSSProperties,\n\tcard: {\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class SettingsProvider extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\taddRole: '',\n\t\t};\n\t}\n\n\tclone(): SettingsTypes.ProviderAny {\n\t\treturn {\n\t\t\t...this.props.provider,\n\t\t};\n\t}\n\n\tazure(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.tenant = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.client_id = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.client_secret = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\tauthzero(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.domain = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.client_id = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.client_secret = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\tgoogle(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.domain = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.google_email = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.google_key = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\tonelogin(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.issuer_url = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.saml_url = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.saml_cert = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\tokta(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.saml_url = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.issuer_url = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.saml_cert = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\tjumpcloud(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.saml_url = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.issuer_url = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.saml_cert = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.jumpcloud_app_id = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.jumpcloud_secret = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\trender(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\t\tlet label = '';\n\t\tlet options: JSX.Element;\n\n\t\tswitch (provider.type) {\n\t\t\tcase 'azure':\n\t\t\t\tlabel = 'Azure';\n\t\t\t\toptions = this.azure();\n\t\t\t\tbreak;\n\t\t\tcase 'authzero':\n\t\t\t\tlabel = 'Auth0';\n\t\t\t\toptions = this.authzero();\n\t\t\t\tbreak;\n\t\t\tcase 'google':\n\t\t\t\tlabel = 'Google';\n\t\t\t\toptions = this.google();\n\t\t\t\tbreak;\n\t\t\tcase 'onelogin':\n\t\t\t\tlabel = 'OneLogin';\n\t\t\t\toptions = this.onelogin();\n\t\t\t\tbreak;\n\t\t\tcase 'okta':\n\t\t\t\tlabel = 'Okta';\n\t\t\t\toptions = this.okta();\n\t\t\t\tbreak;\n\t\t\tcase 'jumpcloud':\n\t\t\t\tlabel = 'JumpCloud';\n\t\t\t\toptions = this.jumpcloud();\n\t\t\t\tbreak;\n\t\t}\n\n\t\tlet roles: JSX.Element[] = [];\n\t\tfor (let role of provider.default_roles) {\n\t\t\troles.push(\n\t\t\t\t\n\t\t\t\t\t{role}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tlet rls = [\n\t\t\t\t\t\t\t\t...this.props.provider.default_roles,\n\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\tlet i = rls.indexOf(role);\n\t\t\t\t\t\t\tif (i === -1) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\trls.splice(i, 1);\n\n\t\t\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\t\t\tstate.default_roles = rls;\n\t\t\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    ,\n\t\t\t);\n\t\t}\n\n\t\treturn
    \n\t\t\t
    {label}
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.label = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t\n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\taddRole: val,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSubmit={(): void => {\n\t\t\t\t\tlet rls = [\n\t\t\t\t\t\t...this.props.provider.default_roles,\n\t\t\t\t\t];\n\n\t\t\t\t\tif (!this.state.addRole) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (rls.indexOf(this.state.addRole) === -1) {\n\t\t\t\t\t\trls.push(this.state.addRole);\n\t\t\t\t\t}\n\n\t\t\t\t\trls.sort();\n\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.default_roles = rls;\n\t\t\t\t\tthis.props.onChange(state);\n\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\taddRole: '',\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.auto_create = !state.auto_create;\n\n\t\t\t\t\tif (!state.auto_create &&\n\t\t\t\t\t\t\tstate.role_management === 'set_on_insert') {\n\t\t\t\t\t\tstate.role_management = 'merge';\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.role_management = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\tSet on insert\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{options}\n\t\t\t {\n\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t}}\n\t\t\t>Remove\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as SettingsTypes from '../types/SettingsTypes';\nimport PageInput from './PageInput';\nimport PageSelect from './PageSelect';\nimport PageSwitch from './PageSwitch';\nimport PageInfo from './PageInfo';\n\ninterface Props {\n\tprovider: SettingsTypes.SecondaryProviderAny;\n\tonChange: (state: SettingsTypes.SecondaryProviderAny) => void;\n\tonRemove: () => void;\n}\n\nconst css = {\n\tlabel: {\n\t\tfontSize: '16px',\n\t\tmargin: '0 0 7px 0',\n\t} as React.CSSProperties,\n\tcard: {\n\t\tmarginBottom: '5px',\n\t} as React.CSSProperties,\n\trole: {\n\t\tmargin: '9px 5px 0 5px',\n\t\theight: '20px',\n\t} as React.CSSProperties,\n};\n\nexport default class SettingsSecondaryProvider extends React.Component {\n\tclone(): SettingsTypes.SecondaryProviderAny {\n\t\treturn {\n\t\t\t...this.props.provider,\n\t\t};\n\t}\n\n\tduo(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.duo_hostname = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.duo_key = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.duo_secret = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.push_factor = !state.push_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.phone_factor = !state.phone_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.passcode_factor = !state.passcode_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.sms_factor = !state.sms_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\tonelogin(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.one_login_id = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.one_login_secret = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.one_login_region = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.push_factor = !state.push_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.passcode_factor = !state.passcode_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\tokta(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\n\t\treturn
    \n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.okta_domain = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.okta_token = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.push_factor = !state.push_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.passcode_factor = !state.passcode_factor;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t
    ;\n\t}\n\n\trender(): JSX.Element {\n\t\tlet provider = this.props.provider;\n\t\tlet label = '';\n\t\tlet options: JSX.Element;\n\n\t\tswitch (provider.type) {\n\t\t\tcase 'duo':\n\t\t\t\tlabel = 'Duo';\n\t\t\t\toptions = this.duo();\n\t\t\t\tbreak;\n\t\t\tcase 'one_login':\n\t\t\t\tlabel = 'OneLogin';\n\t\t\t\toptions = this.onelogin();\n\t\t\t\tbreak;\n\t\t\tcase 'okta':\n\t\t\t\tlabel = 'Okta';\n\t\t\t\toptions = this.okta();\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn
    \n\t\t\t
    {label}
    \n\t\t\t\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.name = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tlet state = this.clone();\n\t\t\t\t\tstate.label = val;\n\t\t\t\t\tthis.props.onChange(state);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{options}\n\t\t\t {\n\t\t\t\t\tthis.props.onRemove();\n\t\t\t\t}}\n\t\t\t>Remove\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as SettingsTypes from '../types/SettingsTypes';\nimport SettingsStore from '../stores/SettingsStore';\nimport SubscriptionStore from '../stores/SubscriptionStore';\nimport * as SettingsActions from '../actions/SettingsActions';\nimport Page from './Page';\nimport PageHeader from './PageHeader';\nimport PagePanel from './PagePanel';\nimport PageSplit from './PageSplit';\nimport PageInput from './PageInput';\nimport PageSwitch from './PageSwitch';\nimport PageSelectButton from './PageSelectButton';\nimport PageSave from './PageSave';\nimport SettingsProvider from './SettingsProvider';\nimport SettingsSecondaryProvider from './SettingsSecondaryProvider';\nimport NonState from './NonState';\n\ninterface State {\n\tchanged: boolean;\n\tdisabled: boolean;\n\tmessage: string;\n\tprovider: string;\n\tsecondaryProvider: string;\n\tsettings: SettingsTypes.Settings;\n}\n\nconst css = {\n\tproviders: {\n\t\tpaddingBottom: '6px',\n\t\tmarginBottom: '5px',\n\t\tborderBottomStyle: 'solid',\n\t} as React.CSSProperties,\n\tprovidersLabel: {\n\t\tmargin: 0,\n\t} as React.CSSProperties,\n\tsecondaryProviders: {\n\t\tpaddingBottom: '6px',\n\t\tmarginTop: '5px',\n\t\tmarginBottom: '5px',\n\t\tborderBottomStyle: 'solid',\n\t} as React.CSSProperties,\n};\n\nexport default class Settings extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tchanged: false,\n\t\t\tdisabled: false,\n\t\t\tmessage: '',\n\t\t\tprovider: 'google',\n\t\t\tsecondaryProvider: 'duo',\n\t\t\tsettings: SettingsStore.settingsM,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tSettingsStore.addChangeListener(this.onChange);\n\t\tSettingsActions.sync();\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tSettingsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: false,\n\t\t\tsettings: SettingsStore.settingsM,\n\t\t});\n\t}\n\n\tonSave = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tdisabled: true,\n\t\t});\n\t\tSettingsActions.commit(this.state.settings).then((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: 'Your changes have been saved',\n\t\t\t\tchanged: false,\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t}).catch((): void => {\n\t\t\tthis.setState({\n\t\t\t\t...this.state,\n\t\t\t\tmessage: '',\n\t\t\t\tdisabled: false,\n\t\t\t});\n\t\t});\n\t}\n\n\tset = (name: string, val: any): void => {\n\t\tlet settings: any = {\n\t\t\t...this.state.settings,\n\t\t};\n\n\t\tsettings[name] = val;\n\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tchanged: true,\n\t\t\tmessage: '',\n\t\t\tsettings: settings,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet settings = this.state.settings;\n\n\t\tif (!settings) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tlet subscriptionActive = SubscriptionStore.subscription ?\n\t\t\tSubscriptionStore.subscription.active : false;\n\n\t\tlet providers: JSX.Element[] = [];\n\t\tfor (let i = 0; i < settings.auth_providers.length; i++) {\n\t\t\tproviders.push( {\n\t\t\t\t\tlet prvdrs = [\n\t\t\t\t\t\t...this.state.settings.auth_providers,\n\t\t\t\t\t];\n\t\t\t\t\tprvdrs[i] = state;\n\t\t\t\t\tthis.set('auth_providers', prvdrs);\n\t\t\t\t}}\n\t\t\t\tonRemove={(): void => {\n\t\t\t\t\tlet prvdrs = [\n\t\t\t\t\t\t...this.state.settings.auth_providers,\n\t\t\t\t\t];\n\t\t\t\t\tprvdrs.splice(i, 1);\n\t\t\t\t\tthis.set('auth_providers', prvdrs);\n\t\t\t\t}}\n\t\t\t/>);\n\t\t}\n\n\t\tlet secondaryProviders: JSX.Element[] = [];\n\t\tfor (let i = 0; i < settings.auth_secondary_providers.length; i++) {\n\t\t\tsecondaryProviders.push( {\n\t\t\t\t\tlet prvdrs = [\n\t\t\t\t\t\t...this.state.settings.auth_secondary_providers,\n\t\t\t\t\t];\n\t\t\t\t\tprvdrs[i] = state;\n\t\t\t\t\tthis.set('auth_secondary_providers', prvdrs);\n\t\t\t\t}}\n\t\t\t\tonRemove={(): void => {\n\t\t\t\t\tlet prvdrs = [\n\t\t\t\t\t\t...this.state.settings.auth_secondary_providers,\n\t\t\t\t\t];\n\t\t\t\t\tprvdrs.splice(i, 1);\n\t\t\t\t\tthis.set('auth_secondary_providers', prvdrs);\n\t\t\t\t}}\n\t\t\t/>);\n\t\t}\n\n\t\treturn \n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    Two-Factor Providers
    \n\t\t\t\t\t
    \n\t\t\t\t\t{secondaryProviders}\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\tsecondaryProvider: val,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonSubmit={(): void => {\n\t\t\t\t\t\t\tlet authProviders: SettingsTypes.SecondaryProviders = [\n\t\t\t\t\t\t\t\t...settings.auth_secondary_providers,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttype: this.state.secondaryProvider,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tthis.set('auth_secondary_providers', authProviders);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('auth_admin_expire', parseInt(val, 10));\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('auth_admin_max_duration', parseInt(val, 10));\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('auth_user_expire', parseInt(val, 10));\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.set('auth_user_max_duration', parseInt(val, 10));\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\tchanged: false,\n\t\t\t\t\t\tmessage: 'Your changes have been discarded',\n\t\t\t\t\t\tsettings: SettingsStore.settingsM,\n\t\t\t\t\t});\n\t\t\t\t}}\n\t\t\t\tonSave={this.onSave}\n\t\t\t/>\n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as OrganizationTypes from '../types/OrganizationTypes';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport OrganizationsStore from '../stores/OrganizationsStore';\n\ninterface Props {\n\thidden: boolean;\n}\n\ninterface State {\n\torganizations: OrganizationTypes.OrganizationsRo;\n\tcurrent: string;\n}\n\nconst css = {\n\tselect: {\n\t\tmarginRight: '11px',\n\t} as React.CSSProperties,\n};\n\nexport default class Organization extends React.Component {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tcurrent: null,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\torganizations: OrganizationsStore.organizations,\n\t\t\tcurrent: OrganizationsStore.current,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tlet orgsSelect: JSX.Element[] = [];\n\n\t\tthis.state.organizations.forEach((\n\t\t\t\torg: OrganizationTypes.OrganizationRo): void => {\n\t\t\torgsSelect.push(\n\t\t\t\t{org.name},\n\t\t\t);\n\t\t});\n\n\t\treturn
    \n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tOrganizationActions.setCurrent(evt.target.value);\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{orgsSelect}\n\t\t\t\t\n\t\t\t
    \n\t\t
    ;\n\t}\n}\n","/// \nimport * as React from 'react';\nimport * as ReactRouter from 'react-router-dom';\nimport * as Theme from '../Theme';\nimport * as Constants from '../Constants';\nimport * as SubscriptionTypes from '../types/SubscriptionTypes';\nimport SubscriptionStore from '../stores/SubscriptionStore';\nimport OrganizationsStore from '../stores/OrganizationsStore';\nimport LoadingBar from './LoadingBar';\nimport Subscription from './Subscription';\nimport Users from './Users';\nimport UserDetailed from './UserDetailed';\nimport Nodes from './Nodes';\nimport Policies from './Policies';\nimport Certificates from './Certificates';\nimport Organizations from './Organizations';\nimport Datacenters from './Datacenters';\nimport Alerts from './Alerts';\nimport Zones from './Zones';\nimport Blocks from './Blocks';\nimport Vpcs from './Vpcs';\nimport Domains from './Domains';\nimport Balancers from './Balancers';\nimport Storages from './Storages';\nimport Images from './Images';\nimport Disks from './Disks';\nimport Instances from './Instances';\nimport Firewalls from './Firewalls';\nimport Authorities from './Authorities';\nimport Logs from './Logs';\nimport Settings from './Settings';\nimport OrganizationSelect from './OrganizationSelect';\nimport * as UserActions from '../actions/UserActions';\nimport * as SessionActions from '../actions/SessionActions';\nimport * as AuditActions from '../actions/AuditActions';\nimport * as NodeActions from '../actions/NodeActions';\nimport * as PolicyActions from '../actions/PolicyActions';\nimport * as CertificateActions from '../actions/CertificateActions';\nimport * as OrganizationActions from '../actions/OrganizationActions';\nimport * as DatacenterActions from '../actions/DatacenterActions';\nimport * as AlertActions from '../actions/AlertActions';\nimport * as ZoneActions from '../actions/ZoneActions';\nimport * as BlockActions from '../actions/BlockActions';\nimport * as VpcActions from '../actions/VpcActions';\nimport * as DomainActions from '../actions/DomainActions';\nimport * as BalancerActions from '../actions/BalancerActions';\nimport * as StorageActions from '../actions/StorageActions';\nimport * as ImageActions from '../actions/ImageActions';\nimport * as DiskActions from '../actions/DiskActions';\nimport * as InstanceActions from '../actions/InstanceActions';\nimport * as FirewallActions from '../actions/FirewallActions';\nimport * as AuthorityActions from '../actions/AuthorityActions';\nimport * as LogActions from '../actions/LogActions';\nimport * as SettingsActions from '../actions/SettingsActions';\nimport * as SubscriptionActions from '../actions/SubscriptionActions';\n\ninterface State {\n\tsubscription: SubscriptionTypes.SubscriptionRo;\n\tcurrent: string;\n\tdisabled: boolean;\n}\n\nconst css = {\n\tcard: {\n\t\tminWidth: '310px',\n\t\tmaxWidth: '380px',\n\t\twidth: 'calc(100% - 20px)',\n\t\tmargin: '60px auto',\n\t} as React.CSSProperties,\n\tnav: {\n\t\toverflowX: 'auto',\n\t\toverflowY: 'auto',\n\t\tuserSelect: 'none',\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n\tnavTitle: {\n\t\tflexWrap: 'wrap',\n\t\theight: 'auto',\n\t} as React.CSSProperties,\n\tnavGroup: {\n\t\tflexWrap: 'wrap',\n\t\theight: 'auto',\n\t\tpadding: '10px 0',\n\t} as React.CSSProperties,\n\tlink: {\n\t\tpadding: '0 7px',\n\t\tcolor: 'inherit',\n\t} as React.CSSProperties,\n\tsub: {\n\t\tcolor: 'inherit',\n\t} as React.CSSProperties,\n\theading: {\n\t\tmarginRight: '11px',\n\t\tmarginBottom: '2px',\n\t\tfontSize: '18px',\n\t\tfontWeight: 'bold',\n\t\twidth: '100px',\n\t} as React.CSSProperties,\n};\n\nexport default class Main extends React.Component<{}, State> {\n\tconstructor(props: any, context: any) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tsubscription: SubscriptionStore.subscription,\n\t\t\tcurrent: OrganizationsStore.current,\n\t\t\tdisabled: false,\n\t\t};\n\t}\n\n\tcomponentDidMount(): void {\n\t\tif (!Constants.user) {\n\t\t\tSubscriptionStore.addChangeListener(this.onChange);\n\t\t\tSubscriptionActions.sync(false);\n\t\t} else {\n\t\t\tOrganizationsStore.addChangeListener(this.onChange);\n\t\t\tOrganizationActions.sync();\n\t\t}\n\t}\n\n\tcomponentWillUnmount(): void {\n\t\tif (!Constants.user) {\n\t\t\tSubscriptionStore.removeChangeListener(this.onChange);\n\t\t} else {\n\t\t\tOrganizationsStore.removeChangeListener(this.onChange);\n\t\t}\n\t}\n\n\tonChange = (): void => {\n\t\tthis.setState({\n\t\t\t...this.state,\n\t\t\tsubscription: SubscriptionStore.subscription,\n\t\t\tcurrent: OrganizationsStore.current,\n\t\t});\n\t}\n\n\trender(): JSX.Element {\n\t\tif ((!Constants.user && !this.state.subscription) ||\n\t\t\t\t(Constants.user && this.state.current === undefined)) {\n\t\t\treturn
    ;\n\t\t}\n\n\t\tif (Constants.user && !this.state.current) {\n\t\t\treturn
    \n\t\t\t\t\n\t\t\t\t\t

    No Organization

    \n\t\t\t\t\tAccount does not have access to any organizations\n\t\t\t\t\t {\n\t\t\t\t\t\t\twindow.location.href = '/logout';\n\t\t\t\t\t\t}}\n\t\t\t\t\t>Logout\n\t\t\t\t
    \n\t\t\t
    ;\n\t\t}\n\n\t\treturn \n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\tUsers\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tNodes\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPolicies\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tCertificates\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tOrganizations\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDatacenters\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tZones\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tIP Blocks\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tVPCs\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDomains\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tLoad Balancers\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tStorages\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tImages\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDisks\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tInstances\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tFirewalls\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tAuthorities\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tAlerts\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tLogs\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSettings\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tSubscriptionActions.sync(true);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>Subscription\n\t\t\t\t\t\t\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tlet pathname = props.location.pathname;\n\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\tdisabled: true,\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif (pathname === '/users') {\n\t\t\t\t\t\t\t\t\t\tUserActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname.startsWith('/user/')) {\n\t\t\t\t\t\t\t\t\t\tUserActions.reload().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tSessionActions.reload().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tAuditActions.reload().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/nodes') {\n\t\t\t\t\t\t\t\t\t\tNodeActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tCertificateActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tDatacenterActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tZoneActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tBlockActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/policies') {\n\t\t\t\t\t\t\t\t\t\tSettingsActions.sync();\n\t\t\t\t\t\t\t\t\t\tPolicyActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/certificates') {\n\t\t\t\t\t\t\t\t\t\tCertificateActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/organizations') {\n\t\t\t\t\t\t\t\t\t\tOrganizationActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/datacenters') {\n\t\t\t\t\t\t\t\t\t\tDatacenterActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/zones') {\n\t\t\t\t\t\t\t\t\t\tZoneActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/blocks') {\n\t\t\t\t\t\t\t\t\t\tBlockActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/vpcs') {\n\t\t\t\t\t\t\t\t\t\tVpcActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/domains') {\n\t\t\t\t\t\t\t\t\t\tDomainActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/balancers') {\n\t\t\t\t\t\t\t\t\t\tBalancerActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/storages') {\n\t\t\t\t\t\t\t\t\t\tStorageActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/images') {\n\t\t\t\t\t\t\t\t\t\tImageActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/disks') {\n\t\t\t\t\t\t\t\t\t\tDiskActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/instances') {\n\t\t\t\t\t\t\t\t\t\tInstanceActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/firewalls') {\n\t\t\t\t\t\t\t\t\t\tFirewallActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/authorities') {\n\t\t\t\t\t\t\t\t\t\tAuthorityActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/alerts') {\n\t\t\t\t\t\t\t\t\t\tAlertActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/logs') {\n\t\t\t\t\t\t\t\t\t\tLogActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/settings') {\n\t\t\t\t\t\t\t\t\t\tSettingsActions.sync().then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else if (pathname === '/subscription') {\n\t\t\t\t\t\t\t\t\t\tSubscriptionActions.sync(true).then((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}).catch((): void => {\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\tdisabled: false,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>Refresh\n\t\t\t\t\t\t)}/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\twindow.location.href = '/logout';\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>Logout\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tTheme.toggle();\n\t\t\t\t\t\t\t\tTheme.save();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t (\n\t\t\t\t\tConstants.user ? : \n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t\t (\n\t\t\t\t\t\n\t\t\t\t)}/>\n\t\t\t
    \n\t\t;\n\t}\n}\n","/// \nimport EventDispatcher from './dispatcher/EventDispatcher';\nimport * as Csrf from './Csrf';\n\nlet connected = false;\n\nfunction connect(): void {\n\tlet url = '';\n\tlet location = window.location;\n\n\tif (location.protocol === 'https:') {\n\t\turl += 'wss';\n\t} else {\n\t\turl += 'ws';\n\t}\n\n\turl += '://' + location.host + '/event?csrf_token=' + Csrf.token;\n\n\tlet socket = new WebSocket(url);\n\n\tsocket.addEventListener('close', () => {\n\t\tsetTimeout(() => {\n\t\t\tconnect();\n\t\t}, 500);\n\t});\n\n\tsocket.addEventListener('message', (evt) => {\n\t\tconsole.log(JSON.parse(evt.data).data);\n\t\tEventDispatcher.dispatch(JSON.parse(evt.data).data);\n\t});\n}\n\nexport function init() {\n\tif (connected) {\n\t\treturn;\n\t}\n\tconnected = true;\n\n\tconnect();\n}\n","/// \nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as Blueprint from '@blueprintjs/core';\nimport Main from './components/Main';\nimport * as Alert from './Alert';\nimport * as Event from './Event';\nimport * as Csrf from './Csrf';\n\nCsrf.load().then((): void => {\n\tBlueprint.FocusStyleManager.onlyShowFocusOnTabs();\n\tAlert.init();\n\tEvent.init();\n\n\tReactDOM.render(\n\t\t
    ,\n\t\tdocument.getElementById('app'),\n\t);\n});\n"],"names":["module","exports","obj","__esModule","window","document","newObj","key","Object","prototype","hasOwnProperty","call","desc","defineProperty","getOwnPropertyDescriptor","get","set","default","_interopRequireWildcard","_addClass","_interopRequireDefault","_removeClass","_react","_Transition","_extends","assign","target","i","arguments","length","source","apply","this","addClass","node","classes","split","forEach","c","removeClass","CSSTransition","_React$Component","subClass","superClass","_this","_len","args","Array","_key","concat","onEnter","appearing","className","getClassNames","removeClasses","props","onEntering","activeClassName","reflowAndAddClass","onEntered","appearClassName","doneClassName","enterClassName","onExit","onExiting","onExited","type","classNames","isStringClassNames","create","constructor","__proto__","_proto","_this$getClassNames6","scrollTop","render","createElement","Component","defaultProps","propTypes","_default","_reactDom","_TransitionGroup","ReplaceTransition","_args","handleEnter","_len2","_key2","handleLifecycle","handleEntering","_len3","_key3","handleEntered","_len4","_key4","handleExit","_len5","_key5","handleExiting","_len6","_key6","handleExited","_len7","_key7","handler","idx","originalArgs","_child$props","children","child","Children","toArray","findDOMNode","_this$props","inProp","in","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","_React$Children$toArr","first","second","cloneElement","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","PropTypes","_reactLifecyclesCompat","Transition","context","initialStatus","parentGroup","transitionGroup","appear","isMounting","enter","appearStatus","unmountOnExit","mountOnEnter","state","status","nextCallback","getChildContext","getDerivedStateFromProps","_ref","prevState","componentDidMount","updateStatus","componentDidUpdate","prevProps","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","timeout","undefined","mounting","performEnter","performExit","setState","_this2","timeouts","enterTimeout","safeSetState","onTransitionEnd","_this3","cancel","nextState","callback","setNextCallback","_this4","active","event","doesNotHaveTimeoutOrListener","addEndListener","setTimeout","childProps","only","noop","contextTypes","object","childContextTypes","polyfill","_propTypes","_ChildMapping","_assertThisInitialized","self","ReferenceError","values","map","k","TransitionGroup","bind","firstRender","appeared","mounted","nextProps","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","component","childFactory","isRequired","_CSSTransition","_ReplaceTransition","mergeChildMappings","getProp","nextChildMapping","isValidElement","hasPrev","hasNext","prevChild","isLeaving","mapFn","result","mapper","prev","next","getValueForKey","nextKeysPending","pendingKeys","prevKey","push","childMapping","nextKey","pendingNextKey","prop","classNamesShape","timeoutsShape","Caption","handleKeyUp","locale","date","getMonth","getFullYear","e","keyCode","ENTER","onClick","months","localeUtils","caption","role","onKeyUp","formatMonthTitle","LocaleUtils","clone","d","Date","getTime","isDate","value","isNaN","valueOf","addMonths","n","newDate","setMonth","isSameDay","d1","d2","getDate","isSameMonth","isDayBefore","setHours","isDayAfter","isPastDay","today","isFutureDay","tomorrow","isDayBetween","addDayToRange","day","range","from","to","isDayInRange","getWeekNumber","setDate","getDay","Math","ceil","handleEvent","modifiers","persist","Day","propNames","nextPropNames","some","name","nextProp","nextModifiers","mod","hasOwnProp","modifiersStyles","tabIndex","empty","onMouseEnter","onMouseLeave","onMouseUp","onMouseDown","onKeyDown","onTouchStart","onTouchEnd","onFocus","ariaLabel","ariaDisabled","ariaSelected","defaultClassNames","join","modifier","style","filter","Helpers","DateUtils","ModifiersUtils","DayPicker","dayPicker","showNextMonth","allowNextMonth","deltaMonths","pagedNavigation","numberOfMonths","nextMonth","currentMonth","showMonth","showPreviousMonth","allowPreviousMonth","previousMonth","handleKeyDown","LEFT","dir","cancelEvent","RIGHT","UP","showPreviousYear","DOWN","showNextYear","handleDayKeyDown","focusNextDay","focusPreviousDay","focusPreviousWeek","focusNextWeek","SPACE","onDayClick","handleDayClick","onDayKeyDown","outside","enableOutsideDaysClick","handleOutsideDayClick","handleTodayButtonClick","month","blur","onTodayButtonClick","getModifiersForDay","getCurrentMonthFromProps","startOfMonth","initialMonth","fromMonth","diffInMonths","getMonthsDiff","floor","toMonth","allowMonth","canChangeMonth","onMonthChange","allowYearChange","wrapper","focus","getDayNodes","dayNodes","dayNode","dayNodeIndex","nodeListToArray","focusLastDayOfMonth","focusFirstDayOfMonth","nextMonthDayNodeIndex","previousMonthDayNodes","labels","navbarElement","attributes","navBar","getNextNavigableMonth","getPreviousNavigableMonth","showPreviousButton","showNextButton","onNextClick","onPreviousClick","React","firstDayOfWeek","getFirstDayOfWeekFromProps","reverseMonths","reverse","todayButton","footer","renderTodayButton","container","interactionDisabled","containerProps","ref","el","lang","onBlur","renderNavbar","renderMonths","renderFooter","showOutsideDays","fixedWeeks","showWeekNumbers","showWeekDays","renderDay","renderWeek","weekNumber","weekdayElement","captionElement","VERSION","preventDefault","stopPropagation","getFirstDayOfMonth","getDaysInMonth","selectedDays","selected","disabledDays","disabled","getFirstDayOfWeek","daysInMonth","dayArray","week","weekArray","firstWeek","outsideDate","unshift","lastWeek","lastExtraWeek","lastDay","extraWeek","j","outsideClassName","dayQuery","replace","outsideDayQuery","selector","querySelectorAll","nodeList","slice","resultDate","formatDay","formatWeekdayShort","formatWeekdayLong","getMonths","WEEKDAYS_LONG","WEEKDAYS_SHORT","MONTHS","toDateString","dayMatchesModifier","isArray","isRangeOfDates","after","before","daysOfWeek","dayOfWeek","modifiersObj","reduce","modifierName","Month","monthNumber","propModifiers","getModifiersFromProps","dayModifiers","isOutside","onDayFocus","onDayMouseEnter","onDayMouseLeave","onDayMouseDown","onDayMouseUp","onDayTouchEnd","onDayTouchStart","weekdaysLong","weekdaysShort","onCaptionClick","onWeekClick","captionProps","weeks","getWeekArray","body","Navbar","handleNextClick","handlePreviousClick","handleNextKeyDown","handlePreviousKeyDown","previousClickHandler","nextClickHandler","previousKeyDownHandler","nextKeyDownHandler","shouldShowPrevious","shouldShowNext","previousClassName","navButtonPrev","navButtonInteractionDisabled","nextClassName","navButtonNext","previousButton","nextButton","Weekday","weekday","title","content","Weekdays","days","elementProps","element","weekdays","weekdaysRow","ESC","TAB","_propTypes2","_gud2","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","_inherits","enumerable","writable","configurable","setPrototypeOf","MAX_SIGNED_31_BIT_INT","createEventEmitter","handlers","on","off","h","newValue","changedBits","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","Provider","_Component","_temp","emitter","componentWillReceiveProps","oldValue","x","y","Consumer","_Component2","_temp2","getValue","onUpdate","observedBits","_react2","_implementation2","createContext","_typeof","Symbol","iterator","Log","nodeInterop","cache","_getRequireWildcardCache","has","hasPropertyDescriptor","WeakMap","cacheBabelInterop","cacheNodeInterop","toBase64Table","base64Pad","encode","data","lengthpad","toBinaryTable","decode","offset","dataLength","resultLength","leftbits","leftdata","charCodeAt","padding","charAt","Error","err","_defineProperties","descriptor","CopyRectDecoder","protoProps","staticProps","width","height","sock","display","depth","rQwait","deltaX","rQshift16","deltaY","copyImage","HextileDecoder","_tiles","_lastsubencoding","_tileBuffer","Uint8Array","_tilesX","_tilesY","_totalTiles","bytes","rQ","rQi","subencoding","currTile","tx","ty","tw","min","th","subrects","Debug","fillRect","_background","pixels","blitImage","_foreground","_startTile","_subrects","s","color","xy","sx","sy","wh","sw","sh","_subTile","_finishTile","_tileX","_tileY","_tileW","_tileH","red","green","blue","w","xend","yend","p","RawDecoder","_lines","bytesPerLine","curY","currHeight","rQlen","index","newdata","_i","rQskipBytes","RREDecoder","rQshift32","rQshiftBytes","_color","swidth","sheight","_inflator","TightDecoder","_ctl","_filter","_numColors","_palette","_zlibs","rQshift8","reset","Info","ret","_fillRect","_jpegRect","_pngRect","_basicRect","_readData","imageRect","ctl","streamId","_copyFilter","_paletteFilter","_gradientFilter","uncompressedSize","setInput","inflate","rgbx","numColors","rQpeek8","paletteSize","rQshiftTo","bpp","_monoRect","_paletteRect","palette","dest","_getScratchBuffer","w1","_y","dp","sp","_x","b","_b","total","_byte","size","_scratchBuffer","_setPrototypeOf","o","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","getPrototypeOf","TightPNGDecoder","_TightDecoder","_super","_deflate2","_zstream","Deflator","strm","chunkSize","outputBuffer","windowBits","deflateInit","inData","input","avail_in","next_in","output","avail_out","next_out","lastRet","deflate","Z_FULL_FLUSH","outData","buffer","chunks","totalLen","chunk","newData","a","f","PC2","totrot","SP1","z","SP2","SP3","SP4","SP5","SP6","SP7","SP8","DES","password","pc1m","pcr","kn","l","m","_m","_j","_l","_j2","rawi","KnLi","raw0","raw1","text","r","_i2","keysi","fval","t","enc8","_base","_int","Display","_drawCtx","_renderQ","_flushing","_fbWidth","_fbHeight","_prevDrawStyle","_target","getContext","_targetCtx","_viewportLoc","_backbuffer","_damageBounds","left","top","right","bottom","navigator","userAgent","_scale","_clipViewport","onflush","scale","_rescale","viewport","vp","viewportChangeSize","viewportChangePos","vx2","vy2","_damage","flip","canvas","toSigned32bit","saveImg","getImageData","putImageData","fromQueue","vx","vy","drawImage","_renderQPush","_setFillColor","oldX","oldY","newX","newY","mozImageSmoothingEnabled","webkitImageSmoothingEnabled","msImageSmoothingEnabled","imageSmoothingEnabled","mime","arr","img","Image","src","Uint8ClampedArray","byteOffset","ImageData","newArr","containerWidth","containerHeight","scaleRatio","targetAspectRatio","factor","newStyle","fillStyle","action","_scanRenderQ","removeEventListener","_noVNCDisplay","_resumeRenderQ","ready","complete","addEventListener","shift","encodingName","num","encodings","encodingRaw","encodingCopyRect","encodingRRE","encodingHextile","encodingTight","encodingTightPNG","pseudoEncodingQualityLevel9","pseudoEncodingQualityLevel0","pseudoEncodingDesktopSize","pseudoEncodingLastRect","pseudoEncodingCursor","pseudoEncodingQEMUExtendedKeyEvent","pseudoEncodingDesktopName","pseudoEncodingExtendedDesktopSize","pseudoEncodingXvp","pseudoEncodingFence","pseudoEncodingContinuousUpdates","pseudoEncodingCompressLevel9","pseudoEncodingCompressLevel0","pseudoEncodingVMwareCursor","pseudoEncodingExtendedClipboard","_inflate2","Inflate","inflateInit","expected","inflateReset","_keysym","DOMKeyTable","addStandard","standard","addLeftRight","addNumpad","numpad","XK_Alt_L","XK_Alt_R","XK_ISO_Level3_Shift","XK_Caps_Lock","XK_Control_L","XK_Control_R","XK_Super_L","XK_Super_R","XK_Num_Lock","XK_Scroll_Lock","XK_Shift_L","XK_Shift_R","XK_Return","XK_KP_Enter","XK_Tab","XK_space","XK_KP_Space","XK_Down","XK_KP_Down","XK_Left","XK_KP_Left","XK_Right","XK_KP_Right","XK_Up","XK_KP_Up","XK_End","XK_KP_End","XK_Home","XK_KP_Home","XK_Next","XK_KP_Next","XK_Prior","XK_KP_Prior","XK_BackSpace","XK_Clear","XK_KP_Begin","XF86XK_Copy","XF86XK_Cut","XK_Delete","XK_KP_Delete","XK_Insert","XK_KP_Insert","XF86XK_Paste","XK_Redo","XK_Undo","XK_Cancel","XK_Menu","XK_Escape","XK_Execute","XK_Find","XK_Help","XK_Pause","XK_Select","XF86XK_ZoomIn","XF86XK_ZoomOut","XF86XK_MonBrightnessDown","XF86XK_MonBrightnessUp","XF86XK_Eject","XF86XK_LogOff","XF86XK_PowerOff","XF86XK_PowerDown","XK_Print","XF86XK_Hibernate","XF86XK_Standby","XF86XK_WakeUp","XK_MultipleCandidate","XK_Eisu_toggle","XK_Codeinput","XK_Multi_key","XK_Henkan","XK_ISO_First_Group","XK_ISO_Last_Group","XK_ISO_Next_Group","XK_ISO_Prev_Group","XK_Muhenkan","XK_PreviousCandidate","XK_SingleCandidate","XK_Hangul","XK_Hangul_Hanja","XK_Hangul_Jeonja","XK_Hankaku","XK_Hiragana","XK_Hiragana_Katakana","XK_Kana_Shift","XK_Kanji","XK_Katakana","XK_Romaji","XK_Zenkaku","XK_Zenkaku_Hankaku","XK_F1","XK_F2","XK_F3","XK_F4","XK_F5","XK_F6","XK_F7","XK_F8","XK_F9","XK_F10","XK_F11","XK_F12","XK_F13","XK_F14","XK_F15","XK_F16","XK_F17","XK_F18","XK_F19","XK_F20","XK_F21","XK_F22","XK_F23","XK_F24","XK_F25","XK_F26","XK_F27","XK_F28","XK_F29","XK_F30","XK_F31","XK_F32","XK_F33","XK_F34","XK_F35","XF86XK_Close","XF86XK_MailForward","XF86XK_Reply","XF86XK_Send","XF86XK_AudioForward","XF86XK_AudioPause","XF86XK_AudioPlay","XF86XK_AudioRecord","XF86XK_AudioRewind","XF86XK_AudioStop","XF86XK_AudioNext","XF86XK_AudioPrev","XF86XK_New","XF86XK_Open","XF86XK_Save","XF86XK_Spell","XF86XK_AudioLowerVolume","XF86XK_AudioRaiseVolume","XF86XK_AudioMute","XF86XK_AudioMicMute","XF86XK_MyComputer","XF86XK_Calculator","XF86XK_Calendar","XF86XK_Mail","XF86XK_AudioMedia","XF86XK_Music","XF86XK_Phone","XF86XK_ScreenSaver","XF86XK_Excel","XF86XK_WWW","XF86XK_WebCam","XF86XK_Word","XF86XK_Back","XF86XK_Favorites","XF86XK_Forward","XF86XK_HomePage","XF86XK_Refresh","XF86XK_Search","XF86XK_Stop","XF86XK_BrightnessAdjust","XF86XK_AudioCycleTrack","XF86XK_AudioRandomPlay","XF86XK_SplitScreen","XF86XK_Subtitle","XF86XK_Next_VMode","XK_equal","XK_KP_Equal","XK_plus","XK_KP_Add","XK_minus","XK_KP_Subtract","XK_asterisk","XK_KP_Multiply","XK_slash","XK_KP_Divide","XK_period","XK_KP_Decimal","XK_comma","XK_KP_Separator","XK_0","XK_KP_0","XK_1","XK_KP_1","XK_2","XK_KP_2","XK_3","XK_KP_3","XK_4","XK_KP_4","XK_5","XK_KP_5","XK_6","XK_KP_6","XK_7","XK_KP_7","XK_8","XK_KP_8","XK_9","XK_KP_9","GH_TWODRAG","GH_PINCH","GestureHandler","_state","_tracked","_ignored","_waitingRelease","_releaseStart","_longpressTimeoutId","_twoTouchTimeoutId","_boundEventHandler","_eventHandler","detach","_stopLongpressTimeout","_stopTwoTouchTimeout","fn","_touchStart","_touchMove","_touchEnd","changedTouches","touch","identifier","clientX","clientY","id","_hasDetectedGesture","now","started","firstX","firstY","lastX","lastY","angle","_startLongpressTimeout","find","atan2","PI","hypot","prevTouch","deltaAngle","abs","_isTwoTouchTimeoutRunning","_startTwoTouchTimeout","_pushEvent","splice","_longpressTimeout","clearTimeout","_twoTouchTimeout","avgM","_getAverageMovement","avgMoveH","avgMoveV","avgD","_getAverageDistance","deltaTouchDistance","last","detail","_stateToGesture","avg","_getPosition","pos","distance","movement","gev","CustomEvent","dispatchEvent","fx","fy","lx","ly","totalH","totalV","_events","KeyboardUtil","browser","Keyboard","_keyDownList","_altGrArmed","_eventHandlers","_handleKeyUp","_handleKeyDown","_allKeysUp","onkeyevent","keysym","code","down","getKeycode","keyIdentifier","substr","codepoint","parseInt","String","fromCharCode","toUpperCase","_getKeyCode","getKeysym","_altGrTimeout","timeStamp","_altGrCtrlTime","_sendKeyEvent","stopEvent","isMac","isIOS","XK_Mode_switch","jpBadKeys","isWindows","includes","_handleAltGrTimeout","keydown","keyup","XK_VoidSymbol","XK_Linefeed","XK_Sys_Req","XK_Henkan_Mode","XK_Touroku","XK_Massyo","XK_Kana_Lock","XK_Eisu_Shift","XK_Kanji_Bangou","XK_Zen_Koho","XK_Mae_Koho","XK_Page_Up","XK_Page_Down","XK_Begin","XK_Break","XK_script_switch","XK_KP_Tab","XK_KP_F1","XK_KP_F2","XK_KP_F3","XK_KP_F4","XK_KP_Page_Up","XK_KP_Page_Down","XK_L1","XK_L2","XK_L3","XK_L4","XK_L5","XK_L6","XK_L7","XK_L8","XK_L9","XK_L10","XK_R1","XK_R2","XK_R3","XK_R4","XK_R5","XK_R6","XK_R7","XK_R8","XK_R9","XK_R10","XK_R11","XK_R12","XK_R13","XK_R14","XK_R15","XK_Shift_Lock","XK_Meta_L","XK_Meta_R","XK_Hyper_L","XK_Hyper_R","XK_exclam","XK_quotedbl","XK_numbersign","XK_dollar","XK_percent","XK_ampersand","XK_apostrophe","XK_quoteright","XK_parenleft","XK_parenright","XK_colon","XK_semicolon","XK_less","XK_greater","XK_question","XK_at","XK_A","XK_B","XK_C","XK_D","XK_E","XK_F","XK_G","XK_H","XK_I","XK_J","XK_K","XK_L","XK_M","XK_N","XK_O","XK_P","XK_Q","XK_R","XK_S","XK_T","XK_U","XK_V","XK_W","XK_X","XK_Y","XK_Z","XK_bracketleft","XK_backslash","XK_bracketright","XK_asciicircum","XK_underscore","XK_grave","XK_quoteleft","XK_a","XK_b","XK_c","XK_d","XK_e","XK_f","XK_g","XK_h","XK_i","XK_j","XK_k","XK_l","XK_m","XK_n","XK_o","XK_p","XK_q","XK_r","XK_s","XK_t","XK_u","XK_v","XK_w","XK_x","XK_y","XK_z","XK_braceleft","XK_bar","XK_braceright","XK_asciitilde","XK_nobreakspace","XK_exclamdown","XK_cent","XK_sterling","XK_currency","XK_yen","XK_brokenbar","XK_section","XK_diaeresis","XK_copyright","XK_ordfeminine","XK_guillemotleft","XK_notsign","XK_hyphen","XK_registered","XK_macron","XK_degree","XK_plusminus","XK_twosuperior","XK_threesuperior","XK_acute","XK_mu","XK_paragraph","XK_periodcentered","XK_cedilla","XK_onesuperior","XK_masculine","XK_guillemotright","XK_onequarter","XK_onehalf","XK_threequarters","XK_questiondown","XK_Agrave","XK_Aacute","XK_Acircumflex","XK_Atilde","XK_Adiaeresis","XK_Aring","XK_AE","XK_Ccedilla","XK_Egrave","XK_Eacute","XK_Ecircumflex","XK_Ediaeresis","XK_Igrave","XK_Iacute","XK_Icircumflex","XK_Idiaeresis","XK_ETH","XK_Eth","XK_Ntilde","XK_Ograve","XK_Oacute","XK_Ocircumflex","XK_Otilde","XK_Odiaeresis","XK_multiply","XK_Oslash","XK_Ooblique","XK_Ugrave","XK_Uacute","XK_Ucircumflex","XK_Udiaeresis","XK_Yacute","XK_THORN","XK_Thorn","XK_ssharp","XK_agrave","XK_aacute","XK_acircumflex","XK_atilde","XK_adiaeresis","XK_aring","XK_ae","XK_ccedilla","XK_egrave","XK_eacute","XK_ecircumflex","XK_ediaeresis","XK_igrave","XK_iacute","XK_icircumflex","XK_idiaeresis","XK_eth","XK_ntilde","XK_ograve","XK_oacute","XK_ocircumflex","XK_otilde","XK_odiaeresis","XK_division","XK_oslash","XK_ooblique","XK_ugrave","XK_uacute","XK_ucircumflex","XK_udiaeresis","XK_yacute","XK_thorn","XK_ydiaeresis","XF86XK_ModeLock","XF86XK_KbdLightOnOff","XF86XK_KbdBrightnessUp","XF86XK_KbdBrightnessDown","XF86XK_Start","XF86XK_Memo","XF86XK_ToDoList","XF86XK_ContrastAdjust","XF86XK_RockerUp","XF86XK_RockerDown","XF86XK_RockerEnter","XF86XK_Sleep","XF86XK_VendorHome","XF86XK_LightBulb","XF86XK_Shop","XF86XK_History","XF86XK_OpenURL","XF86XK_AddFavorite","XF86XK_HotLinks","XF86XK_Finance","XF86XK_Community","XF86XK_BackForward","XF86XK_Launch0","XF86XK_Launch1","XF86XK_Launch2","XF86XK_Launch3","XF86XK_Launch4","XF86XK_Launch5","XF86XK_Launch6","XF86XK_Launch7","XF86XK_Launch8","XF86XK_Launch9","XF86XK_LaunchA","XF86XK_LaunchB","XF86XK_LaunchC","XF86XK_LaunchD","XF86XK_LaunchE","XF86XK_LaunchF","XF86XK_ApplicationLeft","XF86XK_ApplicationRight","XF86XK_Book","XF86XK_CD","XF86XK_Calculater","XF86XK_Clear","XF86XK_Display","XF86XK_DOS","XF86XK_Documents","XF86XK_Explorer","XF86XK_Game","XF86XK_Go","XF86XK_iTouch","XF86XK_Market","XF86XK_Meeting","XF86XK_MenuKB","XF86XK_MenuPB","XF86XK_MySites","XF86XK_News","XF86XK_OfficeHome","XF86XK_Option","XF86XK_Q","XF86XK_Reload","XF86XK_RotateWindows","XF86XK_RotationPB","XF86XK_RotationKB","XF86XK_ScrollUp","XF86XK_ScrollDown","XF86XK_ScrollClick","XF86XK_Support","XF86XK_TaskPane","XF86XK_Terminal","XF86XK_Tools","XF86XK_Travel","XF86XK_UserPB","XF86XK_User1KB","XF86XK_User2KB","XF86XK_Video","XF86XK_WheelButton","XF86XK_Xfer","XF86XK_Away","XF86XK_Messenger","XF86XK_Pictures","XF86XK_Battery","XF86XK_Bluetooth","XF86XK_WLAN","XF86XK_UWB","XF86XK_AudioRepeat","XF86XK_CycleAngle","XF86XK_FrameBack","XF86XK_FrameForward","XF86XK_Time","XF86XK_Select","XF86XK_View","XF86XK_TopMenu","XF86XK_Red","XF86XK_Green","XF86XK_Yellow","XF86XK_Blue","XF86XK_Suspend","XF86XK_TouchpadToggle","XF86XK_TouchpadOn","XF86XK_TouchpadOff","XF86XK_Switch_VT_1","XF86XK_Switch_VT_2","XF86XK_Switch_VT_3","XF86XK_Switch_VT_4","XF86XK_Switch_VT_5","XF86XK_Switch_VT_6","XF86XK_Switch_VT_7","XF86XK_Switch_VT_8","XF86XK_Switch_VT_9","XF86XK_Switch_VT_10","XF86XK_Switch_VT_11","XF86XK_Switch_VT_12","XF86XK_Ungrab","XF86XK_ClearGrab","XF86XK_Prev_VMode","XF86XK_LogWindowTree","XF86XK_LogGrabInfo","codepoints","lookup","u","getKey","evt","_domkeytable","location","_code","_keysymdef","_vkeys","_fixedkeys","charCode","_strings","_browser","_element","_eventtarget","_display","_deflator","_keyboard","_gesturehandler","_cursor","_websock","_des","_xtscancodes","_encodings","_raw","_copyrect","_rre","_hextile","_tight","_tightpng","GESTURE_SCRLSENS","extendedClipboardActionCaps","extendedClipboardActionRequest","extendedClipboardActionPeek","extendedClipboardActionNotify","extendedClipboardActionProvide","RFB","_EventTargetMixin","urlOrChannel","options","_url","_rawChannel","_rfbCredentials","credentials","_shared","shared","_repeaterID","repeaterID","_wsProtocols","wsProtocols","_rfbConnectionState","_rfbInitState","_rfbAuthScheme","_rfbCleanDisconnect","_rfbVersion","_rfbMaxVersion","_rfbTightVNC","_rfbVeNCryptState","_rfbXvpVer","_fbName","_capabilities","power","_supportsFence","_supportsContinuousUpdates","_enabledContinuousUpdates","_supportsSetDesktopSize","_screenID","_screenFlags","_qemuExtKeyEventSupported","_clipboardText","_clipboardServerCapabilitiesActions","_clipboardServerCapabilitiesFormats","_sock","_gestures","_resizeObserver","_disconnTimer","_resizeTimeout","_mouseMoveTimer","_decoders","_FBU","rects","encoding","_mousePos","_mouseButtonMask","_mouseLastMoveTime","_viewportDragging","_viewportDragPos","_viewportHasMoved","_accumulatedWheelDeltaX","_accumulatedWheelDeltaY","_gestureLastTapTime","_gestureFirstDoubleTapEv","_gestureLastMagnitudeX","_gestureLastMagnitudeY","focusCanvas","_focusCanvas","handleResize","_handleResize","handleMouse","_handleMouse","handleWheel","_handleWheel","handleGesture","_handleGesture","_screen","overflow","background","_canvas","margin","outline","appendChild","_cursorImage","cursors","none","exc","_onFlush","_handleKeyEvent","_socketOpen","_socketClose","_handleMessage","_socketError","ResizeObserver","_updateConnectionState","dragViewport","focusOnClick","_viewOnly","_scaleViewport","_resizeSession","_showDotCursor","showDotCursor","Warn","_qualityLevel","_compressionLevel","challenge","passwordChars","encrypt","viewOnly","ungrab","grab","button","_updateClip","_updateScale","resize","_requestRemoteResize","show","_refreshCursor","cssValue","qualityLevel","Number","isInteger","_sendEncodings","compressionLevel","creds","_initMsg","sendKey","_xvpOp","scancode","messages","QEMUExtendedKeyEvent","keyEvent","extendedClipboardNotify","clientCutText","open","attach","readyState","observe","disconnect","close","removeChild","_fail","msg","reason","requestAnimationFrame","curClip","clipViewport","newClip","_screenSize","_fixScrollbars","autoscale","setDesktopSize","getBoundingClientRect","orig","oldstate","_connect","_disconnect","DISCONNECT_TIMEOUT","clean","details","cap","val","capabilities","_normalMsg","ev","clientToElement","setCapture","_handleMouseButton","_handleMouseMove","bmask","_sendMouse","dragThreshold","timeSinceLastMove","_handleDelayedMouseMove","mask","pointerEvent","absX","absY","dX","dY","deltaMode","elementX","elementY","move","dx","dy","_fakeMouseMove","magnitude","_handleTapEvent","magnitudeX","magnitudeY","sversion","rQshiftStr","isRepeater","sendString","cversion","numTypes","_securityContext","_securityStatus","types","send","strlen","username","xvpAuthStr","_negotiateAuthentication","major","minor","res","subtypesLength","_rfbVeNCryptSubtypesLength","subtypes","user","encodeUTF8","pass","response","genDES","numTunnels","clientSupportedTunnelTypes","vendor","signature","serverSupportedTunnelTypes","capCode","capVendor","capSignature","_negotiateTightTunnels","subAuthCount","clientSupportedTypes","serverSupportedTypes","authType","_negotiateXvpAuth","_negotiateStdVNCAuth","_negotiateTightAuth","_negotiateVeNCryptAuth","_negotiateTightUnixAuth","bigEndian","trueColor","redMax","greenMax","blueMax","redShift","greenShift","blueShift","nameLength","decodeUTF8","numServerMessages","numClientMessages","numEncodings","totalMessagesLength","_setDesktopName","_resize","_fbDepth","pixelFormat","fbUpdateRequest","encs","clientEncodings","_negotiateProtocolVersion","_negotiateSecurity","_handleSecurityResult","_handleSecurityReason","_negotiateServerInit","flags","formats","actions","_index","clientActions","extendedClipboardCaps","extendedClipboardFormatText","extendedClipboardProvide","extendedClipboardRequest","zlibStream","streamInflator","textData","format","sizeArray","tmpText","_i3","payload","clientFence","xvpVer","xvpMsg","_setCapability","msgType","_framebufferUpdate","_handleSetColourMapMsg","_handleServerCutText","_updateContinuousUpdates","_handleServerFenceMsg","_handleXvpMsg","rQslice","pending","flush","hdr","_handleRect","_handleVMwareCursor","_handleCursor","_handleDesktopName","_handleExtendedDesktopSize","_handleDataRect","hotx","hoty","rgba","cursorType","PIXEL_MASK","andMask","pixel","xorMask","_pixel","_pixel2","bgr","g","_pixel3","_updateCursor","pixelslength","masklength","pixIdx","alpha","numberOfScreens","firstUpdate","decoder","decodeRect","enableContinuousUpdates","ver","op","xvpOp","rgbaPixels","image","_shouldShowDotCursor","dot","change","buff","_sQ","_sQlen","keycode","xtScanCode","lowerByte","RFBkeycode","_buildExtendedClipboardFlags","formatFlag","actionFlag","_i4","deflator","dataToDeflate","deflatedData","formatKeys","sort","loopOffset","extended","toUnsigned32bit","dataOffset","remaining","flushSize","_sQbufferSize","enable","bits","enc","incremental","hasScrollbarGutter","isFirefox","exec","platform","isSafari","isTouchDevice","supportsCursorURIs","documentElement","ontouchstart","maxTouchPoints","msMaxTouchPoints","onFirstTouch","devicePixelRatio","_supportsCursorURIs","cursor","_hasScrollbarGutter","visibility","scrollbarWidth","offsetWidth","parentNode","useFallback","Cursor","position","zIndex","pointerEvents","_position","_hotSpot","_handleMouseOver","_handleMouseLeave","_handleMouseUp","capture","passive","mouseover","mouseleave","mousemove","mouseup","clear","ctx","clearRect","_updatePosition","url","toDataURL","visualViewport","offsetLeft","offsetTop","elementFromPoint","_updateVisibility","relatedTarget","_captureIsActive","contains","getComputedStyle","captureElement","_shouldShowCursor","_showCursor","_hideCursor","elem","bounds","getPointerEvent","touches","releaseCapture","proxyElem","getElementById","_captureProxy","_captureObserver","_capturedElemChanged","_captureRecursion","_elementForUnflushedEvents","newEv","defaultPrevented","MutationObserver","EventTargetMixin","_listeners","Map","Set","add","toConvert","getLogging","_logLevel","initLogging","level","console","debug","info","warn","error","utf8string","allowLatin1","decodeURIComponent","escape","URIError","DOMString","unescape","encodeURIComponent","Buf8","Buf32","Buf16","arraySet","src_offs","len","dest_offs","subarray","flattenChunks","shrinkBuf","buf","Uint16Array","Int32Array","adler","s1","s2","makeTable","table","Z_UNKNOWN","Z_STREAM_ERROR","Z_STREAM_END","Z_RLE","Z_PARTIAL_FLUSH","Z_OK","Z_NO_FLUSH","Z_HUFFMAN_ONLY","Z_FIXED","Z_FINISH","Z_FILTERED","Z_DEFLATED","Z_DEFAULT_STRATEGY","Z_DEFAULT_COMPRESSION","Z_DATA_ERROR","Z_BUF_ERROR","Z_BLOCK","old_flush","beg","FINISH_STATE","last_flush","wrap","put_byte","gzhead","hcrc","extra","comment","time","strategy","os","_crc","pending_buf","gzindex","BUSY_STATE","header","w_bits","level_flags","strstart","putShortMSB","pending_buf_size","flush_pending","HCRC_STATE","rank","lookahead","bstate","bflush","fill_window","match_length","trees","_tr_tally","flush_block_only","insert","last_lit","deflate_huff","scan","strend","_win","MAX_MATCH","deflate_rle","configuration_table","func","_tr_align","_tr_stored_block","zero","head","block_start","total_in","deflateEnd","deflateInfo","deflateInit2","deflateReset","deflateResetKeep","deflateSetDictionary","dictionary","str","avail","tmpDict","dictLength","_adler","w_size","utils","ins_h","hash_shift","hash_mask","w_mask","MIN_MATCH","prev_length","match_available","deflateSetHeader","_messages","MIN_LOOKAHEAD","errorCode","pending_out","total_out","_tr_flush_block","longest_match","cur_match","match","chain_length","max_chain_length","best_len","nice_match","limit","wmask","scan_end1","scan_end","good_match","match_start","more","start","_w_size","window_size","hash_size","deflate_fast","hash_head","max_lazy_match","deflate_slow","max_insert","prev_match","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","method","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","MAX_BITS","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","data_type","_tr_init","memLevel","max_block_size","max_start","_in","_out","end","dmax","wsize","whave","wnext","s_window","hold","lcode","dcode","lmask","dmask","here","dist","from_source","lencode","distcode","lenbits","distbits","dolen","mode","dodist","sane","Z_TREES","Z_NEED_DICT","Z_MEM_ERROR","put","have","copy","here_bits","here_op","here_val","last_bits","last_op","last_val","opts","hbuf","order","TYPE","inf_leave","check","done","BAD","wbits","xflags","extra_len","zswap32","havedict","fixedtables","nlen","ndist","ncode","lens","lendyn","_inftrees","work","distdyn","_inffast","back","was","updatewindow","inflateEnd","inflateGetHeader","inflateInfo","inflateInit2","MAX_WBITS","inflateReset2","inflateResetKeep","inflateSetDictionary","dictid","q","InflateState","lenfix","distfix","virgin","sym","lens_index","codes","table_index","incr","fill","low","max","root","curr","drop","used","huff","base","base_index","count","MAXBITS","offs","extra_index","lbase","lext","dbase","dext","send_bits","STATIC_TREES","send_code","static_ltree","put_short","bi_flush","stored_len","opt_lenb","static_lenb","max_blindex","black_mask","LITERALS","detect_data_type","build_tree","scan_tree","max_code","BL_CODES","bl_order","build_bl_tree","compress_block","static_dtree","lcodes","dcodes","blcodes","send_tree","send_all_trees","init_block","bi_windup","static_init_done","LENGTH_CODES","base_length","extra_lbits","_length_code","base_dist","extra_dbits","_dist_code","D_CODES","gen_codes","L_CODES","bi_reverse","static_l_desc","StaticTreeDesc","static_d_desc","static_bl_desc","extra_blbits","tr_static_init","TreeDesc","lc","d_code","static_tree","extra_bits","extra_base","elems","max_length","has_stree","dyn_tree","stat_desc","tree","next_code","END_BLOCK","smaller","_n2","_m2","pqdownheap","v","ltree","dtree","stree","xbits","gen_bitlen","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","copy_block","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","toString","test","_unsupportedIterableToArray","_nonIterableSpread","arr2","MAX_RQ_GROW_SIZE","DataChannel","ReadyStates","CONNECTING","WebSocket","OPEN","CLOSING","CLOSED","rawChannelProps","Websock","_websocket","_rQi","_rQlen","_rQbufferSize","_rQ","message","subState","_rQshift","part","goback","_encodeMessage","chr","_allocateBuffers","uri","protocols","rawChannel","init","channelProps","getOwnPropertyNames","binaryType","onmessage","_recvMessage","onopen","protocol","onclose","onerror","minFit","requiredBufferSize","resizeNeeded","oldRQbuffer","copyWithin","u8","_expandCompactRQ","_DecodeMessage","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","originalFunction","applyBind","hasOwn","arg","argType","inner","Emitter","mixin","_callbacks","once","removeListener","removeAllListeners","cb","callbacks","emit","listeners","hasListeners","objectKeys","isArguments","is","isRegex","deepEqual","actual","strict","isUndefinedOrNull","aIsRegex","bIsRegex","aIsBuffer","isBuffer","bIsBuffer","ka","kb","objEquiv","hasSymbols","toStr","origDefineProperty","supportsDescriptors","_","arePropertyDescriptorsSupported","predicate","defineProperties","predicates","getOwnPropertySymbols","classList","_hasClass","setAttribute","baseVal","replaceClassName","origClass","classToRemove","RegExp","remove","createDocumentFragment","nodeName","enoughArguments","mutationMacro","nodes","textNodeIfPrimitive","fragment","list","createTextNode","property","TemporaryPrototype","TemporaryTokenList","wrapVerifyToken","hOP","__defineGetter__","__defineSetter__","DOMTokenList","noClassName","getAttribute","isSVG","trim","properties","spaces","_isSVG","classListDescriptor","CLASS_LIST","toggle","token","force","DocumentFragmentPrototype","DocumentFragment","Node","NodePrototype","Element","CharacterData","CharacterDataPrototype","DocumentType","DocumentTypePrototype","ElementPrototype","HTMLElement","HTMLSelectElement","selectRemove","SVGElement","matchesSelector","webkitMatchesSelector","khtmlMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","firstChild","insertBefore","nextSibling","had","hasAttribute","removeAttribute","replaceWith","replaceChild","_dom4","o_O","verifyToken","item","original","getElementsByTagName","raf","rAF","cAF","cancelAnimationFrame","prefixes","goOn","eventName","defaultInitDict","initCustomEvent","bubbles","cancelable","initEvent","eventInitDict","createEvent","Event","$Event","out","KeyboardEvent","$KeyboardEvent","eventType","initType","defaults","char","ctrlKey","shiftKey","altKey","metaKey","altGraphKey","repeat","language","which","initKeyboardEvent","keyLocation","getModifier","withDefaults","withInitValues","view","initKeyEvent","MouseEvent","$MouseEvent","initMouseEvent","screenX","screenY","patch","what","css","querySelector","dataScope","random","proto","ELEMENT_NODE","$0","$1","$2","$3","global","DOMMap","counter","dispatched","dispatch","ce","shouldDrop","Handler","__ce__","currentTarget","Dict","createEventListener","eventListener","removed","augment","dm","dE","aEL","rEL","increment","getListenerKey","tmp","createAEL","createREL","EventTarget","Text","HTMLDocument","Window","XMLHttpRequest","ReflectOwnKeys","R","ReflectApply","receiver","Function","ownKeys","NumberIsNaN","EventEmitter","Promise","resolve","reject","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","events","existing","warning","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","RangeError","setMaxListeners","getMaxListeners","doError","er","addListener","prependListener","prependOnceListener","originalListener","pop","spliceOne","rawListeners","eventNames","stringify","stable","deterministicStringify","stableStringify","LIMIT_REPLACE_NODE","CIRCULAR_REPLACE_NODE","replacerStack","defaultOptions","depthLimit","MAX_SAFE_INTEGER","edgesLimit","replacer","spacer","decirc","JSON","replaceGetterValues","setReplace","parent","propertyDescriptor","edgeIndex","stack","compareFunction","deterministicDecirc","toJSON","validateFormat","condition","argIndex","framesToPop","Dispatcher","_defineProperty","invariant","_isDispatching","_isHandled","_isPending","_lastID","register","unregister","waitFor","ids","ii","_invokeCallback","_startDispatching","_stopDispatching","isDispatching","_pendingPayload","ERROR_MESSAGE","funcType","bound","binder","boundLength","boundArgs","Empty","implementation","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","ArrayBuffer","Atomics","BigInt","DataView","decodeURI","encodeURI","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","isFinite","parseFloat","SharedArrayBuffer","Uint32Array","WeakRef","WeakSet","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","string","number","quote","subString","getBaseIntrinsic","alias","intrinsicName","parts","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","origSymbol","hasSymbolSham","symObj","syms","propertyIsEnumerable","toStringTag","reactIs","REACT_STATICS","contextType","displayName","getDefaultProps","getDerivedStateFromError","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","supportsStandardArguments","tryDateObject","$exec","isRegexMarker","badStringifier","throwRegexMarker","toPrimitive","gOPD","define","impl","fullPattern","shortPattern","tabletPattern","equalIC","toLowerCase","containsIC","array","valueLC","convertPropsToRegExp","MobileDetect","maxPhoneWidth","ua","prepareUserAgent","_cache","FALLBACK_PHONE","FALLBACK_TABLET","FALLBACK_MOBILE","verPos","mobileDetectRules","substring","oss","phones","tablets","uas","oss0","WindowsPhoneOS","WindowsMobileOS","findMatch","rules","findMatches","getVersionStr","propertyName","patterns","getVersion","version","prepareVersionNo","NaN","numbers","isMobileFallback","detectMobileBrowsers","isTabletFallback","prepareDetectionCache","mobile","phone","tablet","phoneSized","isPhoneSized","mobileGrade","$isMobile","detectOS","getDeviceSmallerSide","screen","userAgents","versionStr","pattern","grade","_impl","factory","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","symbols","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","objectToString","functionToString","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","isEnumerable","gPO","O","addNumericSeparator","Infinity","sepRegex","int","intStr","dec","inspectCustom","inspectSymbol","isSymbol","wrapQuotes","defaultStyle","quoteChar","quoteStyle","inspect_","seen","maxStringLength","customInspect","indent","numericSeparator","inspectString","bigIntStr","maxDepth","baseIndent","getIndent","inspect","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","isElement","attrs","childNodes","xs","singleLineValues","indentedJoin","isError","cause","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isString","isRegExp","ys","isPlainObject","protoTag","stringTag","tag","trailer","lowbyte","entries","lineJoiner","isArr","symMap","numberIsNaN","getPolyfill","shim","keysShim","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","isObject","isFunction","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","isarray","pathToRegexp","parse","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","tokens","path","defaultDelimiter","delimiter","escaped","prefix","group","asterisk","partial","optional","escapeGroup","escapeString","encodeURIComponentPretty","pretty","segment","attachKeys","re","sensitive","route","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","propName","componentName","propFullName","secret","getShim","ReactPropTypes","bigint","bool","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","percentTwenties","Format","formatters","RFC1738","RFC3986","allowDots","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictNullHandling","numberStr","parseArrayValue","parseKeys","givenKey","valuesParsed","chain","leaf","cleanRoot","parseObject","normalizeParseOptions","tempObj","cleanStr","skipIndex","bracketEqualsPos","maybeMap","encodedVal","combine","parseValues","merge","compact","getSideChannel","arrayPrefixGenerators","brackets","indices","pushToArray","valueOrArray","toISO","toISOString","defaultFormat","addQueryPrefix","encoder","encodeValuesOnly","formatter","serializeDate","skipNulls","sentinel","generateArrayPrefix","sideChannel","tmpSc","step","findFlag","keyValue","valuesArray","valuesJoined","objKeys","keyPrefix","valueSideChannel","normalizeStringifyOptions","arrayFormat","joined","hexTable","arrayToObject","acc","queue","refs","compacted","compactQueue","strWithoutPlus","defaultEncoder","kind","mapped","mergeTarget","targetItem","aa","ba","ca","da","ea","fa","ha","ia","ja","B","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","D","oa","pa","qa","ma","na","la","setAttributeNS","xlinkHref","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","sa","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","for","E","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","_render","Ra","$$typeof","_context","_payload","_init","Sa","Ta","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","ownerDocument","eb","db","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","lb","mb","nb","ob","namespaceURI","innerHTML","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","setProperty","ub","menuitem","area","br","col","embed","hr","keygen","link","meta","param","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","sibling","current","bc","dc","ec","fc","gc","hc","ic","jc","kc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","transition","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","F","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","returnValue","isPropagationStopped","cancelBubble","isPersistent","wd","xd","yd","sd","eventPhase","isTrusted","td","ud","vd","Ad","pageX","pageY","getModifierState","zd","buttons","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","targetTouches","Xd","Yd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","Zd","$d","ae","be","documentMode","de","ee","fe","ge","he","ie","le","datetime","email","search","tel","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","Me","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","href","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","G","$e","af","bf","cf","df","Nb","ef","ff","parentWindow","gf","hf","J","K","Q","L","je","ke","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","H","I","Cf","M","N","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","ReactCurrentBatchConfig","lg","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","A","C","Dg","Eg","Fg","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","shouldComponentUpdate","isPureReactComponent","Mg","updater","Ng","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","tagName","fh","gh","hh","P","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","xh","S","T","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","useState","getSnapshot","subscribe","useEffect","setSnapshot","Oh","Ph","Qh","Rh","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useCallback","useContext","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","hi","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createElementNS","V","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","then","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","onCommitFiberRoot","fk","gk","ik","isReactComponent","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","sk","uk","hk","_calculateChangedBits","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","isDisabled","supportsFiber","inject","createPortal","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","__reactInternalSnapshotFlag","__reactInternalSnapshot","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","_createClass","scriptLoading","scriptLoaded","scriptDidError","ReactStripeCheckout","onScriptLoaded","stripeHandler","StripeCheckout","configure","stripeKey","hasPendingClick","showStripeDialog","onScriptError","hideLoadingDialog","onClosed","_isMounted","closed","onOpened","opened","getConfig","config","showLoadingDialog","handleOnMouseDown","buttonActive","handleOnMouseUp","canceled","promise","script","onScriptTagCreated","async","loadPromise","onload","accept","isCanceled","catch","updateStripeHandler","reconfigureOnUpdate","triggerEvent","onMouseOut","border","textDecoration","borderRadius","boxShadow","userSelect","backgroundImage","fontFamily","fontSize","textShadow","textStyle","label","desktopShowModal","ComponentClass","renderDisabledButton","renderDefaultStripeButton","description","amount","currency","panelLabel","zipCode","billingAddress","shippingAddress","allowRememberMe","bitcoin","alipay","alipayReusable","forceUpdate","__self","__source","_status","_result","IsSomeRendererActing","PureComponent","_currentValue2","_threadCount","createFactory","createRef","forwardRef","lazy","memo","$Object","hasIndices","ignoreCase","multiline","dotAll","unicode","sticky","flagsBound","TypeErr","regex","performance","MessageChannel","unstable_forceFrameRate","port2","port1","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","$WeakMap","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","$wm","$m","$o","channel","assert","objects","listGet","listHas","listSet","Agent","_defaults","_setDefaults","req","def","require","safeStringify","qs","RequestBase","ResponseBase","Request","request","getXHR","ActiveXObject","serialize","pairs","pushEncodedKeyValuePair","subkey","parseString","pair","isJSON","Response","xhr","responseType","responseText","statusText","_setStatusProperties","headers","line","field","lines","fields","parseHeader","getAllResponseHeaders","getResponseHeader","_setHeaderProperties","_responseType","_parseBody","_query","_header","new_err","err_","rawResponse","statusCode","_isResponseOK","del","serializeObject","html","json","xml","urlencoded","_parser","toError","auth","btoa","_auth","query","file","_data","_getFormData","append","_formData","FormData","_shouldRetry","_retry","_callback","_maxRetries","retries","_retries","crossDomainError","crossDomain","agent","write","pipe","_isHost","_endCalled","_finalizeQueryString","_end","_setUploadTimeout","_uploadTimeout","_uploadTimeoutTimer","_timeoutError","_aborted","_setTimeouts","onreadystatechange","_responseTimeoutTimer","timedout","handleProgress","direction","percent","loaded","upload","_withCredentials","withCredentials","contentType","_serializer","setRequestHeader","post","_timer","_timeout","_responseTimeout","option","deadline","retry","_retryCallback","ERROR_CODES","STATUS_CODES","override","timedoutError","_fullfilledPromise","use","_okCallback","getHeader","unset","abort","base64Encoder","redirects","_maxRedirects","maxResponseSize","_maxResponseSize","isObject_","sortQuery","_sort","queryArray","_appendQueryString","errno","ct","params","links","parseLinks","statusType","redirect","clientError","serverError","created","accepted","noContent","badRequest","unauthorized","notAcceptable","forbidden","notFound","unprocessableEntity","cleanHeader","changesOrigin","host","authorization","cookie","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdD","getter","definition","globalThis","Alignment","Elevation","Intent","Position","NS","BLUEPRINT_NAMESPACE","REACT_APP_BLUEPRINT_NAMESPACE","ACTIVE","ALIGN_LEFT","ALIGN_RIGHT","DARK","DISABLED","FILL","FIXED","LARGE","LOADING","MINIMAL","OUTLINED","ROUND","SMALL","VERTICAL","INTENT_PRIMARY","positionClass","elevationClass","FOCUS_DISABLED","TEXT_OVERFLOW_ELLIPSIS","BLOCKQUOTE","CODE","CODE_BLOCK","HEADING","LIST","BUTTON","BUTTON_GROUP","BUTTON_SPINNER","BUTTON_TEXT","CONTROL_GROUP","DIALOG","DIALOG_CONTAINER","DIALOG_CLOSE_BUTTON","DIALOG_HEADER","DIVIDER","HTML_SELECT","INPUT","INPUT_GROUP","INPUT_LEFT_CONTAINER","INPUT_ACTION","LABEL","MENU","MENU_ITEM","MENU_ITEM_LABEL","MENU_SUBMENU","MENU_DIVIDER","MENU_HEADER","NUMERIC_INPUT","OVERLAY","OVERLAY_BACKDROP","OVERLAY_CONTENT","OVERLAY_INLINE","OVERLAY_OPEN","OVERLAY_SCROLL_CONTAINER","POPOVER","POPOVER_ARROW","POPOVER_BACKDROP","POPOVER_CAPTURING_DISMISS","POPOVER_CONTENT","POPOVER_DISMISS","POPOVER_DISMISS_OVERRIDE","POPOVER_OPEN","POPOVER_TARGET","POPOVER_WRAPPER","TRANSITION_CONTAINER","PORTAL","SPINNER","SPINNER_ANIMATION","SPINNER_HEAD","SPINNER_NO_SPIN","SPINNER_TRACK","TOAST","TOAST_CONTAINER","TOAST_MESSAGE","TOOLTIP","ICON","alignmentClass","alignment","elevation","intent","isRunning","handleMouseDown","isActive","stop","focusEngine","InteractionModeEngine","FocusStyleManager","_inheritsLoose","isAbsolute","pathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","valueEqual","every","aValue","bValue","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","notifyListeners","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entry","nextIndex","nextEntries","canGo","commonjsGlobal","getUniqueId","_proto2","createNamedContext","historyContext","Router","_pendingLocation","staticContext","computeRootMatch","isExact","RouterContext","HistoryContext","Lifecycle","onMount","onUnmount","cacheCount","generatePath","generator","compilePath","Redirect","computedMatch","matchPath","matched","cacheKey","pathCache","regexp","Route","createURL","staticHandler","methodName","HashRouter","createHistory","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","innerRef","navigate","rest","ex","isModifiedEvent","Link","ariaCurrent","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","extendStatics","__extends","__","__assign","__rest","__decorate","decorators","decorate","__spreadArrays","il","jl","INVALID_PROPS","removeNonHTMLProps","invalidProps","shouldMerge","setRef","refTarget","isRefCallback","refHandler","refTargetParent","refTargetKey","refProp","isKeyboardClick","isNodeEnv","env","process","ns","countDecimalPlaces","round","timeoutIds","requestIds","clearTimeouts","timeoutId","cancelAnimationFrames","requestId","validateProps","_prevProps","_prevState","_snapshot","handle","isReactNodeEmpty","skipArray","ensureElement","isReactElement","isElementOfType","ComponentType","createReactRef","IconSvgPaths16","IconSvgPaths20","Icon","icon","htmlTitle","iconSize","SIZE_STANDARD","htmlprops","pixelGridSize","SIZE_LARGE","paths","renderSvgPaths","iconName","viewBox","pathsSize","pathStrings","fillRule","DISPLAYNAME_PREFIX","AbstractPureComponent2","PATH_LENGTH","Spinner","getSize","strokeOffset","toFixed","getViewBox","pathLength","SIZE_SMALL","radius","viewBoxX","viewBoxWidth","currentKeyDown","buttonRef","click","handleBlur","getCommonButtonProps","alignText","large","loading","outlined","minimal","small","renderChildren","rightIcon","handleRef","elementRef","AbstractButton","commonProps","htmlElement","tagClassName","htmlProps","H4","H6","cannotCreatePortal","REACT_CONTEXT_TYPES","blueprintPortalClassName","hasMounted","portalElement","createContainerElement","onChildrenMount","unstableRenderNoPortal","maybeAddClass","IncrementDirection","hasEverOpened","isOpen","containerElement","refHandlers","maybeRenderChild","decoratedChild","enforceFocus","onOpening","onClosing","transitionDuration","transitionName","CSSTransitionImplicit","handleTransitionAddEnd","handleBackdropMouseDown","backdropProps","canOutsideClickClose","onClose","bringFocusInsideOverlay","handleDocumentClick","eventTarget","composed","composedPath","stackIndex","openStack","isClickInThisOverlayOrDescendant","isSameNode","handleDocumentFocus","stopImmediatePropagation","canEscapeKeyClose","Overlay","usePortal","childrenWithTransitions","maybeBackdrop","maybeRenderBackdrop","containerClasses","portalClassName","portalContainer","overlayWillOpen","overlayWillClose","autofocusElement","wrapperElement","backdropClassName","hasBackdrop","lastOpenedOverlay","getLastOpened","maybeRenderHeader","isCloseButtonShown","maybeRenderCloseButton","Button","Dialog","Divider","vertical","buttonGroupClasses","ButtonGroup","rootClasses","ControlGroup","hasPendingUpdate","isComposing","nextValue","handleCompositionStart","onCompositionStart","handleCompositionEnd","onCompositionEnd","handleChange","onChange","inputRef","restProps","AsyncControllableInput","leftElement","rightElement","asyncControl","inputGroupClasses","paddingLeft","leftElementWidth","paddingRight","rightElementWidth","inputProps","maybeRenderLeftElement","maybeRenderRightElement","updateInputWidth","leftIcon","clientWidth","InputGroup","getDecimalSeparator","testText","toLocaleString","one","nine","sanitizeNumericInput","getValueOrEmptyValue","parseStringToStringNumber","valueAsString","decimalSeparator","character","jsNumber","transformLocalizedNumberToStringNumber","isValidNumericKeyboardEvent","isFloatingPointNumericCharacter","valueChars","convertFullWidthNumbersToAscii","valueChar","NON_HTML_PROPS","currentImeInputInvalid","shouldSelectAfterUpdate","stepMaxPrecision","getStepMaxPrecision","didPasteEventJustOccur","inputElement","incrementButtonHandlers","getButtonEventHandlers","decrementButtonHandlers","handleButtonClick","updateDelta","incrementValue","onButtonClick","stopContinuousChange","clearInterval","intervalId","handleContinuousChange","valueAsNumber","handleInputFocus","selectAllOnFocus","handleInputBlur","clampValueOnBlur","handleNextValue","roundAndClampValue","handleInputKeyDown","readOnly","allowNumericCharactersOnly","handleCompositionUpdate","handleInputKeyPress","onKeyPress","handleInputPaste","onPaste","handleInputChange","NumericInput","prevMaxProp","prevMinProp","didMinChange","didMaxChange","didBoundsChange","sanitizedValue","VALUE_EMPTY","minorStepSize","stepSize","stringToStringNumber","isValueNumeric","currentValue","maxPrecision","scaleFactor","pow","toMaxPrecision","clampedValue","clampValue","buttonPosition","renderButtons","renderInput","setSelectionRange","didLocaleChange","didValueChange","localizedValue","onValueChange","majorStepSize","valueDoesNotMatch","isIncrementDisabled","isDecrementDisabled","inputGroupHtmlProps","autoComplete","onCompositionUpdate","startContinuousChange","setInterval","CONTINUOUS_CHANGE_INTERVAL","CONTINUOUS_CHANGE_DELAY","currValue","VALUE_ZERO","selectAllOnIncrement","getIncrementDelta","isShiftKeyPressed","isAltKeyPressed","iconProps","optionChildren","HTMLSelect","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","Manager","newReferenceNode","referenceNode","setReferenceNode","unwrapArray","InnerReference","Reference","timeoutDuration","longerTimeoutBrowsers","isBrowser","called","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","overflowX","overflowY","getReferenceNode","reference","isIE11","MSInputMethodContext","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","DOCUMENT_POSITION_FOLLOWING","commonAncestorContainer","firstElementChild","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","rect","subtract","getBordersSize","styles","axis","sideA","sideB","computedStyle","getWindowSizes","getClientRect","offsets","sizes","clientHeight","horizScrollbar","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundariesElement","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","marginRight","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","ends","findIndex","cur","enabled","update","isDestroyed","positionFixed","originalPlacement","isCreated","onCreate","isModifierEnabled","getSupportedPropertyName","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","isNumeric","setStyles","unit","isModifierRequired","requestingName","requestedName","requesting","requested","validPlacements","placements","clockwise","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","splitRegex","ops","mergeWithPrevious","toValue","index2","shiftvariation","isVertical","shiftOffsets","transformProp","popperStyles","transform","escapeWithReference","opSide","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","arrow","flipped","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","hide","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","prefixedProperty","invertTop","invertLeft","arrowStyles","modifierOptions","Popper","debounce","Defaults","jquery","onLoad","Utils","PopperUtils","initialStyle","initialArrowStyle","InnerPopper","popperNode","updatePopperInstance","arrowNode","applyStyle","updateStateModifier","popperInstance","destroyPopperInstance","referenceElement","getOptions","setPopperNode","getPopperStyle","getPopperPlacement","outOfBoundaries","getOutOfBoundariesState","arrowProps","setArrowNode","getArrowStyle","elementIsOrContains","testElement","MapShim","getIndex","class_1","__entries__","_a","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","childList","characterData","subtree","isReflowProperty","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","positions","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","isSVGGraphicsElement","SVGGraphicsElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","onResize","observeElement","observeParents","getElement","ResizeSensor","popover","popoverClassName","Popover","interactionKind","PopoverInteractionKind","HOVER_TARGET_ONLY","reposition","hoverCloseDelay","hoverOpenDelay","Tooltip","getPosition","isVerticalPosition","getOppositePosition","getAlignment","getTransformOrigin","arrowSizeShift","arrowOffsetModifier","arrowSize","offsetSide","arrowOffsetSize","sqrt","getArrowAngle","PopoverArrow","positionToPlacement","assertNever","CLICK","CLICK_TARGET_ONLY","HOVER","popoverRef","popoverElement","targetElement","hasDarkParent","getIsOpen","transformOrigin","isMouseInTargetOrPopover","lostFocusOnSamePage","handlePopoverRef","handleTargetRef","popperScheduleUpdate","renderPopover","popperProps","popoverHandlers","handlePopoverClick","handleMouseEnter","handleMouseLeave","popoverClasses","inheritDarkTheme","captureDismiss","isArrowEnabled","understandChildren","renderTarget","referenceProps","openOnTargetFocus","targetClassName","targetProps","isControlled","isHoverInteractionKind","targetTagName","finalTargetProps","handleTargetBlur","handleTargetFocus","handleTargetClick","rawTarget","rawTabIndex","clonedTarget","isElementInPopover","setOpenState","eventPopover","closest","isEventFromSelf","isEventPopoverCapturing","dismissElement","shouldDismiss","handleOverlayClose","updatePopoverState","wrapperTagName","isContentEmpty","wrapperClasses","getPopperModifiers","updateDarkParent","nextIsOpen","onInteraction","childrenCount","hasContentProp","hasTargetProp","contentProp","targetProp","targetChild","contentChild","defaultIsOpen","boundary","preventOverflow","arrowOffset","cancelOpenTimeout","isContentOverflowing","textRef","ellipsize","newState","scrollWidth","labelElement","shouldDismissPopover","textClassName","hasSubmenu","intentClass","anchorClasses","DISABLED_PROPS","maybeRenderLabel","liClasses","maybeRenderPopover","labelClassName","popoverProps","SUBMENU_POPOVER_MODIFIERS","MenuItem","ulRef","MenuDivider","Item","handleActionClick","triggerDismiss","handleCloseClick","startTimeout","maybeRenderActionButton","AnchorButton","didTimeoutExpire","onDismiss","Toast","toasts","toastId","renderToast","toast","getDismissHandler","timeoutExpired","dismiss","handleClose","Toaster","toaster","maxToasts","dismissIfAtLimit","createToastOptions","isNewToastKey","matchesKey","getToasts","getPositionClasses","canEscapeKeyClear","success","errorRes","error_msg","oracle","setOracle","theme","light","dark","mobileOs","sessionTypes","admin","operatingSystems","linux","macos_1010","macos_1011","macos_1012","macos_1013","macos_1014","macos_1015","macos11","macos12","macos13","macos14","windows_xp","windows_7","windows_vista","windows_8","windows_10","windows_11","chrome_os","ios_8","ios_9","ios_10","ios_11","ios_12","ios_13","ios_14","ios_15","ios_16","ios_17","ios_18","android_4","android_5","android_6","android_7","android_8","android_9","android_10","android_11","android_12","android_13","android_14","blackberry_10","windows_phone","firefox_os","kindle","browsers","chrome","chrome_mobile","safari","safari_mobile","firefox","firefox_mobile","edge","internet_explorer","internet_explorer_mobile","opera","opera_mobile","locations","US","US_AL","US_AK","US_AZ","US_AR","US_CA","US_CO","US_CT","US_DE","US_FL","US_GA","US_HI","US_ID","US_IL","US_IN","US_IA","US_KS","US_KY","US_LA","US_ME","US_MD","US_MA","US_MI","US_MN","US_MS","US_MO","US_MT","US_NE","US_NV","US_NH","US_NJ","US_NM","US_NY","US_NC","US_ND","US_OH","US_OK","US_OR","US_PA","US_RI","US_SC","US_SD","US_TN","US_TX","US_UT","US_VT","US_VA","US_WA","US_DC","US_WV","US_WI","US_WY","AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","CV","KH","CM","CA","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","emitDefer","SYNC","RESET","RELOAD","_token","subscription","_subscription","subscriptionM","emitChange","addChangeListener","removeChangeListener","_sync","freeze","_organizations","_map","_reset","_current","organizations","organizationsM","organization","ADD","DONE","_loaders","_add","_done","progress","progressBar","LoadingBar","super","EventDispatcher","uuid","objectIdNil","objId","zeroPad","capitalize","formatAmount","formatDate","dateStr","hours","getHours","period","getMinutes","getSeconds","formatDateShort","curDate","formatDateShortTime","_id","syncId","sync","curSyncId","loader","activate","license","box","verticalAlign","actionProgress","borderBottomLeftRadius","borderBottomRightRadius","squareActionProgress","dialog","maxWidth","ConfirmButton","openDialog","closeDialog","closeDialogConfirm","onConfirm","confirmId","confirming","clearConfirm","safe","confirmInput","dialogClassName","dialogLabel","autoCapitalize","spellCheck","placeholder","itemsList","confirmMsg","items","hidden","confirmElem","progressStyle","confirmStyle","backgroundColor","grouped","progressClassName","card","minWidth","card2","button2","button3","Subscription","plan","reactivate","balance","balanceLabel","sub","canceling","cancel_at_period_end","periodEnd","period_end","trialEnd","trial_end","quantity","url_key","TRAVERSE","FILTER","LOAD","UNLOAD","_users","_page","_pageCount","_count","users","usersM","page","pageCount","pages","_traverse","_filterCallback","administrator","_user","userM","_load","_unload","userId","roles","permissions","page_count","traverse","filt","userIds","_audits","_userId","audits","auditsM","audit","select","paddingTop","minHeight","lastActivity","whiteSpace","nameLink","User","userType","cardStyle","onSelect","last_active","SearchInput","SwitchNull","onToggle","filters","UsersFilter","menu","onFilter","pageWide","Page","wide","paddingBottom","borderBottomStyle","PageHeader","buttonLast","UsersPage","onPage","borderSpacing","usersBox","heading","Users","curSelected","onDelete","lastSelected","usersDom","usr","filterClass","selectedNames","SHOW_REMOVED","_sessions","_showRemoved","sessions","sessionsM","session","showRemoved","_setShowRemoved","show_removed","NonState","initialized","iconClass","formatContinent","continent","continent_code","formatLocation","city","region","region_code","formatCountry","country","country_code","formatCoordinates","latitude","longitude","CopyButton","hover","copied","selectNodeContents","selection","execCommand","wordWrap","bar","copyHover","PageInfo","labelStyle","bars","copyBtn","copyItemBtn","valueClasses","valueClass","progressClass","Session","sessionId","timestamp","operating_system","isp","Sessions","showEnded","base64urlToBuffer","baseurl64String","base64String","atob","byteView","bufferToBase64url","copyValue","convertValue","convert","conversionFn","schemaField","deriveFn","schema","required","derived","publicKeyCredentialDescriptorSchema","transports","simplifiedExtensionsSchema","appid","appidExclude","credProps","simplifiedClientExtensionResultsSchema","credentialCreationOptions","publicKey","rp","pubKeyCredParams","excludeCredentials","authenticatorSelection","attestation","extensions","signal","publicKeyCredentialWithAttestation","rawId","clientDataJSON","attestationObject","getTransports","clientExtensionResults","pkc","getClientExtensionResults","rpId","allowCredentials","userVerification","authenticatorData","userHandle","requestJSON","credential","createRequestFromJSON","createResponseToJSON","_devices","devices","devicesM","device","popoverTarget","inputFirst","Help","autoSelect","helpElm","examplesElem","examples","PageSwitch","help","messageWrap","buttonWrap","buttonWrapFirst","PageSave","buttonStyle","buttonStyleFirst","messageStyle","changed","onCancel","onSave","labelNarrow","PageInput","narrow","inputGroup","controlButton","save","Device","onTestAlert","deviceId","toggleLevel","levels","alert_levels","isPhone","deviceType","deviceOther","deviceMode","wan_rp_id","alertIcon","fields1","fields2","testButton","groupBox","inputBox","Devices","wanRegister","wanCreate","cred","deviceName","wanRespond","addDevice","deviceTypes","devicePhoneNumber","devicePubKey","Audit","AuditsPage","Audits","panel","PagePanel","PageSplit","groupList","groupTop","buttonTop","PageInputButton","buttonClass","buttonLabel","labelTop","buttonConfirm","buttonDisabled","onSubmit","listStyle","PageSelect","DATEPICKER","DATEPICKER_CAPTION","DATEPICKER_CAPTION_MEASURE","DATEPICKER_DAY_WRAPPER","DATEPICKER_FOOTER","DATEPICKER_MONTH_SELECT","DATEPICKER_YEAR_SELECT","DATEPICKER_NAVBAR","DATEPICKER_TIMEPICKER_WRAPPER","DATERANGEPICKER","DATERANGEPICKER_SHORTCUTS","DATETIMEPICKER","TIMEPICKER","TIMEPICKER_ARROW_BUTTON","TIMEPICKER_ARROW_ROW","TIMEPICKER_DIVIDER_TEXT","TIMEPICKER_HOUR","TIMEPICKER_INPUT","TIMEPICKER_INPUT_ROW","TIMEPICKER_MILLISECOND","TIMEPICKER_MINUTE","TIMEPICKER_SECOND","TIMEPICKER_AMPM_SELECT","areSameDay","date1","date2","areSameMonth","areSameTime","getMilliseconds","dateRange","exclusive","isDayRangeInRange","innerRange","outerRange","isTimeEqualOrGreaterThan","timeToCompare","isTimeEqualOrSmallerThan","isTimeInRange","minDate","maxDate","getDateOnlyWithTime","minTime","maxTime","isTimeGreaterThanMinTime","isTimeSmallerThanMaxTime","getTimeInRange","dateToCompare","isTimeSameOrAfter","getDateTime","getIsPmFrom24Hour","hour","get12HourFrom24Hour","newHour","DATEPICKER_DEFAULT_VALUE_INVALID","DATEPICKER_INITIAL_MONTH_INVALID","DATEPICKER_MAX_DATE_INVALID","DATEPICKER_VALUE_INVALID","padWithZeroes","minLength","numTimes","stringRepeat","monthRightOffset","handleMonthSelectChange","dateChangeHandler","handleYearSelectChange","year","setFullYear","onYearChange","minYear","maxYear","displayMonth","displayYear","startMonth","endMonth","monthOptionElements","years","displayedMonthText","monthSelect","yearSelect","orderedSelects","reverseMonthAndYearMenus","positionArrows","monthTextWidth","span","spanWidth","measureTextWidth","monthSelectWidth","rightOffset","onDateChange","DatePickerCaption","Months","getDefaultMinDate","TimeUnit","hideLeftNavButton","hideRightNavButton","getShorcutClickHandler","shortcut","onShortcutClick","isShortcutInRange","shortcutDateRange","allowSingleDayRange","hasTimePrecision","useSingleDateShortcuts","makeDate","yesterday","oneWeekAgo","oneMonthAgo","threeMonthsAgo","sixMonthsAgo","oneYearAgo","twoYearsAgo","shortcutElements","shortcuts","timePrecision","returnVal","createShortcut","selectedShortcutIndex","setTimeUnit","isPm","HOUR_24","HOUR_12","get24HourFrom12Hour","MINUTE","setMinutes","SECOND","setSeconds","setMilliseconds","isTimeUnitValid","getTimeUnitMin","getTimeUnitMax","TimeUnitMetadata","DEFAULT_MIN_HOUR","DEFAULT_MIN_MINUTE","DEFAULT_MIN_SECOND","DEFAULT_MIN_MILLISECOND","DEFAULT_MAX_HOUR","DEFAULT_MAX_MINUTE","DEFAULT_MAX_SECOND","DEFAULT_MAX_MILLISECOND","TimePrecision","getInputChangeHandler","getStringValueFromInputEvent","hourText","minuteText","secondText","millisecondText","getInputBlurHandler","updateTime","getInputFocusHandler","getInputKeyDownHandler","handleKeyEvent","incrementTime","decrementTime","getInputKeyUpHandler","handleAmPmChange","isNextPm","toPm","shiftTime","getFullStateFromValue","useAmPm","shouldRenderMilliseconds","precision","shouldRenderSeconds","hourUnit","maybeRenderArrowButton","renderDivider","maybeRenderAmPm","didMinTimeChange","didMaxTimeChange","didPropValueChange","shouldStateUpdate","isDirectionUp","timeUnit","showArrowButtons","isValid","isHour","timeInRange","formatTime","newTime","getTimeUnit","wrapTimeAtUnit","updateState","hasNewValue","ignoreNextMonthChange","shouldHighlightCurrentDay","getDatePickerModifiers","isToday","getDisabledDaysModifier","renderCaption","handleMonthChange","DatePickerNavbar","dayPickerProps","updateDay","canClearSelection","updateValue","handleShortcutClick","onShortcutChange","currentShortcutIndex","includeTime","datePickerShortcut","selectedDay","handleClearClick","computeValidDateInSpecifiedMonthYear","handleTodayClick","handleTimeChange","timePickerProps","getInitialValue","getInitialMonth","DatePicker","showActionsBar","maybeRenderShortcuts","maybeRenderTimePicker","renderOptionsBar","clearButtonText","todayButtonText","applyMin","applyMax","TimePicker","dateRangeShortcuts","Shortcuts","maxDaysInMonth","displayDate","isUserChange","skipOnChange","highlightCurrentDay","handleDateChange","dateValue","timeValue","datePickerProps","DateTimePicker","PageDateTime","dateStyle","PageNew","textarea","PageTextArea","rows","UserDetailed","onNew","locked","onAddRole","addRole","onRemoveRole","generate_secret","active_until","SYNC_ZONE","_nodes","nodesM","_certificates","certificates","certificatesM","certificate","_datacenters","datacenters","datacentersM","datacenter","_zones","zones","zonesM","zone","_blocks","blocks","blocksM","syncZonesId","noLoading","syncZone","names","callout","NodeDeploy","internalIface","ifaces","externalIface","provider","firewall","internal_interface","external_interface","host_network","network","block_gateway","gateway","block_netmask","netmask","block_subnets","subnets","nodeId","onAddSubnet","addSubnet","onRemoveSubnet","subnet","zoneId","vxlan","zne","network_mode","available_bridges","available_interfaces","popoverElem","errorMsgElem","errorMsg","defaultDatacenter","hasDatacenters","datacentersSelect","hasZones","zonesSelect","availableIfaces","ifacesSelect","iface","switchLabel","inputLabel","PageInputSwitch","borderTopLeftRadius","selectInner","selectBox","PageSelectButton","PageNumInput","sourceGroup","control","port","portBox","other","NodeBlock","ifaceMatch","interfaces","interface","blocksSelect","blck","ipv6","onRemove","onAdd","wordBreak","itemsLabel","itemsAdd","restart","NodeDetailed","onAddNetworkRole","addNetworkRole","networkRoles","network_roles","onRemoveNetworkRole","networkRole","onAddExternalIface","addExternalIface","external_interfaces","onRemoveExternalIface","onAddInternalIface","addInternalIface","internal_interfaces","onRemoveInternalIface","onAddCert","addCert","certId","onRemoveCert","newBlock","defBlock","onNetworkMode","onNetworkMode6","blocks6","network_mode6","onAddOracleSubnet","availabeVpcs","available_vpcs","addOracleSubnet","nodeOracleSubnets","oracle_subnets","onRemoveOracleSubnet","onAddBlock","onAddBlock6","onAddDrive","availabeDrives","available_drives","addDrive","instanceDrives","instance_drives","onRemoveDrive","forwardedChecked","forwardedProtoChecked","toggleFirewall","toggleType","typ","vals","subnetLabel","subnetId","vpc","operation","onChangeBlock","onRemoveBlock","onChangeBlock6","onRemoveBlock6","requests_min","memory","load1","load5","load15","publicIps","public_ips","publicIps6","public_ips6","resourceBars","hugepages","hugepages_used","externalIfaces","internalIfaces","externalIfacesSelect","internalIfacesSelect","oracleSubnets","availableSubnetsSelect","hostBlocksSelect","availableDrives","availableDrivesSelect","cert","hasCertificates","certificatesSelect","hasRenders","rendersSelect","available_renders","nodeBlocks","nodeBlocks6","colSpan","admin_domain","user_domain","webauthn_domain","no_redirect_server","host_block","host_nat","oracle_host_route","oracle_user","oracle_public_key","default_no_public_address","default_no_public_address6","jumbo_frames","jumbo_frames_internal","iscsi","pci_passthrough","usb_passthrough","hugepages_size","gui","gui_mode","gui_user","software_version","cpu_units","cpu_units_res","memory_units","memory_units_res","default_interface","hostname","hypervisor","vga","vga_render","forwarded_for_header","nde","forwarded_proto_header","cardOpen","nameSpan","barLast","onOpen","memoryStyle","hugepagesStyle","load1Style","load5Style","NodesFilter","network_role","NodesPages","itemsBox","Nodes","curOpened","interval","nodesDom","_policies","policies","policiesM","policy","_settings","settings","settingsM","PolicyRule","onAddValue","rule","addValue","onRemoveValue","defaultOption","selectLabel","selectPlaceholder","optionsSelect","inputElem","disable","Policy","setRule","operatingSystem","whitelistNetworks","whitelist_networks","blacklistNetworks","blacklist_networks","providerIds","adminProviders","userProviders","providers","adminProvider","admin_secondary","userProvider","user_secondary","admin_device_secondary","user_device_secondary","Policies","policiesDom","domain","domainBox","CertificateDomain","Certificate","onAddDomain","acmeDomains","acme_domains","addDomain","onChangeDomain","onRemoveDomain","organizationsSelect","domains","signature_alg","public_key_alg","issuer","issued_on","expires_on","dns_names","noCerts","Certificates","certsDom","Organization","org","orgId","Organizations","orgsDom","_storages","storages","storagesM","storage","Datacenter","datacenterId","onAddStorage","addStorage","storageId","publicStorages","public_storages","onRemoveStorage","onAddOrganization","addOrganization","organizationId","onRemoveOrganization","hasStorages","privateStoragesSelect","backupStoragesSelect","publicStoragesSelect","private_storage","private_storage_class","backup_storage","backup_storage_class","match_organizations","Datacenters","datacentersDom","_alerts","alerts","alertsM","alert","_authorities","authorities","authoritiesM","authority","alertsButtons","alertsAdd","AlertDetailed","alertId","onAddIgnore","ignores","addIgnore","onRemoveIgnore","ignore","valueInt","valueStr","valueLabel","valueHelp","resource","value_int","value_str","frequency","AlertsFilter","AlertsPage","Alerts","alertIds","newOpened","alertsDom","instId","inst","Zone","Zones","zonesDom","Block","onSync","blockId","onAddSubnet6","addSubnet6","subnets6","onRemoveSubnet6","onAddExclude","addExclude","excludes","onRemoveExclude","exclude","gateway6","Blocks","blocksDom","_vpcs","vpcs","vpcsM","syncNamesId","VpcRoute","destination","VpcSubnet","VpcDetailed","onAddRoute","routes","vpcId","addVpc","onChangeSubnet","onChangeRoute","onRemoveRoute","datacenterName","subnetsElem","vpc_id","network6","Vpc","orgName","VpcsFilter","VpcsPage","groupBoxUser","selectFirst","Vpcs","vpcIds","vpcsDom","hasOrganizations","SYNC_NAME","_domains","domainsM","DomainDetailed","domainId","aws_id","aws_secret","Domain","DomainsFilter","DomainsPage","Domains","domainIds","domainsDom","_balancers","balancers","balancersM","balancer","BalancerDomain","hostnameBox","BalancerBackend","backend","BalancerDetailed","onAddBackend","backends","balancerId","onChangeBackend","onRemoveBackend","requests","websockets","states","statesMap","online","unknownHigh","unknownMid","unknownLow","offline","backendsClasses","curState","unknown_low","unknown_mid","unknown_high","check_path","Balancer","BalancersPage","BalancersFilter","Balancers","balancerIds","balancersDom","Storage","endpoint","bucket","access_key","secret_key","insecure","Storages","storagesDom","SYNC_DATACENTER","_images","images","imagesM","syncDatacenter","ImageDetailed","imageId","store","imgType","signed","storageClass","storage_class","last_modified","etag","orgClass","orgIcon","diskIcon","ImagesFilter","ImagesPage","Images","imageIds","imagesDom","_disks","disks","disksM","disk","updateMulti","diskIds","SYNC_NODE","_instances","instances","instancesM","instanceIds","syncNode","node_names","insts","DiskDetailed","resizeDisk","new_size","diskId","onRestoreBackup","restoreImage","backups","restore_image","setResizeDisk","hasInstances","instancesSelect","backupsSelect","backup","hasBackups","statusClass","backingImage","backing_image","delete_protection","Disk","DisksFilter","nodesSelect","DisksPage","PageCreate","closedDom","row","DiskNew","hiddenImages","hasNodes","imagesSelect","imagesMap","imagesVer","imgSpl","imgKey","firmware","imgVer","curImg","backing","debugButton","Disks","onForceDelete","onSnapshot","onBackup","newDiskDom","disksDom","debugClass","InstanceIscsiDevice","vncBox","InstanceDetailed","onTogleVnc","vnc","vncRfb","connectVnc","vncRef","vnc_password","vncState","vncScale","scaleViewport","onToggleVncCtrl","vncCtrl","onToggleVncAlt","vncAlt","onToggleVncSuper","vncSuper","onVncCtrlAltDel","sendCtrlAltDel","onVncTab","onVncEsc","onToggleVncFullscreen","fullscreenElement","exitFullscreen","requestFullscreen","onToggleVncScale","vncHeight","ratio","onAddDriveDevice","infoDriveDevices","drive_devices","addDriveDevice","driveDevices","onRemoveDriveDevice","onAddIso","infoIsos","isos","addIso","onRemoveIso","isoName","onAddUsbDevice","infoUsbDevices","usb_devices","addUsbDevice","product","bus","usbDevices","dev","address","onRemoveUsbDevice","onAddPciDevice","infoPciDevices","pci_devices","addPciDevice","slot","pciDevices","onRemovePciDevice","onAddIscsiDevice","iscsiDevices","iscsi_devices","instanceId","onChangeIscsiDevice","onRemoveIscsiDevice","privateIps","private_ips","privateIps6","private_ips6","gatewayIps","gateway_ips","gatewayIps6","gateway_ips6","hostIps","host_ips","oraclePrivateIps","oracle_private_ips","oraclePublicIps","oracle_public_ips","hasVpcs","vpcsSelect","hasSubnets","subnetSelect","oracleSubnetsSelect","domainsSelect","driveDevicesSelect","iso","isosSelect","usbDevicesSelect","pciDevicesSelect","class","iscsiDevicesElem","vm_state","uptime","public_mac","qemu_version","uefi","secure_boot","mtu","network_namespace","root_enabled","root_passwd","vncPort","node_public_ip","vnc_display","spice","spice_port","spice_password","firewall_rules","vncStyle","processors","oracle_subnet","cloud_type","tpm","dhcp_server","no_public_address","no_public_address6","no_host_address","skip_source_dest_check","Instance","zoneName","publicIp","privateIp","InstanceLicense","InstanceNew","onImageselect","imageName","secureBootChanged","licenseOpen","dhcpChanged","init_disk_size","onUefi","onSecureBoot","secureBoot","onDhcpServer","dhcpServer","onNode","hasImages","image_backing","shortInput","InstancesFilter","subnetsSelect","InstancesPage","Instances","VpcsNameStore","updateSelected","newInstanceDom","instancesDom","_firewalls","firewalls","firewallsM","FirewallRule","onAddSourceIp","sourceIps","source_ips","onChangeSourceIp","sourceIp","onRemoveSourceIp","sourceIpsDoms","FirewallDetailed","onAddIngress","ingress","firewallId","onChangeIngress","onRemoveIngress","Firewall","FirewallsFilter","FirewallsPage","Firewalls","firewallIds","firewallsDom","AuthorityDetailed","authorityId","Authority","AuthoritiesFilter","AuthoritiesPage","Authorities","authorityIds","authoritiesDom","authrId","authr","_logs","logs","logsM","dialogBody","LogsFilter","LogsPage","logsBox","Logs","logsDom","SettingsProvider","azure","tenant","client_id","client_secret","authzero","google","google_email","google_key","onelogin","issuer_url","saml_url","saml_cert","okta","jumpcloud","jumpcloud_app_id","jumpcloud_secret","default_roles","rls","auto_create","role_management","SettingsSecondaryProvider","duo","duo_hostname","duo_key","duo_secret","push_factor","phone_factor","passcode_factor","sms_factor","one_login_id","one_login_secret","one_login_region","okta_domain","okta_token","providersLabel","secondaryProviders","Settings","secondaryProvider","subscriptionActive","auth_providers","prvdrs","auth_secondary_providers","authProviders","auth_admin_expire","auth_admin_max_duration","auth_user_expire","auth_user_max_duration","orgsSelect","nav","navTitle","flexWrap","navGroup","Main","alt","startsWith","connected","connect","socket","oracle_license"],"sourceRoot":""} \ No newline at end of file diff --git a/www/dist/uindex.html b/www/dist/uindex.html index 6769ea0a..acf59e18 100644 --- a/www/dist/uindex.html +++ b/www/dist/uindex.html @@ -23,6 +23,6 @@ - +